diff -Nru cgal-5.4.1/auxiliary/cgal_create_cmake_script.1 cgal-5.5/auxiliary/cgal_create_cmake_script.1 --- cgal-5.4.1/auxiliary/cgal_create_cmake_script.1 2022-06-03 19:06:15.000000000 +0000 +++ cgal-5.5/auxiliary/cgal_create_cmake_script.1 2022-07-13 19:07:15.000000000 +0000 @@ -1,4 +1,4 @@ -.TH CGAL_CREATE_CMAKE_SCRIPT "1" "June 2022" "CGAL 5.4.1" "User Commands" +.TH CGAL_CREATE_CMAKE_SCRIPT "1" "July 2022" "CGAL 5.5" "User Commands" .SH NAME cgal_create_cmake_script \- create a cmake script for applications using CGAL .SH SYNOPSIS diff -Nru cgal-5.4.1/CHANGES.md cgal-5.5/CHANGES.md --- cgal-5.4.1/CHANGES.md 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/CHANGES.md 2022-07-08 19:00:06.000000000 +0000 @@ -1,6 +1,80 @@ Release History =============== + +[Release 5.5](https://github.com/CGAL/cgal/releases/tag/v5.5) +----------- + +Release date: June 2022 + +### [3D Alpha Wrapping (new package)](https://doc.cgal.org/5.5/Manual/packages.html#PkgAlphaWrap3) + +- 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](https://www.cgal.org/2022/05/18/alpha_wrap/). + +### [2D Straight Skeleton and Polygon Offsetting (breaking change)](https://doc.cgal.org/5.5/Manual/packages.html#PkgStraightSkeleton2) +- Fix the output of the function [CGAL::create_exterior_skeleton_and_offset_polygons_with_holes_2()](https://doc.cgal.org/5.5/Straight_skeleton_2/group__PkgStraightSkeleton2OffsetFunctions.html#gaa159f093e5d6d7fdb62c1660a44f95fe) + to not take into account the offset of the outer frame. +- Fix the computation of the exterior offset of a polygon with holes that was not computing the offset of the holes + +### [3D Convex Hulls](https://doc.cgal.org/5.5/Manual/packages.html#PkgConvexHull3) + +- Added an [overload of the function `CGAL::convex_hull_3()`](https://doc.cgal.org/5.5/Convex_hull_3/group__PkgConvexHull3Functions.html#ga52fca4745c2ef0351063fbe66b035fd1), which writes the result in an indexed triangle set. + +### [2D Polygons](https://doc.cgal.org/5.5/Manual/packages.html#PkgPolygon2) + +- Add vertex, edge, and hole ranges. +- The concept [`GeneralPolygonWithHoles_2`](https://doc.cgal.org/5.5/Polygon/classGeneralPolygonWithHoles__2.html) now requires the nested type `Polygon_2` instead of `General_polygon_2`. + +### [2D Regularized Boolean Set-Operations](https://doc.cgal.org/5.5/Manual/packages.html#PkgBooleanSetOperations2) +- The concept [`GeneralPolygonSetTraits_2`](https://doc.cgal.org/5.5/Boolean_set_operations_2/classGeneralPolygonSetTraits__2.html) now requires the nested type `Construct_polygon_with_holes_2` instead of `Construct_general_polygon_with_holes_2`. + +### [Combinatorial Maps](https://doc.cgal.org/5.5/Manual/packages.html#PkgCombinatorialMaps) + +- Removed old code deprecated in CGAL 4.9 and 4.10 (global functions, and information associated with darts). + +### [2D Arrangements](https://doc.cgal.org/5.5/Manual/packages.html#PkgArrangementOnSurface2) +- 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`](https://doc.cgal.org/5.5/Arrangement_on_surface_2/classCGAL_1_1Arr__geodesic__arc__on__sphere__traits__2.html) that handles geodesic arcs on sphere and applied a small syntactical fix to the tracing traits. + +### [Tetrahedral Mesh Generation](https://doc.cgal.org/5.5/Manual/packages.html#PkgMesh3) + +- Added the function + [`remove_isolated_vertices()`](https://doc.cgal.org/5.5/Mesh_3/classCGAL_1_1Mesh__complex__3__in__triangulation__3.html#ace57c4e777da457c6e33b4f6e89949ce) + as a post-processing step for the tetrahedral mesh generation. + +### [Polygon Mesh Processing](https://doc.cgal.org/5.5/Manual/packages.html#PkgPolygonMeshProcessing) +- Added the function [`CGAL::Polygon_mesh_processing::orient_triangle_soup_with_reference_triangle_soup()`](https://doc.cgal.org/5.5/Polygon_mesh_processing/group__PMP__orientation__grp.html#ga855b1c55c201b91ab04eebd2811a87fd), which enables re-orienting the faces of a triangle soup based on the orientation of the nearest face in a reference triangle soup. +- Added the function [`CGAL::Polygon_mesh_processing::compatible_orientations()`](https://doc.cgal.org/5.5/Polygon_mesh_processing/group__PMP__orientation__grp.html#ga9ac9b9434084b64f3304df636c3178a3), which enables to retrieve the (in)compatibility of orientations of faces from different connected components. +- Added the function [`CGAL::Polygon_mesh_processing::tangential_relaxation()`](https://doc.cgal.org/5.5/Polygon_mesh_processing/group__PMP__meshing__grp.html#ga136c659162e5360354db5879db7431b4), which applies an area-based tangential mesh smoothing to the vertices of a surface triangle mesh. +- Added the named parameter `visitor` to the function [`triangulate_hole()`](https://doc.cgal.org/5.5/Polygon_mesh_processing/group__PMP__hole__filling__grp.html#gad2d3c43bce0ef90a16530478196d7f42), which enables to track progress with callbacks. +- Added more functions in the [visitor of the corefinement based methods](https://doc.cgal.org/5.5/Polygon_mesh_processing/classPMPCorefinementVisitor.html) to track progress. + +### [Surface Mesh Simplification](https://doc.cgal.org/5.5/Manual/packages.html#PkgSurfaceMeshSimplification) +- Introduced four variations of the Garland-Heckbert simplification algorithm based on the probabilistic approach of Trettner and Kobbelt (Fast and Robust QEF Minimization using Probabilistic Quadrics): [`GarlandHeckbert_plane_policies`](https://doc.cgal.org/5.5/Surface_mesh_simplification/classCGAL_1_1Surface__mesh__simplification_1_1GarlandHeckbert__plane__policies.html), [`GarlandHeckbert_probabilistic_plane_policies`](https://doc.cgal.org/5.5/Surface_mesh_simplification/classCGAL_1_1Surface__mesh__simplification_1_1GarlandHeckbert__probabilistic__plane__policies.html), [`GarlandHeckbert_triangle_policies`](https://doc.cgal.org/5.5/Surface_mesh_simplification/classCGAL_1_1Surface__mesh__simplification_1_1GarlandHeckbert__triangle__policies.html), and [`GarlandHeckbert_probabilistic_triangle_policies`](https://doc.cgal.org/5.5/Surface_mesh_simplification/classCGAL_1_1Surface__mesh__simplification_1_1GarlandHeckbert__probabilistic__triangle__policies.html). +- The class `GarlandHeckbert_policies` has been deprecated, `GarlandHeckbert_plane_policies` replaces it. + +### [Point Set Processing](https://doc.cgal.org/5.5/Manual/packages.html#PkgPointSetProcessing3) + +- A new optional named parameter, `min_points_per_cell` has been added to [`grid_simplify_point_set()`](https://doc.cgal.org/5.5/Point_set_processing_3/group__PkgPointSetProcessing3Algorithms.html#ga7757ef9b3900e42fde26f5a0ac56e20f). 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](https://doc.cgal.org/5.5/Manual/packages.html#PkgSpatialSearchingD) + +- Added the member function [`write_graphviz()`](https://doc.cgal.org/5.5/Spatial_searching/classCGAL_1_1Kd__tree.html#ac2851b5cafb8d5cce0dc5fb107c8f13f) to the class `Kd_tree` that writes the tree in a stream in the [Graphviz](https://graphviz.org/) format. + +### [CGAL and the Boost Graph Library (BGL)](https://doc.cgal.org/5.5/Manual/packages.html#PkgBGL) + +- Added the function [`invert_selection()`](https://doc.cgal.org/5.5/BGL/structCGAL_1_1Face__filtered__graph.html#aa428541ebbdd35f9a6e9a3ffd60178df) in the class [`Face_filtered_graph`](https://doc.cgal.org/5.5/BGL/structCGAL_1_1Face__filtered__graph.html), which toggles the selected status of a graph: selected faces are deselected, and unselected faces are selected. + + [Release 5.4](https://github.com/CGAL/cgal/releases/tag/v5.4) ----------- diff -Nru cgal-5.4.1/cmake/modules/CGAL_Boost_iostreams_support.cmake cgal-5.5/cmake/modules/CGAL_Boost_iostreams_support.cmake --- cgal-5.4.1/cmake/modules/CGAL_Boost_iostreams_support.cmake 2022-01-18 09:58:52.000000000 +0000 +++ cgal-5.5/cmake/modules/CGAL_Boost_iostreams_support.cmake 2022-06-13 09:15:37.000000000 +0000 @@ -1,3 +1,4 @@ +cmake_minimum_required(VERSION 3.11...3.23) if(Boost_IOSTREAMS_FOUND AND NOT TARGET CGAL::Boost_iostreams_support) if( WIN32 ) @@ -32,13 +33,7 @@ add_library(CGAL::Boost_iostreams_support INTERFACE IMPORTED) - if(CMAKE_VERSION VERSION_LESS 3.11) - set_target_properties(CGAL::Boost_iostreams_support PROPERTIES - INTERFACE_COMPILE_DEFINITIONS "CGAL_LINKED_WITH_BOOST_IOSTREAMS" - INTERFACE_LINK_LIBRARIES "${Boost_LIB};${ZLIB_LIBS}") - else() - set_target_properties(CGAL::Boost_iostreams_support PROPERTIES - INTERFACE_COMPILE_DEFINITIONS "CGAL_LINKED_WITH_BOOST_IOSTREAMS") - target_link_libraries(CGAL::Boost_iostreams_support INTERFACE ${Boost_LIB} ${ZLIB_LIBS}) - endif() + set_target_properties(CGAL::Boost_iostreams_support PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "CGAL_LINKED_WITH_BOOST_IOSTREAMS") + target_link_libraries(CGAL::Boost_iostreams_support INTERFACE ${Boost_LIB} ${ZLIB_LIBS}) endif() diff -Nru cgal-5.4.1/cmake/modules/CGAL_Common.cmake cgal-5.5/cmake/modules/CGAL_Common.cmake --- cgal-5.4.1/cmake/modules/CGAL_Common.cmake 2022-01-18 09:58:52.000000000 +0000 +++ cgal-5.5/cmake/modules/CGAL_Common.cmake 2022-06-13 09:15:37.000000000 +0000 @@ -17,13 +17,6 @@ message( FATAL_ERROR "CMAKE_ROOT environment variable not set. It should point to the directory where CMake is installed.") endif() - # CMAKE_VERSION was introduced in 2.6.3 so we use it to detect the fact - if ( CMAKE_VERSION ) - set( CMAKE_2_6_3_OR_ABOVE TRUE ) - else() - set( CMAKE_2_6_3_OR_ABOVE FALSE ) - endif() - if ( WIN32 ) find_program(CMAKE_UNAME uname /bin /usr/bin /usr/local/bin ) if(CMAKE_UNAME) diff -Nru cgal-5.4.1/cmake/modules/CGAL_SetupCGALDependencies.cmake cgal-5.5/cmake/modules/CGAL_SetupCGALDependencies.cmake --- cgal-5.4.1/cmake/modules/CGAL_SetupCGALDependencies.cmake 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/cmake/modules/CGAL_SetupCGALDependencies.cmake 2022-06-13 09:15:37.000000000 +0000 @@ -23,6 +23,7 @@ # If set, the `LEDA` library will be searched and used to provide # the exact number types used by CGAL kernels. # +cmake_minimum_required(VERSION 3.11...3.23) if(CGAL_SetupCGALDependencies_included) return() endif() @@ -117,20 +118,14 @@ if(MSVC) target_compile_options(${target} INTERFACE "-D_SCL_SECURE_NO_DEPRECATE;-D_SCL_SECURE_NO_WARNINGS") - if(CMAKE_VERSION VERSION_LESS 3.11) - target_compile_options(${target} INTERFACE - /fp:strict - /fp:except- - /wd4503 # Suppress warnings C4503 about "decorated name length exceeded" - /bigobj # Use /bigobj by default - ) - else() - # The MSVC generator supports `$` since CMake 3.11. + target_compile_options(${target} INTERFACE + $<$:/fp:strict> + $<$:/fp:except-> + $<$:/bigobj> # Use /bigobj by default + ) + if(MSVC_TOOLSET_VERSION VERSION_LESS_EQUAL 140) # for MSVC 2015 target_compile_options(${target} INTERFACE - $<$:/fp:strict> - $<$:/fp:except-> $<$:/wd4503> # Suppress warnings C4503 about "decorated name length exceeded" - $<$:/bigobj> # Use /bigobj by default ) endif() elseif ("${CMAKE_CXX_COMPILER_ID}" MATCHES "AppleClang") @@ -157,11 +152,7 @@ endif() if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 3) message( STATUS "Using gcc version 4 or later. Adding -frounding-math" ) - if(CMAKE_VERSION VERSION_LESS 3.3) - target_compile_options(${target} INTERFACE "-frounding-math") - else() - target_compile_options(${target} INTERFACE "$<$:-frounding-math>") - endif() + target_compile_options(${target} INTERFACE "$<$:-frounding-math>") endif() if ( "${GCC_VERSION}" MATCHES "^4.2" ) message( STATUS "Using gcc version 4.2. Adding -fno-strict-aliasing" ) diff -Nru cgal-5.4.1/cmake/modules/CGAL_SetupLEDA.cmake cgal-5.5/cmake/modules/CGAL_SetupLEDA.cmake --- cgal-5.4.1/cmake/modules/CGAL_SetupLEDA.cmake 2022-01-18 09:58:52.000000000 +0000 +++ cgal-5.5/cmake/modules/CGAL_SetupLEDA.cmake 2022-06-13 09:15:37.000000000 +0000 @@ -9,7 +9,7 @@ # find_package(LEDA) # # and defines the function :command:`use_CGAL_LEDA_support`. - +cmake_minimum_required(VERSION 3.11...3.23) if(CGAL_SetupLEDA_included) return() endif() @@ -39,11 +39,7 @@ separate_arguments(LIST_LEDA_CXX_FLAGS UNIX_COMMAND "${LEDA_CXX_FLAGS}") separate_arguments(LIST_LEDA_DEFINITIONS UNIX_COMMAND "${LEDA_DEFINITIONS} -DCGAL_USE_LEDA") - if(CMAKE_VERSION VERSION_LESS 3.3) - target_compile_options(${target} INTERFACE ${LIST_LEDA_CXX_FLAGS}) - else() - target_compile_options(${target} INTERFACE $<$:${LIST_LEDA_CXX_FLAGS}>) - endif() + target_compile_options(${target} INTERFACE $<$:${LIST_LEDA_CXX_FLAGS}>) target_compile_options(${target} INTERFACE ${LIST_LEDA_DEFINITIONS}) target_include_directories(${target} SYSTEM INTERFACE ${LEDA_INCLUDE_DIR}) diff -Nru cgal-5.4.1/CMakeLists.txt cgal-5.5/CMakeLists.txt --- cgal-5.4.1/CMakeLists.txt 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -4,7 +4,7 @@ # ${CGAL_SOURCE_DIR} and to the root binary directory of the project as # ${CGAL_BINARY_DIR} or ${CGAL_BINARY_DIR}. if(NOT PROJECT_NAME) - cmake_minimum_required(VERSION 3.12...3.20) + cmake_minimum_required(VERSION 3.1...3.23) project(CGAL CXX C) endif() @@ -390,8 +390,6 @@ "-D_SCL_SECURE_NO_DEPRECATE;-D_SCL_SECURE_NO_WARNINGS") uniquely_add_flags(CGAL_CXX_FLAGS "/fp:strict") uniquely_add_flags(CGAL_CXX_FLAGS "/fp:except-") - uniquely_add_flags(CGAL_CXX_FLAGS "/wd4503" - )# Suppress warnings C4503 about "decorated name length exceeded" uniquely_add_flags(CGAL_CXX_FLAGS "/bigobj") # Use /bigobj by default if(RUNNING_CGAL_AUTO_TEST) diff -Nru cgal-5.4.1/data/meshes/beam.off cgal-5.5/data/meshes/beam.off --- cgal-5.4.1/data/meshes/beam.off 1970-01-01 00:00:00.000000000 +0000 +++ cgal-5.5/data/meshes/beam.off 2022-06-13 09:15:37.000000000 +0000 @@ -0,0 +1,16 @@ +OFF +8 6 0 +2.7 2.7 2.3 +2.7 2.3 2.3 +2.3 2.7 2.3 +2.3 2.3 2.3 +2.7 2.7 -1.3 +2.7 2.3 -1.3 +2.3 2.7 -1.3 +2.3 2.3 -1.3 +4 0 1 3 2 +4 5 4 6 7 +4 0 2 6 4 +4 3 1 5 7 +4 0 4 5 1 +4 6 2 3 7 diff -Nru cgal-5.4.1/debian/changelog cgal-5.5/debian/changelog --- cgal-5.4.1/debian/changelog 2022-07-21 06:05:18.000000000 +0000 +++ cgal-5.5/debian/changelog 2022-08-05 19:14:08.000000000 +0000 @@ -1,8 +1,8 @@ -cgal (5.4.1-1build1) kinetic; urgency=medium +cgal (5.5-1) unstable; urgency=medium - * Rebuild against libipe7.2.25. + * New upstream release. - -- Gianfranco Costamagna Thu, 21 Jul 2022 08:05:18 +0200 + -- Joachim Reichel Fri, 05 Aug 2022 21:14:08 +0200 cgal (5.4.1-1) unstable; urgency=medium diff -Nru cgal-5.4.1/debian/patches/fix-build-on-mipsel cgal-5.5/debian/patches/fix-build-on-mipsel --- cgal-5.4.1/debian/patches/fix-build-on-mipsel 2022-02-26 18:32:47.000000000 +0000 +++ cgal-5.5/debian/patches/fix-build-on-mipsel 2022-08-05 19:14:08.000000000 +0000 @@ -1,11 +1,11 @@ Description: Link with -latomic on mipsel. Author: Joachim Reichel -Index: cgal/cmake/modules/CGAL_SetupCGALDependencies.cmake +Index: cgal-5.5/cmake/modules/CGAL_SetupCGALDependencies.cmake =================================================================== ---- cgal.orig/cmake/modules/CGAL_SetupCGALDependencies.cmake -+++ cgal/cmake/modules/CGAL_SetupCGALDependencies.cmake -@@ -171,5 +171,9 @@ function(CGAL_setup_CGAL_dependencies ta +--- cgal-5.5.orig/cmake/modules/CGAL_SetupCGALDependencies.cmake ++++ cgal-5.5/cmake/modules/CGAL_SetupCGALDependencies.cmake +@@ -162,5 +162,9 @@ function(CGAL_setup_CGAL_dependencies ta message( STATUS "Using gcc on alpha. Adding -mieee -mfp-rounding-mode=d" ) target_compile_options(${target} INTERFACE "-mieee" "-mfp-rounding-mode=d" ) endif() diff -Nru cgal-5.4.1/demo/AABB_tree/CMakeLists.txt cgal-5.5/demo/AABB_tree/CMakeLists.txt --- cgal-5.4.1/demo/AABB_tree/CMakeLists.txt 2022-01-18 09:58:49.000000000 +0000 +++ cgal-5.5/demo/AABB_tree/CMakeLists.txt 2022-06-13 09:15:36.000000000 +0000 @@ -1,6 +1,6 @@ # This is the CMake script for compiling the AABB tree demo. -cmake_minimum_required(VERSION 3.1...3.20) +cmake_minimum_required(VERSION 3.1...3.23) project(AABB_tree_Demo) # Find includes in corresponding build directories diff -Nru cgal-5.4.1/demo/Alpha_shapes_2/CMakeLists.txt cgal-5.5/demo/Alpha_shapes_2/CMakeLists.txt --- cgal-5.4.1/demo/Alpha_shapes_2/CMakeLists.txt 2022-01-18 09:58:52.000000000 +0000 +++ cgal-5.5/demo/Alpha_shapes_2/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.20) +cmake_minimum_required(VERSION 3.1...3.23) project(Alpha_shapes_2_Demo) if(NOT POLICY CMP0070 AND POLICY CMP0053) diff -Nru cgal-5.4.1/demo/Alpha_shapes_3/CMakeLists.txt cgal-5.5/demo/Alpha_shapes_3/CMakeLists.txt --- cgal-5.4.1/demo/Alpha_shapes_3/CMakeLists.txt 2022-01-18 09:58:49.000000000 +0000 +++ cgal-5.5/demo/Alpha_shapes_3/CMakeLists.txt 2022-06-13 09:15:36.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.20) +cmake_minimum_required(VERSION 3.1...3.23) project(Alpha_shapes_3_Demo) # Find includes in corresponding build directories diff -Nru cgal-5.4.1/demo/Apollonius_graph_2/CMakeLists.txt cgal-5.5/demo/Apollonius_graph_2/CMakeLists.txt --- cgal-5.4.1/demo/Apollonius_graph_2/CMakeLists.txt 2022-01-18 09:58:52.000000000 +0000 +++ cgal-5.5/demo/Apollonius_graph_2/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.20) +cmake_minimum_required(VERSION 3.1...3.23) project(Apollonius_graph_2_Demo) if(NOT POLICY CMP0070 AND POLICY CMP0053) diff -Nru cgal-5.4.1/demo/Arrangement_on_surface_2/AlgebraicCurveInputDialog.h cgal-5.5/demo/Arrangement_on_surface_2/AlgebraicCurveInputDialog.h --- cgal-5.4.1/demo/Arrangement_on_surface_2/AlgebraicCurveInputDialog.h 2022-06-03 19:03:37.000000000 +0000 +++ cgal-5.5/demo/Arrangement_on_surface_2/AlgebraicCurveInputDialog.h 2022-07-13 19:04:21.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/AlgebraicCurveInputDialog.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/AlgebraicCurveInputDialog.h $ // $Id: AlgebraicCurveInputDialog.h cc99fd9 2021-02-19T16:02:12+01:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial diff -Nru cgal-5.4.1/demo/Arrangement_on_surface_2/ArrangementDemoGraphicsView.h cgal-5.5/demo/Arrangement_on_surface_2/ArrangementDemoGraphicsView.h --- cgal-5.4.1/demo/Arrangement_on_surface_2/ArrangementDemoGraphicsView.h 2022-06-03 19:03:37.000000000 +0000 +++ cgal-5.5/demo/Arrangement_on_surface_2/ArrangementDemoGraphicsView.h 2022-07-13 19:04:21.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/ArrangementDemoGraphicsView.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/ArrangementDemoGraphicsView.h $ // $Id: ArrangementDemoGraphicsView.h cc99fd9 2021-02-19T16:02:12+01:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/Arrangement_on_surface_2/ArrangementDemoPropertiesDialog.h cgal-5.5/demo/Arrangement_on_surface_2/ArrangementDemoPropertiesDialog.h --- cgal-5.4.1/demo/Arrangement_on_surface_2/ArrangementDemoPropertiesDialog.h 2022-06-03 19:03:37.000000000 +0000 +++ cgal-5.5/demo/Arrangement_on_surface_2/ArrangementDemoPropertiesDialog.h 2022-07-13 19:04:21.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/ArrangementDemoPropertiesDialog.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/ArrangementDemoPropertiesDialog.h $ // $Id: ArrangementDemoPropertiesDialog.h cc99fd9 2021-02-19T16:02:12+01:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/Arrangement_on_surface_2/ArrangementDemoTab.h cgal-5.5/demo/Arrangement_on_surface_2/ArrangementDemoTab.h --- cgal-5.4.1/demo/Arrangement_on_surface_2/ArrangementDemoTab.h 2022-06-03 19:03:37.000000000 +0000 +++ cgal-5.5/demo/Arrangement_on_surface_2/ArrangementDemoTab.h 2022-07-13 19:04:21.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/ArrangementDemoTab.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/ArrangementDemoTab.h $ // $Id: ArrangementDemoTab.h 1d3815f 2020-10-02T17:29:03+02:00 Ahmed Essam // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/Arrangement_on_surface_2/ArrangementIO.h cgal-5.5/demo/Arrangement_on_surface_2/ArrangementIO.h --- cgal-5.4.1/demo/Arrangement_on_surface_2/ArrangementIO.h 2022-06-03 19:03:37.000000000 +0000 +++ cgal-5.5/demo/Arrangement_on_surface_2/ArrangementIO.h 2022-07-13 19:04:22.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/ArrangementIO.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/ArrangementIO.h $ // $Id: ArrangementIO.h 1d3815f 2020-10-02T17:29:03+02:00 Ahmed Essam // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/Arrangement_on_surface_2/ArrangementPainterOstream.cpp cgal-5.5/demo/Arrangement_on_surface_2/ArrangementPainterOstream.cpp --- cgal-5.4.1/demo/Arrangement_on_surface_2/ArrangementPainterOstream.cpp 2022-01-18 09:58:50.000000000 +0000 +++ cgal-5.5/demo/Arrangement_on_surface_2/ArrangementPainterOstream.cpp 2022-07-13 19:00:07.000000000 +0000 @@ -289,7 +289,7 @@ QRectF seg_bb = this->convert(seg.bbox()); if ( this->clippingRect.isValid() && - !this->clippingRect.intersects(seg_bb) & + !this->clippingRect.intersects(seg_bb) && (!seg.is_horizontal() && !seg.is_vertical())) { return *this; } diff -Nru cgal-5.4.1/demo/Arrangement_on_surface_2/ArrangementTypesUtils.h cgal-5.5/demo/Arrangement_on_surface_2/ArrangementTypesUtils.h --- cgal-5.4.1/demo/Arrangement_on_surface_2/ArrangementTypesUtils.h 2022-06-03 19:03:38.000000000 +0000 +++ cgal-5.5/demo/Arrangement_on_surface_2/ArrangementTypesUtils.h 2022-07-13 19:04:22.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/ArrangementTypesUtils.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/ArrangementTypesUtils.h $ // $Id: ArrangementTypesUtils.h ae46209 2020-10-06T23:41:30+01:00 Ahmed Essam // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/Arrangement_on_surface_2/Callback.h cgal-5.5/demo/Arrangement_on_surface_2/Callback.h --- cgal-5.4.1/demo/Arrangement_on_surface_2/Callback.h 2022-06-03 19:03:38.000000000 +0000 +++ cgal-5.5/demo/Arrangement_on_surface_2/Callback.h 2022-07-13 19:04:22.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/Callback.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/Callback.h $ // $Id: Callback.h a30658a 2020-09-21T09:09:48+02:00 Ahmed Essam // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/Arrangement_on_surface_2/CMakeLists.txt cgal-5.5/demo/Arrangement_on_surface_2/CMakeLists.txt --- cgal-5.4.1/demo/Arrangement_on_surface_2/CMakeLists.txt 2022-01-18 09:58:50.000000000 +0000 +++ cgal-5.5/demo/Arrangement_on_surface_2/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,6 +1,6 @@ # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.20) +cmake_minimum_required(VERSION 3.1...3.23) project(Arrangement_on_surface_2_Demo) if(NOT POLICY CMP0070 AND POLICY CMP0053) diff -Nru cgal-5.4.1/demo/Arrangement_on_surface_2/Conic_reader.h cgal-5.5/demo/Arrangement_on_surface_2/Conic_reader.h --- cgal-5.4.1/demo/Arrangement_on_surface_2/Conic_reader.h 2022-06-03 19:03:38.000000000 +0000 +++ cgal-5.5/demo/Arrangement_on_surface_2/Conic_reader.h 2022-07-13 19:04:22.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/Conic_reader.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/Conic_reader.h $ // $Id: Conic_reader.h a30658a 2020-09-21T09:09:48+02:00 Ahmed Essam // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/Arrangement_on_surface_2/CurveGraphicsItem.h cgal-5.5/demo/Arrangement_on_surface_2/CurveGraphicsItem.h --- cgal-5.4.1/demo/Arrangement_on_surface_2/CurveGraphicsItem.h 2022-06-03 19:03:38.000000000 +0000 +++ cgal-5.5/demo/Arrangement_on_surface_2/CurveGraphicsItem.h 2022-07-13 19:04:22.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/CurveGraphicsItem.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/CurveGraphicsItem.h $ // $Id: CurveGraphicsItem.h a30658a 2020-09-21T09:09:48+02:00 Ahmed Essam // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/Arrangement_on_surface_2/CurveInputMethods.h cgal-5.5/demo/Arrangement_on_surface_2/CurveInputMethods.h --- cgal-5.4.1/demo/Arrangement_on_surface_2/CurveInputMethods.h 2022-06-03 19:03:38.000000000 +0000 +++ cgal-5.5/demo/Arrangement_on_surface_2/CurveInputMethods.h 2022-07-13 19:04:22.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/CurveInputMethods.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/CurveInputMethods.h $ // $Id: CurveInputMethods.h 614d7fe 2020-10-06T19:26:53+01:00 Ahmed Essam // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/Arrangement_on_surface_2/DeleteCurveCallback.h cgal-5.5/demo/Arrangement_on_surface_2/DeleteCurveCallback.h --- cgal-5.4.1/demo/Arrangement_on_surface_2/DeleteCurveCallback.h 2022-06-03 19:03:38.000000000 +0000 +++ cgal-5.5/demo/Arrangement_on_surface_2/DeleteCurveCallback.h 2022-07-13 19:04:22.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/DeleteCurveCallback.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/DeleteCurveCallback.h $ // $Id: DeleteCurveCallback.h 1d3815f 2020-10-02T17:29:03+02:00 Ahmed Essam // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/Arrangement_on_surface_2/EnvelopeCallback.h cgal-5.5/demo/Arrangement_on_surface_2/EnvelopeCallback.h --- cgal-5.4.1/demo/Arrangement_on_surface_2/EnvelopeCallback.h 2022-06-03 19:03:38.000000000 +0000 +++ cgal-5.5/demo/Arrangement_on_surface_2/EnvelopeCallback.h 2022-07-13 19:04:22.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/EnvelopeCallback.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/EnvelopeCallback.h $ // $Id: EnvelopeCallback.h 1d3815f 2020-10-02T17:29:03+02:00 Ahmed Essam // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/Arrangement_on_surface_2/FillFaceCallback.h cgal-5.5/demo/Arrangement_on_surface_2/FillFaceCallback.h --- cgal-5.4.1/demo/Arrangement_on_surface_2/FillFaceCallback.h 2022-06-03 19:03:38.000000000 +0000 +++ cgal-5.5/demo/Arrangement_on_surface_2/FillFaceCallback.h 2022-07-13 19:04:22.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/FillFaceCallback.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/FillFaceCallback.h $ // $Id: FillFaceCallback.h 1d3815f 2020-10-02T17:29:03+02:00 Ahmed Essam // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/Arrangement_on_surface_2/FloodFill.h cgal-5.5/demo/Arrangement_on_surface_2/FloodFill.h --- cgal-5.4.1/demo/Arrangement_on_surface_2/FloodFill.h 2022-06-03 19:03:38.000000000 +0000 +++ cgal-5.5/demo/Arrangement_on_surface_2/FloodFill.h 2022-07-13 19:04:22.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/FloodFill.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/FloodFill.h $ // $Id: FloodFill.h a30658a 2020-09-21T09:09:48+02:00 Ahmed Essam // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/Arrangement_on_surface_2/ForwardDeclarations.h cgal-5.5/demo/Arrangement_on_surface_2/ForwardDeclarations.h --- cgal-5.4.1/demo/Arrangement_on_surface_2/ForwardDeclarations.h 2022-06-03 19:03:38.000000000 +0000 +++ cgal-5.5/demo/Arrangement_on_surface_2/ForwardDeclarations.h 2022-07-13 19:04:22.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/ForwardDeclarations.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/ForwardDeclarations.h $ // $Id: ForwardDeclarations.h 1d3815f 2020-10-02T17:29:03+02:00 Ahmed Essam // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/Arrangement_on_surface_2/GraphicsViewCurveInput.h cgal-5.5/demo/Arrangement_on_surface_2/GraphicsViewCurveInput.h --- cgal-5.4.1/demo/Arrangement_on_surface_2/GraphicsViewCurveInput.h 2022-06-03 19:03:38.000000000 +0000 +++ cgal-5.5/demo/Arrangement_on_surface_2/GraphicsViewCurveInput.h 2022-07-13 19:04:22.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/GraphicsViewCurveInput.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/GraphicsViewCurveInput.h $ // $Id: GraphicsViewCurveInput.h 1d3815f 2020-10-02T17:29:03+02:00 Ahmed Essam // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/Arrangement_on_surface_2/GridGraphicsItem.h cgal-5.5/demo/Arrangement_on_surface_2/GridGraphicsItem.h --- cgal-5.4.1/demo/Arrangement_on_surface_2/GridGraphicsItem.h 2022-06-03 19:03:38.000000000 +0000 +++ cgal-5.5/demo/Arrangement_on_surface_2/GridGraphicsItem.h 2022-07-13 19:04:22.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/GridGraphicsItem.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/GridGraphicsItem.h $ // $Id: GridGraphicsItem.h a30658a 2020-09-21T09:09:48+02:00 Ahmed Essam // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/Arrangement_on_surface_2/MergeEdgeCallback.h cgal-5.5/demo/Arrangement_on_surface_2/MergeEdgeCallback.h --- cgal-5.4.1/demo/Arrangement_on_surface_2/MergeEdgeCallback.h 2022-06-03 19:03:38.000000000 +0000 +++ cgal-5.5/demo/Arrangement_on_surface_2/MergeEdgeCallback.h 2022-07-13 19:04:22.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/MergeEdgeCallback.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/MergeEdgeCallback.h $ // $Id: MergeEdgeCallback.h 1d3815f 2020-10-02T17:29:03+02:00 Ahmed Essam // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/Arrangement_on_surface_2/NewTabDialog.h cgal-5.5/demo/Arrangement_on_surface_2/NewTabDialog.h --- cgal-5.4.1/demo/Arrangement_on_surface_2/NewTabDialog.h 2022-06-03 19:03:38.000000000 +0000 +++ cgal-5.5/demo/Arrangement_on_surface_2/NewTabDialog.h 2022-07-13 19:04:22.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/NewTabDialog.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/NewTabDialog.h $ // $Id: NewTabDialog.h cc99fd9 2021-02-19T16:02:12+01:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/Arrangement_on_surface_2/OverlayDialog.h cgal-5.5/demo/Arrangement_on_surface_2/OverlayDialog.h --- cgal-5.4.1/demo/Arrangement_on_surface_2/OverlayDialog.h 2022-06-03 19:03:38.000000000 +0000 +++ cgal-5.5/demo/Arrangement_on_surface_2/OverlayDialog.h 2022-07-13 19:04:22.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/OverlayDialog.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/OverlayDialog.h $ // $Id: OverlayDialog.h 86e4235 2020-10-04T14:18:34+01:00 Ahmed Essam // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/Arrangement_on_surface_2/PointLocationCallback.h cgal-5.5/demo/Arrangement_on_surface_2/PointLocationCallback.h --- cgal-5.4.1/demo/Arrangement_on_surface_2/PointLocationCallback.h 2022-06-03 19:03:38.000000000 +0000 +++ cgal-5.5/demo/Arrangement_on_surface_2/PointLocationCallback.h 2022-07-13 19:04:22.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/PointLocationCallback.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/PointLocationCallback.h $ // $Id: PointLocationCallback.h 1d3815f 2020-10-02T17:29:03+02:00 Ahmed Essam // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/Arrangement_on_surface_2/PointsGraphicsItem.h cgal-5.5/demo/Arrangement_on_surface_2/PointsGraphicsItem.h --- cgal-5.4.1/demo/Arrangement_on_surface_2/PointsGraphicsItem.h 2022-06-03 19:03:38.000000000 +0000 +++ cgal-5.5/demo/Arrangement_on_surface_2/PointsGraphicsItem.h 2022-07-13 19:04:22.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/PointsGraphicsItem.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/PointsGraphicsItem.h $ // $Id: PointsGraphicsItem.h 1d3815f 2020-10-02T17:29:03+02:00 Ahmed Essam // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/Arrangement_on_surface_2/PointSnapper.h cgal-5.5/demo/Arrangement_on_surface_2/PointSnapper.h --- cgal-5.4.1/demo/Arrangement_on_surface_2/PointSnapper.h 2022-06-03 19:03:38.000000000 +0000 +++ cgal-5.5/demo/Arrangement_on_surface_2/PointSnapper.h 2022-07-13 19:04:22.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/PointSnapper.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/PointSnapper.h $ // $Id: PointSnapper.h 1d3815f 2020-10-02T17:29:03+02:00 Ahmed Essam // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/Arrangement_on_surface_2/PropertyValueDelegate.h cgal-5.5/demo/Arrangement_on_surface_2/PropertyValueDelegate.h --- cgal-5.4.1/demo/Arrangement_on_surface_2/PropertyValueDelegate.h 2022-06-03 19:03:38.000000000 +0000 +++ cgal-5.5/demo/Arrangement_on_surface_2/PropertyValueDelegate.h 2022-07-13 19:04:22.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/PropertyValueDelegate.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/PropertyValueDelegate.h $ // $Id: PropertyValueDelegate.h cc99fd9 2021-02-19T16:02:12+01:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/Arrangement_on_surface_2/QtMetaTypes.h cgal-5.5/demo/Arrangement_on_surface_2/QtMetaTypes.h --- cgal-5.4.1/demo/Arrangement_on_surface_2/QtMetaTypes.h 2022-06-03 19:03:38.000000000 +0000 +++ cgal-5.5/demo/Arrangement_on_surface_2/QtMetaTypes.h 2022-07-13 19:04:22.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/QtMetaTypes.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/QtMetaTypes.h $ // $Id: QtMetaTypes.h a30658a 2020-09-21T09:09:48+02:00 Ahmed Essam // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/Arrangement_on_surface_2/RationalCurveInputDialog.h cgal-5.5/demo/Arrangement_on_surface_2/RationalCurveInputDialog.h --- cgal-5.4.1/demo/Arrangement_on_surface_2/RationalCurveInputDialog.h 2022-06-03 19:03:38.000000000 +0000 +++ cgal-5.5/demo/Arrangement_on_surface_2/RationalCurveInputDialog.h 2022-07-13 19:04:22.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/RationalCurveInputDialog.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/RationalCurveInputDialog.h $ // $Id: RationalCurveInputDialog.h cc99fd9 2021-02-19T16:02:12+01:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/Arrangement_on_surface_2/RationalTypes.h cgal-5.5/demo/Arrangement_on_surface_2/RationalTypes.h --- cgal-5.4.1/demo/Arrangement_on_surface_2/RationalTypes.h 2022-06-03 19:03:38.000000000 +0000 +++ cgal-5.5/demo/Arrangement_on_surface_2/RationalTypes.h 2022-07-13 19:04:22.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/RationalTypes.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/RationalTypes.h $ // $Id: RationalTypes.h ad679e4 2020-10-20T13:01:11-07:00 Ahmed Essam // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/Arrangement_on_surface_2/SplitEdgeCallback.h cgal-5.5/demo/Arrangement_on_surface_2/SplitEdgeCallback.h --- cgal-5.4.1/demo/Arrangement_on_surface_2/SplitEdgeCallback.h 2022-06-03 19:03:38.000000000 +0000 +++ cgal-5.5/demo/Arrangement_on_surface_2/SplitEdgeCallback.h 2022-07-13 19:04:22.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/SplitEdgeCallback.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/SplitEdgeCallback.h $ // $Id: SplitEdgeCallback.h 1d3815f 2020-10-02T17:29:03+02:00 Ahmed Essam // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/Arrangement_on_surface_2/Utils/ConstructBoundingBox.h cgal-5.5/demo/Arrangement_on_surface_2/Utils/ConstructBoundingBox.h --- cgal-5.4.1/demo/Arrangement_on_surface_2/Utils/ConstructBoundingBox.h 2022-06-03 19:03:38.000000000 +0000 +++ cgal-5.5/demo/Arrangement_on_surface_2/Utils/ConstructBoundingBox.h 2022-07-13 19:04:22.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/Utils/ConstructBoundingBox.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/Utils/ConstructBoundingBox.h $ // $Id: ConstructBoundingBox.h 1d3815f 2020-10-02T17:29:03+02:00 Ahmed Essam // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/Arrangement_on_surface_2/Utils/ConstructSegment.h cgal-5.5/demo/Arrangement_on_surface_2/Utils/ConstructSegment.h --- cgal-5.4.1/demo/Arrangement_on_surface_2/Utils/ConstructSegment.h 2022-06-03 19:03:38.000000000 +0000 +++ cgal-5.5/demo/Arrangement_on_surface_2/Utils/ConstructSegment.h 2022-07-13 19:04:22.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/Utils/ConstructSegment.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/Utils/ConstructSegment.h $ // $Id: ConstructSegment.h 1d3815f 2020-10-02T17:29:03+02:00 Ahmed Essam // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/Arrangement_on_surface_2/Utils/EnvelopeFunctions.h cgal-5.5/demo/Arrangement_on_surface_2/Utils/EnvelopeFunctions.h --- cgal-5.4.1/demo/Arrangement_on_surface_2/Utils/EnvelopeFunctions.h 2022-06-03 19:03:38.000000000 +0000 +++ cgal-5.5/demo/Arrangement_on_surface_2/Utils/EnvelopeFunctions.h 2022-07-13 19:04:22.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/Utils/EnvelopeFunctions.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/Utils/EnvelopeFunctions.h $ // $Id: EnvelopeFunctions.h 1d3815f 2020-10-02T17:29:03+02:00 Ahmed Essam // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/Arrangement_on_surface_2/Utils/IntersectCurves.h cgal-5.5/demo/Arrangement_on_surface_2/Utils/IntersectCurves.h --- cgal-5.4.1/demo/Arrangement_on_surface_2/Utils/IntersectCurves.h 2022-06-03 19:03:38.000000000 +0000 +++ cgal-5.5/demo/Arrangement_on_surface_2/Utils/IntersectCurves.h 2022-07-13 19:04:22.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/Utils/IntersectCurves.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/Utils/IntersectCurves.h $ // $Id: IntersectCurves.h ae8496f 2020-10-14T07:11:07+02:00 Ahmed Essam // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/Arrangement_on_surface_2/Utils/PointLocationFunctions.h cgal-5.5/demo/Arrangement_on_surface_2/Utils/PointLocationFunctions.h --- cgal-5.4.1/demo/Arrangement_on_surface_2/Utils/PointLocationFunctions.h 2022-06-03 19:03:38.000000000 +0000 +++ cgal-5.5/demo/Arrangement_on_surface_2/Utils/PointLocationFunctions.h 2022-07-13 19:04:22.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/Utils/PointLocationFunctions.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/Utils/PointLocationFunctions.h $ // $Id: PointLocationFunctions.h 1d3815f 2020-10-02T17:29:03+02:00 Ahmed Essam // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/Arrangement_on_surface_2/Utils/SplitAndMerge.h cgal-5.5/demo/Arrangement_on_surface_2/Utils/SplitAndMerge.h --- cgal-5.4.1/demo/Arrangement_on_surface_2/Utils/SplitAndMerge.h 2022-06-03 19:03:38.000000000 +0000 +++ cgal-5.5/demo/Arrangement_on_surface_2/Utils/SplitAndMerge.h 2022-07-13 19:04:22.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/Utils/SplitAndMerge.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/Utils/SplitAndMerge.h $ // $Id: SplitAndMerge.h 1d3815f 2020-10-02T17:29:03+02:00 Ahmed Essam // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/Arrangement_on_surface_2/VerticalRayGraphicsItem.h cgal-5.5/demo/Arrangement_on_surface_2/VerticalRayGraphicsItem.h --- cgal-5.4.1/demo/Arrangement_on_surface_2/VerticalRayGraphicsItem.h 2022-06-03 19:03:38.000000000 +0000 +++ cgal-5.5/demo/Arrangement_on_surface_2/VerticalRayGraphicsItem.h 2022-07-13 19:04:22.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/VerticalRayGraphicsItem.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/VerticalRayGraphicsItem.h $ // $Id: VerticalRayGraphicsItem.h a30658a 2020-09-21T09:09:48+02:00 Ahmed Essam // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/Arrangement_on_surface_2/VerticalRayShootCallback.h cgal-5.5/demo/Arrangement_on_surface_2/VerticalRayShootCallback.h --- cgal-5.4.1/demo/Arrangement_on_surface_2/VerticalRayShootCallback.h 2022-06-03 19:03:38.000000000 +0000 +++ cgal-5.5/demo/Arrangement_on_surface_2/VerticalRayShootCallback.h 2022-07-13 19:04:23.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/VerticalRayShootCallback.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/VerticalRayShootCallback.h $ // $Id: VerticalRayShootCallback.h 1d3815f 2020-10-02T17:29:03+02:00 Ahmed Essam // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/Bounding_volumes/CMakeLists.txt cgal-5.5/demo/Bounding_volumes/CMakeLists.txt --- cgal-5.4.1/demo/Bounding_volumes/CMakeLists.txt 2022-01-18 09:58:52.000000000 +0000 +++ cgal-5.5/demo/Bounding_volumes/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.20) +cmake_minimum_required(VERSION 3.1...3.23) project(Bounding_volumes_Demo) if(NOT POLICY CMP0070 AND POLICY CMP0053) diff -Nru cgal-5.4.1/demo/CGAL_ipelets/CMakeLists.txt cgal-5.5/demo/CGAL_ipelets/CMakeLists.txt --- cgal-5.4.1/demo/CGAL_ipelets/CMakeLists.txt 2022-01-18 09:58:51.000000000 +0000 +++ cgal-5.5/demo/CGAL_ipelets/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.1...3.20) +cmake_minimum_required(VERSION 3.1...3.23) project(CGAL_ipelets_Demo) if(NOT POLICY CMP0070 AND POLICY CMP0053) diff -Nru cgal-5.4.1/demo/CGAL_ipelets/include/CGAL_ipelets/k_delaunay.h cgal-5.5/demo/CGAL_ipelets/include/CGAL_ipelets/k_delaunay.h --- cgal-5.4.1/demo/CGAL_ipelets/include/CGAL_ipelets/k_delaunay.h 2022-06-03 19:03:56.000000000 +0000 +++ cgal-5.5/demo/CGAL_ipelets/include/CGAL_ipelets/k_delaunay.h 2022-07-13 19:04:43.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_ipelets/demo/CGAL_ipelets/include/CGAL_ipelets/k_delaunay.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_ipelets/demo/CGAL_ipelets/include/CGAL_ipelets/k_delaunay.h $ // $Id: k_delaunay.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/CGAL_ipelets/include/CGAL_ipelets/pencils.h cgal-5.5/demo/CGAL_ipelets/include/CGAL_ipelets/pencils.h --- cgal-5.4.1/demo/CGAL_ipelets/include/CGAL_ipelets/pencils.h 2022-06-03 19:03:56.000000000 +0000 +++ cgal-5.5/demo/CGAL_ipelets/include/CGAL_ipelets/pencils.h 2022-07-13 19:04:43.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_ipelets/demo/CGAL_ipelets/include/CGAL_ipelets/pencils.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_ipelets/demo/CGAL_ipelets/include/CGAL_ipelets/pencils.h $ // $Id: pencils.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/Circular_kernel_2/CMakeLists.txt cgal-5.5/demo/Circular_kernel_2/CMakeLists.txt --- cgal-5.4.1/demo/Circular_kernel_2/CMakeLists.txt 2022-01-18 09:58:52.000000000 +0000 +++ cgal-5.5/demo/Circular_kernel_2/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.20) +cmake_minimum_required(VERSION 3.1...3.23) project(Circular_kernel_2_Demo) if(NOT POLICY CMP0070 AND POLICY CMP0053) diff -Nru cgal-5.4.1/demo/Circular_kernel_3/CMakeLists.txt cgal-5.5/demo/Circular_kernel_3/CMakeLists.txt --- cgal-5.4.1/demo/Circular_kernel_3/CMakeLists.txt 2022-01-18 09:58:51.000000000 +0000 +++ cgal-5.5/demo/Circular_kernel_3/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.1...3.20) +cmake_minimum_required(VERSION 3.1...3.23) project(Circular_kernel_3_Demo) if(NOT POLICY CMP0070 AND POLICY CMP0053) diff -Nru cgal-5.4.1/demo/CMakeLists.txt cgal-5.5/demo/CMakeLists.txt --- cgal-5.4.1/demo/CMakeLists.txt 2022-01-18 09:58:52.000000000 +0000 +++ cgal-5.5/demo/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.12...3.20) +cmake_minimum_required(VERSION 3.1...3.23) project(CGAL_DEMOS) if(CGAL_BRANCH_BUILD) diff -Nru cgal-5.4.1/demo/Generator/CMakeLists.txt cgal-5.5/demo/Generator/CMakeLists.txt --- cgal-5.4.1/demo/Generator/CMakeLists.txt 2022-01-18 09:58:52.000000000 +0000 +++ cgal-5.5/demo/Generator/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,6 +1,6 @@ # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.20) +cmake_minimum_required(VERSION 3.1...3.23) project(Generator_Demo) if(NOT POLICY CMP0070 AND POLICY CMP0053) diff -Nru cgal-5.4.1/demo/GraphicsView/CMakeLists.txt cgal-5.5/demo/GraphicsView/CMakeLists.txt --- cgal-5.4.1/demo/GraphicsView/CMakeLists.txt 2022-01-18 09:58:52.000000000 +0000 +++ cgal-5.5/demo/GraphicsView/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,6 +1,6 @@ # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.20) +cmake_minimum_required(VERSION 3.1...3.23) project(GraphicsView_Demo) if(NOT POLICY CMP0070 AND POLICY CMP0053) diff -Nru cgal-5.4.1/demo/Hyperbolic_triangulation_2/CMakeLists.txt cgal-5.5/demo/Hyperbolic_triangulation_2/CMakeLists.txt --- cgal-5.4.1/demo/Hyperbolic_triangulation_2/CMakeLists.txt 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/demo/Hyperbolic_triangulation_2/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.1...3.20) +cmake_minimum_required(VERSION 3.1...3.23) project(Hyperbolic_triangulation_2_Demo) # Find includes in corresponding build directories diff -Nru cgal-5.4.1/demo/Hyperbolic_triangulation_2/include/internal/Qt/HyperbolicPainterOstream.h cgal-5.5/demo/Hyperbolic_triangulation_2/include/internal/Qt/HyperbolicPainterOstream.h --- cgal-5.4.1/demo/Hyperbolic_triangulation_2/include/internal/Qt/HyperbolicPainterOstream.h 2022-06-03 19:04:18.000000000 +0000 +++ cgal-5.5/demo/Hyperbolic_triangulation_2/include/internal/Qt/HyperbolicPainterOstream.h 2022-07-13 19:05:08.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Hyperbolic_triangulation_2/demo/Hyperbolic_triangulation_2/include/internal/Qt/HyperbolicPainterOstream.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Hyperbolic_triangulation_2/demo/Hyperbolic_triangulation_2/include/internal/Qt/HyperbolicPainterOstream.h $ // $Id: HyperbolicPainterOstream.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/Hyperbolic_triangulation_2/include/internal/Qt/HyperbolicVoronoiGraphicsItem.h cgal-5.5/demo/Hyperbolic_triangulation_2/include/internal/Qt/HyperbolicVoronoiGraphicsItem.h --- cgal-5.4.1/demo/Hyperbolic_triangulation_2/include/internal/Qt/HyperbolicVoronoiGraphicsItem.h 2022-06-03 19:04:18.000000000 +0000 +++ cgal-5.5/demo/Hyperbolic_triangulation_2/include/internal/Qt/HyperbolicVoronoiGraphicsItem.h 2022-07-13 19:05:08.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Hyperbolic_triangulation_2/demo/Hyperbolic_triangulation_2/include/internal/Qt/HyperbolicVoronoiGraphicsItem.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Hyperbolic_triangulation_2/demo/Hyperbolic_triangulation_2/include/internal/Qt/HyperbolicVoronoiGraphicsItem.h $ // $Id: HyperbolicVoronoiGraphicsItem.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/Hyperbolic_triangulation_2/include/internal/Qt/TriangulationCircumcircle.h cgal-5.5/demo/Hyperbolic_triangulation_2/include/internal/Qt/TriangulationCircumcircle.h --- cgal-5.4.1/demo/Hyperbolic_triangulation_2/include/internal/Qt/TriangulationCircumcircle.h 2022-06-03 19:04:18.000000000 +0000 +++ cgal-5.5/demo/Hyperbolic_triangulation_2/include/internal/Qt/TriangulationCircumcircle.h 2022-07-13 19:05:08.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Hyperbolic_triangulation_2/demo/Hyperbolic_triangulation_2/include/internal/Qt/TriangulationCircumcircle.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Hyperbolic_triangulation_2/demo/Hyperbolic_triangulation_2/include/internal/Qt/TriangulationCircumcircle.h $ // $Id: TriangulationCircumcircle.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/Hyperbolic_triangulation_2/include/internal/Qt/TriangulationConflictZone.h cgal-5.5/demo/Hyperbolic_triangulation_2/include/internal/Qt/TriangulationConflictZone.h --- cgal-5.4.1/demo/Hyperbolic_triangulation_2/include/internal/Qt/TriangulationConflictZone.h 2022-06-03 19:04:18.000000000 +0000 +++ cgal-5.5/demo/Hyperbolic_triangulation_2/include/internal/Qt/TriangulationConflictZone.h 2022-07-13 19:05:08.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Hyperbolic_triangulation_2/demo/Hyperbolic_triangulation_2/include/internal/Qt/TriangulationConflictZone.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Hyperbolic_triangulation_2/demo/Hyperbolic_triangulation_2/include/internal/Qt/TriangulationConflictZone.h $ // $Id: TriangulationConflictZone.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/Hyperbolic_triangulation_2/include/internal/Qt/TriangulationGraphicsItem.h cgal-5.5/demo/Hyperbolic_triangulation_2/include/internal/Qt/TriangulationGraphicsItem.h --- cgal-5.4.1/demo/Hyperbolic_triangulation_2/include/internal/Qt/TriangulationGraphicsItem.h 2022-06-03 19:04:18.000000000 +0000 +++ cgal-5.5/demo/Hyperbolic_triangulation_2/include/internal/Qt/TriangulationGraphicsItem.h 2022-07-13 19:05:08.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Hyperbolic_triangulation_2/demo/Hyperbolic_triangulation_2/include/internal/Qt/TriangulationGraphicsItem.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Hyperbolic_triangulation_2/demo/Hyperbolic_triangulation_2/include/internal/Qt/TriangulationGraphicsItem.h $ // $Id: TriangulationGraphicsItem.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/Hyperbolic_triangulation_2/include/internal/Qt/TriangulationGraphicsItemWithColorInfo.h cgal-5.5/demo/Hyperbolic_triangulation_2/include/internal/Qt/TriangulationGraphicsItemWithColorInfo.h --- cgal-5.4.1/demo/Hyperbolic_triangulation_2/include/internal/Qt/TriangulationGraphicsItemWithColorInfo.h 2022-06-03 19:04:19.000000000 +0000 +++ cgal-5.5/demo/Hyperbolic_triangulation_2/include/internal/Qt/TriangulationGraphicsItemWithColorInfo.h 2022-07-13 19:05:08.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Hyperbolic_triangulation_2/demo/Hyperbolic_triangulation_2/include/internal/Qt/TriangulationGraphicsItemWithColorInfo.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Hyperbolic_triangulation_2/demo/Hyperbolic_triangulation_2/include/internal/Qt/TriangulationGraphicsItemWithColorInfo.h $ // $Id: TriangulationGraphicsItemWithColorInfo.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/Hyperbolic_triangulation_2/include/internal/Qt/TriangulationMovingPoint.h cgal-5.5/demo/Hyperbolic_triangulation_2/include/internal/Qt/TriangulationMovingPoint.h --- cgal-5.4.1/demo/Hyperbolic_triangulation_2/include/internal/Qt/TriangulationMovingPoint.h 2022-06-03 19:04:19.000000000 +0000 +++ cgal-5.5/demo/Hyperbolic_triangulation_2/include/internal/Qt/TriangulationMovingPoint.h 2022-07-13 19:05:08.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Hyperbolic_triangulation_2/demo/Hyperbolic_triangulation_2/include/internal/Qt/TriangulationMovingPoint.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Hyperbolic_triangulation_2/demo/Hyperbolic_triangulation_2/include/internal/Qt/TriangulationMovingPoint.h $ // $Id: TriangulationMovingPoint.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/Hyperbolic_triangulation_2/include/internal/Qt/TriangulationPointInputAndConflictZone.h cgal-5.5/demo/Hyperbolic_triangulation_2/include/internal/Qt/TriangulationPointInputAndConflictZone.h --- cgal-5.4.1/demo/Hyperbolic_triangulation_2/include/internal/Qt/TriangulationPointInputAndConflictZone.h 2022-06-03 19:04:19.000000000 +0000 +++ cgal-5.5/demo/Hyperbolic_triangulation_2/include/internal/Qt/TriangulationPointInputAndConflictZone.h 2022-07-13 19:05:08.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Hyperbolic_triangulation_2/demo/Hyperbolic_triangulation_2/include/internal/Qt/TriangulationPointInputAndConflictZone.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Hyperbolic_triangulation_2/demo/Hyperbolic_triangulation_2/include/internal/Qt/TriangulationPointInputAndConflictZone.h $ // $Id: TriangulationPointInputAndConflictZone.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/Hyperbolic_triangulation_2/include/internal/Qt/TriangulationRemoveVertex.h cgal-5.5/demo/Hyperbolic_triangulation_2/include/internal/Qt/TriangulationRemoveVertex.h --- cgal-5.4.1/demo/Hyperbolic_triangulation_2/include/internal/Qt/TriangulationRemoveVertex.h 2022-06-03 19:04:19.000000000 +0000 +++ cgal-5.5/demo/Hyperbolic_triangulation_2/include/internal/Qt/TriangulationRemoveVertex.h 2022-07-13 19:05:08.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Hyperbolic_triangulation_2/demo/Hyperbolic_triangulation_2/include/internal/Qt/TriangulationRemoveVertex.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Hyperbolic_triangulation_2/demo/Hyperbolic_triangulation_2/include/internal/Qt/TriangulationRemoveVertex.h $ // $Id: TriangulationRemoveVertex.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/L1_Voronoi_diagram_2/CMakeLists.txt cgal-5.5/demo/L1_Voronoi_diagram_2/CMakeLists.txt --- cgal-5.4.1/demo/L1_Voronoi_diagram_2/CMakeLists.txt 2022-01-18 09:58:52.000000000 +0000 +++ cgal-5.5/demo/L1_Voronoi_diagram_2/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.20) +cmake_minimum_required(VERSION 3.1...3.23) project(L1_Voronoi_diagram_2_Demo) if(NOT POLICY CMP0070 AND POLICY CMP0053) diff -Nru cgal-5.4.1/demo/L1_Voronoi_diagram_2/include/CGAL/L1_voronoi_traits_2.h cgal-5.5/demo/L1_Voronoi_diagram_2/include/CGAL/L1_voronoi_traits_2.h --- cgal-5.4.1/demo/L1_Voronoi_diagram_2/include/CGAL/L1_voronoi_traits_2.h 2022-06-03 19:04:13.000000000 +0000 +++ cgal-5.5/demo/L1_Voronoi_diagram_2/include/CGAL/L1_voronoi_traits_2.h 2022-07-13 19:05:02.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/demo/L1_Voronoi_diagram_2/include/CGAL/L1_voronoi_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/demo/L1_Voronoi_diagram_2/include/CGAL/L1_voronoi_traits_2.h $ // $Id: L1_voronoi_traits_2.h 6b87fe3 2020-12-05T11:11:33+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/L1_Voronoi_diagram_2/include/CGAL/Qt/ArrangementGraphicsItem.h cgal-5.5/demo/L1_Voronoi_diagram_2/include/CGAL/Qt/ArrangementGraphicsItem.h --- cgal-5.4.1/demo/L1_Voronoi_diagram_2/include/CGAL/Qt/ArrangementGraphicsItem.h 2022-06-03 19:04:13.000000000 +0000 +++ cgal-5.5/demo/L1_Voronoi_diagram_2/include/CGAL/Qt/ArrangementGraphicsItem.h 2022-07-13 19:05:02.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/demo/L1_Voronoi_diagram_2/include/CGAL/Qt/ArrangementGraphicsItem.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/demo/L1_Voronoi_diagram_2/include/CGAL/Qt/ArrangementGraphicsItem.h $ // $Id: ArrangementGraphicsItem.h cc99fd9 2021-02-19T16:02:12+01:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/L1_Voronoi_diagram_2/include/CGAL/Qt/SetGraphicsItem.h cgal-5.5/demo/L1_Voronoi_diagram_2/include/CGAL/Qt/SetGraphicsItem.h --- cgal-5.4.1/demo/L1_Voronoi_diagram_2/include/CGAL/Qt/SetGraphicsItem.h 2022-06-03 19:04:13.000000000 +0000 +++ cgal-5.5/demo/L1_Voronoi_diagram_2/include/CGAL/Qt/SetGraphicsItem.h 2022-07-13 19:05:02.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/demo/L1_Voronoi_diagram_2/include/CGAL/Qt/SetGraphicsItem.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/demo/L1_Voronoi_diagram_2/include/CGAL/Qt/SetGraphicsItem.h $ // $Id: SetGraphicsItem.h cc99fd9 2021-02-19T16:02:12+01:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/Largest_empty_rect_2/CMakeLists.txt cgal-5.5/demo/Largest_empty_rect_2/CMakeLists.txt --- cgal-5.4.1/demo/Largest_empty_rect_2/CMakeLists.txt 2022-01-18 09:58:52.000000000 +0000 +++ cgal-5.5/demo/Largest_empty_rect_2/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.20) +cmake_minimum_required(VERSION 3.1...3.23) project(Largest_empty_rect_2_Demo) if(NOT POLICY CMP0070 AND POLICY CMP0053) diff -Nru cgal-5.4.1/demo/Linear_cell_complex/CMakeLists.txt cgal-5.5/demo/Linear_cell_complex/CMakeLists.txt --- cgal-5.4.1/demo/Linear_cell_complex/CMakeLists.txt 2022-01-18 09:58:52.000000000 +0000 +++ cgal-5.5/demo/Linear_cell_complex/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -2,7 +2,7 @@ # This is the CMake script for compiling a CGAL application. # cmake ../ -DCMAKE_BUILD_TYPE=Debug -cmake_minimum_required(VERSION 3.1...3.20) +cmake_minimum_required(VERSION 3.1...3.23) project(Linear_cell_complex_Demo) if(NOT POLICY CMP0070 AND POLICY CMP0053) diff -Nru cgal-5.4.1/demo/Linear_cell_complex/import_moka.h cgal-5.5/demo/Linear_cell_complex/import_moka.h --- cgal-5.4.1/demo/Linear_cell_complex/import_moka.h 2022-06-03 19:04:41.000000000 +0000 +++ cgal-5.5/demo/Linear_cell_complex/import_moka.h 2022-07-13 19:05:33.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Linear_cell_complex/demo/Linear_cell_complex/import_moka.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Linear_cell_complex/demo/Linear_cell_complex/import_moka.h $ // $Id: import_moka.h cc99fd9 2021-02-19T16:02:12+01:00 Maxime Gimeno // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/Linear_cell_complex/MainWindow.h cgal-5.5/demo/Linear_cell_complex/MainWindow.h --- cgal-5.4.1/demo/Linear_cell_complex/MainWindow.h 2022-06-03 19:04:41.000000000 +0000 +++ cgal-5.5/demo/Linear_cell_complex/MainWindow.h 2022-07-13 19:05:33.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Linear_cell_complex/demo/Linear_cell_complex/MainWindow.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Linear_cell_complex/demo/Linear_cell_complex/MainWindow.h $ // $Id: MainWindow.h cc99fd9 2021-02-19T16:02:12+01:00 Maxime Gimeno // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/Linear_cell_complex/typedefs.h cgal-5.5/demo/Linear_cell_complex/typedefs.h --- cgal-5.4.1/demo/Linear_cell_complex/typedefs.h 2022-06-03 19:04:41.000000000 +0000 +++ cgal-5.5/demo/Linear_cell_complex/typedefs.h 2022-07-13 19:05:33.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Linear_cell_complex/demo/Linear_cell_complex/typedefs.h $ -// $Id: typedefs.h 2d5f91f 2021-05-27T09:06:59+02:00 Maxime Gimeno +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Linear_cell_complex/demo/Linear_cell_complex/typedefs.h $ +// $Id: typedefs.h 46f5325 2022-01-27T10:36:22+01:00 Guillaume Damiand // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Guillaume Damiand @@ -20,7 +20,7 @@ #include #include -#include +#include #include #include #include diff -Nru cgal-5.4.1/demo/Linear_cell_complex/Viewer.h cgal-5.5/demo/Linear_cell_complex/Viewer.h --- cgal-5.4.1/demo/Linear_cell_complex/Viewer.h 2022-06-03 19:04:41.000000000 +0000 +++ cgal-5.5/demo/Linear_cell_complex/Viewer.h 2022-07-13 19:05:33.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Linear_cell_complex/demo/Linear_cell_complex/Viewer.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Linear_cell_complex/demo/Linear_cell_complex/Viewer.h $ // $Id: Viewer.h fb6f703 2021-05-04T14:07:49+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/Mesh_2/CMakeLists.txt cgal-5.5/demo/Mesh_2/CMakeLists.txt --- cgal-5.4.1/demo/Mesh_2/CMakeLists.txt 2022-01-18 09:58:53.000000000 +0000 +++ cgal-5.5/demo/Mesh_2/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script (and then adapted manually). # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.20) +cmake_minimum_required(VERSION 3.1...3.23) project(Mesh_2_Demo) if(NOT POLICY CMP0070 AND POLICY CMP0053) diff -Nru cgal-5.4.1/demo/Optimal_transportation_reconstruction_2/CMakeLists.txt cgal-5.5/demo/Optimal_transportation_reconstruction_2/CMakeLists.txt --- cgal-5.4.1/demo/Optimal_transportation_reconstruction_2/CMakeLists.txt 2022-01-18 09:58:53.000000000 +0000 +++ cgal-5.5/demo/Optimal_transportation_reconstruction_2/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,6 +1,6 @@ # This is the CMake script for compiling the Optimal_transportation_reconstruction_2 demo. -cmake_minimum_required(VERSION 3.1...3.20) +cmake_minimum_required(VERSION 3.1...3.23) project(Optimal_transportation_reconstruction_2_Demo) if(NOT POLICY CMP0070 AND POLICY CMP0053) diff -Nru cgal-5.4.1/demo/Periodic_2_triangulation_2/CMakeLists.txt cgal-5.5/demo/Periodic_2_triangulation_2/CMakeLists.txt --- cgal-5.4.1/demo/Periodic_2_triangulation_2/CMakeLists.txt 2022-01-18 09:58:52.000000000 +0000 +++ cgal-5.5/demo/Periodic_2_triangulation_2/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.1...3.20) +cmake_minimum_required(VERSION 3.1...3.23) project(Periodic_2_triangulation_2_Demo) if(NOT POLICY CMP0070 AND POLICY CMP0053) diff -Nru cgal-5.4.1/demo/Periodic_2_triangulation_2/include/CGAL/Qt/PeriodicTriangulationGraphicsItem.h cgal-5.5/demo/Periodic_2_triangulation_2/include/CGAL/Qt/PeriodicTriangulationGraphicsItem.h --- cgal-5.4.1/demo/Periodic_2_triangulation_2/include/CGAL/Qt/PeriodicTriangulationGraphicsItem.h 2022-06-03 19:04:13.000000000 +0000 +++ cgal-5.5/demo/Periodic_2_triangulation_2/include/CGAL/Qt/PeriodicTriangulationGraphicsItem.h 2022-07-13 19:05:02.000000000 +0000 @@ -11,7 +11,7 @@ // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/demo/Periodic_2_triangulation_2/include/CGAL/Qt/PeriodicTriangulationGraphicsItem.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/demo/Periodic_2_triangulation_2/include/CGAL/Qt/PeriodicTriangulationGraphicsItem.h $ // $Id: PeriodicTriangulationGraphicsItem.h cc99fd9 2021-02-19T16:02:12+01:00 Maxime Gimeno // // diff -Nru cgal-5.4.1/demo/Periodic_2_triangulation_2/include/CGAL/Qt/PeriodicVoronoiGraphicsItem.h cgal-5.5/demo/Periodic_2_triangulation_2/include/CGAL/Qt/PeriodicVoronoiGraphicsItem.h --- cgal-5.4.1/demo/Periodic_2_triangulation_2/include/CGAL/Qt/PeriodicVoronoiGraphicsItem.h 2022-06-03 19:04:13.000000000 +0000 +++ cgal-5.5/demo/Periodic_2_triangulation_2/include/CGAL/Qt/PeriodicVoronoiGraphicsItem.h 2022-07-13 19:05:02.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/demo/Periodic_2_triangulation_2/include/CGAL/Qt/PeriodicVoronoiGraphicsItem.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/demo/Periodic_2_triangulation_2/include/CGAL/Qt/PeriodicVoronoiGraphicsItem.h $ // $Id: PeriodicVoronoiGraphicsItem.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/Periodic_3_triangulation_3/CMakeLists.txt cgal-5.5/demo/Periodic_3_triangulation_3/CMakeLists.txt --- cgal-5.4.1/demo/Periodic_3_triangulation_3/CMakeLists.txt 2022-01-18 09:58:54.000000000 +0000 +++ cgal-5.5/demo/Periodic_3_triangulation_3/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.20) +cmake_minimum_required(VERSION 3.1...3.23) project(Periodic_3_triangulation_3_Demo) if(NOT POLICY CMP0070 AND POLICY CMP0053) diff -Nru cgal-5.4.1/demo/Periodic_4_hyperbolic_triangulation_2/CMakeLists.txt cgal-5.5/demo/Periodic_4_hyperbolic_triangulation_2/CMakeLists.txt --- cgal-5.4.1/demo/Periodic_4_hyperbolic_triangulation_2/CMakeLists.txt 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/demo/Periodic_4_hyperbolic_triangulation_2/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.1...3.20) +cmake_minimum_required(VERSION 3.1...3.23) project(Periodic_4_hyperbolic_triangulation_2_Demo) # Find includes in corresponding build directories diff -Nru cgal-5.4.1/demo/Periodic_4_hyperbolic_triangulation_2/include/internal/hyperbolic_free_motion_animation.h cgal-5.5/demo/Periodic_4_hyperbolic_triangulation_2/include/internal/hyperbolic_free_motion_animation.h --- cgal-5.4.1/demo/Periodic_4_hyperbolic_triangulation_2/include/internal/hyperbolic_free_motion_animation.h 2022-06-03 19:05:11.000000000 +0000 +++ cgal-5.5/demo/Periodic_4_hyperbolic_triangulation_2/include/internal/hyperbolic_free_motion_animation.h 2022-07-13 19:06:05.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_4_hyperbolic_triangulation_2/demo/Periodic_4_hyperbolic_triangulation_2/include/internal/hyperbolic_free_motion_animation.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_4_hyperbolic_triangulation_2/demo/Periodic_4_hyperbolic_triangulation_2/include/internal/hyperbolic_free_motion_animation.h $ // $Id: hyperbolic_free_motion_animation.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/Periodic_4_hyperbolic_triangulation_2/include/internal/Qt/HyperbolicPainterOstream.h cgal-5.5/demo/Periodic_4_hyperbolic_triangulation_2/include/internal/Qt/HyperbolicPainterOstream.h --- cgal-5.4.1/demo/Periodic_4_hyperbolic_triangulation_2/include/internal/Qt/HyperbolicPainterOstream.h 2022-06-03 19:05:11.000000000 +0000 +++ cgal-5.5/demo/Periodic_4_hyperbolic_triangulation_2/include/internal/Qt/HyperbolicPainterOstream.h 2022-07-13 19:06:05.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_4_hyperbolic_triangulation_2/demo/Periodic_4_hyperbolic_triangulation_2/include/internal/Qt/HyperbolicPainterOstream.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_4_hyperbolic_triangulation_2/demo/Periodic_4_hyperbolic_triangulation_2/include/internal/Qt/HyperbolicPainterOstream.h $ // $Id: HyperbolicPainterOstream.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/Periodic_4_hyperbolic_triangulation_2/include/internal/Qt/TriangulationCircumcircle.h cgal-5.5/demo/Periodic_4_hyperbolic_triangulation_2/include/internal/Qt/TriangulationCircumcircle.h --- cgal-5.4.1/demo/Periodic_4_hyperbolic_triangulation_2/include/internal/Qt/TriangulationCircumcircle.h 2022-06-03 19:05:11.000000000 +0000 +++ cgal-5.5/demo/Periodic_4_hyperbolic_triangulation_2/include/internal/Qt/TriangulationCircumcircle.h 2022-07-13 19:06:05.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_4_hyperbolic_triangulation_2/demo/Periodic_4_hyperbolic_triangulation_2/include/internal/Qt/TriangulationCircumcircle.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_4_hyperbolic_triangulation_2/demo/Periodic_4_hyperbolic_triangulation_2/include/internal/Qt/TriangulationCircumcircle.h $ // $Id: TriangulationCircumcircle.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/Periodic_4_hyperbolic_triangulation_2/include/internal/Qt/TriangulationConflictZone.h cgal-5.5/demo/Periodic_4_hyperbolic_triangulation_2/include/internal/Qt/TriangulationConflictZone.h --- cgal-5.4.1/demo/Periodic_4_hyperbolic_triangulation_2/include/internal/Qt/TriangulationConflictZone.h 2022-06-03 19:05:11.000000000 +0000 +++ cgal-5.5/demo/Periodic_4_hyperbolic_triangulation_2/include/internal/Qt/TriangulationConflictZone.h 2022-07-13 19:06:05.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_4_hyperbolic_triangulation_2/demo/Periodic_4_hyperbolic_triangulation_2/include/internal/Qt/TriangulationConflictZone.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_4_hyperbolic_triangulation_2/demo/Periodic_4_hyperbolic_triangulation_2/include/internal/Qt/TriangulationConflictZone.h $ // $Id: TriangulationConflictZone.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/Periodic_4_hyperbolic_triangulation_2/include/internal/Qt/TriangulationGraphicsItem.h cgal-5.5/demo/Periodic_4_hyperbolic_triangulation_2/include/internal/Qt/TriangulationGraphicsItem.h --- cgal-5.4.1/demo/Periodic_4_hyperbolic_triangulation_2/include/internal/Qt/TriangulationGraphicsItem.h 2022-06-03 19:05:11.000000000 +0000 +++ cgal-5.5/demo/Periodic_4_hyperbolic_triangulation_2/include/internal/Qt/TriangulationGraphicsItem.h 2022-07-13 19:06:05.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_4_hyperbolic_triangulation_2/demo/Periodic_4_hyperbolic_triangulation_2/include/internal/Qt/TriangulationGraphicsItem.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_4_hyperbolic_triangulation_2/demo/Periodic_4_hyperbolic_triangulation_2/include/internal/Qt/TriangulationGraphicsItem.h $ // $Id: TriangulationGraphicsItem.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/Periodic_4_hyperbolic_triangulation_2/include/internal/Qt/TriangulationPointInput.h cgal-5.5/demo/Periodic_4_hyperbolic_triangulation_2/include/internal/Qt/TriangulationPointInput.h --- cgal-5.4.1/demo/Periodic_4_hyperbolic_triangulation_2/include/internal/Qt/TriangulationPointInput.h 2022-06-03 19:05:11.000000000 +0000 +++ cgal-5.5/demo/Periodic_4_hyperbolic_triangulation_2/include/internal/Qt/TriangulationPointInput.h 2022-07-13 19:06:05.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_4_hyperbolic_triangulation_2/demo/Periodic_4_hyperbolic_triangulation_2/include/internal/Qt/TriangulationPointInput.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_4_hyperbolic_triangulation_2/demo/Periodic_4_hyperbolic_triangulation_2/include/internal/Qt/TriangulationPointInput.h $ // $Id: TriangulationPointInput.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/Periodic_4_hyperbolic_triangulation_2/include/internal/Qt/VoronoiGraphicsItem.h cgal-5.5/demo/Periodic_4_hyperbolic_triangulation_2/include/internal/Qt/VoronoiGraphicsItem.h --- cgal-5.4.1/demo/Periodic_4_hyperbolic_triangulation_2/include/internal/Qt/VoronoiGraphicsItem.h 2022-06-03 19:05:11.000000000 +0000 +++ cgal-5.5/demo/Periodic_4_hyperbolic_triangulation_2/include/internal/Qt/VoronoiGraphicsItem.h 2022-07-13 19:06:05.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_4_hyperbolic_triangulation_2/demo/Periodic_4_hyperbolic_triangulation_2/include/internal/Qt/VoronoiGraphicsItem.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_4_hyperbolic_triangulation_2/demo/Periodic_4_hyperbolic_triangulation_2/include/internal/Qt/VoronoiGraphicsItem.h $ // $Id: VoronoiGraphicsItem.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/Periodic_Lloyd_3/CMakeLists.txt cgal-5.5/demo/Periodic_Lloyd_3/CMakeLists.txt --- cgal-5.4.1/demo/Periodic_Lloyd_3/CMakeLists.txt 2022-01-18 09:58:54.000000000 +0000 +++ cgal-5.5/demo/Periodic_Lloyd_3/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.20) +cmake_minimum_required(VERSION 3.1...3.23) project(Periodic_Lloyd_3_Demo) if(NOT POLICY CMP0070 AND POLICY CMP0053) diff -Nru cgal-5.4.1/demo/Polygon/CMakeLists.txt cgal-5.5/demo/Polygon/CMakeLists.txt --- cgal-5.4.1/demo/Polygon/CMakeLists.txt 2022-01-18 09:58:52.000000000 +0000 +++ cgal-5.5/demo/Polygon/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.20) +cmake_minimum_required(VERSION 3.1...3.23) project(Polygon_Demo) if(NOT POLICY CMP0070 AND POLICY CMP0053) diff -Nru cgal-5.4.1/demo/Polyhedron/CMakeLists.txt cgal-5.5/demo/Polyhedron/CMakeLists.txt --- cgal-5.4.1/demo/Polyhedron/CMakeLists.txt 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/demo/Polyhedron/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.1...3.20) +cmake_minimum_required(VERSION 3.1...3.23) project( Polyhedron_Demo ) include(FeatureSummary) diff -Nru cgal-5.4.1/demo/Polyhedron/implicit_functions/CMakeLists.txt cgal-5.5/demo/Polyhedron/implicit_functions/CMakeLists.txt --- cgal-5.4.1/demo/Polyhedron/implicit_functions/CMakeLists.txt 2022-01-18 09:58:55.000000000 +0000 +++ cgal-5.5/demo/Polyhedron/implicit_functions/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,6 +1,6 @@ # This is the CMake script for compiling the CGAL Mesh_3 demo implicit functions. -cmake_minimum_required(VERSION 3.1...3.20) +cmake_minimum_required(VERSION 3.1...3.23) include(polyhedron_demo_macros) diff -Nru cgal-5.4.1/demo/Polyhedron/implicit_functions/Implicit_function_interface.h cgal-5.5/demo/Polyhedron/implicit_functions/Implicit_function_interface.h --- cgal-5.4.1/demo/Polyhedron/implicit_functions/Implicit_function_interface.h 2022-06-03 19:05:21.000000000 +0000 +++ cgal-5.5/demo/Polyhedron/implicit_functions/Implicit_function_interface.h 2022-07-13 19:06:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polyhedron/demo/Polyhedron/implicit_functions/Implicit_function_interface.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polyhedron/demo/Polyhedron/implicit_functions/Implicit_function_interface.h $ // $Id: Implicit_function_interface.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/Polyhedron/include/CGAL/IO/read_surf_trianglemesh.h cgal-5.5/demo/Polyhedron/include/CGAL/IO/read_surf_trianglemesh.h --- cgal-5.4.1/demo/Polyhedron/include/CGAL/IO/read_surf_trianglemesh.h 2022-06-03 19:05:21.000000000 +0000 +++ cgal-5.5/demo/Polyhedron/include/CGAL/IO/read_surf_trianglemesh.h 2022-07-13 19:06:15.000000000 +0000 @@ -8,7 +8,7 @@ #include #include -#include +#include #include //a material is composed of an material Id and a material name. @@ -388,13 +388,13 @@ * read_surf reads a file which extension is .surf and fills `output` with one `Mesh` per patch. * Mesh is a model of FaceListGraph. */ -template +template bool read_surf(std::istream& input, std::vector& output, std::vector& metadata, CGAL::Bbox_3& grid_box, std::array& grid_size, DuplicatedPointsOutIterator out, - const NamedParameters&) + const NamedParameters& = CGAL::parameters::default_values()) { typedef typename CGAL::GetGeomTraits::type Kernel; typedef typename Kernel::Point_3 Point_3; @@ -571,15 +571,3 @@ } return true; } - -template -bool read_surf(std::istream& input, std::vector& output, - std::vector& metadata, - CGAL::Bbox_3& grid_box, - std::array& grid_size, - DuplicatedPointsOutIterator out) -{ - return read_surf(input, output, metadata, grid_box, grid_size, out, - CGAL::Polygon_mesh_processing::parameters::all_default()); -} - diff -Nru cgal-5.4.1/demo/Polyhedron/include/Point_set_3.h cgal-5.5/demo/Polyhedron/include/Point_set_3.h --- cgal-5.4.1/demo/Polyhedron/include/Point_set_3.h 2022-06-03 19:05:21.000000000 +0000 +++ cgal-5.5/demo/Polyhedron/include/Point_set_3.h 2022-07-13 19:06:15.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polyhedron/demo/Polyhedron/include/Point_set_3.h $ -// $Id: Point_set_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polyhedron/demo/Polyhedron/include/Point_set_3.h $ +// $Id: Point_set_3.h 5f18034 2022-01-06T09:16:55+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -577,33 +577,13 @@ namespace CGAL { -namespace Point_set_processing_3 -{ - template - class GetFT< ::Point_set_3 > - { - public: - typedef typename Kernel::FT type; - }; - - namespace parameters - { - template - Named_function_parameters - ::template Property_map, - internal_np::normal_t, - Named_function_parameters - ::template Property_map, - internal_np::point_t> > > - inline all_default(const ::Point_set_3& ps) - { - return ps.parameters(); - } - } -} + +// specialization for default named parameters +template +struct Point_set_processing_3_np_helper<::Point_set_3, NamedParameters, NP_TAG> + : public Point_set_processing_3_np_helper::Base, NamedParameters, NP_TAG> +{}; + } #endif // POINT_SET_3_H diff -Nru cgal-5.4.1/demo/Polyhedron/Plugins/Alpha_wrap_3/alpha_wrap_3_dialog.ui cgal-5.5/demo/Polyhedron/Plugins/Alpha_wrap_3/alpha_wrap_3_dialog.ui --- cgal-5.4.1/demo/Polyhedron/Plugins/Alpha_wrap_3/alpha_wrap_3_dialog.ui 1970-01-01 00:00:00.000000000 +0000 +++ cgal-5.5/demo/Polyhedron/Plugins/Alpha_wrap_3/alpha_wrap_3_dialog.ui 2022-06-17 19:00:13.000000000 +0000 @@ -0,0 +1,375 @@ + + + alpha_wrap_3_dialog + + + true + + + + 0 + 0 + 646 + 673 + + + + 3D Alpha Wrapping + + + + + + 3D Alpha Wrapping + + + + + + + + + true + + + + + + + 5 + + + 0.000000000000000 + + + 100000000.000000000000000 + + + 0.000001000000000 + + + 20.000000000000000 + + + + + + + true + + + <html><head/><body><p>Enforce 2-manifold output</p></body></html> + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + Alpha value: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + Visualize iterations + + + + + + + <html><head/><body><p>Use relative-to-bbox offset<br/><span style=" font-size:9pt;">As ratio of the length of the bbox's diagonal<br/>(i.e., value </span><span style=" font-size:9pt; font-style:italic;">x </span><span style=" font-size:9pt;">means </span><span style=" font-size:9pt; font-style:italic;">offset := bbox_diag_l / x)</span></p></body></html> + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + 5 + + + 0.000000000000000 + + + 100000000.000000000000000 + + + 0.000001000000000 + + + 600.000000000000000 + + + + + + + Qt::Horizontal + + + + + + + <html><head/><body><p>Wrap faces<br/><span style=" font-size:9pt;">If deactivated, only edges of the faces are taken into account</span></p></body></html> + + + + + + + <html><head/><body><p>Wrap edges<br/><span style=" font-size:9pt;">If deactivated, only extremities of the edges are taken into account</span></p></body></html> + + + + + + + + + + true + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + <html><head/><body><p>Use relative-to-bbox alpha<br/><span style=" font-size:9pt;">As ratio of the length of the bbox's diagonal<br/>(i.e., value </span><span style=" font-size:9pt; font-style:italic;">x </span><span style=" font-size:9pt;">means alpha</span><span style=" font-size:9pt; font-style:italic;"> := bbox_diag_l / x)</span></p></body></html> + + + + + + + Qt::Vertical + + + + + + + + + + + + + + + + + true + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + true + + + + + + + Qt::Horizontal + + + + + + + Offset value: + + + + + + + Qt::Horizontal + + + + + + + + + + true + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + <html><head/><body><p>Snapshot iterations<br/><span style=" font-size:9pt;">For each iteration, save a snapshot of the viewer <br/>to a file named </span><span style=" font-size:9pt; font-style:italic;">Wrap-iteration_i.png</span></p></body></html> + + + + + + + + + + false + + + + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + + buttonBox + + + + + buttonBox + accepted() + alpha_wrap_3_dialog + accept() + + + 388 + 288 + + + 157 + 195 + + + + + buttonBox + rejected() + alpha_wrap_3_dialog + reject() + + + 388 + 288 + + + 286 + 195 + + + + + diff -Nru cgal-5.4.1/demo/Polyhedron/Plugins/Alpha_wrap_3/Alpha_wrap_3_plugin.cpp cgal-5.5/demo/Polyhedron/Plugins/Alpha_wrap_3/Alpha_wrap_3_plugin.cpp --- cgal-5.4.1/demo/Polyhedron/Plugins/Alpha_wrap_3/Alpha_wrap_3_plugin.cpp 1970-01-01 00:00:00.000000000 +0000 +++ cgal-5.5/demo/Polyhedron/Plugins/Alpha_wrap_3/Alpha_wrap_3_plugin.cpp 2022-06-17 19:00:13.000000000 +0000 @@ -0,0 +1,536 @@ +#include + +#include +#include + +#include "Scene_surface_mesh_item.h" +#include "Scene_polygon_soup_item.h" +#include "Scene_polyhedron_selection_item.h" +#include "Scene_polylines_item.h" +#include "Scene_points_with_normal_item.h" + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include "ui_alpha_wrap_3_dialog.h" + +struct Iterative_AW3_visualization_visitor +{ +private: + bool m_do_snapshot; + Scene_polygon_soup_item* m_iterative_wrap_item = nullptr; + int sid = 0; + +public: + template + Iterative_AW3_visualization_visitor(Scene* scene, + const bool visualize_iterations, + const bool do_snapshot) + : m_do_snapshot(do_snapshot) + { + if(!visualize_iterations) + return; + + m_iterative_wrap_item = new Scene_polygon_soup_item(); + m_iterative_wrap_item->setName(QString("Iterative wrap")); + scene->addItem(m_iterative_wrap_item); + } + +public: + template + void on_alpha_wrapping_begin(const AlphaWrapper&) { } + + template + void on_flood_fill_begin(const AlphaWrapper&) { } + + template + void before_facet_treatment(const AlphaWrapper&, + const Facet&) { } + + template + void before_Steiner_point_insertion(const AlphaWrapper& wrapper, + const Point& /* p */) + { + if(m_iterative_wrap_item == nullptr) + return; + + // If the next top of the queue has vertices on the bbox, don't draw (as to avoid producing + // spikes in the visualization) +// const auto& gate = wrapper.queue().top(); +// if(wrapper.triangulation().number_of_vertices() > 500 && gate.is_artificial_facet()) +// return; + + // Skip some... + if(wrapper.triangulation().number_of_vertices() % 50 != 0) + return; + + // Extract the wrap as a triangle soup + + using Dt = typename std::decay::type; + using Vertex_handle = typename Dt::Vertex_handle; + using Facet = typename Dt::Facet; + using Cell_handle = typename Dt::Cell_handle; + + std::vector points; + std::vector > faces; + + std::unordered_map vertex_to_id; + std::size_t nv = 0; + + // This is used to compute colors depending on what is old and what is new. + // It is not currently used (a uniform gray color is used), but leaving it as it might be useful. + std::size_t min_time_stamp = -1, max_time_stamp = 0; + for(auto cit=wrapper.triangulation().finite_cells_begin(), cend=wrapper.triangulation().finite_cells_end(); cit!=cend; ++cit) + { + if(cit->time_stamp() > max_time_stamp) + max_time_stamp = cit->time_stamp(); + if(cit->time_stamp() < min_time_stamp) + min_time_stamp = cit->time_stamp(); + } + + std::vector vcolors; + std::vector fcolors; + + for(auto fit=wrapper.triangulation().finite_facets_begin(), fend=wrapper.triangulation().finite_facets_end(); fit!=fend; ++fit) + { + Facet f = *fit; + if(!f.first->info().is_outside) + f = wrapper.triangulation().mirror_facet(f); + + const Cell_handle c = f.first; + const int s = f.second; + const Cell_handle nh = c->neighbor(s); + if(c->info().is_outside == nh->info().is_outside) + continue; + + std::array ids; + for(int pos=0; pos<3; ++pos) + { + Vertex_handle vh = c->vertex(Dt::vertex_triple_index(s, pos)); + auto insertion_res = vertex_to_id.emplace(vh, nv); + if(insertion_res.second) // successful insertion, never-seen-before vertex + { + points.push_back(wrapper.triangulation().point(vh)); + vcolors.push_back(CGAL::IO::Color(0, 0, 0)); + ++nv; + } + + ids[pos] = insertion_res.first->second; + } + + faces.emplace_back(std::vector{ids[0], ids[1], ids[2]}); + double color_val = double(c->time_stamp() - min_time_stamp) / double(max_time_stamp - min_time_stamp); + color_val = int(256. * color_val); + + // fcolors.push_back(CGAL::IO::Color(color_val, 10, 150)); // young is red, old is blue + // fcolors.push_back(CGAL::IO::Color(256 - color_val, 256 - color_val, 256 - color_val)); // young is light, old is dark + fcolors.push_back(CGAL::IO::Color(100, 100, 100)); // uniform darkish gray + } + + // Update the wrap item's visualization + m_iterative_wrap_item->load(points, faces, fcolors, vcolors); + m_iterative_wrap_item->setName(QString("Iterative wrap #%1").arg(sid)); + m_iterative_wrap_item->setAlpha(255 / 2); + + m_iterative_wrap_item->invalidateOpenGLBuffers(); + m_iterative_wrap_item->redraw(); + m_iterative_wrap_item->itemChanged(); + + // Refresh the view + QApplication::processEvents(); + + if(m_do_snapshot) + { + std::stringstream oss; + oss << "Wrap_iteration-" << sid << ".png" << std::ends; + QString filename = QString::fromStdString(oss.str().c_str()); + + CGAL::Three::Viewer_interface* viewer = CGAL::Three::Three::activeViewer(); + viewer->saveSnapshot(filename, 1920, 1080, true /*expand*/, 2.0 /*oversampling*/); + } + + ++sid; + } + + template + void after_Steiner_point_insertion(const AlphaWrapper&, + const VertexHandle) { } + + template + void on_flood_fill_end(const AlphaWrapper&) { } + + template + void on_alpha_wrapping_end(const AlphaWrapper&) + { + if(m_iterative_wrap_item == nullptr) + return; + + m_iterative_wrap_item->setName(QString("Iterative wrap #%1").arg(sid)); + + m_iterative_wrap_item->setAlpha(255); + m_iterative_wrap_item->invalidateOpenGLBuffers(); + m_iterative_wrap_item->redraw(); + m_iterative_wrap_item->itemChanged(); + + QApplication::processEvents(); + + if(m_do_snapshot) + { + std::stringstream oss; + oss << "Wrap_iteration-" << sid << ".png" << std::ends; + QString filename = QString::fromStdString(oss.str().c_str()); + + CGAL::Three::Viewer_interface* viewer = CGAL::Three::Three::activeViewer(); + viewer->saveSnapshot(filename); + } + + m_iterative_wrap_item->setVisible(false); + + // Refresh the view + QApplication::processEvents(); + } +}; + +class Polyhedron_demo_alpha_wrap_3_plugin + : public QObject, + public CGAL::Three::Polyhedron_demo_plugin_helper +{ + Q_OBJECT + Q_INTERFACES(CGAL::Three::Polyhedron_demo_plugin_interface) + Q_PLUGIN_METADATA(IID "com.geometryfactory.PolyhedronDemo.PluginInterface/1.0") + +private: + Ui::alpha_wrap_3_dialog ui; + +public: + void init(QMainWindow* mainWindow, + CGAL::Three::Scene_interface* scene_interface, + Messages_interface*) + { + this->scene = scene_interface; + this->mw = mainWindow; + + actionAlpha_wrap_3_ = new QAction("3D Alpha Wrapping", this->mw); + if(actionAlpha_wrap_3_) + connect(actionAlpha_wrap_3_, SIGNAL(triggered()), this, SLOT(on_actionAlpha_wrap_3_triggered())); + } + + bool applicable(QAction*) const + { + Q_FOREACH(int index, scene->selectionIndices()) + { + if(qobject_cast(scene->item(index))) + return true; + if(qobject_cast(scene->item(index))) + return true; + if(qobject_cast(scene->item(index))) + return true; + if(qobject_cast(scene->item(index))) + return true; + if(qobject_cast(scene->item(index))) + return true; + } + + return false; + } + + QList actions() const + { + return QList() << actionAlpha_wrap_3_; + } + +private: + void print_message(QString message) const + { + CGAL::Three::Three::information(message); + } + + Ui::alpha_wrap_3_dialog create_dialog(QDialog* dialog) + { + ui.setupUi(dialog); + + connect(ui.wrapEdges, SIGNAL(clicked(bool)), this, SLOT(toggle_wrap_faces())); + connect(ui.wrapFaces, SIGNAL(clicked(bool)), this, SLOT(toggle_wrap_edges())); + + connect(ui.visualizeIterations, SIGNAL(clicked(bool)), + this, SLOT(update_iteration_snapshot_checkbox())); + + connect(ui.buttonBox, SIGNAL(accepted()), dialog, SLOT(accept())); + connect(ui.buttonBox, SIGNAL(rejected()), dialog, SLOT(reject())); + + return ui; + } + +public Q_SLOTS: + void toggle_wrap_faces() + { + if(!ui.wrapEdges->isChecked()) // if edges are disabled, so are faces + ui.wrapFaces->setChecked(false); + } + + void toggle_wrap_edges() + { + if(ui.wrapFaces->isChecked()) // if faces are enabled, so are edges + ui.wrapEdges->setChecked(true); + } + + void update_iteration_snapshot_checkbox() + { + ui.snapshotIterations->setCheckable(ui.visualizeIterations->isChecked()); + } + + void on_actionAlpha_wrap_3_triggered() + { + using Triangles = std::vector; + using Segments = std::vector; + using Points = std::vector; + + using TS_Oracle = CGAL::Alpha_wraps_3::internal::Triangle_soup_oracle; + using SS_Oracle = CGAL::Alpha_wraps_3::internal::Segment_soup_oracle; + using Oracle = CGAL::Alpha_wraps_3::internal::Point_set_oracle; + + QDialog dialog(mw); + ui = create_dialog(&dialog); + dialog.setWindowFlags(Qt::Dialog|Qt::CustomizeWindowHint|Qt::WindowCloseButtonHint); + + int i = dialog.exec(); + if(i == QDialog::Rejected) + return; + + const bool is_relative_alpha = ui.relativeAlpha->isChecked(); + const bool is_relative_offset = ui.relativeOffset->isChecked(); + const bool enforce_manifoldness = ui.runManifoldness->isChecked(); + double alpha = ui.alphaValue->value(); + double offset = ui.offsetValue->value(); + const bool visualize_iterations = ui.visualizeIterations->isChecked(); + const bool do_snapshot_iterations = ui.snapshotIterations->isChecked(); + + if(alpha <= 0. || offset <= 0.) + return; + + QApplication::setOverrideCursor(Qt::WaitCursor); + + TS_Oracle ts_oracle; + SS_Oracle ss_oracle(ts_oracle); + Oracle oracle(ss_oracle); + + Triangles triangles; + Segments segments; + Points points; + + Q_FOREACH(int index, scene->selectionIndices()) + { + // --- + Scene_surface_mesh_item* sm_item = qobject_cast(scene->item(index)); + if(sm_item != nullptr) + { + SMesh* pMesh = sm_item->polyhedron(); + auto vpm = get(CGAL::vertex_point, *pMesh); + + triangles.reserve(triangles.size() + num_faces(*pMesh)); + for(boost::graph_traits::face_descriptor f : faces(*pMesh)) + { + boost::graph_traits::halfedge_descriptor h = halfedge(f, *pMesh); + if(!is_triangle(h, *pMesh)) + { + print_message("Warning: non-triangular face in input"); + continue; + } + + triangles.emplace_back(get(vpm, target(h, *pMesh)), + get(vpm, target(next(h, *pMesh), *pMesh)), + get(vpm, source(h, *pMesh))); + } + + sm_item->setRenderingMode(Flat); + + continue; + } + + // --- + Scene_polygon_soup_item* soup_item = qobject_cast(scene->item(index)); + if(soup_item != nullptr) + { + triangles.reserve(triangles.size() + soup_item->polygons().size()); + + for(const auto& p : soup_item->polygons()) + { + if(p.size() != 3) + { + print_message("Warning: non-triangular face in input"); + continue; + } + + triangles.emplace_back(soup_item->points()[p[0]], + soup_item->points()[p[1]], + soup_item->points()[p[2]]); + } + + soup_item->setRenderingMode(Flat); + + continue; + } + + // --- + Scene_polyhedron_selection_item* selection_item = + qobject_cast(scene->item(index)); + if(selection_item != nullptr) + { + SMesh* pMesh = selection_item->polyhedron(); + auto vpm = get(CGAL::vertex_point, *pMesh); + + triangles.reserve(triangles.size() + selection_item->selected_facets.size()); + for(const auto& f : selection_item->selected_facets) + { + boost::graph_traits::halfedge_descriptor h = halfedge(f, *pMesh); + if(!is_triangle(h, *pMesh)) + { + print_message("Warning: non-triangular face in input"); + continue; + } + + triangles.emplace_back(get(vpm, target(h, *pMesh)), + get(vpm, target(next(h, *pMesh), *pMesh)), + get(vpm, source(h, *pMesh))); + } + + segments.reserve(segments.size() + selection_item->selected_edges.size()); + for(const auto& e : selection_item->selected_edges) + { + segments.emplace_back(get(vpm, target(halfedge(e, *pMesh), *pMesh)), + get(vpm, target(opposite(halfedge(e, *pMesh), *pMesh), *pMesh))); + } + + points.reserve(points.size() + selection_item->selected_vertices.size()); + for(const auto& v : selection_item->selected_vertices) + { + points.push_back(get(vpm, v)); + } + + continue; + } + + // --- + Scene_polylines_item* lines_item = qobject_cast(scene->item(index)); + if(lines_item != nullptr) + { + for(auto& polyline : lines_item->polylines) + { + for(auto it=std::begin(polyline), end=std::end(polyline); it!=end; ++it) + { + auto nit = std::next(it); + if(nit != end) + segments.emplace_back(*it, *nit); + } + } + + continue; + } + + // --- + Scene_points_with_normal_item* pts_item = qobject_cast(scene->item(index)); + if(pts_item != nullptr) + { + points.insert(std::cend(points), + std::cbegin(pts_item->point_set()->points()), + std::cend(pts_item->point_set()->points())); + + continue; + } + } + + const bool wrap_triangles = ui.wrapFaces->isChecked(); + const bool wrap_segments = ui.wrapEdges->isChecked(); + + if(!wrap_triangles) + { + segments.reserve(segments.size() + 3 * triangles.size()); + for(const auto& tr : triangles) + { + segments.emplace_back(tr[0], tr[1]); + segments.emplace_back(tr[1], tr[2]); + segments.emplace_back(tr[2], tr[0]); + } + } + + if(!wrap_segments) + { + points.reserve(points.size() + 2 * segments.size()); + for(const auto& s : segments) + { + points.push_back(s[0]); + points.push_back(s[1]); + } + } + + std::cout << triangles.size() << " triangles" << std::endl; + std::cout << segments.size() << " edges" << std::endl; + std::cout << points.size() << " points" << std::endl; + std::cout << "do wrap edges/faces: " << wrap_segments << " " << wrap_triangles << std::endl; + + if(wrap_triangles) + oracle.add_triangle_soup(triangles); + if(wrap_segments) + oracle.add_segment_soup(segments); + oracle.add_point_set(points); + + if(!oracle.do_call()) + { + print_message("Warning: empty input - nothing to wrap"); + QApplication::restoreOverrideCursor(); + return; + } + + // Oracles set up, time to wrap + + CGAL::Bbox_3 bbox = oracle.bbox(); + const double diag_length = std::sqrt(CGAL::square(bbox.xmax() - bbox.xmin()) + + CGAL::square(bbox.ymax() - bbox.ymin()) + + CGAL::square(bbox.zmax() - bbox.zmin())); + + if(is_relative_alpha) + alpha = diag_length / alpha; + if(is_relative_offset) + offset = diag_length / offset; + + CGAL::Alpha_wraps_3::internal::Alpha_wrap_3 aw3(oracle); + + Iterative_AW3_visualization_visitor visitor(scene, + visualize_iterations, + do_snapshot_iterations); + + SMesh wrap; + aw3(alpha, offset, wrap, + CGAL::parameters::do_enforce_manifoldness(enforce_manifoldness) + .visitor(visitor)); + + Scene_surface_mesh_item* wrap_item = new Scene_surface_mesh_item(wrap); + wrap_item->setName(tr("Wrap with alpha %2 offset %3").arg(alpha).arg(offset)); + wrap_item->setColor(Qt::gray); + scene->addItem(wrap_item); + + QApplication::restoreOverrideCursor(); + } + +private: + QAction* actionAlpha_wrap_3_; +}; + +#include "Alpha_wrap_3_plugin.moc" diff -Nru cgal-5.4.1/demo/Polyhedron/Plugins/Alpha_wrap_3/CMakeLists.txt cgal-5.5/demo/Polyhedron/Plugins/Alpha_wrap_3/CMakeLists.txt --- cgal-5.4.1/demo/Polyhedron/Plugins/Alpha_wrap_3/CMakeLists.txt 1970-01-01 00:00:00.000000000 +0000 +++ cgal-5.5/demo/Polyhedron/Plugins/Alpha_wrap_3/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -0,0 +1,8 @@ +include(polyhedron_demo_macros) + +#if the plugin has a UI file +qt5_wrap_ui(alpha_wrap_3UI_FILES alpha_wrap_3_dialog.ui) +polyhedron_demo_plugin(alpha_wrap_3_plugin Alpha_wrap_3_plugin ${alpha_wrap_3UI_FILES}) + +#if the plugin uses external libraries like scene_items +target_link_libraries(alpha_wrap_3_plugin PUBLIC scene_surface_mesh_item scene_polygon_soup_item scene_points_with_normal_item scene_selection_item scene_polylines_item) diff -Nru cgal-5.4.1/demo/Polyhedron/Plugins/Display/Display_property_plugin.cpp cgal-5.5/demo/Polyhedron/Plugins/Display/Display_property_plugin.cpp --- cgal-5.4.1/demo/Polyhedron/Plugins/Display/Display_property_plugin.cpp 2022-01-18 09:58:55.000000000 +0000 +++ cgal-5.5/demo/Polyhedron/Plugins/Display/Display_property_plugin.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -22,7 +22,6 @@ #include "Scene_surface_mesh_item.h" #include "Color_ramp.h" #include "Color_map.h" -#include #include "ui_Display_property.h" #include "id_printing.h" #include "Scene.h" @@ -1223,7 +1222,7 @@ scene->addItem(source_points); connect(source_points, &Scene_points_with_normal_item::aboutToBeDestroyed, [this](){ - boost::unordered_map::iterator it; + std::unordered_map::iterator it; for(it = mesh_sources_map.begin(); it != mesh_sources_map.end(); ++it) @@ -1432,12 +1431,12 @@ double bm; double bM; double bI; - boost::unordered_map > jacobian_min; - boost::unordered_map > jacobian_max; + std::unordered_map > jacobian_min; + std::unordered_map > jacobian_max; - boost::unordered_map > angles_min; - boost::unordered_map > angles_max; - boost::unordered_map is_source; + std::unordered_map > angles_min; + std::unordered_map > angles_max; + std::unordered_map is_source; double minBox; @@ -1446,11 +1445,11 @@ Scene_surface_mesh_item* current_item; Scene_points_with_normal_item* source_points; - boost::unordered_map mesh_sources_map; - boost::unordered_map mesh_heat_item_map; + std::unordered_map mesh_sources_map; + std::unordered_map mesh_heat_item_map; - boost::unordered_map mesh_heat_method_map; - boost::unordered_map mesh_heat_method_idt_map; + std::unordered_map mesh_heat_method_map; + std::unordered_map mesh_heat_method_idt_map; template friend class PropertyDisplayer; diff -Nru cgal-5.4.1/demo/Polyhedron/Plugins/IO/CMakeLists.txt cgal-5.5/demo/Polyhedron/Plugins/IO/CMakeLists.txt --- cgal-5.4.1/demo/Polyhedron/Plugins/IO/CMakeLists.txt 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/demo/Polyhedron/Plugins/IO/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -50,7 +50,7 @@ DESCRIPTION "A library for image processing." PURPOSE "Can be used for I/O (DICOM, VTU, VTP.") -polyhedron_demo_plugin(triangulation_3_io_plugin triangulation_3_io_plugin KEYWORDS IO) +polyhedron_demo_plugin(triangulation_3_io_plugin triangulation_3_io_plugin KEYWORDS Viewer) target_link_libraries(triangulation_3_io_plugin PUBLIC scene_triangulation_3_item) if(VTK_FOUND) diff -Nru cgal-5.4.1/demo/Polyhedron/Plugins/IO/Polylines_io_plugin.cpp cgal-5.5/demo/Polyhedron/Plugins/IO/Polylines_io_plugin.cpp --- cgal-5.4.1/demo/Polyhedron/Plugins/IO/Polylines_io_plugin.cpp 2022-01-18 09:58:55.000000000 +0000 +++ cgal-5.5/demo/Polyhedron/Plugins/IO/Polylines_io_plugin.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -62,7 +62,7 @@ } QString name() const override{ return "polylines_io_plugin"; } - QString nameFilters() const override{ return "Polylines files (*.polylines.txt *.cgal)"; } + QString nameFilters() const override{ return "Polylines files (*.polylines.txt);; CGAL Polylines files (*.cgal)"; } bool canLoad(QFileInfo fileinfo) const override; QList load(QFileInfo fileinfo, bool& ok, bool add_to_scene=true) override; diff -Nru cgal-5.4.1/demo/Polyhedron/Plugins/IO/VTK_io_plugin.cpp cgal-5.5/demo/Polyhedron/Plugins/IO/VTK_io_plugin.cpp --- cgal-5.4.1/demo/Polyhedron/Plugins/IO/VTK_io_plugin.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/demo/Polyhedron/Plugins/IO/VTK_io_plugin.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -31,7 +31,7 @@ #include #include -#include +#include #include #include @@ -67,7 +67,7 @@ #include #include -#include +#include #include typedef Scene_surface_mesh_item Scene_facegraph_item; typedef Scene_facegraph_item::Face_graph FaceGraph; @@ -355,7 +355,7 @@ if(is_polygon_mesh) { FaceGraph* poly = new FaceGraph(); - if (CGAL::IO::internal::vtkPointSet_to_polygon_mesh(data, *poly, CGAL::parameters::all_default())) + if (CGAL::IO::internal::vtkPointSet_to_polygon_mesh(data, *poly, CGAL::parameters::default_values())) { Scene_facegraph_item* poly_item = new Scene_facegraph_item(poly); if(group) diff -Nru cgal-5.4.1/demo/Polyhedron/Plugins/Mesh_3/Facet_extra_criterion.h cgal-5.5/demo/Polyhedron/Plugins/Mesh_3/Facet_extra_criterion.h --- cgal-5.4.1/demo/Polyhedron/Plugins/Mesh_3/Facet_extra_criterion.h 2022-06-03 19:05:17.000000000 +0000 +++ cgal-5.5/demo/Polyhedron/Plugins/Mesh_3/Facet_extra_criterion.h 2022-07-13 19:06:10.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polyhedron/demo/Polyhedron/Plugins/Mesh_3/Facet_extra_criterion.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polyhedron/demo/Polyhedron/Plugins/Mesh_3/Facet_extra_criterion.h $ // $Id: Facet_extra_criterion.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/Polyhedron/Plugins/Mesh_3/Mesh_3_plugin.cpp cgal-5.5/demo/Polyhedron/Plugins/Mesh_3/Mesh_3_plugin.cpp --- cgal-5.4.1/demo/Polyhedron/Plugins/Mesh_3/Mesh_3_plugin.cpp 2022-01-18 09:59:29.000000000 +0000 +++ cgal-5.5/demo/Polyhedron/Plugins/Mesh_3/Mesh_3_plugin.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -65,18 +65,18 @@ Q_INTERFACES(CGAL::Three::Polyhedron_demo_plugin_interface) Q_PLUGIN_METADATA(IID "com.geometryfactory.PolyhedronDemo.PluginInterface/1.0" FILE "mesh_3_plugin.json") - Q_PROPERTY(double angle READ get_angle WRITE set_angle); + Q_PROPERTY(double angle READ get_angle WRITE set_angle) Q_PROPERTY(double sharp_edges_angle_bound READ get_sharp_edges_angle_bound - WRITE set_sharp_edges_angle_bound); - Q_PROPERTY(double edges_sizing READ get_edges_sizing WRITE set_edges_sizing); - Q_PROPERTY(double facets_sizing READ get_facets_sizing WRITE set_facets_sizing); - Q_PROPERTY(double approx READ get_approx WRITE set_approx); - Q_PROPERTY(double tets_sizing READ get_tets_sizing WRITE set_tets_sizing); - Q_PROPERTY(double tets_shape READ get_tets_shape WRITE set_tets_shape); - Q_PROPERTY(bool protect_features READ get_protect_features WRITE set_protect_features); - Q_PROPERTY(bool protect_borders READ get_protect_borders WRITE set_protect_borders); - Q_PROPERTY(bool manifold_criterion READ get_manifold_criterion WRITE set_manifold_criterion); + WRITE set_sharp_edges_angle_bound) + Q_PROPERTY(double edges_sizing READ get_edges_sizing WRITE set_edges_sizing) + Q_PROPERTY(double facets_sizing READ get_facets_sizing WRITE set_facets_sizing) + Q_PROPERTY(double approx READ get_approx WRITE set_approx) + Q_PROPERTY(double tets_sizing READ get_tets_sizing WRITE set_tets_sizing) + Q_PROPERTY(double tets_shape READ get_tets_shape WRITE set_tets_shape) + Q_PROPERTY(bool protect_features READ get_protect_features WRITE set_protect_features) + Q_PROPERTY(bool protect_borders READ get_protect_borders WRITE set_protect_borders) + Q_PROPERTY(bool manifold_criterion READ get_manifold_criterion WRITE set_manifold_criterion) typedef CGAL::Mesh_facet_topology Mesh_facet_topology; Q_ENUMS(Mesh_facet_topology) diff -Nru cgal-5.4.1/demo/Polyhedron/Plugins/Mesh_3/Mesh_function.h cgal-5.5/demo/Polyhedron/Plugins/Mesh_3/Mesh_function.h --- cgal-5.4.1/demo/Polyhedron/Plugins/Mesh_3/Mesh_function.h 2022-06-03 19:05:17.000000000 +0000 +++ cgal-5.5/demo/Polyhedron/Plugins/Mesh_3/Mesh_function.h 2022-07-13 19:06:10.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polyhedron/demo/Polyhedron/Plugins/Mesh_3/Mesh_function.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polyhedron/demo/Polyhedron/Plugins/Mesh_3/Mesh_function.h $ // $Id: Mesh_function.h 4b3fee8 2021-09-23T11:37:35+02:00 Jane Tournois // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/Polyhedron/Plugins/Mesh_3/Meshing_thread.h cgal-5.5/demo/Polyhedron/Plugins/Mesh_3/Meshing_thread.h --- cgal-5.4.1/demo/Polyhedron/Plugins/Mesh_3/Meshing_thread.h 2022-06-03 19:05:17.000000000 +0000 +++ cgal-5.5/demo/Polyhedron/Plugins/Mesh_3/Meshing_thread.h 2022-07-13 19:06:10.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polyhedron/demo/Polyhedron/Plugins/Mesh_3/Meshing_thread.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polyhedron/demo/Polyhedron/Plugins/Mesh_3/Meshing_thread.h $ // $Id: Meshing_thread.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/Polyhedron/Plugins/Mesh_3/Optimization_plugin.cpp cgal-5.5/demo/Polyhedron/Plugins/Mesh_3/Optimization_plugin.cpp --- cgal-5.4.1/demo/Polyhedron/Plugins/Mesh_3/Optimization_plugin.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/demo/Polyhedron/Plugins/Mesh_3/Optimization_plugin.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -242,7 +242,7 @@ ui.objectName->setText(item->name()); - namespace cgpd = CGAL::parameters::default_values; + namespace cgpd = CGAL::parameters::default_values_for_mesh_3; ui.convergenceRatio->setValue(cgpd::odt_convergence_ratio); ui.freezeRatio->setValue(cgpd::odt_freeze_ratio); @@ -310,7 +310,7 @@ ui.objectName->setText(item->name()); - namespace cgpd = CGAL::parameters::default_values; + namespace cgpd = CGAL::parameters::default_values_for_mesh_3; ui.convergenceRatio->setValue(cgpd::lloyd_convergence_ratio); ui.freezeRatio->setValue(cgpd::lloyd_freeze_ratio); diff -Nru cgal-5.4.1/demo/Polyhedron/Plugins/Mesh_3/Optimizer_thread.h cgal-5.5/demo/Polyhedron/Plugins/Mesh_3/Optimizer_thread.h --- cgal-5.4.1/demo/Polyhedron/Plugins/Mesh_3/Optimizer_thread.h 2022-06-03 19:05:17.000000000 +0000 +++ cgal-5.5/demo/Polyhedron/Plugins/Mesh_3/Optimizer_thread.h 2022-07-13 19:06:11.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polyhedron/demo/Polyhedron/Plugins/Mesh_3/Optimizer_thread.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polyhedron/demo/Polyhedron/Plugins/Mesh_3/Optimizer_thread.h $ // $Id: Optimizer_thread.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/Polyhedron/Plugins/Operations_on_polyhedra/Clip_polyhedron_plugin.cpp cgal-5.5/demo/Polyhedron/Plugins/Operations_on_polyhedra/Clip_polyhedron_plugin.cpp --- cgal-5.4.1/demo/Polyhedron/Plugins/Operations_on_polyhedra/Clip_polyhedron_plugin.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/demo/Polyhedron/Plugins/Operations_on_polyhedra/Clip_polyhedron_plugin.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -255,7 +255,7 @@ { CGAL::Polygon_mesh_processing::clip(*(sm_item->face_graph()), plane->plane(), - CGAL::Polygon_mesh_processing::parameters::clip_volume( + CGAL::parameters::clip_volume( ui_widget.close_checkBox->isChecked()). throw_on_self_intersection(true). use_compact_clipper( @@ -279,7 +279,7 @@ { CGAL::Polygon_mesh_processing::split(*(sm_item->face_graph()), plane->plane(), - CGAL::Polygon_mesh_processing::parameters::throw_on_self_intersection(true) + CGAL::parameters::throw_on_self_intersection(true) .allow_self_intersections(ui_widget.do_not_modify_CheckBox->isChecked())); } } @@ -411,12 +411,12 @@ try { CGAL::Polygon_mesh_processing::clip(*(sm_item->face_graph()), clipper, - CGAL::Polygon_mesh_processing::parameters::clip_volume( + CGAL::parameters::clip_volume( ui_widget.close_checkBox->isChecked()). throw_on_self_intersection(true). use_compact_clipper( !ui_widget.coplanarCheckBox->isChecked()), - CGAL::Polygon_mesh_processing::parameters::do_not_modify(ui_widget.do_not_modify_CheckBox->isChecked())); + CGAL::parameters::do_not_modify(ui_widget.do_not_modify_CheckBox->isChecked())); } catch(const CGAL::Polygon_mesh_processing::Corefinement::Self_intersection_exception&) { @@ -430,8 +430,8 @@ try { CGAL::Polygon_mesh_processing::split(*pos_side, clipper, - CGAL::Polygon_mesh_processing::parameters::throw_on_self_intersection(true), - CGAL::Polygon_mesh_processing::parameters::do_not_modify(ui_widget.do_not_modify_CheckBox->isChecked())); + CGAL::parameters::throw_on_self_intersection(true), + CGAL::parameters::do_not_modify(ui_widget.do_not_modify_CheckBox->isChecked())); } catch(const CGAL::Polygon_mesh_processing::Corefinement::Self_intersection_exception&) { diff -Nru cgal-5.4.1/demo/Polyhedron/Plugins/PCA/Basic_generator_plugin.cpp cgal-5.5/demo/Polyhedron/Plugins/PCA/Basic_generator_plugin.cpp --- cgal-5.4.1/demo/Polyhedron/Plugins/PCA/Basic_generator_plugin.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/demo/Polyhedron/Plugins/PCA/Basic_generator_plugin.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -772,7 +772,7 @@ std::vector patch; CGAL::Polygon_mesh_processing::triangulate_hole_polyline(polyline, std::back_inserter(patch), - CGAL::Polygon_mesh_processing::parameters::use_delaunay_triangulation(true)); + CGAL::parameters::use_delaunay_triangulation(true)); if(patch.empty()) { QMessageBox::warning(mw, "Warning", "Triangulation failed."); diff -Nru cgal-5.4.1/demo/Polyhedron/Plugins/PMP/CMakeLists.txt cgal-5.5/demo/Polyhedron/Plugins/PMP/CMakeLists.txt --- cgal-5.4.1/demo/Polyhedron/Plugins/PMP/CMakeLists.txt 2022-01-18 09:58:55.000000000 +0000 +++ cgal-5.5/demo/Polyhedron/Plugins/PMP/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -38,7 +38,7 @@ demo_framework CGAL::Eigen3_support) # The smoothing plugin can still do some things, even if Ceres is not found - qt5_wrap_ui( smoothingUI_FILES Smoothing_plugin.ui) + qt5_wrap_ui( smoothingUI_FILES Smoothing_plugin.ui Smoothing_tangential_relaxation.ui) polyhedron_demo_plugin(smoothing_plugin Smoothing_plugin ${smoothingUI_FILES}) target_link_libraries(smoothing_plugin PUBLIC scene_surface_mesh_item scene_selection_item CGAL::Eigen3_support) find_package(Ceres QUIET) @@ -123,7 +123,7 @@ PUBLIC scene_surface_mesh_item scene_polylines_item scene_points_with_normal_item) -qt5_wrap_ui( repairUI_FILES RemoveNeedlesDialog.ui) +qt5_wrap_ui( repairUI_FILES RemoveNeedlesDialog.ui SelfSnapDialog.ui) polyhedron_demo_plugin(repair_polyhedron_plugin Repair_polyhedron_plugin ${repairUI_FILES} KEYWORDS PMP) target_link_libraries(repair_polyhedron_plugin PUBLIC scene_points_with_normal_item scene_surface_mesh_item) diff -Nru cgal-5.4.1/demo/Polyhedron/Plugins/PMP/Corefinement_plugin.cpp cgal-5.5/demo/Polyhedron/Plugins/PMP/Corefinement_plugin.cpp --- cgal-5.4.1/demo/Polyhedron/Plugins/PMP/Corefinement_plugin.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/demo/Polyhedron/Plugins/PMP/Corefinement_plugin.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -11,7 +11,7 @@ using namespace CGAL::Three; namespace PMP = CGAL::Polygon_mesh_processing; -namespace params = PMP::parameters; +namespace params = CGAL::parameters; class Polyhedron_demo_corefinement_sm_plugin : public QObject, diff -Nru cgal-5.4.1/demo/Polyhedron/Plugins/PMP/Detect_sharp_edges_plugin.cpp cgal-5.5/demo/Polyhedron/Plugins/PMP/Detect_sharp_edges_plugin.cpp --- cgal-5.4.1/demo/Polyhedron/Plugins/PMP/Detect_sharp_edges_plugin.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/demo/Polyhedron/Plugins/PMP/Detect_sharp_edges_plugin.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -129,7 +129,7 @@ VIP vip = get(CGAL::vertex_incident_patches_t(), *pMesh); first_patch+=PMP::sharp_edges_segmentation(*pMesh, angle, eif, pid, - PMP::parameters::first_index(first_patch) + CGAL::parameters::first_index(first_patch) .vertex_incident_patches_map(vip)); //update item item->setItemIsMulticolor(true); diff -Nru cgal-5.4.1/demo/Polyhedron/Plugins/PMP/Distance_plugin.cpp cgal-5.5/demo/Polyhedron/Plugins/PMP/Distance_plugin.cpp --- cgal-5.4.1/demo/Polyhedron/Plugins/PMP/Distance_plugin.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/demo/Polyhedron/Plugins/PMP/Distance_plugin.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -195,7 +195,7 @@ //compute distance with other polyhedron //sample facet std::vector sampled_points; - std::size_t nb_points = (std::max)((int)std::ceil(nb_pts_per_face * PMP::face_area(f,*poly,PMP::parameters::geom_traits(Kernel()))), + std::size_t nb_points = (std::max)((int)std::ceil(nb_pts_per_face * PMP::face_area(f,*poly,CGAL::parameters::geom_traits(Kernel()))), 1); Kernel::Point_3 &p = get(vpmap,target(halfedge(f,*poly),*poly)); Kernel::Point_3 &q = get(vpmap,target(next(halfedge(f,*poly),*poly),*poly)); diff -Nru cgal-5.4.1/demo/Polyhedron/Plugins/PMP/Engrave_text_plugin.cpp cgal-5.5/demo/Polyhedron/Plugins/PMP/Engrave_text_plugin.cpp --- cgal-5.4.1/demo/Polyhedron/Plugins/PMP/Engrave_text_plugin.cpp 2022-01-18 09:58:55.000000000 +0000 +++ cgal-5.5/demo/Polyhedron/Plugins/PMP/Engrave_text_plugin.cpp 2022-07-01 19:00:06.000000000 +0000 @@ -52,8 +52,8 @@ typedef boost::graph_traits:: vertex_descriptor vertex_descriptor; -typedef boost::unordered_set:: -face_descriptor> Component; +typedef std::unordered_set:: + face_descriptor> Component; struct FaceInfo2 { @@ -492,8 +492,8 @@ sm->add_property_map("v:uv").first; // Parameterized bool pmap - boost::unordered_set vs; - SMP::internal::Bool_property_map< boost::unordered_set > vpm(vs); + std::unordered_set vs; + SMP::internal::Bool_property_map< std::unordered_set > vpm(vs); // Parameterizer SMP::ARAP_parameterizer_3 parameterizer; @@ -961,8 +961,8 @@ int pointsize; bool locked; EPICK::Line_2 bf_line; - QGraphicsScene *graphics_scene; - Navigation* navigation; + QGraphicsScene *graphics_scene = nullptr; + Navigation* navigation = nullptr; }; #include "Engrave_text_plugin.moc" diff -Nru cgal-5.4.1/demo/Polyhedron/Plugins/PMP/Fairing_plugin.cpp cgal-5.5/demo/Polyhedron/Plugins/PMP/Fairing_plugin.cpp --- cgal-5.4.1/demo/Polyhedron/Plugins/PMP/Fairing_plugin.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/demo/Polyhedron/Plugins/PMP/Fairing_plugin.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -99,13 +99,13 @@ if(weight_index == 1) CGAL::Polygon_mesh_processing::fair(*selection_item->polyhedron(), selection_item->selected_vertices, - CGAL::Polygon_mesh_processing::parameters:: + CGAL::parameters:: weight_calculator(CGAL::Weights::Uniform_weight()). fairing_continuity(continuity)); if(weight_index == 0) CGAL::Polygon_mesh_processing::fair(*selection_item->polyhedron(), selection_item->selected_vertices, - CGAL::Polygon_mesh_processing::parameters::fairing_continuity(continuity)); + CGAL::parameters::fairing_continuity(continuity)); selection_item->polyhedron_item()->resetColors(); selection_item->changed_with_poly_item(); selection_item->invalidateOpenGLBuffers(); @@ -127,7 +127,7 @@ selection_item->selected_facets, std::back_inserter(new_facets), CGAL::Emptyset_iterator(), - CGAL::Polygon_mesh_processing::parameters::density_control_factor(alpha)); + CGAL::parameters::density_control_factor(alpha)); // add new facets to selection for(std::vector::face_descriptor>::iterator it = new_facets.begin(); it != new_facets.end(); ++it) { selection_item->selected_facets.insert(*it); diff -Nru cgal-5.4.1/demo/Polyhedron/Plugins/PMP/Hole_filling_plugin.cpp cgal-5.5/demo/Polyhedron/Plugins/PMP/Hole_filling_plugin.cpp --- cgal-5.4.1/demo/Polyhedron/Plugins/PMP/Hole_filling_plugin.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/demo/Polyhedron/Plugins/PMP/Hole_filling_plugin.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -17,7 +17,7 @@ #include #include #include -#include +#include #include #include #include @@ -44,7 +44,7 @@ #include #include "Kernel_type.h" -#include +#include #include #include #include @@ -240,7 +240,7 @@ Face_graph& poly = *poly_item->polyhedron(); - boost::unordered_set visited; + std::unordered_set visited; boost::property_map::type vpm = get(CGAL::vertex_point,poly); for(fg_halfedge_descriptor hd : halfedges(poly)){ @@ -703,12 +703,12 @@ if(action_index == 0) { CGAL::Polygon_mesh_processing::triangulate_hole(poly, it, std::back_inserter(patch), - CGAL::Polygon_mesh_processing::parameters::use_delaunay_triangulation(use_DT)); + CGAL::parameters::use_delaunay_triangulation(use_DT)); } else if(action_index == 1) { CGAL::Polygon_mesh_processing::triangulate_and_refine_hole(poly, it, std::back_inserter(patch), CGAL::Emptyset_iterator(), - CGAL::Polygon_mesh_processing::parameters::density_control_factor(alpha). + CGAL::parameters::density_control_factor(alpha). use_delaunay_triangulation(use_DT)); } else { @@ -718,7 +718,7 @@ if(weight_index == 0) { success = std::get<0>(CGAL::Polygon_mesh_processing::triangulate_refine_and_fair_hole(poly, it, std::back_inserter(patch), CGAL::Emptyset_iterator(), - CGAL::Polygon_mesh_processing::parameters:: + CGAL::parameters:: weight_calculator(CGAL::Weights::Uniform_weight()). density_control_factor(alpha). fairing_continuity(continuity). @@ -728,7 +728,7 @@ auto pmap = get_property_map(CGAL::vertex_point, poly); success = std::get<0>(CGAL::Polygon_mesh_processing::triangulate_refine_and_fair_hole(poly, it, std::back_inserter(patch), CGAL::Emptyset_iterator(), - CGAL::Polygon_mesh_processing::parameters:: + CGAL::parameters:: weight_calculator(CGAL::Weights::Secure_cotangent_weight_with_voronoi_area(poly, pmap)). density_control_factor(alpha). fairing_continuity(continuity). @@ -753,7 +753,7 @@ Intersected_facets intersected_facets; CGAL::Polygon_mesh_processing::self_intersections(poly, std::back_inserter(intersected_facets), - CGAL::Polygon_mesh_processing::parameters::vertex_point_map(get(CGAL::vertex_point, poly))); + CGAL::parameters::vertex_point_map(get(CGAL::vertex_point, poly))); print_message(QString("Self intersecting test: finding intersecting triangles in %1 sec.").arg(timer.time())); timer.reset(); @@ -800,7 +800,7 @@ normalize_border(*poly); // fill hole - boost::unordered_set buffer; + std::unordered_set buffer; //check if all selected edges are boder //to do check that the seection is closed for(fg_edge_descriptor ed : edge_selection->selected_edges) @@ -887,7 +887,7 @@ std::vector > patch; CGAL::Polygon_mesh_processing::triangulate_hole_polyline(points, std::back_inserter(patch), - CGAL::Polygon_mesh_processing::parameters::use_delaunay_triangulation(use_DT)); + CGAL::parameters::use_delaunay_triangulation(use_DT)); if(patch.size()<3) print_message("There is not enough points. Please try again."); for(std::size_t i=0; i patch; CGAL::Polygon_mesh_processing::triangulate_hole_polyline(*it, std::back_inserter(patch), - PMP::parameters::use_delaunay_triangulation(use_DT)); + CGAL::parameters::use_delaunay_triangulation(use_DT)); print_message(QString("Triangulated in %1 sec.").arg(timer.time())); if(patch.empty()) { @@ -975,7 +975,7 @@ timer.reset(); CGAL::Polygon_mesh_processing::refine(*poly, faces(*poly), Nop_out(), Nop_out(), - CGAL::Polygon_mesh_processing::parameters::density_control_factor(density_control_factor)); + CGAL::parameters::density_control_factor(density_control_factor)); print_message(QString("Refined in %1 sec.").arg(timer.time())); } diff -Nru cgal-5.4.1/demo/Polyhedron/Plugins/PMP/Isotropic_remeshing_plugin.cpp cgal-5.5/demo/Polyhedron/Plugins/PMP/Isotropic_remeshing_plugin.cpp --- cgal-5.4.1/demo/Polyhedron/Plugins/PMP/Isotropic_remeshing_plugin.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/demo/Polyhedron/Plugins/PMP/Isotropic_remeshing_plugin.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -18,10 +18,9 @@ #include #include #include +#include #include -#include -#include #include #include @@ -37,6 +36,7 @@ #include #include #include +#include #ifdef CGAL_LINKED_WITH_TBB #include "tbb/parallel_for.h" @@ -177,7 +177,7 @@ typedef boost::graph_traits::halfedge_descriptor halfedge_descriptor; typedef boost::graph_traits::face_descriptor face_descriptor; - typedef boost::unordered_set Edge_set; + typedef std::unordered_set Edge_set; typedef Scene_polyhedron_selection_item::Is_constrained_map Edge_constrained_pmap; struct Visitor @@ -318,7 +318,7 @@ p_edges , target_length , *selection_item->polyhedron() - , PMP::parameters::geom_traits(EPICK()) + , CGAL::parameters::geom_traits(EPICK()) .edge_is_constrained_map(selection_item->constrained_edges_pmap())); else std::cout << "No selected or boundary edges to be split" << std::endl; @@ -462,7 +462,7 @@ CGAL::Polygon_mesh_processing::isotropic_remeshing(faces(*selection_item->polyhedron()) , target_length , *selection_item->polyhedron() - , CGAL::Polygon_mesh_processing::parameters::number_of_iterations(nb_iter) + , CGAL::parameters::number_of_iterations(nb_iter) .protect_constraints(protect) .edge_is_constrained_map(selection_item->constrained_edges_pmap()) .relax_constraints(smooth_features) @@ -473,7 +473,7 @@ CGAL::Polygon_mesh_processing::isotropic_remeshing(faces(*selection_item->polyhedron()) , target_length , *selection_item->polyhedron() - , CGAL::Polygon_mesh_processing::parameters::number_of_iterations(nb_iter) + , CGAL::parameters::number_of_iterations(nb_iter) .protect_constraints(protect) .edge_is_constrained_map(selection_item->constrained_edges_pmap()) .relax_constraints(smooth_features) @@ -498,7 +498,7 @@ Visitor visitor(selection_item->selected_facets); CGAL::Polygon_mesh_processing::triangulate_faces(selection_item->selected_facets, pmesh, - CGAL::Polygon_mesh_processing::parameters::visitor(visitor)); + CGAL::parameters::visitor(visitor)); break; } else @@ -512,7 +512,7 @@ CGAL::Polygon_mesh_processing::isotropic_remeshing(selection_item->selected_facets , target_length , *selection_item->polyhedron() - , CGAL::Polygon_mesh_processing::parameters::number_of_iterations(nb_iter) + , CGAL::parameters::number_of_iterations(nb_iter) .protect_constraints(protect) .edge_is_constrained_map(selection_item->constrained_edges_pmap()) .relax_constraints(smooth_features) @@ -523,7 +523,7 @@ CGAL::Polygon_mesh_processing::isotropic_remeshing(selection_item->selected_facets , target_length , *selection_item->polyhedron() - , CGAL::Polygon_mesh_processing::parameters::number_of_iterations(nb_iter) + , CGAL::parameters::number_of_iterations(nb_iter) .protect_constraints(protect) .edge_is_constrained_map(selection_item->constrained_edges_pmap()) .relax_constraints(smooth_features) @@ -569,7 +569,7 @@ edges_to_split , target_length , pmesh - , PMP::parameters::geom_traits(EPICK()) + , CGAL::parameters::geom_traits(EPICK()) . edge_is_constrained_map(eif) . face_patch_map(fpmap)); else @@ -577,7 +577,7 @@ edges_to_split , target_length , pmesh - , PMP::parameters::geom_traits(EPICK()) + , CGAL::parameters::geom_traits(EPICK()) . edge_is_constrained_map(eif)); } else @@ -640,7 +640,7 @@ faces(*poly_item->polyhedron()) , target_length , *poly_item->polyhedron() - , CGAL::Polygon_mesh_processing::parameters::number_of_iterations(nb_iter) + , CGAL::parameters::number_of_iterations(nb_iter) .protect_constraints(protect) .number_of_relaxation_steps(nb_smooth) .edge_is_constrained_map(ecm) @@ -651,7 +651,7 @@ faces(*poly_item->polyhedron()) , target_length , *poly_item->polyhedron() - , CGAL::Polygon_mesh_processing::parameters::number_of_iterations(nb_iter) + , CGAL::parameters::number_of_iterations(nb_iter) .protect_constraints(protect) .number_of_relaxation_steps(nb_smooth) .edge_is_constrained_map(ecm) @@ -861,7 +861,7 @@ faces(*poly_item->polyhedron()) , target_length_ , *poly_item->polyhedron() - , CGAL::Polygon_mesh_processing::parameters::number_of_iterations(nb_iter_) + , CGAL::parameters::number_of_iterations(nb_iter_) .protect_constraints(protect_) .edge_is_constrained_map(ecm) .face_patch_map(get(CGAL::face_patch_id_t(), *poly_item->polyhedron())) diff -Nru cgal-5.4.1/demo/Polyhedron/Plugins/PMP/Join_and_split_polyhedra_plugin.cpp cgal-5.5/demo/Polyhedron/Plugins/PMP/Join_and_split_polyhedra_plugin.cpp --- cgal-5.4.1/demo/Polyhedron/Plugins/PMP/Join_and_split_polyhedra_plugin.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/demo/Polyhedron/Plugins/PMP/Join_and_split_polyhedra_plugin.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -22,7 +22,7 @@ #include #include -#include +#include #include "Color_map.h" typedef Scene_surface_mesh_item Scene_facegraph_item; @@ -47,7 +47,7 @@ msg_interface = m; actionJoinPolyhedra= new QAction(tr("Join Selected Polyhedra"), mainWindow); - actionJoinPolyhedra->setProperty("subMenuName", "Operations on Polyhedra"); + actionJoinPolyhedra->setProperty("subMenuName", "Polygon Mesh Processing"); actionJoinPolyhedra->setObjectName("actionJoinPolyhedra"); actionSplitPolyhedra= new QAction(tr("Split Selected Polyhedra"), mainWindow); @@ -144,11 +144,11 @@ if(item) { QApplication::setOverrideCursor(Qt::WaitCursor); - std::vector new_polyhedra; + std::list new_polyhedra; CGAL::Polygon_mesh_processing::split_connected_components(*item->face_graph(), new_polyhedra); //sort polyhedra by number of faces - std::sort(new_polyhedra.begin(), new_polyhedra.end(), Compare()); + new_polyhedra.sort(Compare()); if (new_polyhedra.size()==1) @@ -168,7 +168,7 @@ scene->addItem(group); for(FaceGraph& poly : new_polyhedra) { - Scene_facegraph_item* new_item=new Scene_facegraph_item(poly); + Scene_facegraph_item* new_item=new Scene_facegraph_item(std::move(poly)); new_item->setName(tr("%1 - CC %2").arg(item->name()).arg(cc)); new_item->setColor(color_map[cc]); ++cc; @@ -253,7 +253,7 @@ int nb_patch_ids = PMP::connected_components(pmesh , fccmap - , PMP::parameters::edge_is_constrained_map(selection_item->constrained_edges_pmap()) + , CGAL::parameters::edge_is_constrained_map(selection_item->constrained_edges_pmap()) .face_index_map(fim)); for(face_descriptor f : faces(pmesh)) diff -Nru cgal-5.4.1/demo/Polyhedron/Plugins/PMP/Mean_curvature_flow_skeleton_plugin.cpp cgal-5.5/demo/Polyhedron/Plugins/PMP/Mean_curvature_flow_skeleton_plugin.cpp --- cgal-5.4.1/demo/Polyhedron/Plugins/PMP/Mean_curvature_flow_skeleton_plugin.cpp 2022-01-18 09:58:55.000000000 +0000 +++ cgal-5.5/demo/Polyhedron/Plugins/PMP/Mean_curvature_flow_skeleton_plugin.cpp 2022-07-01 19:00:06.000000000 +0000 @@ -236,7 +236,7 @@ // the algorithm is only applicable on a mesh // that has only one connected component - boost::unordered_map::face_descriptor,int> cc(num_faces(*pMesh)); + std::unordered_map::face_descriptor,int> cc(num_faces(*pMesh)); std::size_t num_component = PMP::connected_components(*pMesh, boost::make_assoc_property_map(cc)); if (num_component != 1) @@ -321,8 +321,8 @@ private: Scene_mcf_item *getMCFItem(); void createContractedItem(Scene_mcf_item* item); - QDockWidget* dockWidget; - Ui::Mean_curvature_flow_skeleton_plugin* ui; + QDockWidget* dockWidget = nullptr; + Ui::Mean_curvature_flow_skeleton_plugin* ui = nullptr; }; // end Polyhedron_demo_mean_curvature_flow_skeleton_plugin diff -Nru cgal-5.4.1/demo/Polyhedron/Plugins/PMP/Polyhedron_stitching_plugin.cpp cgal-5.5/demo/Polyhedron/Plugins/PMP/Polyhedron_stitching_plugin.cpp --- cgal-5.4.1/demo/Polyhedron/Plugins/PMP/Polyhedron_stitching_plugin.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/demo/Polyhedron/Plugins/PMP/Polyhedron_stitching_plugin.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -9,6 +9,7 @@ #include #include +#include #include #include @@ -26,8 +27,9 @@ QAction* actionDetectBorders; QAction* actionStitchBorders; QAction* actionStitchByCC; + QAction* actionMergeReversibleCCs; public: - QList actions() const { return QList() << actionDetectBorders << actionStitchBorders << actionStitchByCC; } + QList actions() const { return QList() << actionDetectBorders << actionStitchBorders << actionStitchByCC << actionMergeReversibleCCs; } void init(QMainWindow* mainWindow, CGAL::Three::Scene_interface* scene_interface, Messages_interface* /* m */) { scene = scene_interface; @@ -42,6 +44,10 @@ actionStitchByCC->setObjectName("actionStitchByCC"); actionStitchByCC->setProperty("subMenuName", "Polygon Mesh Processing/Repair"); + actionMergeReversibleCCs = new QAction(tr("Merge Reversible Connected Components"), mainWindow); + actionMergeReversibleCCs->setObjectName("actionMergeReversibleCCs"); + actionMergeReversibleCCs->setProperty("subMenuName", "Polygon Mesh Processing/Repair"); + autoConnectActions(); } @@ -63,10 +69,14 @@ template void on_actionStitchByCC_triggered(Scene_interface::Item_id index); + template + void on_actionMergeReversibleCCs_triggered(Scene_interface::Item_id index); + public Q_SLOTS: void on_actionDetectBorders_triggered(); void on_actionStitchBorders_triggered(); void on_actionStitchByCC_triggered(); + void on_actionMergeReversibleCCs_triggered(); }; // end Polyhedron_demo_polyhedron_stitching_plugin @@ -146,11 +156,24 @@ if(!item) return; CGAL::Polygon_mesh_processing::stitch_borders(*item->polyhedron(), - CGAL::Polygon_mesh_processing::parameters::apply_per_connected_component(true)); + CGAL::parameters::apply_per_connected_component(true)); item->invalidateOpenGLBuffers(); scene->itemChanged(item); } +template +void Polyhedron_demo_polyhedron_stitching_plugin::on_actionMergeReversibleCCs_triggered(Scene_interface::Item_id index) +{ + Item* item = + qobject_cast(scene->item(index)); + + if(!item) + return; + CGAL::Polygon_mesh_processing::merge_reversible_connected_components(*item->polyhedron()); + CGAL::Polygon_mesh_processing::orient(*item->polyhedron()); + item->invalidateOpenGLBuffers(); + scene->itemChanged(item); +} void Polyhedron_demo_polyhedron_stitching_plugin::on_actionStitchByCC_triggered() { @@ -158,4 +181,11 @@ on_actionStitchByCC_triggered(index); } } + +void Polyhedron_demo_polyhedron_stitching_plugin::on_actionMergeReversibleCCs_triggered() +{ + Q_FOREACH(int index, scene->selectionIndices()){ + on_actionMergeReversibleCCs_triggered(index); + } +} #include "Polyhedron_stitching_plugin.moc" diff -Nru cgal-5.4.1/demo/Polyhedron/Plugins/PMP/Random_perturbation_plugin.cpp cgal-5.5/demo/Polyhedron/Plugins/PMP/Random_perturbation_plugin.cpp --- cgal-5.4.1/demo/Polyhedron/Plugins/PMP/Random_perturbation_plugin.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/demo/Polyhedron/Plugins/PMP/Random_perturbation_plugin.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -108,13 +108,13 @@ { unsigned int seed = static_cast(ui.seed_spinbox->value()); PMP::random_perturbation(pmesh, max_move, - PMP::parameters::do_project(project) + CGAL::parameters::do_project(project) .random_seed(seed)); } else { PMP::random_perturbation(pmesh, max_move, - PMP::parameters::do_project(project)); + CGAL::parameters::do_project(project)); } poly_item->invalidateOpenGLBuffers(); @@ -141,7 +141,7 @@ selection_item->selected_vertices, pmesh, max_move, - PMP::parameters::do_project(project) + CGAL::parameters::do_project(project) .random_seed(seed)); } else @@ -152,7 +152,7 @@ selection_item->selected_vertices, pmesh, max_move, - PMP::parameters::do_project(project)); + CGAL::parameters::do_project(project)); } selection_item->invalidateOpenGLBuffers(); diff -Nru cgal-5.4.1/demo/Polyhedron/Plugins/PMP/Repair_polyhedron_plugin.cpp cgal-5.5/demo/Polyhedron/Plugins/PMP/Repair_polyhedron_plugin.cpp --- cgal-5.4.1/demo/Polyhedron/Plugins/PMP/Repair_polyhedron_plugin.cpp 2022-01-18 09:58:55.000000000 +0000 +++ cgal-5.5/demo/Polyhedron/Plugins/PMP/Repair_polyhedron_plugin.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -18,8 +18,10 @@ #include #include #include +#include #include "ui_RemoveNeedlesDialog.h" +#include "ui_SelfSnapDialog.h" #include #include #include @@ -53,6 +55,7 @@ actionAutorefine = new QAction(tr("Autorefine Mesh"), mw); actionAutorefineAndRMSelfIntersections = new QAction(tr("Autorefine and Remove Self-Intersections"), mw); actionRemoveNeedlesAndCaps = new QAction(tr("Remove Needles And Caps")); + actionSnapBorders = new QAction(tr("Snap Boundaries")); actionRemoveIsolatedVertices->setObjectName("actionRemoveIsolatedVertices"); actionRemoveDegenerateFaces->setObjectName("actionRemoveDegenerateFaces"); @@ -64,6 +67,7 @@ actionAutorefine->setObjectName("actionAutorefine"); actionAutorefineAndRMSelfIntersections->setObjectName("actionAutorefineAndRMSelfIntersections"); actionRemoveNeedlesAndCaps->setObjectName("actionRemoveNeedlesAndCaps"); + actionSnapBorders->setObjectName("actionSnapBorders"); actionRemoveDegenerateFaces->setProperty("subMenuName", "Polygon Mesh Processing/Repair/Experimental"); actionStitchCloseBorderHalfedges->setProperty("subMenuName", "Polygon Mesh Processing/Repair/Experimental"); @@ -74,7 +78,7 @@ actionMergeDuplicatedVerticesOnBoundaryCycles->setProperty("subMenuName", "Polygon Mesh Processing/Repair"); actionAutorefine->setProperty("subMenuName", "Polygon Mesh Processing/Repair/Experimental"); actionAutorefineAndRMSelfIntersections->setProperty("subMenuName", "Polygon Mesh Processing/Repair/Experimental"); - actionRemoveNeedlesAndCaps->setProperty("subMenuName", "Polygon Mesh Processing/Repair/Experimental"); + actionSnapBorders->setProperty("subMenuName", "Polygon Mesh Processing/Repair/Experimental"); autoConnectActions(); } @@ -90,7 +94,8 @@ << actionMergeDuplicatedVerticesOnBoundaryCycles << actionAutorefine << actionAutorefineAndRMSelfIntersections - << actionRemoveNeedlesAndCaps; + << actionRemoveNeedlesAndCaps + << actionSnapBorders; } bool applicable(QAction*) const @@ -128,6 +133,7 @@ void on_actionAutorefine_triggered(); void on_actionAutorefineAndRMSelfIntersections_triggered(); void on_actionRemoveNeedlesAndCaps_triggered(); + void on_actionSnapBorders_triggered(); private: QAction* actionRemoveIsolatedVertices; @@ -140,6 +146,7 @@ QAction* actionAutorefine; QAction* actionAutorefineAndRMSelfIntersections; QAction* actionRemoveNeedlesAndCaps; + QAction* actionSnapBorders; Messages_interface* messages; }; // end Polyhedron_demo_repair_polyhedron_plugin @@ -196,6 +203,148 @@ sm_item->itemChanged(); } +void Polyhedron_demo_repair_polyhedron_plugin::on_actionSnapBorders_triggered() +{ + const Scene_interface::Item_id index = scene->mainSelectionIndex(); + Scene_surface_mesh_item* sm_item = qobject_cast(scene->item(index)); + if(!sm_item) + { + return; + } + + + QDialog dialog; + Ui::SelfSnapDialog ui; + ui.setupUi(&dialog); + connect(ui.use_local_tolerance, SIGNAL(toggled(bool)), + ui.tolerances, SLOT(setDisabled(bool))); + + if(dialog.exec() != QDialog::Accepted) + return; + + QCursor tmp_cursor(Qt::WaitCursor); + CGAL::Three::Three::CursorScopeGuard guard(tmp_cursor); + + typedef Scene_surface_mesh_item::Face_graph Face_graph; + Face_graph& tm = *sm_item->face_graph(); + typedef boost::graph_traits::halfedge_descriptor halfedge_descriptor; + typedef boost::graph_traits::vertex_descriptor vertex_descriptor; + + CGAL::Polygon_mesh_processing::stitch_borders(tm); +#if 1 +/// detection of non-manifold parts + std::map< std::pair, std::vector > edges; + for(halfedge_descriptor h : halfedges(tm)) + { + if (is_border(h,tm)) + edges[CGAL::make_sorted_pair(tm.point(target(h,tm)), tm.point(source(h,tm)))].push_back(h); + } + + std::vector fccs(num_faces(tm),-1); + int nbcc = CGAL::Polygon_mesh_processing::connected_components(tm, CGAL::make_property_map(fccs)); + //this has to be done per cycle so as to keep 2 patches + // remove the smallest CCs + std::vector cc_sizes(nbcc, 0); + for(int i : fccs) + cc_sizes[i]+=1; + std::set ccs_to_rm; + for (auto p : edges) + if (p.second.size() >= 2) + for(halfedge_descriptor h : p.second) + { + int ccid = fccs[face(opposite(h, tm),tm)]; + if ( cc_sizes[ccid]<=4 ) + ccs_to_rm.insert(ccid); + } + std::cout << "removing " << ccs_to_rm.size() << " ccs\n"; + CGAL::Polygon_mesh_processing::remove_connected_components(tm, ccs_to_rm, CGAL::make_property_map(fccs)); + std::cout << "input is valid after cc removal:"<< CGAL::is_valid_polygon_mesh(tm) << "\n"; +/// +#endif + + if (ui.use_local_tolerance->isChecked()) + { + CGAL::Polygon_mesh_processing::experimental::snap_borders(tm, CGAL::parameters::do_simplify_border(ui.do_simplify_border->isChecked())); + CGAL::Polygon_mesh_processing::stitch_borders(tm); + CGAL::Polygon_mesh_processing::duplicate_non_manifold_vertices(tm); + } + else + { + std::vector tolerances/* = 0.005, 0.0125, 0.025, 0.05, 0.07 */; + bool ok; + Q_FOREACH(QString tol_text, ui.tolerances->text().split(",")) + { + double d = tol_text.toDouble(&ok); + if (ok) + tolerances.push_back(d); + else + QMessageBox(QMessageBox::Warning, + QString("Invalid value"), + QString("\""+tol_text+"\" is not a valid double, ignored."), + QMessageBox::Ok, + this->mw).exec(); + } + + for (double tol : tolerances ) + { + std::cout << "using tol = " << tol << "\n"; + CGAL::Constant_property_map tolerance_map(tol); + CGAL::Polygon_mesh_processing::experimental::snap_borders(tm, tolerance_map, CGAL::parameters::do_simplify_border(ui.do_simplify_border->isChecked())); + + CGAL::Polygon_mesh_processing::stitch_borders(tm); + CGAL::Polygon_mesh_processing::duplicate_non_manifold_vertices(tm); + + // post processing + std::vector remaining_cycles; + CGAL::Polygon_mesh_processing::extract_boundary_cycles(tm, std::back_inserter(remaining_cycles)); + + int tested=0, done=0; + for (halfedge_descriptor hc : remaining_cycles) + { + if (next(next(hc,tm),tm)==prev(hc,tm)) + { + ++tested; + //get smallest halfedge + halfedge_descriptor hm = hc; + double min_l = CGAL::Polygon_mesh_processing::edge_length(hc, tm); + + double el = CGAL::Polygon_mesh_processing::edge_length(next(hc, tm), tm); + if (eltol) + continue; + if (!CGAL::Euler::does_satisfy_link_condition(edge(hm, tm), tm)) + { + // simply fill the face + std::array vr = { source(hm, tm), target(hm, tm), target(next(hm, tm), tm) }; + CGAL::Euler::add_face(vr, tm); + continue; + } + + std::array vr = { source(hm, tm), target(hm, tm), target(next(hm, tm), tm) }; + CGAL::Euler::add_face(vr, tm); + CGAL::Euler::collapse_edge(edge(hm, tm), tm); + ++done; + } + } + } + } + CGAL::Polygon_mesh_processing::duplicate_non_manifold_vertices(tm); + + sm_item->invalidateOpenGLBuffers(); + sm_item->itemChanged(); +} + template void Polyhedron_demo_repair_polyhedron_plugin::on_actionRemoveDegenerateFaces_triggered(Scene_interface::Item_id index) { @@ -231,7 +380,7 @@ { bool solved = CGAL::Polygon_mesh_processing::experimental::remove_self_intersections( - *poly_item->polyhedron()); + *poly_item->polyhedron(), CGAL::parameters::preserve_genus(false)); if (!solved) CGAL::Three::Three::information(tr("Some self-intersection could not be fixed")); poly_item->invalidateOpenGLBuffers(); diff -Nru cgal-5.4.1/demo/Polyhedron/Plugins/PMP/Scene_facegraph_item_k_ring_selection.h cgal-5.5/demo/Polyhedron/Plugins/PMP/Scene_facegraph_item_k_ring_selection.h --- cgal-5.4.1/demo/Polyhedron/Plugins/PMP/Scene_facegraph_item_k_ring_selection.h 2022-06-03 19:05:17.000000000 +0000 +++ cgal-5.5/demo/Polyhedron/Plugins/PMP/Scene_facegraph_item_k_ring_selection.h 2022-07-13 19:06:11.000000000 +0000 @@ -280,7 +280,7 @@ //std::vector cc; std::size_t nb_cc = CGAL::Polygon_mesh_processing::connected_components(poly , fccmap - , CGAL::Polygon_mesh_processing::parameters::edge_is_constrained_map(spmap)); + , CGAL::parameters::edge_is_constrained_map(spmap)); std::vector is_cc_done(nb_cc, false); for(fg_face_descriptor f : face_sel) diff -Nru cgal-5.4.1/demo/Polyhedron/Plugins/PMP/Selection_plugin.cpp cgal-5.5/demo/Polyhedron/Plugins/PMP/Selection_plugin.cpp --- cgal-5.4.1/demo/Polyhedron/Plugins/PMP/Selection_plugin.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/demo/Polyhedron/Plugins/PMP/Selection_plugin.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -394,7 +394,7 @@ if (dialog.exec() != QDialog::Accepted) return; - boost::unordered_map is_selected_map; + std::unordered_map is_selected_map; for(fg_face_descriptor fh : faces(*selection_item->polyhedron())) { if(selection_item->selected_facets.find(fh) @@ -752,7 +752,7 @@ print_message("Error: Please select a selection item with a selection of faces."); return; } - boost::unordered_map is_selected_map; + std::unordered_map is_selected_map; int index = 0; for(fg_face_descriptor fh : faces(*selection_item->polyhedron())) { @@ -1171,7 +1171,7 @@ Ui::Selection ui_widget; std::map operations_map; std::vector operations_strings; -typedef boost::unordered_map Selection_item_map; + typedef std::unordered_map Selection_item_map; Selection_item_map selection_item_map; int last_mode; bool from_plugin; @@ -1189,7 +1189,7 @@ // compute self-intersections CGAL::Polygon_mesh_processing::self_intersections (*mesh, std::back_inserter(faces), - CGAL::Polygon_mesh_processing::parameters::vertex_point_map(get(CGAL::vertex_point, *mesh))); + CGAL::parameters::vertex_point_map(get(CGAL::vertex_point, *mesh))); std::cout << "ok (" << faces.size() << " triangle pair(s))" << std::endl; return !faces.empty(); diff -Nru cgal-5.4.1/demo/Polyhedron/Plugins/PMP/SelfSnapDialog.ui cgal-5.5/demo/Polyhedron/Plugins/PMP/SelfSnapDialog.ui --- cgal-5.4.1/demo/Polyhedron/Plugins/PMP/SelfSnapDialog.ui 1970-01-01 00:00:00.000000000 +0000 +++ cgal-5.5/demo/Polyhedron/Plugins/PMP/SelfSnapDialog.ui 2022-06-13 09:15:37.000000000 +0000 @@ -0,0 +1,91 @@ + + + SelfSnapDialog + + + + 0 + 0 + 413 + 179 + + + + Dialog + + + + + + Use Local Tolerance + + + + + + + Fixed Snapping (comma separate values for several runs): + + + + + + + + + + Collapse Edges Before Snap + + + true + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + + + + buttonBox + accepted() + SelfSnapDialog + accept() + + + 248 + 254 + + + 157 + 274 + + + + + buttonBox + rejected() + SelfSnapDialog + reject() + + + 316 + 260 + + + 286 + 274 + + + + + diff -Nru cgal-5.4.1/demo/Polyhedron/Plugins/PMP/Smoothing_plugin.cpp cgal-5.5/demo/Polyhedron/Plugins/PMP/Smoothing_plugin.cpp --- cgal-5.4.1/demo/Polyhedron/Plugins/PMP/Smoothing_plugin.cpp 2022-01-18 09:58:55.000000000 +0000 +++ cgal-5.5/demo/Polyhedron/Plugins/PMP/Smoothing_plugin.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -8,14 +8,16 @@ #include #include -#include +#include #include +#include #include "Scene.h" #include "Scene_surface_mesh_item.h" #include "Scene_polyhedron_selection_item.h" #include "ui_Smoothing_plugin.h" +#include "ui_Smoothing_tangential_relaxation.h" #include #include @@ -69,11 +71,15 @@ connect(ui_widget.mesh_smoothing_button, SIGNAL(clicked()), this, SLOT(on_mesh_smoothing_clicked())); connect(ui_widget.shape_smoothing_button, SIGNAL(clicked()), this, SLOT(on_shape_smoothing_clicked())); + + actionRelax_ = new QAction(tr("Tangential Relaxation"), mw); + actionRelax_->setProperty("subMenuName", "Polygon Mesh Processing"); + connect(actionRelax_, SIGNAL(triggered()), this, SLOT(tangential_relaxation_action())); } QList actions() const { - return QList() << actionSmoothing_; + return QList() << actionSmoothing_ << actionRelax_; } bool applicable(QAction*) const @@ -127,6 +133,23 @@ } } + Ui::Tangential_relaxation_dialog + relaxation_dialog(QDialog* dialog) + { + Ui::Tangential_relaxation_dialog ui; + ui.setupUi(dialog); + connect(ui.buttonBox, SIGNAL(accepted()), dialog, SLOT(accept())); + connect(ui.buttonBox, SIGNAL(rejected()), dialog, SLOT(reject())); + + ui.nbIterations_spinbox->setSingleStep(1); + ui.nbIterations_spinbox->setRange(1/*min*/, 1000/*max*/); + ui.nbIterations_spinbox->setValue(1); + + ui.smooth1D_checkbox->setChecked(true); + + return ui; + } + public Q_SLOTS: void smoothing_action() { @@ -145,6 +168,85 @@ } } + void tangential_relaxation_action() + { + const Scene_interface::Item_id index = scene->mainSelectionIndex(); + + Scene_facegraph_item* poly_item = + qobject_cast(scene->item(index)); + Scene_polyhedron_selection_item* selection_item = + qobject_cast(scene->item(index)); + + if (poly_item || selection_item) + { + if (selection_item && selection_item->selected_facets.empty()) + { + QMessageBox::warning(mw, "Empty Facets", "There are no selected facets. Aborting."); + return; + } + // Create dialog box + QDialog dialog(mw); + Ui::Tangential_relaxation_dialog ui = relaxation_dialog(&dialog); + + // Get values + int i = dialog.exec(); + if (i == QDialog::Rejected) + { + std::cout << "Tangential relaxation aborted" << std::endl; + return; + } + + unsigned int nb_iter = ui.nbIterations_spinbox->value(); + bool smooth_features = ui.smooth1D_checkbox->isChecked(); + + // wait cursor + QApplication::setOverrideCursor(Qt::WaitCursor); + QElapsedTimer time; + time.start(); + + FaceGraph& pmesh = (poly_item != nullptr) + ? *poly_item->polyhedron() + : *selection_item->polyhedron(); + + if (selection_item) + { + boost::unordered_set vset; + for (face_descriptor f : selection_item->selected_facets) + { + for(vertex_descriptor fv : CGAL::vertices_around_face(halfedge(f, pmesh), pmesh)) + vset.insert(fv); + } + + CGAL::Polygon_mesh_processing::tangential_relaxation( + vset, + pmesh, + CGAL::Polygon_mesh_processing::parameters::number_of_iterations(nb_iter) + .edge_is_constrained_map(selection_item->constrained_edges_pmap()) + .vertex_is_constrained_map(selection_item->constrained_vertices_pmap()) + .relax_constraints(smooth_features)); + selection_item->polyhedron_item()->invalidateOpenGLBuffers(); + Q_EMIT selection_item->polyhedron_item()->itemChanged(); + selection_item->invalidateOpenGLBuffers(); + selection_item->setKeepSelectionValid(Scene_polyhedron_selection_item::None); + } + else if (poly_item) + { + CGAL::Polygon_mesh_processing::tangential_relaxation( + vertices(pmesh), + pmesh, + CGAL::Polygon_mesh_processing::parameters::number_of_iterations(nb_iter)); + + poly_item->invalidateOpenGLBuffers(); + Q_EMIT poly_item->itemChanged(); + } + + std::cout << "ok (" << time.elapsed() << " ms)" << std::endl; + } + + // default cursor + QApplication::restoreOverrideCursor(); + } + void on_mesh_smoothing_clicked() { const Scene_interface::Item_id index = scene->mainSelectionIndex(); @@ -175,7 +277,7 @@ if(poly_item) { - smooth_mesh(pmesh, parameters::do_project(projection) + angle_and_area_smoothing(pmesh, parameters::do_project(projection) .number_of_iterations(nb_iter) .vertex_is_constrained_map(vcmap) .use_safety_constraints(use_safety_measures) @@ -193,7 +295,7 @@ // No faces selected --> use all faces if(std::begin(selection_item->selected_facets) == std::end(selection_item->selected_facets)) { - smooth_mesh(pmesh, parameters::do_project(projection) + angle_and_area_smoothing(pmesh, parameters::do_project(projection) .number_of_iterations(nb_iter) .vertex_is_constrained_map(vcmap) .edge_is_constrained_map(selection_item->constrained_edges_pmap()) @@ -204,7 +306,7 @@ } else // some faces exist in the selection { - smooth_mesh(selection_item->selected_facets, pmesh, parameters::do_project(projection) + angle_and_area_smoothing(selection_item->selected_facets, pmesh, parameters::do_project(projection) .number_of_iterations(nb_iter) .vertex_is_constrained_map(vcmap) .edge_is_constrained_map(selection_item->constrained_edges_pmap()) @@ -284,6 +386,7 @@ private: QAction* actionSmoothing_; + QAction* actionRelax_; QDockWidget* dock_widget; Ui::Smoothing ui_widget; }; diff -Nru cgal-5.4.1/demo/Polyhedron/Plugins/PMP/Smoothing_tangential_relaxation.ui cgal-5.5/demo/Polyhedron/Plugins/PMP/Smoothing_tangential_relaxation.ui --- cgal-5.4.1/demo/Polyhedron/Plugins/PMP/Smoothing_tangential_relaxation.ui 1970-01-01 00:00:00.000000000 +0000 +++ cgal-5.5/demo/Polyhedron/Plugins/PMP/Smoothing_tangential_relaxation.ui 2022-06-13 09:15:37.000000000 +0000 @@ -0,0 +1,177 @@ + + + Tangential_relaxation_dialog + + + true + + + + 0 + 0 + 376 + 206 + + + + Isotropic remeshing criteria + + + + + + + 15 + 75 + true + + + + NO OBJECT + + + + + + + No size + + + + + + + Tangential Relaxation + + + + + + Number of iterations + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + nbIterations_spinbox + + + + + + + + 110 + 0 + + + + 1 + + + + + + + Allow 1D relaxation + (along borders/constraints) + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + Qt::Vertical + + + QSizePolicy::Maximum + + + + 20 + 40 + + + + + + + + + + + + + + + + + + Qt::Vertical + + + QSizePolicy::MinimumExpanding + + + + 0 + 0 + + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + + nbIterations_spinbox + smooth1D_checkbox + + + + + buttonBox + accepted() + Tangential_relaxation_dialog + accept() + + + 397 + 333 + + + 157 + 195 + + + + + buttonBox + rejected() + Tangential_relaxation_dialog + reject() + + + 397 + 333 + + + 286 + 195 + + + + + diff -Nru cgal-5.4.1/demo/Polyhedron/Plugins/PMP/Surface_intersection_plugin.cpp cgal-5.5/demo/Polyhedron/Plugins/PMP/Surface_intersection_plugin.cpp --- cgal-5.4.1/demo/Polyhedron/Plugins/PMP/Surface_intersection_plugin.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/demo/Polyhedron/Plugins/PMP/Surface_intersection_plugin.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -137,7 +137,7 @@ PMP::surface_intersection(*itemA->polyhedron(), *itemB->polyhedron(), std::back_inserter(new_item->polylines), - PMP::parameters::throw_on_self_intersection(true)); + CGAL::parameters::throw_on_self_intersection(true)); } catch(const CGAL::Polygon_mesh_processing::Corefinement::Self_intersection_exception&) { @@ -311,7 +311,7 @@ polylines, *itemA->face_graph(), std::back_inserter(poly_intersections), - CGAL::Polygon_mesh_processing::parameters::all_default()); + CGAL::parameters::default_values()); Q_FOREACH(const Poly_intersection& inter, poly_intersections) { diff -Nru cgal-5.4.1/demo/Polyhedron/Plugins/PMP/Triangulate_facets_plugin.cpp cgal-5.5/demo/Polyhedron/Plugins/PMP/Triangulate_facets_plugin.cpp --- cgal-5.4.1/demo/Polyhedron/Plugins/PMP/Triangulate_facets_plugin.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/demo/Polyhedron/Plugins/PMP/Triangulate_facets_plugin.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -103,7 +103,7 @@ if (!CGAL::Polygon_mesh_processing::triangulate_faces( selection_item->selected_facets, *pMesh, - CGAL::Polygon_mesh_processing::parameters::visitor(visitor))) + CGAL::parameters::visitor(visitor))) CGAL::Three::Three::warning(tr("Some facets could not be triangulated.")); sm_item = selection_item->polyhedron_item(); diff -Nru cgal-5.4.1/demo/Polyhedron/Plugins/Point_set/Point_set_simplification_plugin.cpp cgal-5.5/demo/Polyhedron/Plugins/Point_set/Point_set_simplification_plugin.cpp --- cgal-5.4.1/demo/Polyhedron/Plugins/Point_set/Point_set_simplification_plugin.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/demo/Polyhedron/Plugins/Point_set/Point_set_simplification_plugin.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -49,17 +49,20 @@ { Point_set* points; double grid_size; + unsigned int min_points_per_cell; boost::shared_ptr result; - Grid_simplify_functor (Point_set* points, double grid_size) - : points (points), grid_size (grid_size), result (new Point_set::iterator) { } + Grid_simplify_functor (Point_set* points, double grid_size, unsigned min_points_per_cell) + : points (points), grid_size (grid_size), min_points_per_cell(min_points_per_cell) + , result (new Point_set::iterator) { } void operator()() { *result = CGAL::grid_simplify_point_set(*points, grid_size, points->parameters(). - callback (*(this->callback()))); + callback (*(this->callback())). + min_points_per_cell (min_points_per_cell)); } }; @@ -144,6 +147,7 @@ } double randomSimplificationPercentage() const { return m_randomSimplificationPercentage->value(); } double gridCellSize() const { return m_gridCellSize->value(); } + unsigned int minPointsPerCell() const { return m_minPointsPerCell->value(); } unsigned int maximumClusterSize() const { return m_maximumClusterSize->value(); } double maximumSurfaceVariation() const { return m_maximumSurfaceVariation->value(); } @@ -153,6 +157,7 @@ { m_randomSimplificationPercentage->setEnabled (toggled); m_gridCellSize->setEnabled (!toggled); + m_minPointsPerCell->setEnabled (!toggled); m_maximumClusterSize->setEnabled (!toggled); m_maximumSurfaceVariation->setEnabled (!toggled); } @@ -160,6 +165,7 @@ { m_randomSimplificationPercentage->setEnabled (!toggled); m_gridCellSize->setEnabled (toggled); + m_minPointsPerCell->setEnabled (toggled); m_maximumClusterSize->setEnabled (!toggled); m_maximumSurfaceVariation->setEnabled (!toggled); } @@ -167,6 +173,7 @@ { m_randomSimplificationPercentage->setEnabled (!toggled); m_gridCellSize->setEnabled (!toggled); + m_minPointsPerCell->setEnabled (!toggled); m_maximumClusterSize->setEnabled (toggled); m_maximumSurfaceVariation->setEnabled (toggled); } @@ -211,7 +218,8 @@ } else if (method == 1) { - std::cerr << "Point set grid simplification (cell size = " << dialog.gridCellSize() <<" * average spacing)...\n"; + std::cerr << "Point set grid simplification (cell size = " << dialog.gridCellSize() <<" * average spacing, " + << dialog.minPointsPerCell() << " minimum point(s) per cell)" << std::endl; // Computes average spacing Compute_average_spacing_functor functor_as (points, 6); @@ -219,7 +227,7 @@ double average_spacing = *functor_as.result; - Grid_simplify_functor functor (points, dialog.gridCellSize() * average_spacing); + Grid_simplify_functor functor (points, dialog.gridCellSize() * average_spacing, dialog.minPointsPerCell()); run_with_qprogressdialog (functor, "Grid simplyfing...", mw); // Computes points to remove by Grid Clustering diff -Nru cgal-5.4.1/demo/Polyhedron/Plugins/Point_set/Point_set_simplification_plugin.ui cgal-5.5/demo/Polyhedron/Plugins/Point_set/Point_set_simplification_plugin.ui --- cgal-5.4.1/demo/Polyhedron/Plugins/Point_set/Point_set_simplification_plugin.ui 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/demo/Polyhedron/Plugins/Point_set/Point_set_simplification_plugin.ui 2022-06-13 09:15:37.000000000 +0000 @@ -6,51 +6,28 @@ 0 0 - 392 - 249 + 361 + 286 Simplification - - + + - Random - - - true + 0.333333 - - + + false - - 1 - - - 2147483647 - - - 10 - - - - - - - Grid Cell Size - - - - - - % + * average spacing 2 @@ -59,49 +36,58 @@ 0.100000000000000 - 100.000000000000000 + 10.000000000000000 0.100000000000000 - 50.000000000000000 + 1.000000000000000 - - + + - Maximum Surface Variation + Grid - - - - false - - - * average spacing + + + + Random - - 2 + + true - - 0.100000000000000 + + + + + + Grid Cell Size - - 10.000000000000000 + + + + + + Qt::Horizontal - - 0.100000000000000 + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok - - 1.000000000000000 + + + + + + Hierarchy - + Qt::Vertical @@ -114,13 +100,36 @@ - + Maximum Cluster Size + + + + false + + + 1 + + + 2147483647 + + + 10 + + + + + + + Maximum Surface Variation + + + @@ -128,34 +137,45 @@ - - - - Grid + + + + % + + + 2 + + + 0.100000000000000 + + + 100.000000000000000 + + + 0.100000000000000 + + + 50.000000000000000 - + - Hierarchy + Minimum points per cell - - - - Qt::Horizontal + + + + false - - QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + 1 - - - - - - 0.333333 + + 400000000 diff -Nru cgal-5.4.1/demo/Polyhedron/Plugins/Surface_mesh/Parameterization_plugin.cpp cgal-5.5/demo/Polyhedron/Plugins/Surface_mesh/Parameterization_plugin.cpp --- cgal-5.4.1/demo/Polyhedron/Plugins/Surface_mesh/Parameterization_plugin.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/demo/Polyhedron/Plugins/Surface_mesh/Parameterization_plugin.cpp 2022-07-01 19:00:06.000000000 +0000 @@ -37,16 +37,14 @@ #include #include - -#include -#include #include #include #include #include #include - +#include +#include #include #include @@ -63,7 +61,7 @@ namespace SMP = CGAL::Surface_mesh_parameterization; -typedef boost::unordered_set::face_descriptor> Component; +typedef std::unordered_set::face_descriptor> Component; typedef std::vector Components; struct Is_selected_property_map{ @@ -209,11 +207,11 @@ typedef boost::graph_traits::edges_size_type s_edges_size_type; -typedef boost::unordered_set:: +typedef std::unordered_set:: face_descriptor> Component; typedef std::vector Components; -typedef boost::unordered_set SComponent; +typedef std::unordered_set SComponent; typedef std::vector SComponents; class UVItem : public QGraphicsItem @@ -495,14 +493,14 @@ void parameterize(Parameterization_method method); private: - Messages_interface *messages; + Messages_interface *messages = nullptr; QList _actions; - QDockWidget* dock_widget; + QDockWidget* dock_widget = nullptr; Ui::Parameterization ui_widget; QGraphicsScene *graphics_scene; - Navigation* navigation; + Navigation* navigation = nullptr; QMap projections; - UVItem* current_uv_item; + UVItem* current_uv_item = nullptr; }; // end Polyhedron_demo_parameterization_plugin void Polyhedron_demo_parameterization_plugin::on_prevButton_pressed() @@ -665,7 +663,7 @@ } // map the cones from the selection plugin to the textured polyhedron - boost::unordered_set unordered_cones; + std::unordered_set unordered_cones; if(method == PARAM_OTE) { for(P_vertex_descriptor vd : sel_item->selected_vertices) { boost::graph_traits::vertex_descriptor pvd(vd); @@ -698,7 +696,7 @@ CGAL::Polygon_mesh_processing::connected_components( tMesh, fccmap, - CGAL::Polygon_mesh_processing::parameters::edge_is_constrained_map( + CGAL::parameters::edge_is_constrained_map( edge_pmap)); // Next is the gathering of the border halfedges of the connected component. @@ -736,7 +734,7 @@ // find longest border in the connected component s_halfedge_descriptor bhd; // a halfedge on the (possibly virtual) border - boost::unordered_set visited; + std::unordered_set visited; FT result_len = 0; for(s_halfedge_descriptor hd : border) { @@ -877,7 +875,7 @@ Parameterizer parameterizer(orb); // Mark cones in the seam mesh - boost::unordered_map cmap; + std::unordered_map cmap; if(!SMP::locate_unordered_cones(sMesh, unordered_cones.begin(), unordered_cones.end(), cmap)) { std::cerr << "Error: invalid cone or seam selection" << std::endl; @@ -888,7 +886,7 @@ QApplication::setOverrideCursor(Qt::WaitCursor); // Fill the index property map - typedef boost::unordered_map Indices; + typedef std::unordered_map Indices; Indices indices; CGAL::Polygon_mesh_processing::connected_component( face(opposite(bhd, sMesh), sMesh), diff -Nru cgal-5.4.1/demo/Polyhedron/Plugins/Surface_mesh_deformation/Edit_polyhedron_plugin.cpp cgal-5.5/demo/Polyhedron/Plugins/Surface_mesh_deformation/Edit_polyhedron_plugin.cpp --- cgal-5.4.1/demo/Polyhedron/Plugins/Surface_mesh_deformation/Edit_polyhedron_plugin.cpp 2022-01-18 09:58:55.000000000 +0000 +++ cgal-5.5/demo/Polyhedron/Plugins/Surface_mesh_deformation/Edit_polyhedron_plugin.cpp 2022-07-01 19:00:06.000000000 +0000 @@ -79,11 +79,11 @@ void updateSelectionItems(Scene_facegraph_item* target); Ui::DeformMesh ui_widget; - QDockWidget* dock_widget; + QDockWidget* dock_widget = nullptr; - QAction* actionDeformation; + QAction* actionDeformation = nullptr; RenderingMode last_RM; - QShortcut* e_shortcut; + QShortcut* e_shortcut = nullptr; }; // end Polyhedron_demo_edit_polyhedron_plugin QList Polyhedron_demo_edit_polyhedron_plugin::actions() const { diff -Nru cgal-5.4.1/demo/Polyhedron/Plugins/Surface_mesh_deformation/Scene_edit_polyhedron_item.cpp cgal-5.5/demo/Polyhedron/Plugins/Surface_mesh_deformation/Scene_edit_polyhedron_item.cpp --- cgal-5.4.1/demo/Polyhedron/Plugins/Surface_mesh_deformation/Scene_edit_polyhedron_item.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/demo/Polyhedron/Plugins/Surface_mesh_deformation/Scene_edit_polyhedron_item.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -671,7 +671,7 @@ roi_facets , target_length , *mesh - , CGAL::Polygon_mesh_processing::parameters::number_of_iterations(nb_iter) + , CGAL::parameters::number_of_iterations(nb_iter) .protect_constraints(false) .vertex_point_map(vpmap) .edge_is_constrained_map(border_pmap) diff -Nru cgal-5.4.1/demo/Polyhedron/Plugins/Three_examples/CMakeLists.txt cgal-5.5/demo/Polyhedron/Plugins/Three_examples/CMakeLists.txt --- cgal-5.4.1/demo/Polyhedron/Plugins/Three_examples/CMakeLists.txt 2022-01-18 09:58:55.000000000 +0000 +++ cgal-5.5/demo/Polyhedron/Plugins/Three_examples/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.1...3.20) +cmake_minimum_required(VERSION 3.1...3.23) project(Three_examples) if(NOT POLICY CMP0070 AND POLICY CMP0053) diff -Nru cgal-5.4.1/demo/Polyhedron/Scene_polygon_soup_item.cpp cgal-5.5/demo/Polyhedron/Scene_polygon_soup_item.cpp --- cgal-5.4.1/demo/Polyhedron/Scene_polygon_soup_item.cpp 2022-05-13 19:00:10.000000000 +0000 +++ cgal-5.5/demo/Polyhedron/Scene_polygon_soup_item.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -900,7 +900,7 @@ CGAL::Polygon_mesh_processing::repair_polygon_soup( d->soup->points, d->soup->polygons, - CGAL::Polygon_mesh_processing::parameters:: + CGAL::parameters:: erase_all_duplicates(erase_dup) .require_same_orientation(req_same_orientation)); QApplication::restoreOverrideCursor(); diff -Nru cgal-5.4.1/demo/Polyhedron/Scene_polyhedron_selection_item.cpp cgal-5.5/demo/Polyhedron/Scene_polyhedron_selection_item.cpp --- cgal-5.4.1/demo/Polyhedron/Scene_polyhedron_selection_item.cpp 2022-01-18 09:58:55.000000000 +0000 +++ cgal-5.5/demo/Polyhedron/Scene_polyhedron_selection_item.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -12,8 +12,6 @@ #include #include -#include -#include #include #include #include @@ -27,6 +25,8 @@ #include #include #include +#include +#include #include "triangulate_primitive.h" #include @@ -77,12 +77,9 @@ struct Scene_polyhedron_selection_item_priv{ typedef Scene_facegraph_item_k_ring_selection::Active_handle Active_handle; - typedef boost::unordered_set Selection_set_vertex; - typedef boost::unordered_set Selection_set_facet; - typedef boost::unordered_set Selection_set_edge; + typedef std::unordered_set Selection_set_vertex; + typedef std::unordered_set Selection_set_facet; + typedef std::unordered_set Selection_set_edge; struct vertex_on_path { fg_vertex_descriptor vertex; @@ -322,7 +319,7 @@ return; VPmap vpm = get(CGAL::vertex_point,*poly); - for(Selection_set_facet::iterator + for(Selection_set_facet::const_iterator it = p_sel_facets.begin(), end = p_sel_facets.end(); it != end; it++) @@ -396,7 +393,7 @@ //The Lines { - for(Selection_set_edge::iterator it = p_sel_edges.begin(); it != p_sel_edges.end(); ++it) { + for(Selection_set_edge::const_iterator it = p_sel_edges.begin(); it != p_sel_edges.end(); ++it) { const Point& a = get(vpm, target(halfedge(*it,*poly),*poly)); const Point& b = get(vpm, target(opposite((halfedge(*it,*poly)),*poly),*poly)); p_lines.push_back(a.x()+offset.x); @@ -411,7 +408,7 @@ } //The points { - for(Selection_set_vertex::iterator + for(Selection_set_vertex::const_iterator it = p_sel_vertices.begin(), end = p_sel_vertices.end(); it != end; ++it) @@ -1528,7 +1525,7 @@ item->temp_selected_edges.clear(); path.clear(); - typedef boost::unordered_map Pred_umap; + typedef std::unordered_map Pred_umap; typedef boost::associative_property_map Pred_pmap; Pred_umap predecessor; diff -Nru cgal-5.4.1/demo/Polyhedron/Scene_polyhedron_selection_item.h cgal-5.5/demo/Polyhedron/Scene_polyhedron_selection_item.h --- cgal-5.4.1/demo/Polyhedron/Scene_polyhedron_selection_item.h 2022-06-03 19:05:20.000000000 +0000 +++ cgal-5.5/demo/Polyhedron/Scene_polyhedron_selection_item.h 2022-07-13 19:06:14.000000000 +0000 @@ -21,7 +21,7 @@ #include #include -#include +#include #include #include @@ -253,9 +253,9 @@ void set_is_insert(bool i) { is_insert = i; } public: - typedef boost::unordered_set Selection_set_vertex; - typedef boost::unordered_set Selection_set_facet; - typedef boost::unordered_set Selection_set_edge; + typedef std::unordered_set Selection_set_vertex; + typedef std::unordered_set Selection_set_facet; + typedef std::unordered_set Selection_set_edge; Vertex_selection_map vertex_selection_map() { @@ -967,8 +967,8 @@ get_face(*selection.begin()), *polyhedron(), std::back_inserter(selected_cc), - CGAL::Polygon_mesh_processing::parameters::edge_is_constrained_map( - Is_selected_property_map(mark, get(boost::edge_index,*polyhedron())))); + CGAL::parameters::edge_is_constrained_map( + Is_selected_property_map(mark, get(boost::edge_index,*polyhedron())))); treat_selection(selected_cc); } else diff -Nru cgal-5.4.1/demo/Polyhedron/Scene_surface_mesh_item.cpp cgal-5.5/demo/Polyhedron/Scene_surface_mesh_item.cpp --- cgal-5.4.1/demo/Polyhedron/Scene_surface_mesh_item.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/demo/Polyhedron/Scene_surface_mesh_item.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -51,6 +51,7 @@ #include "id_printing.h" #include #include +#include #endif typedef CGAL::Three::Triangle_container Tri; @@ -350,11 +351,16 @@ standard_constructor(sm); } -Scene_surface_mesh_item::Scene_surface_mesh_item(SMesh sm) +Scene_surface_mesh_item::Scene_surface_mesh_item(const SMesh& sm) { standard_constructor(new SMesh(sm)); } +Scene_surface_mesh_item::Scene_surface_mesh_item(SMesh&& sm) +{ + standard_constructor(new SMesh(std::move(sm))); +} + Scene_surface_mesh_item* Scene_surface_mesh_item::clone() const { return new Scene_surface_mesh_item(*this); } @@ -1549,7 +1555,7 @@ } else { - CGAL::IO::internal::write_OFF_BGL(out,*d->smesh_, CGAL::parameters::all_default()); + CGAL::IO::internal::write_OFF_BGL(out,*d->smesh_, CGAL::parameters::default_values()); } QApplication::restoreOverrideCursor(); return (bool) out; @@ -1935,8 +1941,7 @@ //compute new position and orientation EPICK::Vector_3 face_normal = CGAL::Polygon_mesh_processing:: compute_face_normal(selected_fh, - *d->smesh_, - CGAL::Polygon_mesh_processing::parameters::all_default()); + *d->smesh_); double x(0), y(0), z(0), diff -Nru cgal-5.4.1/demo/Polyhedron/Scene_surface_mesh_item.h cgal-5.5/demo/Polyhedron/Scene_surface_mesh_item.h --- cgal-5.4.1/demo/Polyhedron/Scene_surface_mesh_item.h 2022-06-03 19:05:20.000000000 +0000 +++ cgal-5.5/demo/Polyhedron/Scene_surface_mesh_item.h 2022-07-13 19:06:14.000000000 +0000 @@ -48,7 +48,8 @@ Scene_surface_mesh_item(); // Takes ownership of the argument. Scene_surface_mesh_item(SMesh*); - Scene_surface_mesh_item(SMesh); + Scene_surface_mesh_item(const SMesh&); + Scene_surface_mesh_item(SMesh&&); Scene_surface_mesh_item(const Scene_surface_mesh_item& other); ~Scene_surface_mesh_item(); diff -Nru cgal-5.4.1/demo/Polyline_simplification_2/CMakeLists.txt cgal-5.5/demo/Polyline_simplification_2/CMakeLists.txt --- cgal-5.4.1/demo/Polyline_simplification_2/CMakeLists.txt 2022-01-18 09:58:55.000000000 +0000 +++ cgal-5.5/demo/Polyline_simplification_2/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.20) +cmake_minimum_required(VERSION 3.1...3.23) project(Polyline_simplification_2_Demo) if(NOT POLICY CMP0070 AND POLICY CMP0053) diff -Nru cgal-5.4.1/demo/Polyline_simplification_2/include/CGAL/Qt/Polyline_simplification_2_graphics_item.h cgal-5.5/demo/Polyline_simplification_2/include/CGAL/Qt/Polyline_simplification_2_graphics_item.h --- cgal-5.4.1/demo/Polyline_simplification_2/include/CGAL/Qt/Polyline_simplification_2_graphics_item.h 2022-06-03 19:05:22.000000000 +0000 +++ cgal-5.5/demo/Polyline_simplification_2/include/CGAL/Qt/Polyline_simplification_2_graphics_item.h 2022-07-13 19:06:17.000000000 +0000 @@ -11,7 +11,7 @@ // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polyline_simplification_2/demo/Polyline_simplification_2/include/CGAL/Qt/Polyline_simplification_2_graphics_item.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polyline_simplification_2/demo/Polyline_simplification_2/include/CGAL/Qt/Polyline_simplification_2_graphics_item.h $ // $Id: Polyline_simplification_2_graphics_item.h 590612a 2020-03-26T13:25:16+01:00 Sébastien Loriot // // diff -Nru cgal-5.4.1/demo/Polyline_simplification_2/include/CGAL/Qt/TriangulationArrangementGraphicsItem.h cgal-5.5/demo/Polyline_simplification_2/include/CGAL/Qt/TriangulationArrangementGraphicsItem.h --- cgal-5.4.1/demo/Polyline_simplification_2/include/CGAL/Qt/TriangulationArrangementGraphicsItem.h 2022-06-03 19:05:23.000000000 +0000 +++ cgal-5.5/demo/Polyline_simplification_2/include/CGAL/Qt/TriangulationArrangementGraphicsItem.h 2022-07-13 19:06:17.000000000 +0000 @@ -11,7 +11,7 @@ // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polyline_simplification_2/demo/Polyline_simplification_2/include/CGAL/Qt/TriangulationArrangementGraphicsItem.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polyline_simplification_2/demo/Polyline_simplification_2/include/CGAL/Qt/TriangulationArrangementGraphicsItem.h $ // $Id: TriangulationArrangementGraphicsItem.h 590612a 2020-03-26T13:25:16+01:00 Sébastien Loriot // // diff -Nru cgal-5.4.1/demo/Polyline_simplification_2/Polyline_simplification_2.cpp cgal-5.5/demo/Polyline_simplification_2/Polyline_simplification_2.cpp --- cgal-5.4.1/demo/Polyline_simplification_2/Polyline_simplification_2.cpp 2022-01-18 09:59:29.000000000 +0000 +++ cgal-5.5/demo/Polyline_simplification_2/Polyline_simplification_2.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -397,7 +397,7 @@ m_pct.insert_constraint(poly.begin(), poly.end()); } } - for(Polygon_with_holes_2 poly : polygons){ + for(const Polygon_with_holes_2& poly : polygons){ m_pct.insert_constraint(poly.outer_boundary().vertices_begin(), poly.outer_boundary().vertices_end()); for(Polygon_with_holes_2::Hole_const_iterator it = poly.holes_begin(); it != poly.holes_end(); ++it){ const Polygon_2& hole = *it; diff -Nru cgal-5.4.1/demo/Principal_component_analysis/CMakeLists.txt cgal-5.5/demo/Principal_component_analysis/CMakeLists.txt --- cgal-5.4.1/demo/Principal_component_analysis/CMakeLists.txt 2022-01-18 09:58:55.000000000 +0000 +++ cgal-5.5/demo/Principal_component_analysis/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,6 +1,6 @@ # This is the CMake script for compiling the PCA demo. -cmake_minimum_required(VERSION 3.1...3.20) +cmake_minimum_required(VERSION 3.1...3.23) project(Principal_component_analysis_Demo) if(NOT POLICY CMP0070 AND POLICY CMP0053) diff -Nru cgal-5.4.1/demo/Segment_Delaunay_graph_2/CMakeLists.txt cgal-5.5/demo/Segment_Delaunay_graph_2/CMakeLists.txt --- cgal-5.4.1/demo/Segment_Delaunay_graph_2/CMakeLists.txt 2022-01-18 09:58:52.000000000 +0000 +++ cgal-5.5/demo/Segment_Delaunay_graph_2/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.20) +cmake_minimum_required(VERSION 3.1...3.23) project(Segment_Delaunay_graph_2_Demo) if(NOT POLICY CMP0070 AND POLICY CMP0053) diff -Nru cgal-5.4.1/demo/Segment_Delaunay_graph_2/svd-typedefs.h cgal-5.5/demo/Segment_Delaunay_graph_2/svd-typedefs.h --- cgal-5.4.1/demo/Segment_Delaunay_graph_2/svd-typedefs.h 2022-06-03 19:04:13.000000000 +0000 +++ cgal-5.5/demo/Segment_Delaunay_graph_2/svd-typedefs.h 2022-07-13 19:05:02.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/demo/Segment_Delaunay_graph_2/svd-typedefs.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/demo/Segment_Delaunay_graph_2/svd-typedefs.h $ // $Id: svd-typedefs.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/demo/Segment_Delaunay_graph_Linf_2/CMakeLists.txt cgal-5.5/demo/Segment_Delaunay_graph_Linf_2/CMakeLists.txt --- cgal-5.4.1/demo/Segment_Delaunay_graph_Linf_2/CMakeLists.txt 2022-01-18 09:58:52.000000000 +0000 +++ cgal-5.5/demo/Segment_Delaunay_graph_Linf_2/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.20) +cmake_minimum_required(VERSION 3.1...3.23) project(Segment_Delaunay_graph_Linf_2_Demo) if(NOT POLICY CMP0070 AND POLICY CMP0053) diff -Nru cgal-5.4.1/demo/Snap_rounding_2/CMakeLists.txt cgal-5.5/demo/Snap_rounding_2/CMakeLists.txt --- cgal-5.4.1/demo/Snap_rounding_2/CMakeLists.txt 2022-01-18 09:58:52.000000000 +0000 +++ cgal-5.5/demo/Snap_rounding_2/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.20) +cmake_minimum_required(VERSION 3.1...3.23) project(Snap_rounding_2_Demo) if(NOT POLICY CMP0070 AND POLICY CMP0053) diff -Nru cgal-5.4.1/demo/Spatial_searching_2/CMakeLists.txt cgal-5.5/demo/Spatial_searching_2/CMakeLists.txt --- cgal-5.4.1/demo/Spatial_searching_2/CMakeLists.txt 2022-01-18 09:58:52.000000000 +0000 +++ cgal-5.5/demo/Spatial_searching_2/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.20) +cmake_minimum_required(VERSION 3.1...3.23) project(Spatial_searching_2_Demo) if(NOT POLICY CMP0070 AND POLICY CMP0053) diff -Nru cgal-5.4.1/demo/Stream_lines_2/CMakeLists.txt cgal-5.5/demo/Stream_lines_2/CMakeLists.txt --- cgal-5.4.1/demo/Stream_lines_2/CMakeLists.txt 2022-01-18 09:58:52.000000000 +0000 +++ cgal-5.5/demo/Stream_lines_2/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.20) +cmake_minimum_required(VERSION 3.1...3.23) project(Stream_lines_2_Demo) if(NOT POLICY CMP0070 AND POLICY CMP0053) diff -Nru cgal-5.4.1/demo/Surface_mesh_deformation/CMakeLists.txt cgal-5.5/demo/Surface_mesh_deformation/CMakeLists.txt --- cgal-5.4.1/demo/Surface_mesh_deformation/CMakeLists.txt 2022-01-18 09:58:56.000000000 +0000 +++ cgal-5.5/demo/Surface_mesh_deformation/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.20) +cmake_minimum_required(VERSION 3.1...3.23) project(Surface_mesh_deformation_Demo) if(NOT POLICY CMP0070 AND POLICY CMP0053) diff -Nru cgal-5.4.1/demo/Triangulation_2/CMakeLists.txt cgal-5.5/demo/Triangulation_2/CMakeLists.txt --- cgal-5.4.1/demo/Triangulation_2/CMakeLists.txt 2022-01-18 09:58:52.000000000 +0000 +++ cgal-5.5/demo/Triangulation_2/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.20) +cmake_minimum_required(VERSION 3.1...3.23) project(Triangulation_2_Demo) if(NOT POLICY CMP0070 AND POLICY CMP0053) diff -Nru cgal-5.4.1/demo/Triangulation_3/CMakeLists.txt cgal-5.5/demo/Triangulation_3/CMakeLists.txt --- cgal-5.4.1/demo/Triangulation_3/CMakeLists.txt 2022-01-18 09:58:58.000000000 +0000 +++ cgal-5.5/demo/Triangulation_3/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.20) +cmake_minimum_required(VERSION 3.1...3.23) project(Triangulation_3_Demo) if(NOT POLICY CMP0070 AND POLICY CMP0053) diff -Nru cgal-5.4.1/demo/Triangulation_3/Viewer.cpp cgal-5.5/demo/Triangulation_3/Viewer.cpp --- cgal-5.4.1/demo/Triangulation_3/Viewer.cpp 2022-05-27 19:00:12.000000000 +0000 +++ cgal-5.5/demo/Triangulation_3/Viewer.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -1754,7 +1754,7 @@ { picking_pos = point; CGAL::QGLViewer::beginSelection(point); -}; +} void Viewer::endSelection(const QPoint& p) { CGAL::QGLViewer::endSelection(p); diff -Nru cgal-5.4.1/demo/Triangulation_on_sphere_2/CMakeLists.txt cgal-5.5/demo/Triangulation_on_sphere_2/CMakeLists.txt --- cgal-5.4.1/demo/Triangulation_on_sphere_2/CMakeLists.txt 2022-05-06 19:00:05.000000000 +0000 +++ cgal-5.5/demo/Triangulation_on_sphere_2/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.15) +cmake_minimum_required(VERSION 3.1...3.23) project (Triangulation_on_sphere_2_Demo) diff -Nru cgal-5.4.1/examples/AABB_tree/CMakeLists.txt cgal-5.5/examples/AABB_tree/CMakeLists.txt --- cgal-5.4.1/examples/AABB_tree/CMakeLists.txt 2022-01-18 09:59:27.000000000 +0000 +++ cgal-5.5/examples/AABB_tree/CMakeLists.txt 2022-06-13 09:15:36.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(AABB_tree_Examples) find_package(CGAL REQUIRED) diff -Nru cgal-5.4.1/examples/Advancing_front_surface_reconstruction/CMakeLists.txt cgal-5.5/examples/Advancing_front_surface_reconstruction/CMakeLists.txt --- cgal-5.4.1/examples/Advancing_front_surface_reconstruction/CMakeLists.txt 2022-01-18 09:59:27.000000000 +0000 +++ cgal-5.5/examples/Advancing_front_surface_reconstruction/CMakeLists.txt 2022-06-13 09:15:36.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Advancing_front_surface_reconstruction_Examples) find_package(CGAL REQUIRED) diff -Nru cgal-5.4.1/examples/Algebraic_foundations/CMakeLists.txt cgal-5.5/examples/Algebraic_foundations/CMakeLists.txt --- cgal-5.4.1/examples/Algebraic_foundations/CMakeLists.txt 2022-01-18 09:59:27.000000000 +0000 +++ cgal-5.5/examples/Algebraic_foundations/CMakeLists.txt 2022-06-13 09:15:36.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Algebraic_foundations_Examples) find_package(CGAL REQUIRED) diff -Nru cgal-5.4.1/examples/Algebraic_kernel_d/CMakeLists.txt cgal-5.5/examples/Algebraic_kernel_d/CMakeLists.txt --- cgal-5.4.1/examples/Algebraic_kernel_d/CMakeLists.txt 2022-01-18 09:59:27.000000000 +0000 +++ cgal-5.5/examples/Algebraic_kernel_d/CMakeLists.txt 2022-06-13 09:15:36.000000000 +0000 @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Algebraic_kernel_d_Examples) find_package(CGAL REQUIRED COMPONENTS Core) diff -Nru cgal-5.4.1/examples/Alpha_shapes_2/CMakeLists.txt cgal-5.5/examples/Alpha_shapes_2/CMakeLists.txt --- cgal-5.4.1/examples/Alpha_shapes_2/CMakeLists.txt 2022-01-18 09:59:27.000000000 +0000 +++ cgal-5.5/examples/Alpha_shapes_2/CMakeLists.txt 2022-06-13 09:15:36.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Alpha_shapes_2_Examples) find_package(CGAL REQUIRED) diff -Nru cgal-5.4.1/examples/Alpha_shapes_2/ex_alpha_shapes_2.cpp cgal-5.5/examples/Alpha_shapes_2/ex_alpha_shapes_2.cpp --- cgal-5.4.1/examples/Alpha_shapes_2/ex_alpha_shapes_2.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Alpha_shapes_2/ex_alpha_shapes_2.cpp 2022-06-13 09:15:36.000000000 +0000 @@ -6,7 +6,6 @@ #include #include -#include #include #include diff -Nru cgal-5.4.1/examples/Alpha_shapes_3/CMakeLists.txt cgal-5.5/examples/Alpha_shapes_3/CMakeLists.txt --- cgal-5.4.1/examples/Alpha_shapes_3/CMakeLists.txt 2022-01-18 09:59:27.000000000 +0000 +++ cgal-5.5/examples/Alpha_shapes_3/CMakeLists.txt 2022-06-13 09:15:36.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Alpha_shapes_3_Examples) find_package(CGAL REQUIRED) diff -Nru cgal-5.4.1/examples/Alpha_shapes_3/visible_alpha_shape_facets_to_OFF.cpp cgal-5.5/examples/Alpha_shapes_3/visible_alpha_shape_facets_to_OFF.cpp --- cgal-5.4.1/examples/Alpha_shapes_3/visible_alpha_shape_facets_to_OFF.cpp 2022-01-18 09:58:49.000000000 +0000 +++ cgal-5.5/examples/Alpha_shapes_3/visible_alpha_shape_facets_to_OFF.cpp 2022-06-13 09:15:36.000000000 +0000 @@ -8,8 +8,8 @@ #include #include -#include -#include +#include +#include typedef CGAL::Exact_predicates_inexact_constructions_kernel Gt; @@ -48,7 +48,7 @@ // collect alpha-shape facets accessible from the infinity // marks the cells that are in the same component as the infinite vertex by flooding - boost::unordered_set< Alpha_shape_3::Cell_handle > marked_cells; + std::unordered_set< Alpha_shape_3::Cell_handle > marked_cells; std::vector< Alpha_shape_3::Cell_handle > queue; queue.push_back( as.infinite_cell() ); @@ -86,7 +86,7 @@ // dump into OFF format // assign an id per vertex - boost::unordered_map< Alpha_shape_3::Vertex_handle, std::size_t> vids; + std::unordered_map< Alpha_shape_3::Vertex_handle, std::size_t> vids; points.clear(); for(Alpha_shape_3::Facet f : filtered_regular_facets) diff -Nru cgal-5.4.1/examples/Alpha_wrap_3/CMakeLists.txt cgal-5.5/examples/Alpha_wrap_3/CMakeLists.txt --- cgal-5.4.1/examples/Alpha_wrap_3/CMakeLists.txt 1970-01-01 00:00:00.000000000 +0000 +++ cgal-5.5/examples/Alpha_wrap_3/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -0,0 +1,13 @@ +# Created by the script cgal_create_cmake_script +# This is the CMake script for compiling a CGAL application. + +cmake_minimum_required(VERSION 3.1...3.23) +project(Alpha_wrap_3_Examples) + +find_package(CGAL REQUIRED) + +# create a target per cppfile +create_single_source_cgal_program("triangle_mesh_wrap.cpp") +create_single_source_cgal_program("point_set_wrap.cpp") +create_single_source_cgal_program("wrap_from_cavity.cpp") +create_single_source_cgal_program("mixed_inputs_wrap.cpp") diff -Nru cgal-5.4.1/examples/Alpha_wrap_3/mixed_inputs_wrap.cpp cgal-5.5/examples/Alpha_wrap_3/mixed_inputs_wrap.cpp --- cgal-5.4.1/examples/Alpha_wrap_3/mixed_inputs_wrap.cpp 1970-01-01 00:00:00.000000000 +0000 +++ cgal-5.5/examples/Alpha_wrap_3/mixed_inputs_wrap.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -0,0 +1,131 @@ +#include +#include + +#include +#include +#include +#include + +#include +#include + +namespace AW3 = CGAL::Alpha_wraps_3; +namespace PMP = CGAL::Polygon_mesh_processing; + +using K = CGAL::Exact_predicates_inexact_constructions_kernel; +using Point_3 = K::Point_3; +using Segment_3 = K::Segment_3; + +using Face = std::array; +using Segments = std::vector; +using Points = std::vector; +using Faces = std::vector; + +using Mesh = CGAL::Surface_mesh; + +int main(int argc, char** argv) +{ + std::cout.precision(17); + + // Read the inputs + const std::string ts_filename = (argc > 1) ? argv[1] : CGAL::data_file_path("meshes/armadillo.off"); // triangle soup + const std::string ss_filename = (argc > 2) ? argv[2] : CGAL::data_file_path("images/420.polylines.txt"); // segment soup + const std::string ps_filename = (argc > 3) ? argv[3] : CGAL::data_file_path("points_3/ball.ply"); // point set + + std::cout << "Triangle soup input: " << ts_filename << std::endl; + std::cout << "Segment soup input: " << ss_filename << std::endl; + std::cout << "Point set input: " << ps_filename << std::endl; + + // = read the soup + Points points; + Faces faces; + if(!CGAL::IO::read_polygon_soup(ts_filename, points, faces) || points.empty() || faces.empty()) + { + std::cerr << "Invalid soup input: " << ts_filename << std::endl; + return EXIT_FAILURE; + } + std::cout << points.size() << " points (triangle soup)" << std::endl; + + // = read the polylines + std::ifstream ifs(ss_filename); + Segments segments; + int len = 0; + while(ifs >> len) + { + std::vector polyline; + while(len--) + { + Point_3 point; + ifs >> point; + polyline.push_back(point); + } + + if(polyline.size() >= 2) + { + for(std::size_t i=0; i 4) ? std::stod(argv[4]) : 15.; + const double relative_offset = (argc > 5) ? std::stod(argv[5]) : 450.; + + CGAL::Bbox_3 bbox = bbox_3(std::cbegin(points), std::cend(points)); + CGAL::Bbox_3 ps_bbox = bbox_3(std::cbegin(ps_points), std::cend(ps_points)); + bbox += ps_bbox; + + const double diag_length = std::sqrt(CGAL::square(bbox.xmax() - bbox.xmin()) + + CGAL::square(bbox.ymax() - bbox.ymin()) + + CGAL::square(bbox.zmax() - bbox.zmin())); + const double alpha = diag_length / relative_alpha; + const double offset = diag_length / relative_offset; + + CGAL::Real_timer t; + t.start(); + + using TS_Oracle = CGAL::Alpha_wraps_3::internal::Triangle_soup_oracle; + using SS_Oracle = CGAL::Alpha_wraps_3::internal::Segment_soup_oracle; + using Oracle = CGAL::Alpha_wraps_3::internal::Point_set_oracle; + + TS_Oracle ts_oracle(K{}); + SS_Oracle ss_oracle(ts_oracle); + Oracle oracle(ss_oracle); + + oracle.add_triangle_soup(points, faces, CGAL::parameters::default_values()); + oracle.add_segment_soup(segments, CGAL::parameters::default_values()); + oracle.add_point_set(ps_points, CGAL::parameters::default_values()); + + CGAL::Alpha_wraps_3::internal::Alpha_wrap_3 aw3(oracle); + + Mesh output_mesh; + aw3(alpha, offset, output_mesh); + + t.stop(); + std::cout << "Took " << t.time() << std::endl; + + std::string ts_name = std::string(ts_filename); + ts_name = ts_name.substr(ts_name.find_last_of("/") + 1, ts_name.length() - 1); + ts_name = ts_name.substr(0, ts_name.find_last_of(".")); + std::string ss_name = std::string(ss_filename); + ss_name = ss_name.substr(ss_name.find_last_of("/") + 1, ss_name.length() - 1); + ss_name = ss_name.substr(0, ss_name.find_last_of(".")); + std::string ps_name = std::string(ps_filename); + ps_name = ps_name.substr(ps_name.find_last_of("/") + 1, ps_name.length() - 1); + ps_name = ps_name.substr(0, ps_name.find_last_of(".")); + std::string output_name = ts_name + "_" + ss_name + "_" + ps_name + "_" + std::to_string(static_cast(relative_alpha)) + + "_" + std::to_string(static_cast(relative_offset)) + ".off"; + std::cout << "Writing to " << output_name << std::endl; + CGAL::IO::write_polygon_mesh(output_name, output_mesh, CGAL::parameters::stream_precision(17)); + + return EXIT_SUCCESS; +} diff -Nru cgal-5.4.1/examples/Alpha_wrap_3/point_set_wrap.cpp cgal-5.5/examples/Alpha_wrap_3/point_set_wrap.cpp --- cgal-5.4.1/examples/Alpha_wrap_3/point_set_wrap.cpp 1970-01-01 00:00:00.000000000 +0000 +++ cgal-5.5/examples/Alpha_wrap_3/point_set_wrap.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -0,0 +1,69 @@ +#include +#include + +#include +#include +#include + +#include +#include + +namespace AW3 = CGAL::Alpha_wraps_3; + +using K = CGAL::Exact_predicates_inexact_constructions_kernel; +using Point_3 = K::Point_3; + +using Point_container = std::vector; +using Mesh = CGAL::Surface_mesh; + +int main(int argc, char** argv) +{ + std::cout.precision(17); + + // Read the input + const std::string filename = (argc > 1) ? argv[1] : CGAL::data_file_path("points_3/oni.pwn"); + std::cout << "Reading " << filename << "..." << std::endl; + + Point_container points; + if(!CGAL::IO::read_points(filename, std::back_inserter(points)) || points.empty()) + { + std::cerr << "Invalid input." << std::endl; + return EXIT_FAILURE; + } + + std::cout << points.size() << " points" << std::endl; + + // Compute the alpha and offset values + const double relative_alpha = (argc > 2) ? std::stod(argv[2]) : 10.; + const double relative_offset = (argc > 3) ? std::stod(argv[3]) : 300.; + + CGAL::Bbox_3 bbox = CGAL::bbox_3(std::cbegin(points), std::cend(points)); + const double diag_length = std::sqrt(CGAL::square(bbox.xmax() - bbox.xmin()) + + CGAL::square(bbox.ymax() - bbox.ymin()) + + CGAL::square(bbox.zmax() - bbox.zmin())); + const double alpha = diag_length / relative_alpha; + const double offset = diag_length / relative_offset; + std::cout << "absolute alpha = " << alpha << " absolute offset = " << offset << std::endl; + + // Construct the wrap + CGAL::Real_timer t; + t.start(); + + Mesh wrap; + CGAL::alpha_wrap_3(points, alpha, offset, wrap); + + t.stop(); + std::cout << "Result: " << num_vertices(wrap) << " vertices, " << num_faces(wrap) << " faces" << std::endl; + std::cout << "Took " << t.time() << " s." << std::endl; + + // Save the result + std::string input_name = std::string(filename); + input_name = input_name.substr(input_name.find_last_of("/") + 1, input_name.length() - 1); + input_name = input_name.substr(0, input_name.find_last_of(".")); + std::string output_name = input_name + "_" + std::to_string(static_cast(relative_alpha)) + + "_" + std::to_string(static_cast(relative_offset)) + ".off"; + std::cout << "Writing to " << output_name << std::endl; + CGAL::IO::write_polygon_mesh(output_name, wrap, CGAL::parameters::stream_precision(17)); + + return EXIT_SUCCESS; +} diff -Nru cgal-5.4.1/examples/Alpha_wrap_3/triangle_mesh_wrap.cpp cgal-5.5/examples/Alpha_wrap_3/triangle_mesh_wrap.cpp --- cgal-5.4.1/examples/Alpha_wrap_3/triangle_mesh_wrap.cpp 1970-01-01 00:00:00.000000000 +0000 +++ cgal-5.5/examples/Alpha_wrap_3/triangle_mesh_wrap.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -0,0 +1,71 @@ +#include +#include + +#include +#include +#include +#include + +#include +#include + +namespace AW3 = CGAL::Alpha_wraps_3; +namespace PMP = CGAL::Polygon_mesh_processing; + +using K = CGAL::Exact_predicates_inexact_constructions_kernel; +using Point_3 = K::Point_3; + +using Mesh = CGAL::Surface_mesh; + +int main(int argc, char** argv) +{ + std::cout.precision(17); + + // Read the input + const std::string filename = (argc > 1) ? argv[1] : CGAL::data_file_path("meshes/armadillo.off"); + std::cout << "Reading " << filename << "..." << std::endl; + + Mesh mesh; + if(!PMP::IO::read_polygon_mesh(filename, mesh) || is_empty(mesh) || !is_triangle_mesh(mesh)) + { + std::cerr << "Invalid input." << std::endl; + return EXIT_FAILURE; + } + + std::cout << "Input: " << num_vertices(mesh) << " vertices, " << num_faces(mesh) << " faces" << std::endl; + + // Compute the alpha and offset values + const double relative_alpha = (argc > 2) ? std::stod(argv[2]) : 20.; + const double relative_offset = (argc > 3) ? std::stod(argv[3]) : 600.; + + CGAL::Bbox_3 bbox = CGAL::Polygon_mesh_processing::bbox(mesh); + const double diag_length = std::sqrt(CGAL::square(bbox.xmax() - bbox.xmin()) + + CGAL::square(bbox.ymax() - bbox.ymin()) + + CGAL::square(bbox.zmax() - bbox.zmin())); + + const double alpha = diag_length / relative_alpha; + const double offset = diag_length / relative_offset; + + // Construct the wrap + CGAL::Real_timer t; + t.start(); + + Mesh wrap; + CGAL::alpha_wrap_3(mesh, alpha, offset, wrap); + + t.stop(); + std::cout << "Result: " << num_vertices(wrap) << " vertices, " << num_faces(wrap) << " faces" << std::endl; + std::cout << "Took " << t.time() << " s." << std::endl; + + // Save the result + std::string input_name = std::string(filename); + input_name = input_name.substr(input_name.find_last_of("/") + 1, input_name.length() - 1); + input_name = input_name.substr(0, input_name.find_last_of(".")); + std::string output_name = input_name + + "_" + std::to_string(static_cast(relative_alpha)) + + "_" + std::to_string(static_cast(relative_offset)) + ".off"; + std::cout << "Writing to " << output_name << std::endl; + CGAL::IO::write_polygon_mesh(output_name, wrap, CGAL::parameters::stream_precision(17)); + + return EXIT_SUCCESS; +} diff -Nru cgal-5.4.1/examples/Alpha_wrap_3/wrap_from_cavity.cpp cgal-5.5/examples/Alpha_wrap_3/wrap_from_cavity.cpp --- cgal-5.4.1/examples/Alpha_wrap_3/wrap_from_cavity.cpp 1970-01-01 00:00:00.000000000 +0000 +++ cgal-5.5/examples/Alpha_wrap_3/wrap_from_cavity.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -0,0 +1,85 @@ +#include +#include + +#include +#include +#include + +#include +#include + +namespace AW3 = CGAL::Alpha_wraps_3; +namespace PMP = CGAL::Polygon_mesh_processing; + +using K = CGAL::Exact_predicates_inexact_constructions_kernel; +using Point_3 = K::Point_3; + +using Mesh = CGAL::Surface_mesh; + +int main(int argc, char** argv) +{ + std::cout.precision(17); + + // Read the input + const std::string filename = (argc > 1) ? argv[1] : CGAL::data_file_path("meshes/armadillo.off"); + std::cout << "Reading " << filename << "..." << std::endl; + + Mesh input; + if(!PMP::IO::read_polygon_mesh(filename, input) || + is_empty(input) || !is_triangle_mesh(input)) + { + std::cerr << "Invalid input." << std::endl; + return EXIT_FAILURE; + } + + std::cout << "Input: " << num_vertices(input) << " vertices, " << num_faces(input) << " faces" << std::endl; + + const double relative_alpha = (argc > 2) ? std::stod(argv[2]) : 30.; + const double relative_offset = (argc > 3) ? std::stod(argv[3]) : 600.; + + // Compute the alpha and offset values + CGAL::Bbox_3 bbox = CGAL::Polygon_mesh_processing::bbox(input); + const double diag_length = std::sqrt(CGAL::square(bbox.xmax() - bbox.xmin()) + + CGAL::square(bbox.ymax() - bbox.ymin()) + + CGAL::square(bbox.zmax() - bbox.zmin())); + + const double alpha = diag_length / relative_alpha; + const double offset = diag_length / relative_offset; + + // Construct the wrap + using Oracle = CGAL::Alpha_wraps_3::internal::Triangle_mesh_oracle; + Oracle oracle; + oracle.add_triangle_mesh(input); + + CGAL::Real_timer t; + t.start(); + + Mesh wrap; + CGAL::Alpha_wraps_3::internal::Alpha_wrap_3 aw3(oracle); + + // There is no limit on how many seeds can be used. + // However, the algorithm automatically determines whether a seed can be used + // to initialize the refinement based on a few conditions (distance to the offset, value of alpha, etc.) + // See internal function Alpha_wrap_3::initialize_from_cavities() for more information + std::vector seeds = + { + Point_3(0, 50, 0) // a point within the armadillo surface + }; + + aw3(alpha, offset, wrap, CGAL::parameters::seed_points(std::ref(seeds))); + + t.stop(); + std::cout << "Result: " << num_vertices(wrap) << " vertices, " << num_faces(wrap) << " faces" << std::endl; + std::cout << "Took " << t.time() << " s." << std::endl; + + // Save the result + std::string input_name = std::string(filename); + input_name = input_name.substr(input_name.find_last_of("/") + 1, input_name.length() - 1); + input_name = input_name.substr(0, input_name.find_last_of(".")); + std::string output_name = input_name + "_cavity_" + std::to_string(static_cast(relative_alpha)) + + "_" + std::to_string(static_cast(relative_offset)) + ".off"; + std::cout << "Writing to " << output_name << std::endl; + CGAL::IO::write_polygon_mesh(output_name, wrap, CGAL::parameters::stream_precision(17)); + + return EXIT_SUCCESS; +} diff -Nru cgal-5.4.1/examples/Apollonius_graph_2/CMakeLists.txt cgal-5.5/examples/Apollonius_graph_2/CMakeLists.txt --- cgal-5.4.1/examples/Apollonius_graph_2/CMakeLists.txt 2022-01-18 09:59:27.000000000 +0000 +++ cgal-5.5/examples/Apollonius_graph_2/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Apollonius_graph_2_Examples) find_package(CGAL REQUIRED COMPONENTS Core) diff -Nru cgal-5.4.1/examples/Approximate_min_ellipsoid_d/CMakeLists.txt cgal-5.5/examples/Approximate_min_ellipsoid_d/CMakeLists.txt --- cgal-5.4.1/examples/Approximate_min_ellipsoid_d/CMakeLists.txt 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Approximate_min_ellipsoid_d/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Approximate_min_ellipsoid_d_Examples) find_package(CGAL REQUIRED) diff -Nru cgal-5.4.1/examples/Arrangement_on_surface_2/algebraic_segments.cpp cgal-5.5/examples/Arrangement_on_surface_2/algebraic_segments.cpp --- cgal-5.4.1/examples/Arrangement_on_surface_2/algebraic_segments.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Arrangement_on_surface_2/algebraic_segments.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -2,6 +2,7 @@ // Constructing an arrangement of algebraic segments. #include +#include #include #if (!CGAL_USE_CORE) && (!CGAL_USE_LEDA) && (!(CGAL_USE_GMP && CGAL_USE_MPFI)) @@ -52,7 +53,7 @@ std::vector segs; for(size_t i = 0; i < pre_segs.size(); ++i) { auto* curr_p = boost::get(&pre_segs[i]); - CGAL_assertion(curr_p); + assert(curr_p); segs.push_back(*curr_p); } // Construct an ellipse (C2) with the equation 2*x^2+5*y^2-7=0. diff -Nru cgal-5.4.1/examples/Arrangement_on_surface_2/bgl_dual_adapter.cpp cgal-5.5/examples/Arrangement_on_surface_2/bgl_dual_adapter.cpp --- cgal-5.4.1/examples/Arrangement_on_surface_2/bgl_dual_adapter.cpp 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Arrangement_on_surface_2/bgl_dual_adapter.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -3,7 +3,8 @@ #include -#include +#include + #include #include diff -Nru cgal-5.4.1/examples/Arrangement_on_surface_2/bgl_primal_adapter.cpp cgal-5.5/examples/Arrangement_on_surface_2/bgl_primal_adapter.cpp --- cgal-5.4.1/examples/Arrangement_on_surface_2/bgl_primal_adapter.cpp 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Arrangement_on_surface_2/bgl_primal_adapter.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -5,7 +5,7 @@ #include -#include +#include #include #include diff -Nru cgal-5.4.1/examples/Arrangement_on_surface_2/CMakeLists.txt cgal-5.5/examples/Arrangement_on_surface_2/CMakeLists.txt --- cgal-5.4.1/examples/Arrangement_on_surface_2/CMakeLists.txt 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Arrangement_on_surface_2/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Arrangement_on_surface_2_Examples) find_package(CGAL REQUIRED COMPONENTS Core) diff -Nru cgal-5.4.1/examples/Arrangement_on_surface_2/conics.cpp cgal-5.5/examples/Arrangement_on_surface_2/conics.cpp --- cgal-5.4.1/examples/Arrangement_on_surface_2/conics.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Arrangement_on_surface_2/conics.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -29,7 +29,7 @@ // with (-3, 4) and (4, 3) as its endpoints. We want the arc to be // clockwise-oriented, so it passes through (0, 5) as well. Conic_arc c4(Rat_point(-3, 4), Rat_point(0, 5), Rat_point(4, 3)); - CGAL_assertion(c4.is_valid()); + insert(arr, c4); // Insert a full unit circle (C5) that is centered at (0, 4). @@ -46,7 +46,7 @@ 0, 0, 0, 0, 1, 3, // the line: y = -3. Point(1.41, -2), // approximation of the target. 0, 0, 0, 0, 1, 2); // the line: y = -2. - CGAL_assertion(c6.is_valid()); + insert(arr, c6); // Insert the right half of the circle centered at (4, 2.5) whose radius diff -Nru cgal-5.4.1/examples/Arrangement_on_surface_2/dual_lines.cpp cgal-5.5/examples/Arrangement_on_surface_2/dual_lines.cpp --- cgal-5.4.1/examples/Arrangement_on_surface_2/dual_lines.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Arrangement_on_surface_2/dual_lines.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -3,6 +3,7 @@ // using the arrangement of the dual lines. #include +#include #include "arr_linear.h" #include "read_objects.h" @@ -74,7 +75,7 @@ break; } } - CGAL_assertion(found_collinear); + assert(found_collinear); return (0); } diff -Nru cgal-5.4.1/examples/Arrangement_on_surface_2/edge_manipulation_curve_history.cpp cgal-5.5/examples/Arrangement_on_surface_2/edge_manipulation_curve_history.cpp --- cgal-5.4.1/examples/Arrangement_on_surface_2/edge_manipulation_curve_history.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Arrangement_on_surface_2/edge_manipulation_curve_history.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -46,7 +46,6 @@ const Point q{_7_halves, 7}; Point_location::result_type obj = pl.locate(q); auto* e = boost::get(&obj); - CGAL_assertion(e); // Split the edge e to two edges e1 and e2; auto e1 = arr.split_edge(arr.non_const_handle(*e), q); diff -Nru cgal-5.4.1/examples/Arrangement_on_surface_2/face_extension_overlay.cpp cgal-5.5/examples/Arrangement_on_surface_2/face_extension_overlay.cpp --- cgal-5.4.1/examples/Arrangement_on_surface_2/face_extension_overlay.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Arrangement_on_surface_2/face_extension_overlay.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -1,6 +1,8 @@ //! \file examples/Arrangement_on_surface_2/face_extension_overlay.cpp // A face overlay of two arrangements with extended face records. +#include + #include #include #include @@ -21,7 +23,8 @@ insert_non_intersecting_curve(arr1, Segment(Point(6, 2), Point(6, 6))); insert_non_intersecting_curve(arr1, Segment(Point(6, 6), Point(2, 6))); insert_non_intersecting_curve(arr1, Segment(Point(2, 6), Point(2, 2))); - CGAL_assertion(arr1.number_of_faces() == 2); + // 2 because the bounded and the unbounded one + assert(arr1.number_of_faces() == 2); // Mark just the bounded face. for (auto fit = arr1.faces_begin(); fit != arr1.faces_end(); ++fit) @@ -33,7 +36,6 @@ insert_non_intersecting_curve(arr2, Segment(Point(7, 4), Point(4, 7))); insert_non_intersecting_curve(arr2, Segment(Point(4, 7), Point(1, 4))); insert_non_intersecting_curve(arr2, Segment(Point(1, 4), Point(4, 1))); - CGAL_assertion(arr2.number_of_faces() == 2); for (auto fit = arr2.faces_begin(); fit != arr2.faces_end(); ++fit) fit->set_data(fit != arr2.unbounded_face()); // mark the bounded face. diff -Nru cgal-5.4.1/examples/Arrangement_on_surface_2/incremental_insertion.cpp cgal-5.5/examples/Arrangement_on_surface_2/incremental_insertion.cpp --- cgal-5.4.1/examples/Arrangement_on_surface_2/incremental_insertion.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Arrangement_on_surface_2/incremental_insertion.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -33,7 +33,7 @@ Point q(4, 1); auto obj = pl.locate(q); auto* f = boost::get(&obj); - CGAL_assertion(f != nullptr); + std::cout << "The query point (" << q << ") is located in: "; print_face(*f); diff -Nru cgal-5.4.1/examples/Arrangement_on_surface_2/overlay_color.cpp cgal-5.5/examples/Arrangement_on_surface_2/overlay_color.cpp --- cgal-5.4.1/examples/Arrangement_on_surface_2/overlay_color.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Arrangement_on_surface_2/overlay_color.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -1,6 +1,8 @@ //! \file examples/Arrangement_on_surface_2/overlay_color.cpp // The overlay of two arrangement with extended dcel structures +#include + #include #include #include @@ -25,7 +27,7 @@ insert(arr1, Segment(Point(0, 0), Point(0, 4))); insert(arr1, Segment(Point(2, 0), Point(2, 4))); insert(arr1, Segment(Point(4, 0), Point(4, 4))); - CGAL_assertion(arr1.number_of_faces() == 5); + assert(arr1.number_of_faces() == 5); for (auto vit = arr1.vertices_begin(); vit != arr1.vertices_end(); ++vit) vit->set_data(vcol1); for (auto hit = arr1.halfedges_begin(); hit != arr1.halfedges_end(); ++hit) @@ -41,7 +43,7 @@ insert(arr2, Segment(Point(0, 0), Point(0, 6))); insert(arr2, Segment(Point(3, 0), Point(3, 6))); insert(arr2, Segment(Point(6, 0), Point(6, 6))); - CGAL_assertion(arr2.number_of_faces() == 5); + assert(arr2.number_of_faces() == 5); for (auto vit = arr2.vertices_begin(); vit != arr2.vertices_end(); ++vit) vit->set_data(vcol2); for (auto hit = arr2.halfedges_begin(); hit != arr2.halfedges_end(); ++hit) diff -Nru cgal-5.4.1/examples/Arrangement_on_surface_2/point_location_utils.h cgal-5.5/examples/Arrangement_on_surface_2/point_location_utils.h --- cgal-5.4.1/examples/Arrangement_on_surface_2/point_location_utils.h 2022-06-03 19:03:41.000000000 +0000 +++ cgal-5.5/examples/Arrangement_on_surface_2/point_location_utils.h 2022-07-13 19:04:25.000000000 +0000 @@ -1,3 +1,4 @@ +#include #include //----------------------------------------------------------------------------- @@ -106,7 +107,7 @@ else if ((e = boost::get(&obj)) ) // hit an edge std::cout << "an edge: " << (*e)->curve() << std::endl; else if ((f = boost::get(&obj))) { // hit nothing - CGAL_assertion((*f)->is_unbounded()); + assert((*f)->is_unbounded()); std::cout << "nothing." << std::endl; } else CGAL_error_msg("Invalid object."); diff -Nru cgal-5.4.1/examples/Arrangement_on_surface_2/polycurve_bezier.cpp cgal-5.5/examples/Arrangement_on_surface_2/polycurve_bezier.cpp --- cgal-5.4.1/examples/Arrangement_on_surface_2/polycurve_bezier.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Arrangement_on_surface_2/polycurve_bezier.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -59,7 +59,6 @@ std::vector obj_vector; bezier_traits.make_x_monotone_2_object()(B, std::back_inserter(obj_vector)); auto* x_seg_p = boost::get(&obj_vector[0]); - CGAL_assertion(x_seg_p); x_curves.push_back(*x_seg_p); } diff -Nru cgal-5.4.1/examples/Arrangement_on_surface_2/spherical_degenerate_sweep.cpp cgal-5.5/examples/Arrangement_on_surface_2/spherical_degenerate_sweep.cpp --- cgal-5.4.1/examples/Arrangement_on_surface_2/spherical_degenerate_sweep.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Arrangement_on_surface_2/spherical_degenerate_sweep.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -5,6 +5,7 @@ // #define CGAL_ARRANGEMENT_ON_SURFACE_INSERT_VERBOSE 1 // #define CGAL_ARR_CONSTRUCTION_SL_VISITOR_VERBOSE 1 +#include #include #include @@ -57,26 +58,26 @@ X_monotone_curve_2 xcv_sp1 = ctr_xcv(sp, p1); X_monotone_curve_2 xcv_sp2 = ctr_xcv(sp, p2); X_monotone_curve_2 xcv_sp3 = ctr_xcv(sp, p3); - CGAL_assertion(xcv_sp1.is_vertical()); - CGAL_assertion(xcv_sp2.is_vertical()); - CGAL_assertion(xcv_sp3.is_vertical()); + assert(xcv_sp1.is_vertical()); + assert(xcv_sp2.is_vertical()); + assert(xcv_sp3.is_vertical()); xcvs.push_back(xcv_sp1); // 0 xcvs.push_back(xcv_sp2); // 1 xcvs.push_back(xcv_sp3); // 2 X_monotone_curve_2 xcv_12 = ctr_xcv(p1, p2); X_monotone_curve_2 xcv_23 = ctr_xcv(p2, p3); - CGAL_assertion(!xcv_12.is_vertical()); - CGAL_assertion(!xcv_23.is_vertical()); + assert(!xcv_12.is_vertical()); + assert(!xcv_23.is_vertical()); xcvs.push_back(xcv_12); // 3 xcvs.push_back(xcv_23); // 4 X_monotone_curve_2 xcv_np1 = ctr_xcv(np, p1); X_monotone_curve_2 xcv_np2 = ctr_xcv(np, p2); X_monotone_curve_2 xcv_np3 = ctr_xcv(np, p3); - CGAL_assertion(xcv_np1.is_vertical()); - CGAL_assertion(xcv_np2.is_vertical()); - CGAL_assertion(xcv_np3.is_vertical()); + assert(xcv_np1.is_vertical()); + assert(xcv_np2.is_vertical()); + assert(xcv_np3.is_vertical()); xcvs.push_back(xcv_np1); // 5 xcvs.push_back(xcv_np2); // 6 xcvs.push_back(xcv_np3); // 7 diff -Nru cgal-5.4.1/examples/Arrangement_on_surface_2/spherical_is_in_x_range.h cgal-5.5/examples/Arrangement_on_surface_2/spherical_is_in_x_range.h --- cgal-5.4.1/examples/Arrangement_on_surface_2/spherical_is_in_x_range.h 2022-06-03 19:03:41.000000000 +0000 +++ cgal-5.5/examples/Arrangement_on_surface_2/spherical_is_in_x_range.h 2022-07-13 19:04:26.000000000 +0000 @@ -1,13 +1,15 @@ #ifndef IS_IN_X_RANGE_H #define IS_IN_X_RANGE_H +#include + // Check whether the given point is in the x-range of the given curve that // represents a great-circle arc. template bool is_in_x_range(const typename GeometryTraits::X_monotone_curve_2& c, const typename GeometryTraits::Point_2& p, const GeometryTraits& traits) { - CGAL_assertion(! traits.is_on_y_identification_2_object()(p)); + assert(! traits.is_on_y_identification_2_object()(p)); if (traits.is_on_y_identification_2_object()(c)) return false; diff -Nru cgal-5.4.1/examples/Arrangement_on_surface_2/unbounded_non_intersecting.cpp cgal-5.5/examples/Arrangement_on_surface_2/unbounded_non_intersecting.cpp --- cgal-5.4.1/examples/Arrangement_on_surface_2/unbounded_non_intersecting.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Arrangement_on_surface_2/unbounded_non_intersecting.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -2,6 +2,8 @@ // Constructing an arrangement of unbounded linear objects using the insertion // function for non-intersecting curves. +#include + #include "arr_linear.h" #include "arr_print.h" @@ -13,7 +15,7 @@ X_monotone_curve c1 = Line(Point(-1, 0), Point(1, 0)); arr.insert_in_face_interior(c1, arr.unbounded_face()); Vertex_handle v = insert_point(arr, Point(0,0)); - CGAL_assertion(! v->is_at_open_boundary()); + assert(! v->is_at_open_boundary()); // Add two more rays using the specialized insertion functions. arr.insert_from_right_vertex(Ray(Point(0, 0), Point(-1, 1)), v); // c2 diff -Nru cgal-5.4.1/examples/Arrangement_on_surface_2/unb_planar_vertical_decomposition.cpp cgal-5.5/examples/Arrangement_on_surface_2/unb_planar_vertical_decomposition.cpp --- cgal-5.4.1/examples/Arrangement_on_surface_2/unb_planar_vertical_decomposition.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Arrangement_on_surface_2/unb_planar_vertical_decomposition.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -45,7 +45,6 @@ if (vh) std::cout << '(' << (*vh)->point() << ')'; else { auto* hh = boost::get(&*(curr.first)); - CGAL_assertion(hh); if (! (*hh)->is_fictitious()) std::cout << '[' << (*hh)->curve() << ']'; else std::cout << "NONE"; @@ -59,7 +58,6 @@ if (vh) std::cout << '(' << (*vh)->point() << ")\n"; else { auto* hh = boost::get(&*(curr.second)); - CGAL_assertion(hh); if (! (*hh)->is_fictitious()) std::cout << '[' << (*hh)->curve() << "]\n"; else std::cout << "NONE\n"; diff -Nru cgal-5.4.1/examples/Barycentric_coordinates_2/CMakeLists.txt cgal-5.5/examples/Barycentric_coordinates_2/CMakeLists.txt --- cgal-5.4.1/examples/Barycentric_coordinates_2/CMakeLists.txt 2022-05-06 19:00:05.000000000 +0000 +++ cgal-5.5/examples/Barycentric_coordinates_2/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -3,7 +3,7 @@ project(Barycentric_coordinates_2_Examples) -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) find_package(CGAL REQUIRED COMPONENTS Core) diff -Nru cgal-5.4.1/examples/BGL_arrangement_2/arrangement_dual.cpp cgal-5.5/examples/BGL_arrangement_2/arrangement_dual.cpp --- cgal-5.4.1/examples/BGL_arrangement_2/arrangement_dual.cpp 2022-01-18 09:58:50.000000000 +0000 +++ cgal-5.5/examples/BGL_arrangement_2/arrangement_dual.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -10,7 +10,7 @@ #include #include -#include +#include #include #include "arr_print.h" diff -Nru cgal-5.4.1/examples/BGL_arrangement_2/CMakeLists.txt cgal-5.5/examples/BGL_arrangement_2/CMakeLists.txt --- cgal-5.4.1/examples/BGL_arrangement_2/CMakeLists.txt 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/BGL_arrangement_2/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(BGL_arrangement_2_Examples) find_package(CGAL REQUIRED) diff -Nru cgal-5.4.1/examples/BGL_graphcut/CMakeLists.txt cgal-5.5/examples/BGL_graphcut/CMakeLists.txt --- cgal-5.4.1/examples/BGL_graphcut/CMakeLists.txt 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/BGL_graphcut/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_CMakeLists # This is the CMake script for compiling a set of CGAL applications. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(BGL_graphcut_Examples) diff -Nru cgal-5.4.1/examples/BGL_graphcut/face_selection_borders_regularization_example.cpp cgal-5.5/examples/BGL_graphcut/face_selection_borders_regularization_example.cpp --- cgal-5.4.1/examples/BGL_graphcut/face_selection_borders_regularization_example.cpp 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/BGL_graphcut/face_selection_borders_regularization_example.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -23,7 +23,7 @@ Mesh mesh; CGAL::IO::read_OFF (in, mesh); - boost::unordered_map is_selected_map; + std::unordered_map is_selected_map; // randomly select 1/3 of faces std::size_t nb_selected_before = 0; diff -Nru cgal-5.4.1/examples/BGL_LCC/CMakeLists.txt cgal-5.5/examples/BGL_LCC/CMakeLists.txt --- cgal-5.4.1/examples/BGL_LCC/CMakeLists.txt 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/BGL_LCC/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_CMakeLists # This is the CMake script for compiling a set of CGAL applications. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(BGL_LCC_Examples) # CGAL and its components diff -Nru cgal-5.4.1/examples/BGL_LCC/copy_lcc.cpp cgal-5.5/examples/BGL_LCC/copy_lcc.cpp --- cgal-5.4.1/examples/BGL_LCC/copy_lcc.cpp 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/BGL_LCC/copy_lcc.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -11,7 +11,7 @@ #include #include #include -#include +#include typedef CGAL::Exact_predicates_inexact_constructions_kernel Kernel; @@ -50,8 +50,8 @@ typedef boost::graph_traits::vertex_descriptor tm_vertex_descriptor; typedef boost::graph_traits::halfedge_descriptor tm_halfedge_descriptor; - boost::unordered_map v2v; - boost::unordered_map h2h; + std::unordered_map v2v; + std::unordered_map h2h; CGAL::copy_face_graph(T1, S, CGAL::parameters::vertex_to_vertex_output_iterator(std::inserter(v2v, v2v.end())) .halfedge_to_halfedge_output_iterator(std::inserter(h2h, h2h.end()))); diff -Nru cgal-5.4.1/examples/BGL_LCC/distance_lcc.cpp cgal-5.5/examples/BGL_LCC/distance_lcc.cpp --- cgal-5.4.1/examples/BGL_LCC/distance_lcc.cpp 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/BGL_LCC/distance_lcc.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -3,7 +3,7 @@ #include #include -#include +#include // wrapper to suppress a warning #include diff -Nru cgal-5.4.1/examples/BGL_LCC/kruskal_lcc.cpp cgal-5.5/examples/BGL_LCC/kruskal_lcc.cpp --- cgal-5.4.1/examples/BGL_LCC/kruskal_lcc.cpp 2022-01-18 09:58:50.000000000 +0000 +++ cgal-5.5/examples/BGL_LCC/kruskal_lcc.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -4,7 +4,7 @@ #include #include -#include +#include typedef CGAL::Simple_cartesian Kernel; typedef Kernel::Point_3 Point; diff -Nru cgal-5.4.1/examples/BGL_OpenMesh/CMakeLists.txt cgal-5.5/examples/BGL_OpenMesh/CMakeLists.txt --- cgal-5.4.1/examples/BGL_OpenMesh/CMakeLists.txt 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/BGL_OpenMesh/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_CMakeLists # This is the CMake script for compiling a set of CGAL applications. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(BGL_OpenMesh_Examples) # CGAL and its components diff -Nru cgal-5.4.1/examples/BGL_polyhedron_3/CMakeLists.txt cgal-5.5/examples/BGL_polyhedron_3/CMakeLists.txt --- cgal-5.4.1/examples/BGL_polyhedron_3/CMakeLists.txt 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/BGL_polyhedron_3/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_CMakeLists # This is the CMake script for compiling a set of CGAL applications. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(BGL_polyhedron_3_Examples) # CGAL and its components diff -Nru cgal-5.4.1/examples/BGL_polyhedron_3/copy_polyhedron.cpp cgal-5.5/examples/BGL_polyhedron_3/copy_polyhedron.cpp --- cgal-5.4.1/examples/BGL_polyhedron_3/copy_polyhedron.cpp 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/BGL_polyhedron_3/copy_polyhedron.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -16,7 +16,7 @@ #include #include -#include +#include typedef CGAL::Exact_predicates_inexact_constructions_kernel Kernel; @@ -56,9 +56,9 @@ typedef boost::graph_traits::face_descriptor tm_face_descriptor; // Use an unordered_map to keep track of elements. - boost::unordered_map v2v; - boost::unordered_map h2h; - boost::unordered_map f2f; + std::unordered_map v2v; + std::unordered_map h2h; + std::unordered_map f2f; CGAL::copy_face_graph(S, T2, CGAL::parameters::vertex_to_vertex_output_iterator(std::inserter(v2v, v2v.end())) .halfedge_to_halfedge_output_iterator(std::inserter(h2h, h2h.end())) @@ -83,9 +83,9 @@ typedef boost::graph_traits::face_descriptor tm_face_descriptor; - boost::unordered_map v2v; - boost::unordered_map h2h; - boost::unordered_map f2f; + std::unordered_map v2v; + std::unordered_map h2h; + std::unordered_map f2f; CGAL::copy_face_graph(T1, S, CGAL::parameters::vertex_to_vertex_map(boost::make_assoc_property_map(v2v)) .halfedge_to_halfedge_output_iterator(std::inserter(h2h, h2h.end())) .face_to_face_map(boost::make_assoc_property_map(f2f))); diff -Nru cgal-5.4.1/examples/BGL_polyhedron_3/distance.cpp cgal-5.5/examples/BGL_polyhedron_3/distance.cpp --- cgal-5.4.1/examples/BGL_polyhedron_3/distance.cpp 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/BGL_polyhedron_3/distance.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -2,7 +2,7 @@ #include #include -#include +#include #include diff -Nru cgal-5.4.1/examples/BGL_polyhedron_3/kruskal.cpp cgal-5.5/examples/BGL_polyhedron_3/kruskal.cpp --- cgal-5.4.1/examples/BGL_polyhedron_3/kruskal.cpp 2022-01-18 09:58:50.000000000 +0000 +++ cgal-5.5/examples/BGL_polyhedron_3/kruskal.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -4,7 +4,7 @@ #include #include -#include +#include typedef CGAL::Simple_cartesian Kernel; diff -Nru cgal-5.4.1/examples/BGL_polyhedron_3/kruskal_with_stored_id.cpp cgal-5.5/examples/BGL_polyhedron_3/kruskal_with_stored_id.cpp --- cgal-5.4.1/examples/BGL_polyhedron_3/kruskal_with_stored_id.cpp 2022-01-18 09:58:50.000000000 +0000 +++ cgal-5.5/examples/BGL_polyhedron_3/kruskal_with_stored_id.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -5,7 +5,7 @@ #include #include -#include +#include typedef CGAL::Simple_cartesian Kernel; typedef Kernel::Point_3 Point; diff -Nru cgal-5.4.1/examples/BGL_surface_mesh/CMakeLists.txt cgal-5.5/examples/BGL_surface_mesh/CMakeLists.txt --- cgal-5.4.1/examples/BGL_surface_mesh/CMakeLists.txt 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/BGL_surface_mesh/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(BGL_surface_mesh_Examples) find_package(CGAL REQUIRED) diff -Nru cgal-5.4.1/examples/BGL_surface_mesh/prim.cpp cgal-5.5/examples/BGL_surface_mesh/prim.cpp --- cgal-5.4.1/examples/BGL_surface_mesh/prim.cpp 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/BGL_surface_mesh/prim.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -4,7 +4,7 @@ #include #include -#include +#include typedef CGAL::Simple_cartesian Kernel; typedef Kernel::Point_3 Point; diff -Nru cgal-5.4.1/examples/BGL_surface_mesh/surface_mesh_partition.cpp cgal-5.5/examples/BGL_surface_mesh/surface_mesh_partition.cpp --- cgal-5.4.1/examples/BGL_surface_mesh/surface_mesh_partition.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/BGL_surface_mesh/surface_mesh_partition.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -7,6 +7,7 @@ #include #include +#include typedef CGAL::Simple_cartesian K; typedef CGAL::Surface_mesh SM; @@ -39,7 +40,7 @@ // Extract the part n°0 of the partition into a new, independent mesh typedef CGAL::Face_filtered_graph Filtered_graph; Filtered_graph filtered_sm(sm, 0 /*id of th part*/, face_pid_map); - CGAL_assertion(filtered_sm.is_selection_valid()); + assert(filtered_sm.is_selection_valid()); SM part_sm; CGAL::copy_face_graph(filtered_sm, part_sm); diff -Nru cgal-5.4.1/examples/BGL_triangulation_2/CMakeLists.txt cgal-5.5/examples/BGL_triangulation_2/CMakeLists.txt --- cgal-5.4.1/examples/BGL_triangulation_2/CMakeLists.txt 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/BGL_triangulation_2/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(BGL_triangulation_2_Examples) find_package(CGAL REQUIRED) diff -Nru cgal-5.4.1/examples/BGL_triangulation_2/emst_cdt_plus_hierarchy.cpp cgal-5.5/examples/BGL_triangulation_2/emst_cdt_plus_hierarchy.cpp --- cgal-5.4.1/examples/BGL_triangulation_2/emst_cdt_plus_hierarchy.cpp 2022-01-18 09:58:50.000000000 +0000 +++ cgal-5.5/examples/BGL_triangulation_2/emst_cdt_plus_hierarchy.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -9,7 +9,7 @@ #include #include -#include +#include #include #include diff -Nru cgal-5.4.1/examples/BGL_triangulation_2/emst.cpp cgal-5.5/examples/BGL_triangulation_2/emst.cpp --- cgal-5.4.1/examples/BGL_triangulation_2/emst.cpp 2022-01-18 09:58:50.000000000 +0000 +++ cgal-5.5/examples/BGL_triangulation_2/emst.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -3,7 +3,7 @@ #include #include -#include +#include #include #include diff -Nru cgal-5.4.1/examples/BGL_triangulation_2/emst_regular.cpp cgal-5.5/examples/BGL_triangulation_2/emst_regular.cpp --- cgal-5.4.1/examples/BGL_triangulation_2/emst_regular.cpp 2022-01-18 09:58:50.000000000 +0000 +++ cgal-5.5/examples/BGL_triangulation_2/emst_regular.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -4,7 +4,7 @@ #include #include -#include +#include #include #include diff -Nru cgal-5.4.1/examples/Boolean_set_operations_2/circle_segment.cpp cgal-5.5/examples/Boolean_set_operations_2/circle_segment.cpp --- cgal-5.4.1/examples/Boolean_set_operations_2/circle_segment.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Boolean_set_operations_2/circle_segment.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -8,6 +8,7 @@ #include #include +#include typedef CGAL::Exact_predicates_exact_constructions_kernel Kernel; typedef Kernel::Point_2 Point_2; @@ -28,7 +29,7 @@ Curve_2 curve (circle); std::list objects; traits.make_x_monotone_2_object() (curve, std::back_inserter(objects)); - CGAL_assertion (objects.size() == 2); + assert(objects.size() == 2); // Construct the polygon. Polygon_2 pgn; diff -Nru cgal-5.4.1/examples/Boolean_set_operations_2/CMakeLists.txt cgal-5.5/examples/Boolean_set_operations_2/CMakeLists.txt --- cgal-5.4.1/examples/Boolean_set_operations_2/CMakeLists.txt 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Boolean_set_operations_2/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Boolean_set_operations_2_Examples) find_package(CGAL REQUIRED COMPONENTS Core OPTIONAL_COMPONENTS Qt5) diff -Nru cgal-5.4.1/examples/Boolean_set_operations_2/set_union.cpp cgal-5.5/examples/Boolean_set_operations_2/set_union.cpp --- cgal-5.4.1/examples/Boolean_set_operations_2/set_union.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Boolean_set_operations_2/set_union.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -10,6 +10,7 @@ #include #include #include +#include typedef CGAL::Exact_predicates_exact_constructions_kernel Kernel; typedef Kernel::Point_2 Point_2; @@ -29,7 +30,7 @@ Curve_2 curve (circle); std::list objects; traits.make_x_monotone_2_object() (curve, std::back_inserter(objects)); - CGAL_assertion (objects.size() == 2); + assert(objects.size() == 2); // Construct the polygon. Polygon_2 pgn; diff -Nru cgal-5.4.1/examples/Box_intersection_d/CMakeLists.txt cgal-5.5/examples/Box_intersection_d/CMakeLists.txt --- cgal-5.4.1/examples/Box_intersection_d/CMakeLists.txt 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Box_intersection_d/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Box_intersection_d_Examples) find_package(CGAL REQUIRED) diff -Nru cgal-5.4.1/examples/Box_intersection_d/progress.cpp cgal-5.5/examples/Box_intersection_d/progress.cpp --- cgal-5.4.1/examples/Box_intersection_d/progress.cpp 1970-01-01 00:00:00.000000000 +0000 +++ cgal-5.5/examples/Box_intersection_d/progress.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -0,0 +1,99 @@ +#include +#include +#include +#include +#include + +typedef CGAL::Box_intersection_d::Box_d Box; +typedef CGAL::Bbox_2 Bbox; + + +void fill(std::vector& b, int xbl, int ybl, int n) +{ + b.reserve(n * n); + n = 2 * n; + for(int i = 0; i < n; i += 2){ + for(int j = 0; j < n; j += 2){ + b.push_back(Bbox(xbl + i, ybl + j, + xbl + i + 2, ybl + j + 2)); + } + } +} + + +struct Callback_rep{ + + Callback_rep(double normalize) + : normalize(normalize) + { + t.start(); + } + + void progress(double d) + { + d /= normalize; + total += d; + if(total > bound){ + std::cout << std::setprecision(3) << total*100 << " % in " << std::setprecision(5) << t.time() << " sec." << std::endl; + bound += 0.1; + } + } + + double normalize; + double bound = 0.1; + double total = 0; + int count = 0; + CGAL::Timer t; +}; + +struct Callback { + + std::shared_ptr sptr; + + Callback(double normalize = 1.0) + : sptr(std::make_shared(normalize)) + {} + + + void operator()( const Box& a, const Box& b ) { + ++(sptr->count); + std::cout << "box " << a.id() << " intersects box " << b.id() << std::endl; + } + + + bool report(int dim) + { + return (dim == Box::dimension() - 1); + } + + + void progress(double d) + { + sptr->progress(d); + } + + int count() const + { + return sptr->count; + } + +}; + +int main(int argc, char* argv[]) { + + int n = (argc>1)?std::atoi(argv[1]): 5; + int blx = (argc>2)?std::atoi(argv[2]): 1; + int bly = (argc>2)?std::atoi(argv[3]): 1; + + std::vector boxes, queries; + fill(boxes, 0, 0, n); + fill(queries, blx, bly, n); + + Callback callback(2.); // because we call segment_tree twice + + CGAL::box_intersection_d( boxes.begin(), boxes.end(), queries.begin(), queries.end(), callback); + + std::cout << callback.count() << " callback" << std::endl; + + return 0; +} diff -Nru cgal-5.4.1/examples/CGALimageIO/CMakeLists.txt cgal-5.5/examples/CGALimageIO/CMakeLists.txt --- cgal-5.4.1/examples/CGALimageIO/CMakeLists.txt 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/CGALimageIO/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(CGALimageIO_Examples) find_package(CGAL REQUIRED COMPONENTS ImageIO) diff -Nru cgal-5.4.1/examples/CGAL_ipelets/CMakeLists.txt cgal-5.5/examples/CGAL_ipelets/CMakeLists.txt --- cgal-5.4.1/examples/CGAL_ipelets/CMakeLists.txt 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/CGAL_ipelets/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(CGAL_ipelets_Examples) find_package(CGAL REQUIRED) diff -Nru cgal-5.4.1/examples/Circular_kernel_2/CMakeLists.txt cgal-5.5/examples/Circular_kernel_2/CMakeLists.txt --- cgal-5.4.1/examples/Circular_kernel_2/CMakeLists.txt 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Circular_kernel_2/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Circular_kernel_2_Examples) find_package(CGAL REQUIRED) diff -Nru cgal-5.4.1/examples/Circular_kernel_3/CMakeLists.txt cgal-5.5/examples/Circular_kernel_3/CMakeLists.txt --- cgal-5.4.1/examples/Circular_kernel_3/CMakeLists.txt 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Circular_kernel_3/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Circular_kernel_3_Examples) find_package(CGAL REQUIRED) diff -Nru cgal-5.4.1/examples/Circulator/CMakeLists.txt cgal-5.5/examples/Circulator/CMakeLists.txt --- cgal-5.4.1/examples/Circulator/CMakeLists.txt 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Circulator/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Circulator_Examples) find_package(CGAL REQUIRED) diff -Nru cgal-5.4.1/examples/Classification/CMakeLists.txt cgal-5.5/examples/Classification/CMakeLists.txt --- cgal-5.4.1/examples/Classification/CMakeLists.txt 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Classification/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_CMakeLists # This is the CMake script for compiling a set of CGAL applications. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Classification_Examples) # CGAL and its components diff -Nru cgal-5.4.1/examples/Classification/gis_tutorial_example.cpp cgal-5.5/examples/Classification/gis_tutorial_example.cpp --- cgal-5.4.1/examples/Classification/gis_tutorial_example.cpp 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Classification/gis_tutorial_example.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -670,7 +670,7 @@ } std::size_t nb_vertices - = std::accumulate (polylines.begin(), polylines.end(), 0u, + = std::accumulate (polylines.begin(), polylines.end(), std::size_t(0), [](std::size_t size, const std::vector& poly) -> std::size_t { return size + poly.size(); }); diff -Nru cgal-5.4.1/examples/CMakeLists.txt cgal-5.5/examples/CMakeLists.txt --- cgal-5.4.1/examples/CMakeLists.txt 2022-01-18 09:58:52.000000000 +0000 +++ cgal-5.5/examples/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.12...3.20) +cmake_minimum_required(VERSION 3.1...3.23) project(CGAL_EXAMPLES) if(CGAL_BRANCH_BUILD) diff -Nru cgal-5.4.1/examples/Combinatorial_map/CMakeLists.txt cgal-5.5/examples/Combinatorial_map/CMakeLists.txt --- cgal-5.4.1/examples/Combinatorial_map/CMakeLists.txt 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Combinatorial_map/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Combinatorial_map_Examples) find_package(CGAL REQUIRED) diff -Nru cgal-5.4.1/examples/Combinatorial_map/map_3_foreach.cpp cgal-5.5/examples/Combinatorial_map/map_3_foreach.cpp --- cgal-5.4.1/examples/Combinatorial_map/map_3_foreach.cpp 2022-01-18 09:58:51.000000000 +0000 +++ cgal-5.5/examples/Combinatorial_map/map_3_foreach.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -1,5 +1,4 @@ #include -#include #include #include diff -Nru cgal-5.4.1/examples/Combinatorial_map/map_3_operations.cpp cgal-5.5/examples/Combinatorial_map/map_3_operations.cpp --- cgal-5.4.1/examples/Combinatorial_map/map_3_operations.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Combinatorial_map/map_3_operations.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -1,6 +1,7 @@ #include #include #include +#include typedef CGAL::Combinatorial_map<3> CMap_3; typedef CMap_3::Dart_handle Dart_handle; @@ -13,19 +14,19 @@ Dart_handle dh1 = cm.make_combinatorial_hexahedron(); // Add two edges along two opposite facets. - CGAL_assertion( cm.is_insertable_cell_1_in_cell_2 - (cm.beta(dh1,1),cm.beta(dh1,0)) ); + assert( cm.is_insertable_cell_1_in_cell_2 + (cm.beta(dh1,1),cm.beta(dh1,0)) ); cm.insert_cell_1_in_cell_2(cm.beta(dh1,1), cm.beta(dh1,0)); - CGAL_assertion( cm.is_valid() ); + assert( cm.is_valid() ); Dart_handle dh2=cm.beta(dh1,2,1,1,2); - CGAL_assertion( cm.is_insertable_cell_1_in_cell_2 - (dh2,cm.beta(dh2,1,1)) ); + assert( cm.is_insertable_cell_1_in_cell_2 + (dh2,cm.beta(dh2,1,1)) ); cm.insert_cell_1_in_cell_2(dh2, cm.beta(dh2,1,1)); - CGAL_assertion( cm.is_valid() ); + assert( cm.is_valid() ); // Insert a facet along these two new edges plus two initial edges // of the hexahedron. @@ -35,28 +36,28 @@ path.push_back(cm.beta(dh2,0)); path.push_back(cm.beta(dh2,2,1)); - CGAL_assertion( (cm.is_insertable_cell_2_in_cell_3 + assert( (cm.is_insertable_cell_2_in_cell_3 (path.begin(),path.end())) ); Dart_handle dh3=cm.insert_cell_2_in_cell_3(path.begin(),path.end()); - CGAL_assertion( cm.is_valid() ); + assert( cm.is_valid() ); // Display the combinatorial map characteristics. cm.display_characteristics(std::cout) << ", valid=" << cm.is_valid() << std::endl; // We use the removal operations to get back to the initial hexahedron. - CGAL_assertion( (cm.is_removable<2>(dh3)) ); + assert( (cm.is_removable<2>(dh3)) ); cm.remove_cell<2>(dh3); - CGAL_assertion( cm.is_valid() ); + assert( cm.is_valid() ); - CGAL_assertion( (cm.is_removable<1>(cm.beta(dh1,1))) ); + assert( (cm.is_removable<1>(cm.beta(dh1,1))) ); cm.remove_cell<1>(cm.beta(dh1,1)); - CGAL_assertion( cm.is_valid() ); + assert( cm.is_valid() ); - CGAL_assertion( (cm.is_removable<1>(cm.beta(dh2,0))) ); + assert( (cm.is_removable<1>(cm.beta(dh2,0))) ); cm.remove_cell<1>(cm.beta(dh2,0)); - CGAL_assertion( cm.is_valid() ); + assert( cm.is_valid() ); // Display the combinatorial map characteristics. cm.display_characteristics(std::cout) << ", valid=" @@ -64,4 +65,3 @@ return EXIT_SUCCESS; } - diff -Nru cgal-5.4.1/examples/Cone_spanners_2/CMakeLists.txt cgal-5.5/examples/Cone_spanners_2/CMakeLists.txt --- cgal-5.4.1/examples/Cone_spanners_2/CMakeLists.txt 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Cone_spanners_2/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Cone_spanners_2_Examples) find_package(CGAL REQUIRED QUIET OPTIONAL_COMPONENTS Core) diff -Nru cgal-5.4.1/examples/Convex_decomposition_3/CMakeLists.txt cgal-5.5/examples/Convex_decomposition_3/CMakeLists.txt --- cgal-5.4.1/examples/Convex_decomposition_3/CMakeLists.txt 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Convex_decomposition_3/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Convex_decomposition_3_Examples) find_package(CGAL REQUIRED) diff -Nru cgal-5.4.1/examples/Convex_hull_2/CMakeLists.txt cgal-5.5/examples/Convex_hull_2/CMakeLists.txt --- cgal-5.4.1/examples/Convex_hull_2/CMakeLists.txt 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Convex_hull_2/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Convex_hull_2_Examples) find_package(CGAL REQUIRED) diff -Nru cgal-5.4.1/examples/Convex_hull_3/CMakeLists.txt cgal-5.5/examples/Convex_hull_3/CMakeLists.txt --- cgal-5.4.1/examples/Convex_hull_3/CMakeLists.txt 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Convex_hull_3/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_CMakeLists # This is the CMake script for compiling a set of CGAL applications. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Convex_hull_3_Examples) # CGAL and its components @@ -34,6 +34,8 @@ # Creating entries for all C++ files with "main" routine # ########################################################## +create_single_source_cgal_program("quickhull_indexed_triangle_set_3.cpp") + create_single_source_cgal_program("dynamic_hull_3.cpp") create_single_source_cgal_program("dynamic_hull_LCC_3.cpp") diff -Nru cgal-5.4.1/examples/Convex_hull_3/quickhull_indexed_triangle_set_3.cpp cgal-5.5/examples/Convex_hull_3/quickhull_indexed_triangle_set_3.cpp --- cgal-5.4.1/examples/Convex_hull_3/quickhull_indexed_triangle_set_3.cpp 1970-01-01 00:00:00.000000000 +0000 +++ cgal-5.5/examples/Convex_hull_3/quickhull_indexed_triangle_set_3.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -0,0 +1,32 @@ +#include +#include + +#include +#include +#include + + +typedef CGAL::Exact_predicates_inexact_constructions_kernel K; +typedef K::Point_3 Point_3; + + +int main(int argc, char* argv[]) +{ + std::ifstream in( (argc>1)? argv[1] : "data/cube.xyz"); + std::vector points; + + std::vector vertices; + std::vector > faces; + + Point_3 p; + while(in >> p){ + points.push_back(p); + } + + + CGAL::convex_hull_3(points.begin(), points.end(), vertices, faces); + + std::cout << vertices.size() << " " << faces.size() << std::endl; + + return 0; +} diff -Nru cgal-5.4.1/examples/Core/CMakeLists.txt cgal-5.5/examples/Core/CMakeLists.txt --- cgal-5.4.1/examples/Core/CMakeLists.txt 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Core/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Core_Examples) # CGAL and its components diff -Nru cgal-5.4.1/examples/Envelope_2/CMakeLists.txt cgal-5.5/examples/Envelope_2/CMakeLists.txt --- cgal-5.4.1/examples/Envelope_2/CMakeLists.txt 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Envelope_2/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Envelope_2_Examples) find_package(CGAL REQUIRED) diff -Nru cgal-5.4.1/examples/Envelope_2/envelope_circles.cpp cgal-5.5/examples/Envelope_2/envelope_circles.cpp --- cgal-5.4.1/examples/Envelope_2/envelope_circles.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Envelope_2/envelope_circles.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -8,6 +8,7 @@ #include #include #include +#include typedef CGAL::Exact_rational Number_type; typedef CGAL::Cartesian Kernel; @@ -42,7 +43,7 @@ e = v->right(); } - CGAL_assertion (e->is_empty()); + assert(e->is_empty()); std::cout << "Edge: [empty]" << std::endl; return; diff -Nru cgal-5.4.1/examples/Envelope_2/envelope_segments.cpp cgal-5.5/examples/Envelope_2/envelope_segments.cpp --- cgal-5.4.1/examples/Envelope_2/envelope_segments.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Envelope_2/envelope_segments.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -10,6 +10,7 @@ #include #include +#include typedef CGAL::Exact_rational Number_type; typedef CGAL::Cartesian Kernel; @@ -74,7 +75,7 @@ e = v->right(); } - CGAL_assertion (e->is_empty()); + assert(e->is_empty()); std::cout << "Edge: [empty]" << std::endl; return (0); diff -Nru cgal-5.4.1/examples/Envelope_3/CMakeLists.txt cgal-5.5/examples/Envelope_3/CMakeLists.txt --- cgal-5.4.1/examples/Envelope_3/CMakeLists.txt 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Envelope_3/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Envelope_3_Examples) find_package(CGAL REQUIRED COMPONENTS Core) diff -Nru cgal-5.4.1/examples/Filtered_kernel/Cartesian_I.h cgal-5.5/examples/Filtered_kernel/Cartesian_I.h --- cgal-5.4.1/examples/Filtered_kernel/Cartesian_I.h 2022-06-03 19:04:11.000000000 +0000 +++ cgal-5.5/examples/Filtered_kernel/Cartesian_I.h 2022-07-13 19:04:59.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Filtered_kernel/examples/Filtered_kernel/Cartesian_I.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Filtered_kernel/examples/Filtered_kernel/Cartesian_I.h $ // $Id: Cartesian_I.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/examples/Filtered_kernel/CMakeLists.txt cgal-5.5/examples/Filtered_kernel/CMakeLists.txt --- cgal-5.4.1/examples/Filtered_kernel/CMakeLists.txt 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Filtered_kernel/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Filtered_kernel_Examples) find_package(CGAL REQUIRED) diff -Nru cgal-5.4.1/examples/Generalized_map/CMakeLists.txt cgal-5.5/examples/Generalized_map/CMakeLists.txt --- cgal-5.4.1/examples/Generalized_map/CMakeLists.txt 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Generalized_map/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Generalized_map_Examples) find_package(CGAL REQUIRED) diff -Nru cgal-5.4.1/examples/Generalized_map/gmap_3_marks.cpp cgal-5.5/examples/Generalized_map/gmap_3_marks.cpp --- cgal-5.4.1/examples/Generalized_map/gmap_3_marks.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Generalized_map/gmap_3_marks.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -1,6 +1,7 @@ #include #include #include +#include typedef CGAL::Generalized_map<3> GMap_3; typedef GMap_3::Dart_handle Dart_handle; @@ -26,9 +27,9 @@ Dart_handle dh1 = gm.make_combinatorial_tetrahedron(); Dart_handle dh2 = gm.make_combinatorial_tetrahedron(); - CGAL_assertion( gm.is_valid() ); - CGAL_assertion( gm.is_volume_combinatorial_tetrahedron(dh1) ); - CGAL_assertion( gm.is_volume_combinatorial_tetrahedron(dh2) ); + assert( gm.is_valid() ); + assert( gm.is_volume_combinatorial_tetrahedron(dh1) ); + assert( gm.is_volume_combinatorial_tetrahedron(dh2) ); // 3) 3-sew them. gm.sew<3>(dh1, dh2); @@ -59,4 +60,3 @@ return EXIT_SUCCESS; } - diff -Nru cgal-5.4.1/examples/Generalized_map/gmap_3_operations.cpp cgal-5.5/examples/Generalized_map/gmap_3_operations.cpp --- cgal-5.4.1/examples/Generalized_map/gmap_3_operations.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Generalized_map/gmap_3_operations.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -1,6 +1,7 @@ #include #include #include +#include typedef CGAL::Generalized_map<3> GMap_3; typedef GMap_3::Dart_handle Dart_handle; @@ -14,11 +15,11 @@ // Add two edges along two opposite facets. gm.insert_cell_1_in_cell_2(d1,gm.alpha<0,1,0>(d1)); - CGAL_assertion( gm.is_valid() ); + assert( gm.is_valid() ); Dart_handle d2=gm.alpha<2,1,0,1,2>(d1); gm.insert_cell_1_in_cell_2(d2,gm.alpha<0,1,0>(d2)); - CGAL_assertion( gm.is_valid() ); + assert( gm.is_valid() ); // Insert a facet along these two new edges plus two initial edges // of the hexahedron. @@ -29,7 +30,7 @@ path.push_back(gm.alpha<2,1>(d2)); Dart_handle d3=gm.insert_cell_2_in_cell_3(path.begin(),path.end()); - CGAL_assertion( gm.is_valid() ); + assert( gm.is_valid() ); // Display the generalized map characteristics. gm.display_characteristics(std::cout) << ", valid=" << @@ -37,14 +38,14 @@ // We use the removal operations to get back to the initial hexahedron. gm.remove_cell<2>(d3); - CGAL_assertion( gm.is_valid() ); + assert( gm.is_valid() ); gm.remove_cell<1>(gm.alpha<1>(d1)); - CGAL_assertion( gm.is_valid() ); + assert( gm.is_valid() ); gm.remove_cell<1>(gm.alpha<1>(d2)); - CGAL_assertion( gm.is_valid() ); - CGAL_assertion( gm.is_volume_combinatorial_hexahedron(d1) ); + assert( gm.is_valid() ); + assert( gm.is_volume_combinatorial_hexahedron(d1) ); // Display the generalized map characteristics. gm.display_characteristics(std::cout) << ", valid=" @@ -52,4 +53,3 @@ return EXIT_SUCCESS; } - diff -Nru cgal-5.4.1/examples/Generalized_map/gmap_4_simple_example.cpp cgal-5.5/examples/Generalized_map/gmap_4_simple_example.cpp --- cgal-5.4.1/examples/Generalized_map/gmap_4_simple_example.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Generalized_map/gmap_4_simple_example.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -1,6 +1,7 @@ #include #include #include +#include typedef CGAL::Generalized_map<4> GMap_4; typedef GMap_4::Dart_handle Dart_handle; @@ -11,7 +12,7 @@ Dart_handle d1 = gm.make_combinatorial_tetrahedron(); Dart_handle d2 = gm.make_combinatorial_tetrahedron(); - CGAL_assertion(gm.is_valid()); + assert(gm.is_valid()); gm.sew<4>(d1,d2); diff -Nru cgal-5.4.1/examples/Generator/CMakeLists.txt cgal-5.5/examples/Generator/CMakeLists.txt --- cgal-5.4.1/examples/Generator/CMakeLists.txt 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Generator/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Generator_Examples) find_package(CGAL REQUIRED) diff -Nru cgal-5.4.1/examples/Generator/random_segments2.cpp cgal-5.5/examples/Generator/random_segments2.cpp --- cgal-5.4.1/examples/Generator/random_segments2.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Generator/random_segments2.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -8,6 +8,7 @@ #include #include #include +#include using namespace CGAL; @@ -41,16 +42,16 @@ Count_iterator t2_end( t2, 50); std::copy( t2_begin, t2_end, std::back_inserter(segs)); - CGAL_assertion( segs.size() == 100); + assert( segs.size() == 100); for ( Vector::iterator i = segs.begin(); i != segs.end(); i++){ - CGAL_assertion( i->source().x() <= 250); - CGAL_assertion( i->source().x() >= -250); - CGAL_assertion( i->source().y() <= 250); - CGAL_assertion( i->source().y() >= -250); - CGAL_assertion( i->target().x() <= 250); - CGAL_assertion( i->target().x() >= -250); - CGAL_assertion( i->target().y() <= 250); - CGAL_assertion( i->target().y() >= -250); + assert( i->source().x() <= 250); + assert( i->source().x() >= -250); + assert( i->source().y() <= 250); + assert( i->source().y() >= -250); + assert( i->target().x() <= 250); + assert( i->target().x() >= -250); + assert( i->target().y() <= 250); + assert( i->target().y() >= -250); } return 0; } diff -Nru cgal-5.4.1/examples/HalfedgeDS/CMakeLists.txt cgal-5.5/examples/HalfedgeDS/CMakeLists.txt --- cgal-5.4.1/examples/HalfedgeDS/CMakeLists.txt 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/HalfedgeDS/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(HalfedgeDS_Examples) find_package(CGAL REQUIRED) diff -Nru cgal-5.4.1/examples/HalfedgeDS/hds_prog_color.cpp cgal-5.5/examples/HalfedgeDS/hds_prog_color.cpp --- cgal-5.4.1/examples/HalfedgeDS/hds_prog_color.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/HalfedgeDS/hds_prog_color.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -1,6 +1,7 @@ #include #include #include +#include // A face type with a color member variable. template @@ -30,6 +31,6 @@ HDS hds; Face_handle f = hds.faces_push_back( Face( CGAL::IO::red())); f->color = CGAL::IO::blue(); - CGAL_assertion( f->color == CGAL::IO::blue()); + assert( f->color == CGAL::IO::blue()); return 0; } diff -Nru cgal-5.4.1/examples/HalfedgeDS/hds_prog_compact2.cpp cgal-5.5/examples/HalfedgeDS/hds_prog_compact2.cpp --- cgal-5.4.1/examples/HalfedgeDS/hds_prog_compact2.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/HalfedgeDS/hds_prog_compact2.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -2,6 +2,7 @@ #include #include #include +#include // Define a new halfedge class. We assume that the Halfedge_handle can // be created from a pointer (e.g. the HalfedgeDS is based here on the @@ -54,15 +55,15 @@ (~ std::ptrdiff_t(1)))); } void set_opposite( Halfedge_handle h) { - CGAL_precondition(( std::prev(&*h) == &* HDS::halfedge_handle(this)) || - ( std::next(&*h)== &* HDS::halfedge_handle(this))); + assert(( std::prev(&*h) == &* HDS::halfedge_handle(this)) || + ( std::next(&*h)== &* HDS::halfedge_handle(this))); if ( std::prev(&*h) == &* HDS::halfedge_handle(this)) nxt |= 1; else nxt &= (~ std::ptrdiff_t(1)); } void set_next( Halfedge_handle h) { - CGAL_precondition( ((std::ptrdiff_t)(&*h) & 1) == 0); + assert( ((std::ptrdiff_t)(&*h) & 1) == 0); nxt = ((std::ptrdiff_t)(&*h)) | (nxt & 1); } private: // Support for the Vertex_handle. @@ -98,6 +99,6 @@ HDS hds; Decorator decorator(hds); decorator.create_loop(); - CGAL_assertion( decorator.is_valid()); + assert( decorator.is_valid()); return 0; } diff -Nru cgal-5.4.1/examples/HalfedgeDS/hds_prog_compact.cpp cgal-5.5/examples/HalfedgeDS/hds_prog_compact.cpp --- cgal-5.4.1/examples/HalfedgeDS/hds_prog_compact.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/HalfedgeDS/hds_prog_compact.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -2,6 +2,7 @@ #include #include #include +#include // Define a new halfedge class. We assume that the Halfedge_handle can // be created from a pointer (e.g. the HalfedgeDS is based here on the @@ -55,15 +56,15 @@ (nxt & (~ std::ptrdiff_t(1)))); } void set_opposite( Halfedge_handle h) { - CGAL_precondition(( &* h - 1 == &* HDS::halfedge_handle(this)) || - ( &* h + 1 == &* HDS::halfedge_handle(this))); + assert(( &* h - 1 == &* HDS::halfedge_handle(this)) || + ( &* h + 1 == &* HDS::halfedge_handle(this))); if ( &* h - 1 == &* HDS::halfedge_handle(this)) nxt |= 1; else nxt &= (~ std::ptrdiff_t(1)); } void set_next( Halfedge_handle h) { - CGAL_precondition( ((std::ptrdiff_t)(&*h) & 1) == 0); + assert( ((std::ptrdiff_t)(&*h) & 1) == 0); nxt = ((std::ptrdiff_t)(&*h)) | (nxt & 1); } private: // Support for the Vertex_handle. @@ -99,6 +100,6 @@ HDS hds(1,2,2); Decorator decorator(hds); decorator.create_loop(); - CGAL_assertion( decorator.is_valid()); + assert( decorator.is_valid()); return 0; } diff -Nru cgal-5.4.1/examples/HalfedgeDS/hds_prog_default.cpp cgal-5.5/examples/HalfedgeDS/hds_prog_default.cpp --- cgal-5.4.1/examples/HalfedgeDS/hds_prog_default.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/HalfedgeDS/hds_prog_default.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -1,5 +1,6 @@ #include #include +#include struct Traits { typedef int Point_2; }; typedef CGAL::HalfedgeDS_default HDS; @@ -9,6 +10,6 @@ HDS hds; Decorator decorator(hds); decorator.create_loop(); - CGAL_assertion( decorator.is_valid()); + assert( decorator.is_valid()); return 0; } diff -Nru cgal-5.4.1/examples/HalfedgeDS/hds_prog_edge_iterator.cpp cgal-5.5/examples/HalfedgeDS/hds_prog_edge_iterator.cpp --- cgal-5.4.1/examples/HalfedgeDS/hds_prog_edge_iterator.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/HalfedgeDS/hds_prog_edge_iterator.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -1,6 +1,7 @@ #include #include #include +#include struct Traits { typedef int Point_2; }; typedef CGAL::HalfedgeDS_default HDS; @@ -13,10 +14,10 @@ Decorator decorator(hds); decorator.create_loop(); decorator.create_segment(); - CGAL_assertion( decorator.is_valid()); + assert( decorator.is_valid()); int n = 0; for ( Iterator e = hds.halfedges_begin(); e != hds.halfedges_end(); ++e) ++n; - CGAL_assertion( n == 2); // == 2 edges + assert( n == 2); // == 2 edges return 0; } diff -Nru cgal-5.4.1/examples/HalfedgeDS/hds_prog_graph2.cpp cgal-5.5/examples/HalfedgeDS/hds_prog_graph2.cpp --- cgal-5.4.1/examples/HalfedgeDS/hds_prog_graph2.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/HalfedgeDS/hds_prog_graph2.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -1,6 +1,7 @@ #include #include #include +#include // An items type using a halfedge with previous-pointer. struct My_items : public CGAL::HalfedgeDS_min_items { @@ -22,6 +23,6 @@ HDS hds; Decorator decorator(hds); decorator.create_loop(); - CGAL_assertion( decorator.is_valid()); + assert( decorator.is_valid()); return 0; } diff -Nru cgal-5.4.1/examples/HalfedgeDS/hds_prog_graph.cpp cgal-5.5/examples/HalfedgeDS/hds_prog_graph.cpp --- cgal-5.4.1/examples/HalfedgeDS/hds_prog_graph.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/HalfedgeDS/hds_prog_graph.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -1,6 +1,7 @@ #include #include #include +#include // no traits needed, argument can be arbitrary dummy. typedef CGAL::HalfedgeDS_default HDS; @@ -10,6 +11,6 @@ HDS hds; Decorator decorator(hds); decorator.create_loop(); - CGAL_assertion( decorator.is_valid()); + assert( decorator.is_valid()); return 0; } diff -Nru cgal-5.4.1/examples/HalfedgeDS/hds_prog_halfedge_iterator.cpp cgal-5.5/examples/HalfedgeDS/hds_prog_halfedge_iterator.cpp --- cgal-5.4.1/examples/HalfedgeDS/hds_prog_halfedge_iterator.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/HalfedgeDS/hds_prog_halfedge_iterator.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -1,5 +1,6 @@ #include #include +#include struct Traits { typedef int Point_2; }; typedef CGAL::HalfedgeDS_default HDS; @@ -11,10 +12,10 @@ Decorator decorator(hds); decorator.create_loop(); decorator.create_segment(); - CGAL_assertion( decorator.is_valid()); + assert( decorator.is_valid()); int n = 0; for ( Iterator i = hds.halfedges_begin(); i != hds.halfedges_end(); ++i ) ++n; - CGAL_assertion( n == 4); // == 2 edges + assert( n == 4); // == 2 edges return 0; } diff -Nru cgal-5.4.1/examples/HalfedgeDS/hds_prog_vector.cpp cgal-5.5/examples/HalfedgeDS/hds_prog_vector.cpp --- cgal-5.4.1/examples/HalfedgeDS/hds_prog_vector.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/HalfedgeDS/hds_prog_vector.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -1,6 +1,7 @@ #include #include #include +#include struct Traits { typedef int Point_2; }; typedef CGAL::HalfedgeDS_vector< Traits, CGAL::HalfedgeDS_items_2> HDS; @@ -10,6 +11,6 @@ HDS hds(1,2,2); Decorator decorator(hds); decorator.create_loop(); - CGAL_assertion( decorator.is_valid()); + assert( decorator.is_valid()); return 0; } diff -Nru cgal-5.4.1/examples/Heat_method_3/CMakeLists.txt cgal-5.5/examples/Heat_method_3/CMakeLists.txt --- cgal-5.4.1/examples/Heat_method_3/CMakeLists.txt 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Heat_method_3/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_CMakeLists # This is the CMake script for compiling a set of CGAL applications. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Heat_method_3_Examples) # CGAL and its components diff -Nru cgal-5.4.1/examples/Heat_method_3/heat_method_polyhedron.cpp cgal-5.5/examples/Heat_method_3/heat_method_polyhedron.cpp --- cgal-5.4.1/examples/Heat_method_3/heat_method_polyhedron.cpp 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Heat_method_3/heat_method_polyhedron.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -2,8 +2,7 @@ #include #include -#include - +#include #include #include @@ -23,7 +22,7 @@ return 1; } // map for the distance values to the source set - boost::unordered_map vertex_distance; + std::unordered_map vertex_distance; vertex_descriptor source = *(vertices(tm).first); diff -Nru cgal-5.4.1/examples/Hyperbolic_triangulation_2/CMakeLists.txt cgal-5.5/examples/Hyperbolic_triangulation_2/CMakeLists.txt --- cgal-5.4.1/examples/Hyperbolic_triangulation_2/CMakeLists.txt 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Hyperbolic_triangulation_2/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Hyperbolic_triangulation_2_Examples) find_package(CGAL REQUIRED COMPONENTS Core) diff -Nru cgal-5.4.1/examples/Inscribed_areas/CMakeLists.txt cgal-5.5/examples/Inscribed_areas/CMakeLists.txt --- cgal-5.4.1/examples/Inscribed_areas/CMakeLists.txt 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Inscribed_areas/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Inscribed_areas_Examples) find_package(CGAL REQUIRED) diff -Nru cgal-5.4.1/examples/Interpolation/CMakeLists.txt cgal-5.5/examples/Interpolation/CMakeLists.txt --- cgal-5.4.1/examples/Interpolation/CMakeLists.txt 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Interpolation/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Interpolation_Examples) find_package(CGAL REQUIRED) diff -Nru cgal-5.4.1/examples/Interval_skip_list/CMakeLists.txt cgal-5.5/examples/Interval_skip_list/CMakeLists.txt --- cgal-5.4.1/examples/Interval_skip_list/CMakeLists.txt 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Interval_skip_list/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Interval_skip_list_Examples) find_package(CGAL REQUIRED) diff -Nru cgal-5.4.1/examples/Jet_fitting_3/CMakeLists.txt cgal-5.5/examples/Jet_fitting_3/CMakeLists.txt --- cgal-5.4.1/examples/Jet_fitting_3/CMakeLists.txt 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Jet_fitting_3/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Jet_fitting_3_Examples) find_package(CGAL REQUIRED) diff -Nru cgal-5.4.1/examples/Kernel_23/CMakeLists.txt cgal-5.5/examples/Kernel_23/CMakeLists.txt --- cgal-5.4.1/examples/Kernel_23/CMakeLists.txt 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Kernel_23/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Kernel_23_Examples) find_package(CGAL REQUIRED) diff -Nru cgal-5.4.1/examples/Linear_cell_complex/basic_viewer.h cgal-5.5/examples/Linear_cell_complex/basic_viewer.h --- cgal-5.4.1/examples/Linear_cell_complex/basic_viewer.h 2022-06-03 19:04:41.000000000 +0000 +++ cgal-5.5/examples/Linear_cell_complex/basic_viewer.h 2022-07-13 19:05:33.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Linear_cell_complex/examples/Linear_cell_complex/basic_viewer.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Linear_cell_complex/examples/Linear_cell_complex/basic_viewer.h $ // $Id: basic_viewer.h 2d5f91f 2021-05-27T09:06:59+02:00 Maxime Gimeno // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/examples/Linear_cell_complex/CMakeLists.txt cgal-5.5/examples/Linear_cell_complex/CMakeLists.txt --- cgal-5.4.1/examples/Linear_cell_complex/CMakeLists.txt 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Linear_cell_complex/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Linear_cell_complex_Examples) find_package(CGAL REQUIRED OPTIONAL_COMPONENTS Qt5) diff -Nru cgal-5.4.1/examples/Linear_cell_complex/linear_cell_complex_4.cpp cgal-5.5/examples/Linear_cell_complex/linear_cell_complex_4.cpp --- cgal-5.4.1/examples/Linear_cell_complex/linear_cell_complex_4.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Linear_cell_complex/linear_cell_complex_4.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -1,6 +1,7 @@ #include #include #include +#include typedef CGAL::Linear_cell_complex_for_generalized_map<4,5> LCC_4; typedef LCC_4::Dart_handle Dart_handle; @@ -42,24 +43,24 @@ // Add one vertex on the middle of the edge containing dart d1. Dart_handle d3 = lcc.insert_barycenter_in_cell<1>(d1); - CGAL_assertion( lcc.is_valid() ); + assert( lcc.is_valid() ); lcc.display_characteristics(std::cout); std::cout<<", valid="<> P; + Polyhedron P1, P2; + std::ifstream ifs1((argc > 1) ? argv[1] : CGAL::data_file_path("meshes/cross_quad.off")); + ifs1 >> P1; + std::ifstream ifs2((argc > 1) ? argv[1] : CGAL::data_file_path("meshes/beam.off")); + ifs2 >> P2; // initialize nef from polyhedron - Nef_polyhedron N(P); + Nef_polyhedron N1(P1); + Nef_polyhedron N2(P2); // draw Nef Polyhedron - CGAL::draw(N); + CGAL::draw(N1-N2); return EXIT_SUCCESS; } diff -Nru cgal-5.4.1/examples/Nef_3/nef_3_construction.cpp cgal-5.5/examples/Nef_3/nef_3_construction.cpp --- cgal-5.4.1/examples/Nef_3/nef_3_construction.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Nef_3/nef_3_construction.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -1,6 +1,7 @@ #include #include #include +#include typedef CGAL::Extended_homogeneous Kernel; typedef CGAL::Nef_polyhedron_3 Nef_polyhedron; @@ -14,19 +15,19 @@ Nef_polyhedron N4(Plane_3( 1, 2, 5,-1), Nef_polyhedron::INCLUDED); Nef_polyhedron N5(Plane_3( 1, 2, 5,-1), Nef_polyhedron::EXCLUDED); - CGAL_assertion(N0 == N1); - CGAL_assertion(N3 == N4); - CGAL_assertion(N0 != N2); - CGAL_assertion(N3 != N5); - - CGAL_assertion(N4 >= N5); - CGAL_assertion(N5 <= N4); - CGAL_assertion(N4 > N5); - CGAL_assertion(N5 < N4); + assert(N0 == N1); + assert(N3 == N4); + assert(N0 != N2); + assert(N3 != N5); + + assert(N4 >= N5); + assert(N5 <= N4); + assert(N4 > N5); + assert(N5 < N4); N5 = N5.closure(); - CGAL_assertion(N4 >= N5); - CGAL_assertion(N4 <= N5); + assert(N4 >= N5); + assert(N4 <= N5); return 0; } diff -Nru cgal-5.4.1/examples/Nef_3/nef_3_simple.cpp cgal-5.5/examples/Nef_3/nef_3_simple.cpp --- cgal-5.4.1/examples/Nef_3/nef_3_simple.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Nef_3/nef_3_simple.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -1,6 +1,7 @@ #include #include #include +#include typedef CGAL::Homogeneous Kernel; typedef CGAL::Nef_polyhedron_3 Nef_polyhedron; @@ -9,7 +10,7 @@ Nef_polyhedron N0(Nef_polyhedron::EMPTY); Nef_polyhedron N1(Nef_polyhedron::COMPLETE); - CGAL_assertion (N0 == N1.complement()); - CGAL_assertion (N0 != N1); + assert(N0 == N1.complement()); + assert(N0 != N1); return 0; } diff -Nru cgal-5.4.1/examples/Nef_3/point_set_operations.cpp cgal-5.5/examples/Nef_3/point_set_operations.cpp --- cgal-5.4.1/examples/Nef_3/point_set_operations.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Nef_3/point_set_operations.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -1,6 +1,7 @@ #include #include #include +#include typedef CGAL::Extended_homogeneous Kernel; typedef CGAL::Nef_polyhedron_3 Nef_polyhedron; @@ -22,11 +23,11 @@ Cube1 *= !I3; Nef_polyhedron Cube2 = N1 * N2 * N3 * N4 * N5 * N6; - CGAL_assertion(Cube1 == Cube2); // both are closed cube - CGAL_assertion(Cube1 == Cube1.closure()); - CGAL_assertion(Cube1 == Cube1.regularization()); - CGAL_assertion((N1 - N1.boundary()) == N1.interior()); - CGAL_assertion(I1.closure() == I1.complement().interior().complement()); - CGAL_assertion(I1.regularization() == I1.interior().closure()); + assert(Cube1 == Cube2); // both are closed cube + assert(Cube1 == Cube1.closure()); + assert(Cube1 == Cube1.regularization()); + assert((N1 - N1.boundary()) == N1.interior()); + assert(I1.closure() == I1.complement().interior().complement()); + assert(I1.regularization() == I1.interior().closure()); return 0; } diff -Nru cgal-5.4.1/examples/Nef_3/set_operations.cpp cgal-5.5/examples/Nef_3/set_operations.cpp --- cgal-5.4.1/examples/Nef_3/set_operations.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Nef_3/set_operations.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -1,6 +1,7 @@ #include #include #include +#include typedef CGAL::Exact_integer NT; typedef CGAL::Extended_homogeneous Kernel; @@ -22,6 +23,6 @@ Nef_polyhedron Cube1(I2 *!I1); Cube1 *= !I3; Nef_polyhedron Cube2 = N1 * N2 * N3 * N4 * N5 * N6; - CGAL_assertion (Cube1 == Cube2); + assert(Cube1 == Cube2); return 0; } diff -Nru cgal-5.4.1/examples/Nef_3/topological_operations.cpp cgal-5.5/examples/Nef_3/topological_operations.cpp --- cgal-5.4.1/examples/Nef_3/topological_operations.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Nef_3/topological_operations.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -2,6 +2,7 @@ #include #include #include +#include typedef CGAL::Exact_integer NT; typedef CGAL::Homogeneous Kernel; @@ -12,9 +13,9 @@ Nef_polyhedron N; std::cin >> N; - CGAL_assertion((N - N.boundary()) == N.interior()); - CGAL_assertion(N.closure() == N.complement().interior().complement()); - CGAL_assertion(N.regularization() == N.interior().closure()); + assert((N - N.boundary()) == N.interior()); + assert(N.closure() == N.complement().interior().complement()); + assert(N.regularization() == N.interior().closure()); return 0; } diff -Nru cgal-5.4.1/examples/Nef_3/transformation.cpp cgal-5.5/examples/Nef_3/transformation.cpp --- cgal-5.4.1/examples/Nef_3/transformation.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Nef_3/transformation.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -2,6 +2,7 @@ #include #include #include +#include typedef CGAL::Extended_homogeneous Kernel; @@ -21,11 +22,11 @@ Aff_transformation_3 scale(CGAL::SCALING, 3, 2); N.transform(transl); - CGAL_assertion(N == Nef_polyhedron(Plane_3(0,1,0,-7))); + assert(N == Nef_polyhedron(Plane_3(0,1,0,-7))); N.transform(rotx90); - CGAL_assertion(N == Nef_polyhedron(Plane_3(0,0,1,-7))); + assert(N == Nef_polyhedron(Plane_3(0,0,1,-7))); N.transform(scale); - CGAL_assertion(N == Nef_polyhedron(Plane_3(0,0,2,-21))); + assert(N == Nef_polyhedron(Plane_3(0,0,2,-21))); return 0; } diff -Nru cgal-5.4.1/examples/Nef_S2/CMakeLists.txt cgal-5.5/examples/Nef_S2/CMakeLists.txt --- cgal-5.4.1/examples/Nef_S2/CMakeLists.txt 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Nef_S2/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Nef_S2_Examples) find_package(CGAL REQUIRED) diff -Nru cgal-5.4.1/examples/Nef_S2/nef_s2_construction.cpp cgal-5.5/examples/Nef_S2/nef_s2_construction.cpp --- cgal-5.4.1/examples/Nef_S2/nef_s2_construction.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Nef_S2/nef_s2_construction.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -1,6 +1,7 @@ #include #include #include +#include typedef CGAL::Exact_integer RT; typedef CGAL::Homogeneous Kernel; @@ -16,7 +17,7 @@ Sphere_circle c(1,1,1); // c : x + y + z = 0 Nef_polyhedron N2(c, Nef_polyhedron::INCLUDED); Nef_polyhedron N3(N2.complement()); - CGAL_assertion(N1 == N2.join(N3)); + assert(N1 == N2.join(N3)); Sphere_point p1(1,0,0), p2(0,1,0), p3(0,0,1); Sphere_segment s1(p1,p2), s2(p2,p3), s3(p3,p1); Sphere_segment triangle[3] = { s1, s2, s3 }; @@ -24,7 +25,7 @@ Nef_polyhedron N5; N5 += N2; N5 = N5.intersection(N4); - CGAL_assertion(N5 <= N2 && N5 != N4); + assert(N5 <= N2 && N5 != N4); return 0; } diff -Nru cgal-5.4.1/examples/Optimal_bounding_box/CMakeLists.txt cgal-5.5/examples/Optimal_bounding_box/CMakeLists.txt --- cgal-5.4.1/examples/Optimal_bounding_box/CMakeLists.txt 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Optimal_bounding_box/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Optimal_bounding_box_Examples) find_package(CGAL REQUIRED) diff -Nru cgal-5.4.1/examples/Optimal_transportation_reconstruction_2/CMakeLists.txt cgal-5.5/examples/Optimal_transportation_reconstruction_2/CMakeLists.txt --- cgal-5.4.1/examples/Optimal_transportation_reconstruction_2/CMakeLists.txt 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Optimal_transportation_reconstruction_2/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Optimal_transportation_reconstruction_2_Examples) find_package(CGAL REQUIRED) diff -Nru cgal-5.4.1/examples/Orthtree/CMakeLists.txt cgal-5.5/examples/Orthtree/CMakeLists.txt --- cgal-5.4.1/examples/Orthtree/CMakeLists.txt 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Orthtree/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Orthtree_Examples) find_package(CGAL REQUIRED QUIET OPTIONAL_COMPONENTS Core) diff -Nru cgal-5.4.1/examples/Partition_2/CMakeLists.txt cgal-5.5/examples/Partition_2/CMakeLists.txt --- cgal-5.4.1/examples/Partition_2/CMakeLists.txt 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Partition_2/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Partition_2_Examples) find_package(CGAL REQUIRED) diff -Nru cgal-5.4.1/examples/Periodic_2_triangulation_2/CMakeLists.txt cgal-5.5/examples/Periodic_2_triangulation_2/CMakeLists.txt --- cgal-5.4.1/examples/Periodic_2_triangulation_2/CMakeLists.txt 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Periodic_2_triangulation_2/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Periodic_2_triangulation_2_Examples) find_package(CGAL REQUIRED OPTIONAL_COMPONENTS Qt5) diff -Nru cgal-5.4.1/examples/Periodic_2_triangulation_2/draw_periodic_2_triangulation_2.cpp cgal-5.5/examples/Periodic_2_triangulation_2/draw_periodic_2_triangulation_2.cpp --- cgal-5.4.1/examples/Periodic_2_triangulation_2/draw_periodic_2_triangulation_2.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Periodic_2_triangulation_2/draw_periodic_2_triangulation_2.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -23,7 +23,6 @@ { while (ifs >> p) { T.insert(p); } - CGAL_assertion(T.is_valid()); if( T.is_triangulation_in_1_sheet()) { T.convert_to_9_sheeted_covering(); } diff -Nru cgal-5.4.1/examples/Periodic_2_triangulation_2/p2t2_info_insert_with_pair_iterator_2.cpp cgal-5.5/examples/Periodic_2_triangulation_2/p2t2_info_insert_with_pair_iterator_2.cpp --- cgal-5.4.1/examples/Periodic_2_triangulation_2/p2t2_info_insert_with_pair_iterator_2.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Periodic_2_triangulation_2/p2t2_info_insert_with_pair_iterator_2.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -31,8 +31,6 @@ Delaunay T; T.insert( points.begin(), points.end() ); - CGAL_assertion( T.number_of_vertices() == 6 ); - // check that the info was correctly set. Delaunay::Finite_vertices_iterator vit; for (vit = T.finite_vertices_begin(); vit != T.finite_vertices_end(); ++vit) diff -Nru cgal-5.4.1/examples/Periodic_2_triangulation_2/p2t2_info_insert_with_transform_iterator_2.cpp cgal-5.5/examples/Periodic_2_triangulation_2/p2t2_info_insert_with_transform_iterator_2.cpp --- cgal-5.4.1/examples/Periodic_2_triangulation_2/p2t2_info_insert_with_transform_iterator_2.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Periodic_2_triangulation_2/p2t2_info_insert_with_transform_iterator_2.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -46,8 +46,6 @@ T.insert( boost::make_transform_iterator(points.begin(), Auto_count()), boost::make_transform_iterator(points.end(), Auto_count() ) ); - CGAL_assertion( T.number_of_vertices() == 6 ); - // check that the info was correctly set. Delaunay::Finite_vertices_iterator vit; for (vit = T.finite_vertices_begin(); vit != T.finite_vertices_end(); ++vit) diff -Nru cgal-5.4.1/examples/Periodic_2_triangulation_2/p2t2_info_insert_with_zip_iterator_2.cpp cgal-5.5/examples/Periodic_2_triangulation_2/p2t2_info_insert_with_zip_iterator_2.cpp --- cgal-5.4.1/examples/Periodic_2_triangulation_2/p2t2_info_insert_with_zip_iterator_2.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Periodic_2_triangulation_2/p2t2_info_insert_with_zip_iterator_2.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -41,9 +41,6 @@ T.insert( boost::make_zip_iterator(boost::make_tuple( points.begin(), indices.begin() )), boost::make_zip_iterator(boost::make_tuple( points.end(), indices.end() ) ) ); - CGAL_assertion( T.number_of_vertices() == 6 ); - - // check that the info was correctly set. Delaunay::Finite_vertices_iterator vit; for (vit = T.finite_vertices_begin(); vit != T.finite_vertices_end(); ++vit) diff -Nru cgal-5.4.1/examples/Periodic_3_mesh_3/CMakeLists.txt cgal-5.5/examples/Periodic_3_mesh_3/CMakeLists.txt --- cgal-5.4.1/examples/Periodic_3_mesh_3/CMakeLists.txt 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Periodic_3_mesh_3/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_CMakeLists # This is the CMake script for compiling a set of CGAL applications. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Periodic_3_mesh_3_Examples) # CGAL and its components diff -Nru cgal-5.4.1/examples/Periodic_3_triangulation_3/CMakeLists.txt cgal-5.5/examples/Periodic_3_triangulation_3/CMakeLists.txt --- cgal-5.4.1/examples/Periodic_3_triangulation_3/CMakeLists.txt 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Periodic_3_triangulation_3/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Periodic_3_triangulation_3_Examples) find_package(CGAL REQUIRED) diff -Nru cgal-5.4.1/examples/Periodic_4_hyperbolic_triangulation_2/CMakeLists.txt cgal-5.5/examples/Periodic_4_hyperbolic_triangulation_2/CMakeLists.txt --- cgal-5.4.1/examples/Periodic_4_hyperbolic_triangulation_2/CMakeLists.txt 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Periodic_4_hyperbolic_triangulation_2/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Periodic_4_hyperbolic_triangulation_2_Examples) find_package(CGAL REQUIRED QUIET OPTIONAL_COMPONENTS Core) diff -Nru cgal-5.4.1/examples/Point_set_2/CMakeLists.txt cgal-5.5/examples/Point_set_2/CMakeLists.txt --- cgal-5.4.1/examples/Point_set_2/CMakeLists.txt 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Point_set_2/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Point_set_2_Examples) find_package(CGAL REQUIRED) diff -Nru cgal-5.4.1/examples/Point_set_3/CMakeLists.txt cgal-5.5/examples/Point_set_3/CMakeLists.txt --- cgal-5.4.1/examples/Point_set_3/CMakeLists.txt 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Point_set_3/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_CMakeLists # This is the CMake script for compiling a set of CGAL applications. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Point_set_3_Examples) # CGAL and its components diff -Nru cgal-5.4.1/examples/Point_set_processing_3/CMakeLists.txt cgal-5.5/examples/Point_set_processing_3/CMakeLists.txt --- cgal-5.4.1/examples/Point_set_processing_3/CMakeLists.txt 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Point_set_processing_3/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,6 +1,6 @@ # This is the CMake script for compiling this folder. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Point_set_processing_3_Examples) # Find CGAL diff -Nru cgal-5.4.1/examples/Point_set_processing_3/grid_simplification_example.cpp cgal-5.5/examples/Point_set_processing_3/grid_simplification_example.cpp --- cgal-5.4.1/examples/Point_set_processing_3/grid_simplification_example.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Point_set_processing_3/grid_simplification_example.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -23,11 +23,18 @@ } // simplification by clustering using erase-remove idiom - double cell_size = 0.001; - points.erase(CGAL::grid_simplify_point_set(points, cell_size), points.end()); + double cell_size = 0.03; + unsigned int min_points_per_cell = 3; - // Optional: after erase(), use Scott Meyer's "swap trick" to trim excess capacity - std::vector(points).swap(points); + auto iterator_to_first_to_remove + = CGAL::grid_simplify_point_set + (points, cell_size, + CGAL::parameters::min_points_per_cell(min_points_per_cell)); // optional + + points.erase(iterator_to_first_to_remove, points.end()); + + // Optional: after erase(), shrink_to_fit to trim excess capacity + points.shrink_to_fit(); return EXIT_SUCCESS; } diff -Nru cgal-5.4.1/examples/Poisson_surface_reconstruction_3/CMakeLists.txt cgal-5.5/examples/Poisson_surface_reconstruction_3/CMakeLists.txt --- cgal-5.4.1/examples/Poisson_surface_reconstruction_3/CMakeLists.txt 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Poisson_surface_reconstruction_3/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,6 +1,6 @@ # This is the CMake script for compiling this folder. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Poisson_surface_reconstruction_3_Examples) # Find CGAL diff -Nru cgal-5.4.1/examples/Poisson_surface_reconstruction_3/poisson_reconstruction.cpp cgal-5.5/examples/Poisson_surface_reconstruction_3/poisson_reconstruction.cpp --- cgal-5.4.1/examples/Poisson_surface_reconstruction_3/poisson_reconstruction.cpp 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Poisson_surface_reconstruction_3/poisson_reconstruction.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -104,12 +104,12 @@ //*************************************** // usage - if (argc-1 < 2) + if(argc == 1) { std::cerr << "Reads a point set or a mesh's set of vertices, reconstructs a surface using Poisson,\n"; std::cerr << "and saves the surface.\n"; std::cerr << "\n"; - std::cerr << "Usage: " << argv[0] << " file_in file_out [options]\n"; + std::cerr << "Usage: " << argv[0] << " [file_in] [file_out] [options]\n"; std::cerr << "Input file formats are .off (mesh) and .xyz or .pwn (point set).\n"; std::cerr << "Output file format is .off.\n"; std::cerr << "Options:\n"; @@ -127,8 +127,8 @@ double average_spacing_ratio = 5; // decode parameters - std::string input_filename = argc == 1 ? CGAL::data_file_path("points_3/kitten.xyz") : argv[1]; - std::string output_filename = argc == 1 ? "kitten_poisson-20-100-0.5.off" : argv[2]; + std::string input_filename = (argc > 1) ? argv[1] : CGAL::data_file_path("points_3/kitten.xyz"); + std::string output_filename = (argc > 2) ? argv[2] : "kitten_poisson-20-100-0.5.off"; for (int i=3; i+1 +#include + +typedef CGAL::Exact_predicates_inexact_constructions_kernel K; +typedef CGAL::Polygon_2 Polygon_2; +typedef K::Point_2 Point_2; +typedef K::Segment_2 Segment_2; + + +int main() +{ + // create a polygon and put some points in it + Polygon_2 p; + + p.push_back(Point_2(0,0)); + p.push_back(Point_2(4,0)); + p.push_back(Point_2(4,4)); + + + for(const Point_2& p : p.vertices()){ + std::cout << p << std::endl; + } + + // As the range is not light weight, we have to use a reference + const Polygon_2::Vertices& range = p.vertices(); + + for(auto it = range.begin(); it!= range.end(); ++it){ + std::cout << *it << std::endl; + } + + for(const Segment_2& e : p.edges()){ + std::cout << e << std::endl; + } + + return EXIT_SUCCESS; +} diff -Nru cgal-5.4.1/examples/Polygonal_surface_reconstruction/CMakeLists.txt cgal-5.5/examples/Polygonal_surface_reconstruction/CMakeLists.txt --- cgal-5.4.1/examples/Polygonal_surface_reconstruction/CMakeLists.txt 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Polygonal_surface_reconstruction/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -3,7 +3,7 @@ project(Polygonal_surface_reconstruction_Examples) -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) # CGAL and its components find_package(CGAL REQUIRED) diff -Nru cgal-5.4.1/examples/Polygon_mesh_processing/cc_compatible_orientations.cpp cgal-5.5/examples/Polygon_mesh_processing/cc_compatible_orientations.cpp --- cgal-5.4.1/examples/Polygon_mesh_processing/cc_compatible_orientations.cpp 1970-01-01 00:00:00.000000000 +0000 +++ cgal-5.5/examples/Polygon_mesh_processing/cc_compatible_orientations.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -0,0 +1,75 @@ +#include +#include + +#include +#include +#include +#include + +#include +#include +#include + +typedef CGAL::Exact_predicates_inexact_constructions_kernel Kernel; +typedef Kernel::Point_3 Point; + +typedef CGAL::Surface_mesh Mesh; + +namespace PMP = CGAL::Polygon_mesh_processing; + + +// create a mesh with many connected connected components that should +// be reoriented to define a valid closed mesh +void create_mesh_with_cc_to_orient(Mesh& mesh) +{ + const std::string filename = CGAL::data_file_path("meshes/elephant.off"); + CGAL::IO::read_polygon_mesh(filename, mesh); + + // turn the mesh into a triangle soup, duplicating all the vertices and shuffling orientations + std::vector points; + std::vector< std::array > triangles; + triangles.reserve(faces(mesh).size()); + points.reserve(3*triangles.size()); + for (Mesh::Face_index f : mesh.faces()) + { + Mesh::Halfedge_index h = mesh.halfedge(f); + std::size_t s = points.size(); + points.push_back(mesh.point(source(h,mesh))); + points.push_back(mesh.point(target(h,mesh))); + points.push_back(mesh.point(target(mesh.next(h),mesh))); + triangles.push_back( {s, s+1, s+2} ); + if (std::rand() % 2 == 0) + std::swap(triangles.back()[0], triangles.back()[1]); + } + + // load the soup into the mesh; + mesh.clear(); + PMP::polygon_soup_to_polygon_mesh(points, triangles, mesh); +} + +int main() +{ + Mesh mesh; + create_mesh_with_cc_to_orient(mesh); + CGAL::IO::write_polygon_mesh("to_orient.off", mesh, CGAL::parameters::stream_precision(17)); + + // determine face orientations to be reversed to create compatibility + auto fbm = mesh.add_property_map("fbm", false).first; + bool is_orientable = PMP::compatible_orientations(mesh, fbm); + assert(is_orientable); + + // reverse orientation of faces with bit 1 + std::vector faces_to_reverse; + for (Mesh::Face_index f : mesh.faces()) + if (get(fbm, f)) + faces_to_reverse.push_back(f); + PMP::reverse_face_orientations(faces_to_reverse, mesh); + + // there are still borders between previously incompatible faces: stitch to close the mesh + PMP::stitch_borders(mesh); + + assert(CGAL::is_closed(mesh)); + CGAL::IO::write_polygon_mesh("oriented_and_stitched.off", mesh, CGAL::parameters::stream_precision(17)); + + return 0; +} diff -Nru cgal-5.4.1/examples/Polygon_mesh_processing/CMakeLists.txt cgal-5.5/examples/Polygon_mesh_processing/CMakeLists.txt --- cgal-5.4.1/examples/Polygon_mesh_processing/CMakeLists.txt 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Polygon_mesh_processing/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_CMakeLists # This is the CMake script for compiling a set of CGAL applications. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Polygon_mesh_processing_Examples) # CGAL and its components @@ -44,6 +44,8 @@ target_link_libraries(hole_filling_example PUBLIC CGAL::Eigen3_support) create_single_source_cgal_program("hole_filling_example_SM.cpp") target_link_libraries(hole_filling_example_SM PUBLIC CGAL::Eigen3_support) + create_single_source_cgal_program("hole_filling_visitor_example.cpp") + target_link_libraries(hole_filling_visitor_example PUBLIC CGAL::Eigen3_support) create_single_source_cgal_program("refine_fair_example.cpp") target_link_libraries(refine_fair_example PUBLIC CGAL::Eigen3_support) create_single_source_cgal_program("shape_smoothing_example.cpp") @@ -54,6 +56,7 @@ target_link_libraries(mesh_smoothing_example PUBLIC CGAL::Eigen3_support) endif() +create_single_source_cgal_program( "extrude.cpp" ) create_single_source_cgal_program( "polyhedral_envelope.cpp" ) create_single_source_cgal_program( "polyhedral_envelope_of_triangle_soup.cpp" ) create_single_source_cgal_program( "polyhedral_envelope_mesh_containment.cpp" ) @@ -72,11 +75,13 @@ #create_single_source_cgal_program( "remove_degeneracies_example.cpp") create_single_source_cgal_program("isotropic_remeshing_example.cpp") create_single_source_cgal_program("isotropic_remeshing_of_patch_example.cpp") +create_single_source_cgal_program("tangential_relaxation_example.cpp") create_single_source_cgal_program("surface_mesh_intersection.cpp") create_single_source_cgal_program("corefinement_SM.cpp") create_single_source_cgal_program("corefinement_consecutive_bool_op.cpp") create_single_source_cgal_program("corefinement_difference_remeshed.cpp") create_single_source_cgal_program("corefinement_mesh_union.cpp") +create_single_source_cgal_program("corefinement_mesh_union_progress.cpp") create_single_source_cgal_program( "corefinement_mesh_union_and_intersection.cpp") create_single_source_cgal_program("corefinement_mesh_union_with_attributes.cpp") @@ -92,6 +97,7 @@ #create_single_source_cgal_program( "self_snapping_example.cpp") #create_single_source_cgal_program( "snapping_example.cpp") create_single_source_cgal_program("match_faces.cpp") +create_single_source_cgal_program("cc_compatible_orientations.cpp") if(OpenMesh_FOUND) diff -Nru cgal-5.4.1/examples/Polygon_mesh_processing/compute_normals_example.cpp cgal-5.5/examples/Polygon_mesh_processing/compute_normals_example.cpp --- cgal-5.4.1/examples/Polygon_mesh_processing/compute_normals_example.cpp 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Polygon_mesh_processing/compute_normals_example.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -4,8 +4,8 @@ #include #include -#include #include +#include typedef CGAL::Exact_predicates_inexact_constructions_kernel K; diff -Nru cgal-5.4.1/examples/Polygon_mesh_processing/compute_normals_example_OM.cpp cgal-5.5/examples/Polygon_mesh_processing/compute_normals_example_OM.cpp --- cgal-5.4.1/examples/Polygon_mesh_processing/compute_normals_example_OM.cpp 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Polygon_mesh_processing/compute_normals_example_OM.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -7,7 +7,7 @@ #include #include -#include +#include typedef CGAL::Exact_predicates_inexact_constructions_kernel K; typedef K::Point_3 Point; diff -Nru cgal-5.4.1/examples/Polygon_mesh_processing/compute_normals_example_Polyhedron.cpp cgal-5.5/examples/Polygon_mesh_processing/compute_normals_example_Polyhedron.cpp --- cgal-5.4.1/examples/Polygon_mesh_processing/compute_normals_example_Polyhedron.cpp 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Polygon_mesh_processing/compute_normals_example_Polyhedron.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -9,8 +9,8 @@ #include #include -#include #include +#include typedef CGAL::Exact_predicates_inexact_constructions_kernel K; typedef K::Point_3 Point; diff -Nru cgal-5.4.1/examples/Polygon_mesh_processing/connected_components_example.cpp cgal-5.5/examples/Polygon_mesh_processing/connected_components_example.cpp --- cgal-5.4.1/examples/Polygon_mesh_processing/connected_components_example.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Polygon_mesh_processing/connected_components_example.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -8,8 +8,9 @@ #include #include -#include +#include #include +#include typedef CGAL::Exact_predicates_inexact_constructions_kernel Kernel; typedef Kernel::Point_3 Point; @@ -112,7 +113,7 @@ mesh.add_property_map("f:CC").first; std::size_t num = PMP::connected_components(mesh, fccmap, - PMP::parameters::edge_is_constrained_map(Constraint(mesh, bound))); + CGAL::parameters::edge_is_constrained_map(Constraint(mesh, bound))); std::cerr << "- The graph has " << num << " connected components (face connectivity)" << std::endl; typedef std::map Components_size; @@ -128,12 +129,12 @@ std::cerr << "- We keep only components which have at least 4 faces" << std::endl; PMP::keep_large_connected_components(mesh, 4, - PMP::parameters::edge_is_constrained_map(Constraint(mesh, bound))); + CGAL::parameters::edge_is_constrained_map(Constraint(mesh, bound))); std::cerr << "- We keep the two largest components" << std::endl; PMP::keep_largest_connected_components(mesh, 2, - PMP::parameters::edge_is_constrained_map(Constraint(mesh, bound))); + CGAL::parameters::edge_is_constrained_map(Constraint(mesh, bound))); return 0; } diff -Nru cgal-5.4.1/examples/Polygon_mesh_processing/corefinement_consecutive_bool_op.cpp cgal-5.5/examples/Polygon_mesh_processing/corefinement_consecutive_bool_op.cpp --- cgal-5.4.1/examples/Polygon_mesh_processing/corefinement_consecutive_bool_op.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Polygon_mesh_processing/corefinement_consecutive_bool_op.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -5,8 +5,8 @@ #include #include -#include #include +#include typedef CGAL::Exact_predicates_inexact_constructions_kernel K; typedef CGAL::Exact_predicates_exact_constructions_kernel EK; @@ -15,7 +15,7 @@ typedef Mesh::Property_map Exact_point_map; namespace PMP = CGAL::Polygon_mesh_processing; -namespace params = PMP::parameters; +namespace params = CGAL::parameters; struct Exact_vertex_point_map { diff -Nru cgal-5.4.1/examples/Polygon_mesh_processing/corefinement_difference_remeshed.cpp cgal-5.5/examples/Polygon_mesh_processing/corefinement_difference_remeshed.cpp --- cgal-5.4.1/examples/Polygon_mesh_processing/corefinement_difference_remeshed.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Polygon_mesh_processing/corefinement_difference_remeshed.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -9,6 +9,8 @@ #include #include +#include +#include typedef CGAL::Exact_predicates_inexact_constructions_kernel K; @@ -18,7 +20,7 @@ typedef boost::graph_traits::face_descriptor face_descriptor; namespace PMP = CGAL::Polygon_mesh_processing; -namespace params = PMP::parameters; +namespace params = CGAL::parameters; struct Vector_pmap_wrapper { @@ -56,8 +58,8 @@ PMP::corefine_and_compute_difference(mesh1, mesh2, mesh1, - params::all_default(), // default parameters for mesh1 - params::all_default(), // default parameters for mesh2 + params::default_values(), // default parameters for mesh1 + params::default_values(), // default parameters for mesh2 params::edge_is_constrained_map(is_constrained_map)); if (valid_difference) diff -Nru cgal-5.4.1/examples/Polygon_mesh_processing/corefinement_LCC.cpp cgal-5.5/examples/Polygon_mesh_processing/corefinement_LCC.cpp --- cgal-5.4.1/examples/Polygon_mesh_processing/corefinement_LCC.cpp 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Polygon_mesh_processing/corefinement_LCC.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -5,6 +5,8 @@ #include #include +#include +#include typedef CGAL::Exact_predicates_inexact_constructions_kernel Kernel; typedef Kernel::Point_3 Point; diff -Nru cgal-5.4.1/examples/Polygon_mesh_processing/corefinement_mesh_union_and_intersection.cpp cgal-5.5/examples/Polygon_mesh_processing/corefinement_mesh_union_and_intersection.cpp --- cgal-5.4.1/examples/Polygon_mesh_processing/corefinement_mesh_union_and_intersection.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Polygon_mesh_processing/corefinement_mesh_union_and_intersection.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -4,14 +4,16 @@ #include #include -#include +#include #include +#include +#include typedef CGAL::Exact_predicates_inexact_constructions_kernel K; typedef CGAL::Surface_mesh Mesh; namespace PMP = CGAL::Polygon_mesh_processing; -namespace params = CGAL::Polygon_mesh_processing::parameters; +namespace params = CGAL::parameters; int main(int argc, char* argv[]) { @@ -36,13 +38,13 @@ PMP::corefine_and_compute_boolean_operations( mesh1, mesh2, output, - params::all_default(), // mesh1 named parameters - params::all_default(), // mesh2 named parameters + params::default_values(), // mesh1 named parameters + params::default_values(), // mesh2 named parameters std::make_tuple( params::vertex_point_map(get(boost::vertex_point, out_union)), // named parameters for out_union params::vertex_point_map(get(boost::vertex_point, out_intersection)), // named parameters for out_intersection - params::all_default(), // named parameters for mesh1-mesh2 not used - params::all_default() )// named parameters for mesh2-mesh1 not used) + params::default_values(), // named parameters for mesh1-mesh2 not used + params::default_values() )// named parameters for mesh2-mesh1 not used) ); if (res[PMP::Corefinement::UNION]) diff -Nru cgal-5.4.1/examples/Polygon_mesh_processing/corefinement_mesh_union.cpp cgal-5.5/examples/Polygon_mesh_processing/corefinement_mesh_union.cpp --- cgal-5.4.1/examples/Polygon_mesh_processing/corefinement_mesh_union.cpp 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Polygon_mesh_processing/corefinement_mesh_union.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -4,7 +4,8 @@ #include #include -#include +#include +#include typedef CGAL::Exact_predicates_inexact_constructions_kernel K; typedef CGAL::Surface_mesh Mesh; diff -Nru cgal-5.4.1/examples/Polygon_mesh_processing/corefinement_mesh_union_progress.cpp cgal-5.5/examples/Polygon_mesh_processing/corefinement_mesh_union_progress.cpp --- cgal-5.4.1/examples/Polygon_mesh_processing/corefinement_mesh_union_progress.cpp 1970-01-01 00:00:00.000000000 +0000 +++ cgal-5.5/examples/Polygon_mesh_processing/corefinement_mesh_union_progress.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -0,0 +1,217 @@ +#include +#include + +#include +#include + +#include + +typedef CGAL::Exact_predicates_inexact_constructions_kernel K; +typedef CGAL::Surface_mesh Mesh; + +namespace PMP = CGAL::Polygon_mesh_processing; + +struct Visitor_rep{ + + Visitor_rep(double normalize = 4) + : normalize(normalize) + { + t.start(); + } + + void progress_filtering_intersections(double d) + { + d /= normalize; + total += d; + if(total > bound){ + std::cout << std::setprecision(3) << total*100 << " % in " << std::setprecision(5) << t.time() << " sec." << std::endl; + bound += 0.1; + } + } + + void start_triangulating_faces(std::size_t tf) + { + tfaces = tf; + bound_faces = tf/10; + } + + void face_triangulation(std::size_t i) + { + if(i> bound_faces){ + std::cout << double(i)/double(tfaces) * 100 << " %" << std::endl; + bound_faces += tfaces/10; + } + } + + void start_coplanar_faces(std::size_t tc) + { + std::cout << "Visitor::start_coplanar_faces() at " << t.time() << " sec." << std::endl; + tcoplanar= tc; + count_coplanar = 0; + bound_coplanar = tcoplanar/10; + } + + void intersection_of_coplanar_faces_step() + { + ++count_coplanar; + if(count_coplanar> bound_coplanar){ + std::cout << "Visitor::coplanar_faces: " << double(count_coplanar)/double(tcoplanar) * 100 << " % " << std::endl; + bound_coplanar += tcoplanar/10; + } + } + + void start_intersection_points(std::size_t ti) + { + std::cout << "Visitor::start_intersection_points() at " << t.time() << " sec." << std::endl; + tintersection= ti; + count_intersection = 0; + bound_intersection = tintersection/10; + } + + void edge_face_intersections_step() + { + ++count_intersection; + if(count_intersection> bound_intersection){ + std::cout << "Visitor::intersection_points: " << double(count_intersection)/double(tintersection) * 100 << " % " << std::endl; + bound_intersection += tintersection/10; + } + } + + double time() const + { + return t.time(); + } + + double normalize; + double bound = 0.1; + double total = 0; + std::size_t count = 0; + + std::size_t bound_faces = 0; + std::size_t tfaces = 0; + + std::size_t bound_coplanar = 0; + std::size_t tcoplanar = 0; + std::size_t count_coplanar = 0; + + std::size_t bound_intersection = 0; + std::size_t tintersection = 0; + std::size_t count_intersection = 0; + CGAL::Timer t; +}; + + +struct Visitor : + public PMP::Corefinement::Default_visitor +{ + std::shared_ptr sptr; + + Visitor() + : sptr(std::make_shared()) + {} + + void progress_filtering_intersections(double d) + { + sptr->progress_filtering_intersections(d); + } + + void start_filtering_intersections() const + { + std::cout << "Visitor::start_filtering_intersections() at " << sptr->time() << " sec." << std::endl; + } + void end_filtering_intersections() const + { + std::cout << "Visitor::end_filtering_intersections() at " << sptr->time() << " sec." << std::endl; + } + + void start_triangulating_faces(std::size_t tf)const + { + std::cout << "Visitor::start_triangulation() with " << tf << " faces at " << sptr->time() << " sec." << std::endl; + sptr->start_triangulating_faces(tf); + } + + void face_triangulation(std::size_t i) const + { + sptr->face_triangulation(i); + } + + void end_triangulating_faces()const + { + std::cout << "Visitor::end_triangulating_faces() at " << sptr->time() << " sec." << std::endl; + } + + void start_coplanar_faces(std::size_t i) const + { + sptr->start_coplanar_faces(i); + } + + void intersection_of_coplanar_faces_step() const + { + sptr->intersection_of_coplanar_faces_step(); + } + + void end_coplanar_faces() const + { + std::cout << "Visitor::end_coplanar_faces() at " << sptr->time() << " sec." << std::endl; + } + + void start_intersection_points(std::size_t i) const + { + sptr->start_intersection_points(i); + } + + void edge_face_intersections_step() const + { + sptr->edge_face_intersections_step(); + } + + void end_intersection_points() const + { + std::cout << "Visitor::end_intersection_points() at " << sptr->time() << " sec." << std::endl; + } + + void start_building_output() const + { + std::cout << "Visitor::start_building_output() at " << sptr->time() << " sec."<< std::endl; + } + + void end_building_output() const + { + std::cout << "Visitor::end_building_output() at " << sptr->time() << " sec." << std::endl; + } +}; + + +int main(int argc, char* argv[]) +{ + const std::string filename1 = (argc > 1) ? argv[1] : CGAL::data_file_path("meshes/blobby.off"); + const std::string filename2 = (argc > 2) ? argv[2] : CGAL::data_file_path("meshes/eight.off"); + + Mesh mesh1, mesh2; + if(!CGAL::IO::read_polygon_mesh(filename1, mesh1) || !CGAL::IO::read_polygon_mesh(filename2, mesh2)) + { + std::cerr << "Invalid input." << std::endl; + return 1; + } + + CGAL::Timer t; + t.start(); + Mesh out; + Visitor visitor; + + bool valid_union = PMP::corefine_and_compute_union (mesh1,mesh2, out, CGAL::parameters::visitor(visitor)); + + std::cout << "Global timer = " << t.time() << " sec." << std::endl; + + + if(valid_union) + { + std::cout << "Union was successfully computed\n"; + CGAL::IO::write_polygon_mesh("union.off", out, CGAL::parameters::stream_precision(17)); + return 0; + } + + std::cout << "Union could not be computed\n"; + + return 1; +} diff -Nru cgal-5.4.1/examples/Polygon_mesh_processing/corefinement_mesh_union_with_attributes.cpp cgal-5.5/examples/Polygon_mesh_processing/corefinement_mesh_union_with_attributes.cpp --- cgal-5.4.1/examples/Polygon_mesh_processing/corefinement_mesh_union_with_attributes.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Polygon_mesh_processing/corefinement_mesh_union_with_attributes.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -6,8 +6,8 @@ #include -#include #include +#include typedef CGAL::Exact_predicates_inexact_constructions_kernel K; typedef CGAL::Surface_mesh Mesh; @@ -77,7 +77,7 @@ visitor.properties[&mesh2] = mesh2_id; visitor.properties[&out] = out_id; - bool valid_union = PMP::corefine_and_compute_union(mesh1, mesh2, out, PMP::parameters::visitor(visitor)); + bool valid_union = PMP::corefine_and_compute_union(mesh1, mesh2, out, CGAL::parameters::visitor(visitor)); for(Mesh::Face_index f : faces(mesh1)) assert( mesh1_id[f] == 1 ); diff -Nru cgal-5.4.1/examples/Polygon_mesh_processing/corefinement_OM_union.cpp cgal-5.5/examples/Polygon_mesh_processing/corefinement_OM_union.cpp --- cgal-5.4.1/examples/Polygon_mesh_processing/corefinement_OM_union.cpp 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Polygon_mesh_processing/corefinement_OM_union.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -7,14 +7,13 @@ #include -#include #include +#include typedef CGAL::Exact_predicates_inexact_constructions_kernel K; // default kernel for OpenMesh point type typedef CGAL::Exact_predicates_exact_constructions_kernel EK; // alternatice kernel we want to use typedef OpenMesh::PolyMesh_ArrayKernelT< > Mesh; - typedef boost::property_map >::type Exact_point_map; struct Exact_vertex_point_map diff -Nru cgal-5.4.1/examples/Polygon_mesh_processing/corefinement_polyhedron_union.cpp cgal-5.5/examples/Polygon_mesh_processing/corefinement_polyhedron_union.cpp --- cgal-5.4.1/examples/Polygon_mesh_processing/corefinement_polyhedron_union.cpp 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Polygon_mesh_processing/corefinement_polyhedron_union.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -7,6 +7,7 @@ #include #include +#include typedef CGAL::Exact_predicates_inexact_constructions_kernel K; typedef CGAL::Polyhedron_3 Mesh; diff -Nru cgal-5.4.1/examples/Polygon_mesh_processing/corefinement_SM.cpp cgal-5.5/examples/Polygon_mesh_processing/corefinement_SM.cpp --- cgal-5.4.1/examples/Polygon_mesh_processing/corefinement_SM.cpp 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Polygon_mesh_processing/corefinement_SM.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -4,8 +4,8 @@ #include #include -#include #include +#include typedef CGAL::Exact_predicates_inexact_constructions_kernel K; typedef CGAL::Surface_mesh Mesh; diff -Nru cgal-5.4.1/examples/Polygon_mesh_processing/detect_features_example.cpp cgal-5.5/examples/Polygon_mesh_processing/detect_features_example.cpp --- cgal-5.4.1/examples/Polygon_mesh_processing/detect_features_example.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Polygon_mesh_processing/detect_features_example.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -4,8 +4,8 @@ #include #include -#include #include +#include typedef CGAL::Exact_predicates_inexact_constructions_kernel K; typedef CGAL::Surface_mesh Mesh; @@ -34,7 +34,7 @@ std::size_t number_of_patches = PMP::sharp_edges_segmentation(mesh, 90, eif, pid, - PMP::parameters::vertex_incident_patches_map(vip)); + CGAL::parameters::vertex_incident_patches_map(vip)); std::size_t nb_sharp_edges = 0; for(boost::graph_traits::edge_descriptor e : edges(mesh)) @@ -43,8 +43,8 @@ ++nb_sharp_edges; } - std::cout<<"This mesh contains "< +#include +#include +#include +#include + +#include +#include +#include + +typedef CGAL::Exact_predicates_inexact_constructions_kernel Kernel; +typedef CGAL::Surface_mesh SM; +typedef boost::graph_traits::vertex_descriptor vertex_descriptor; + +typedef Kernel::Vector_3 Vector; +typedef boost::property_map::type VPMap; +typedef SM::template Property_map VNMap; + +struct Bottom +{ + Bottom(VPMap pmap, VNMap nmap, double vlen) + : pmap(pmap), nmap(nmap), vlen(vlen) + {} + + + void operator()(const vertex_descriptor& vin, const vertex_descriptor vout) const + { + put(pmap, vout, get(pmap, vout) - vlen* get(nmap, vin)); + } + + VPMap pmap; + VNMap nmap; + double vlen; +}; + +struct Top +{ + Top(VPMap pmap, VNMap nmap, double vlen) + : pmap(pmap), nmap(nmap), vlen(vlen) + {} + + + void operator()(const vertex_descriptor& vin, const vertex_descriptor vout) const + { + put(pmap, vout, get(pmap, vout) + vlen* get(nmap, vin)); + } + + VPMap pmap; + VNMap nmap; + double vlen; +}; + +int main(int argc, char* argv[]) +{ + SM in, out; + + std::string filename = (argc > 1) ? std::string(argv[1]) : CGAL::data_file_path("meshes/cube-ouvert.off"); + double vlen = (argc > 2) ? std::stod(argv[2]) : 0.1; + + CGAL::IO::read_polygon_mesh(filename, in); + + VNMap vnormals = in.template add_property_map("v:normals", CGAL::NULL_VECTOR).first; + + CGAL::Polygon_mesh_processing::compute_vertex_normals(in, vnormals); + Bottom bottom(get(CGAL::vertex_point,out), vnormals, vlen); + Top top(get(CGAL::vertex_point,out), vnormals, vlen); + CGAL::Polygon_mesh_processing::extrude_mesh(in, out, bottom, top); + + + filename = filename.substr(filename.find_last_of("/") + 1, filename.length() - 1); + filename = filename.substr(0, filename.find_last_of(".")); + filename = filename + "_" + std::to_string(vlen) + ".off"; + CGAL::IO::write_polygon_mesh(filename, out, CGAL::parameters::stream_precision(17)); + return 0; +} diff -Nru cgal-5.4.1/examples/Polygon_mesh_processing/face_filtered_graph_example.cpp cgal-5.5/examples/Polygon_mesh_processing/face_filtered_graph_example.cpp --- cgal-5.4.1/examples/Polygon_mesh_processing/face_filtered_graph_example.cpp 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Polygon_mesh_processing/face_filtered_graph_example.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -8,8 +8,9 @@ #include #include -#include #include +#include +#include typedef CGAL::Exact_predicates_inexact_constructions_kernel Kernel; typedef Kernel::Point_3 Point; diff -Nru cgal-5.4.1/examples/Polygon_mesh_processing/hausdorff_bounded_error_distance_example.cpp cgal-5.5/examples/Polygon_mesh_processing/hausdorff_bounded_error_distance_example.cpp --- cgal-5.4.1/examples/Polygon_mesh_processing/hausdorff_bounded_error_distance_example.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Polygon_mesh_processing/hausdorff_bounded_error_distance_example.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -42,7 +42,7 @@ const double target_edge_length = 0.05; PMP::isotropic_remeshing( mesh2.faces(), target_edge_length, mesh2, - PMP::parameters::edge_is_constrained_map(is_constrained_map)); + CGAL::parameters::edge_is_constrained_map(is_constrained_map)); std::cout << "* one-sided bounded-error Hausdorff distance: " << PMP::bounded_error_Hausdorff_distance(mesh1, mesh2, error_bound) << std::endl; diff -Nru cgal-5.4.1/examples/Polygon_mesh_processing/hausdorff_distance_remeshing_example.cpp cgal-5.5/examples/Polygon_mesh_processing/hausdorff_distance_remeshing_example.cpp --- cgal-5.4.1/examples/Polygon_mesh_processing/hausdorff_distance_remeshing_example.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Polygon_mesh_processing/hausdorff_distance_remeshing_example.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -25,7 +25,7 @@ std::cout << "Approximated Hausdorff distance: " << CGAL::Polygon_mesh_processing::approximate_Hausdorff_distance - (tm1, tm2, PMP::parameters::number_of_points_per_area_unit(4000)) + (tm1, tm2, CGAL::parameters::number_of_points_per_area_unit(4000)) << std::endl; return 0; diff -Nru cgal-5.4.1/examples/Polygon_mesh_processing/hole_filling_example.cpp cgal-5.5/examples/Polygon_mesh_processing/hole_filling_example.cpp --- cgal-5.4.1/examples/Polygon_mesh_processing/hole_filling_example.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Polygon_mesh_processing/hole_filling_example.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -4,8 +4,10 @@ #include #include -#include #include +#include +#include +#include #include typedef CGAL::Exact_predicates_inexact_constructions_kernel Kernel; @@ -41,8 +43,8 @@ h, std::back_inserter(patch_facets), std::back_inserter(patch_vertices), - PMP::parameters::vertex_point_map(get(CGAL::vertex_point, poly)) - .geom_traits(Kernel()))); + CGAL::parameters::vertex_point_map(get(CGAL::vertex_point, poly)) + .geom_traits(Kernel()))); std::cout << " Number of facets in constructed patch: " << patch_facets.size() << std::endl; std::cout << " Number of vertices in constructed patch: " << patch_vertices.size() << std::endl; diff -Nru cgal-5.4.1/examples/Polygon_mesh_processing/hole_filling_example_LCC.cpp cgal-5.5/examples/Polygon_mesh_processing/hole_filling_example_LCC.cpp --- cgal-5.4.1/examples/Polygon_mesh_processing/hole_filling_example_LCC.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Polygon_mesh_processing/hole_filling_example_LCC.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -5,8 +5,10 @@ #include #include -#include #include +#include +#include +#include #include typedef CGAL::Exact_predicates_inexact_constructions_kernel Kernel; @@ -43,8 +45,8 @@ h, std::back_inserter(patch_facets), std::back_inserter(patch_vertices), - PMP::parameters::vertex_point_map(get(CGAL::vertex_point, mesh)) - .geom_traits(Kernel()))); + CGAL::parameters::vertex_point_map(get(CGAL::vertex_point, mesh)) + .geom_traits(Kernel()))); std::cout << "* Number of facets in constructed patch: " << patch_facets.size() << std::endl; std::cout << " Number of vertices in constructed patch: " << patch_vertices.size() << std::endl; diff -Nru cgal-5.4.1/examples/Polygon_mesh_processing/hole_filling_example_OM.cpp cgal-5.5/examples/Polygon_mesh_processing/hole_filling_example_OM.cpp --- cgal-5.4.1/examples/Polygon_mesh_processing/hole_filling_example_OM.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Polygon_mesh_processing/hole_filling_example_OM.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -7,8 +7,11 @@ #include #include -#include +#include #include +#include +#include +#include #include typedef CGAL::Exact_predicates_inexact_constructions_kernel Kernel; @@ -42,7 +45,7 @@ CGAL::parameters::vertex_point_map(get(CGAL::vertex_point, mesh)) .geom_traits(Kernel()))); - CGAL_assertion(CGAL::is_valid_polygon_mesh(mesh)); + assert(CGAL::is_valid_polygon_mesh(mesh)); std::cout << "* FILL HOLE NUMBER " << ++nb_holes << std::endl; std::cout << " Number of facets in constructed patch: " << patch_facets.size() << std::endl; @@ -51,7 +54,7 @@ } } - CGAL_assertion(CGAL::is_valid_polygon_mesh(mesh)); + assert(CGAL::is_valid_polygon_mesh(mesh)); std::cout << std::endl; std::cout << nb_holes << " holes have been filled" << std::endl; diff -Nru cgal-5.4.1/examples/Polygon_mesh_processing/hole_filling_example_SM.cpp cgal-5.5/examples/Polygon_mesh_processing/hole_filling_example_SM.cpp --- cgal-5.4.1/examples/Polygon_mesh_processing/hole_filling_example_SM.cpp 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Polygon_mesh_processing/hole_filling_example_SM.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -8,9 +8,10 @@ #include #include -#include +#include +#include +#include #include -#include typedef CGAL::Exact_predicates_inexact_constructions_kernel Kernel; typedef Kernel::Point_3 Point; diff -Nru cgal-5.4.1/examples/Polygon_mesh_processing/hole_filling_visitor_example.cpp cgal-5.5/examples/Polygon_mesh_processing/hole_filling_visitor_example.cpp --- cgal-5.4.1/examples/Polygon_mesh_processing/hole_filling_visitor_example.cpp 1970-01-01 00:00:00.000000000 +0000 +++ cgal-5.5/examples/Polygon_mesh_processing/hole_filling_visitor_example.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -0,0 +1,191 @@ +#include +#include + +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +#include +#include + +typedef CGAL::Real_timer Timer; +typedef CGAL::Exact_predicates_inexact_constructions_kernel Kernel; +typedef Kernel::Point_3 Point; +typedef CGAL::Surface_mesh Mesh; + +typedef boost::graph_traits::vertex_descriptor vertex_descriptor; +typedef boost::graph_traits::halfedge_descriptor halfedge_descriptor; +typedef boost::graph_traits::face_descriptor face_descriptor; + +namespace PMP = CGAL::Polygon_mesh_processing; + +bool is_small_hole(halfedge_descriptor h, Mesh & mesh, + double max_hole_diam, int max_num_hole_edges) +{ + int num_hole_edges = 0; + CGAL::Bbox_3 hole_bbox; + for (halfedge_descriptor hc : CGAL::halfedges_around_face(h, mesh)) + { + const Point& p = mesh.point(target(hc, mesh)); + + hole_bbox += p.bbox(); + ++num_hole_edges; + + // Exit early, to avoid unnecessary traversal of large holes + if (num_hole_edges > max_num_hole_edges) return false; + if (hole_bbox.xmax() - hole_bbox.xmin() > max_hole_diam) return false; + if (hole_bbox.ymax() - hole_bbox.ymin() > max_hole_diam) return false; + if (hole_bbox.zmax() - hole_bbox.zmin() > max_hole_diam) return false; + } + + return true; +} + +struct Stop : std::exception +{ + Stop() + {} +}; + +struct Progress : + public PMP::Hole_filling::Default_visitor +{ + Progress(double time_limit) + : time_limit(time_limit) + {} + + Progress(const Progress&) = delete; + + void start_planar_phase() const + { + std::cout << "Start planar phase"<< std::endl; + } + + void end_planar_phase(bool success) const + { + std::cout << "End planar phase " << (success? "(success)" : "(failed)") << std::endl; + } + + void start_quadratic_phase(std::size_t n) + { + timer.start(); + quadratic_i = 0; + quadratic_n = n; + quadratic_report = n / 10; + std::cout << "Start quadratic phase with estimated " << n << " steps" << std::endl; + } + + void quadratic_step() + { + if (quadratic_i++ == quadratic_report) { + std::cout << double(quadratic_i) / double(quadratic_n) * 100 << "%" << std::endl; + quadratic_report += quadratic_n / 10; + } + } + + void end_quadratic_phase(bool success) const + { + timer.stop(); + std::cout << "End quadratic phase " << timer.time() << " sec. " << (success ? "(success)" : "(failed)") << std::endl; + timer.reset(); + } + + + void start_cubic_phase(std::size_t n) + { + timer.start(); + cubic_n = n; + cubic_report = n / 10; + std::cout << "Start cubic phase with " << n << " steps" << std::endl; + } + + + void cubic_step() + { + if (timer.time() > time_limit) { + std::cout << "Let's stop here" << std::endl; + throw Stop(); + } + if (cubic_i++ == cubic_report) { + std::cout << double(cubic_i) / double(cubic_n) * 100 << "%" << std::endl; + cubic_report += cubic_n / 10; + } + } + + void end_cubic_phase() const + { + std::cout << "End cubic phase " << timer.time() << " sec. " << std::endl; + } + + mutable Timer timer; + double time_limit; + std::size_t quadratic_n = 0, quadratic_i = 0, quadratic_report = 0; + std::size_t cubic_n = 0, cubic_i = 0, cubic_report = 0; +}; + +// Incrementally fill the holes that are no larger than given diameter +// and with no more than a given number of edges (if specified). + +int main(int argc, char* argv[]) +{ + const std::string filename = (argc > 1) ? argv[1] : CGAL::data_file_path("meshes/mech-holes-shark.off"); + + Mesh mesh; + if(!PMP::IO::read_polygon_mesh(filename, mesh)) + { + std::cerr << "Invalid input." << std::endl; + return 1; + } + + // Both of these must be positive in order to be considered + double max_hole_diam = (argc > 2) ? boost::lexical_cast(argv[2]): -1.0; + int max_num_hole_edges = (argc > 3) ? boost::lexical_cast(argv[3]) : -1; + + unsigned int nb_holes = 0; + std::vector border_cycles; + + // collect one halfedge per boundary cycle + PMP::extract_boundary_cycles(mesh, std::back_inserter(border_cycles)); + + for(halfedge_descriptor h : border_cycles) + { + if(max_hole_diam > 0 && max_num_hole_edges > 0 && + !is_small_hole(h, mesh, max_hole_diam, max_num_hole_edges)) + continue; + + std::vector patch_facets; + std::vector patch_vertices; + Progress progress(10.0); + bool success = false; + + try { + success = std::get<0>(PMP::triangulate_refine_and_fair_hole(mesh, + h, + std::back_inserter(patch_facets), + std::back_inserter(patch_vertices), + CGAL::parameters::visitor(std::ref(progress)).use_delaunay_triangulation(true))); + } + catch (const Stop&) { + std::cout << "We stopped with a timeout" << std::endl; + } + std::cout << "* Number of facets in constructed patch: " << patch_facets.size() << std::endl; + std::cout << " Number of vertices in constructed patch: " << patch_vertices.size() << std::endl; + std::cout << " Is fairing successful: " << success << std::endl; + ++nb_holes; + } + + std::cout << std::endl; + std::cout << nb_holes << " holes have been filled" << std::endl; + + CGAL::IO::write_polygon_mesh("filled_SM.off", mesh, CGAL::parameters::stream_precision(17)); + std::cout << "Mesh written to: filled_SM.off" << std::endl; + + return 0; +} diff -Nru cgal-5.4.1/examples/Polygon_mesh_processing/isotropic_remeshing_example.cpp cgal-5.5/examples/Polygon_mesh_processing/isotropic_remeshing_example.cpp --- cgal-5.4.1/examples/Polygon_mesh_processing/isotropic_remeshing_example.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Polygon_mesh_processing/isotropic_remeshing_example.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -6,9 +6,9 @@ #include -#include -#include +#include #include +#include typedef CGAL::Exact_predicates_inexact_constructions_kernel K; typedef CGAL::Surface_mesh Mesh; @@ -56,8 +56,8 @@ << " (" << num_faces(mesh) << " faces)..." << std::endl; PMP::isotropic_remeshing(faces(mesh), target_edge_length, mesh, - PMP::parameters::number_of_iterations(nb_iter) - .protect_constraints(true)); //i.e. protect border, here + CGAL::parameters::number_of_iterations(nb_iter) + .protect_constraints(true)); //i.e. protect border, here std::cout << "Remeshing done." << std::endl; diff -Nru cgal-5.4.1/examples/Polygon_mesh_processing/isotropic_remeshing_of_patch_example.cpp cgal-5.5/examples/Polygon_mesh_processing/isotropic_remeshing_of_patch_example.cpp --- cgal-5.4.1/examples/Polygon_mesh_processing/isotropic_remeshing_of_patch_example.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Polygon_mesh_processing/isotropic_remeshing_of_patch_example.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -7,7 +7,9 @@ #include -#include +#include +#include +#include #include typedef CGAL::Exact_predicates_inexact_constructions_kernel K; @@ -70,7 +72,7 @@ PMP::isotropic_remeshing(patch, target_edge_length, mesh, - PMP::parameters::number_of_iterations(nb_iter) + CGAL::parameters::number_of_iterations(nb_iter) .face_patch_map(selected) .protect_constraints(true)//i.e. protect border, here ); diff -Nru cgal-5.4.1/examples/Polygon_mesh_processing/manifoldness_repair_example.cpp cgal-5.5/examples/Polygon_mesh_processing/manifoldness_repair_example.cpp --- cgal-5.4.1/examples/Polygon_mesh_processing/manifoldness_repair_example.cpp 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Polygon_mesh_processing/manifoldness_repair_example.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -6,9 +6,9 @@ #include -#include #include #include +#include #include namespace PMP = CGAL::Polygon_mesh_processing; diff -Nru cgal-5.4.1/examples/Polygon_mesh_processing/match_faces.cpp cgal-5.5/examples/Polygon_mesh_processing/match_faces.cpp --- cgal-5.4.1/examples/Polygon_mesh_processing/match_faces.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Polygon_mesh_processing/match_faces.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -5,12 +5,13 @@ #include #include #include -#include +#include #include #include -#include #include +#include +#include typedef CGAL::Exact_predicates_inexact_constructions_kernel K; diff -Nru cgal-5.4.1/examples/Polygon_mesh_processing/mesh_slicer_example.cpp cgal-5.5/examples/Polygon_mesh_processing/mesh_slicer_example.cpp --- cgal-5.4.1/examples/Polygon_mesh_processing/mesh_slicer_example.cpp 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Polygon_mesh_processing/mesh_slicer_example.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -8,7 +8,10 @@ #include #include -#include +#include +#include +#include +#include typedef CGAL::Exact_predicates_inexact_constructions_kernel K; typedef CGAL::Surface_mesh Mesh; diff -Nru cgal-5.4.1/examples/Polygon_mesh_processing/mesh_smoothing_example.cpp cgal-5.5/examples/Polygon_mesh_processing/mesh_smoothing_example.cpp --- cgal-5.4.1/examples/Polygon_mesh_processing/mesh_smoothing_example.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Polygon_mesh_processing/mesh_smoothing_example.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -1,12 +1,12 @@ #include #include -#include +#include #include #include #include -#include +#include typedef CGAL::Exact_predicates_inexact_constructions_kernel K; typedef CGAL::Surface_mesh Mesh; @@ -43,9 +43,9 @@ std::cout << "Smoothing mesh... (" << nb_iterations << " iterations)" << std::endl; // Smooth with both angle and area criteria + Delaunay flips - PMP::smooth_mesh(mesh, PMP::parameters::number_of_iterations(nb_iterations) - .use_safety_constraints(false) // authorize all moves - .edge_is_constrained_map(eif)); + PMP::angle_and_area_smoothing(mesh, CGAL::parameters::number_of_iterations(nb_iterations) + .use_safety_constraints(false) // authorize all moves + .edge_is_constrained_map(eif)); CGAL::IO::write_polygon_mesh("mesh_smoothed.off", mesh, CGAL::parameters::stream_precision(17)); diff -Nru cgal-5.4.1/examples/Polygon_mesh_processing/orientation_pipeline_example.cpp cgal-5.5/examples/Polygon_mesh_processing/orientation_pipeline_example.cpp --- cgal-5.4.1/examples/Polygon_mesh_processing/orientation_pipeline_example.cpp 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Polygon_mesh_processing/orientation_pipeline_example.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -12,8 +12,9 @@ #include #include -#include #include +#include +#include typedef CGAL::Exact_predicates_inexact_constructions_kernel K; typedef K::Point_3 Point_3; diff -Nru cgal-5.4.1/examples/Polygon_mesh_processing/orient_polygon_soup_example.cpp cgal-5.5/examples/Polygon_mesh_processing/orient_polygon_soup_example.cpp --- cgal-5.4.1/examples/Polygon_mesh_processing/orient_polygon_soup_example.cpp 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Polygon_mesh_processing/orient_polygon_soup_example.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -9,9 +9,10 @@ #include -#include #include #include +#include +#include typedef CGAL::Exact_predicates_inexact_constructions_kernel K; typedef CGAL::Polyhedron_3 Polyhedron; diff -Nru cgal-5.4.1/examples/Polygon_mesh_processing/point_inside_example.cpp cgal-5.5/examples/Polygon_mesh_processing/point_inside_example.cpp --- cgal-5.4.1/examples/Polygon_mesh_processing/point_inside_example.cpp 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Polygon_mesh_processing/point_inside_example.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -5,9 +5,10 @@ #include #include -#include -#include +#include #include +#include +#include typedef CGAL::Exact_predicates_inexact_constructions_kernel K; typedef K::Point_3 Point; diff -Nru cgal-5.4.1/examples/Polygon_mesh_processing/point_inside_example_OM.cpp cgal-5.5/examples/Polygon_mesh_processing/point_inside_example_OM.cpp --- cgal-5.4.1/examples/Polygon_mesh_processing/point_inside_example_OM.cpp 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Polygon_mesh_processing/point_inside_example_OM.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -7,9 +7,10 @@ #include #include -#include -#include +#include #include +#include +#include typedef CGAL::Exact_predicates_inexact_constructions_kernel K; diff -Nru cgal-5.4.1/examples/Polygon_mesh_processing/polyhedral_envelope.cpp cgal-5.5/examples/Polygon_mesh_processing/polyhedral_envelope.cpp --- cgal-5.4.1/examples/Polygon_mesh_processing/polyhedral_envelope.cpp 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Polygon_mesh_processing/polyhedral_envelope.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -2,6 +2,7 @@ #include #include +#include #include int main(int argc, char* argv[]) diff -Nru cgal-5.4.1/examples/Polygon_mesh_processing/polyhedral_envelope_mesh_containment.cpp cgal-5.5/examples/Polygon_mesh_processing/polyhedral_envelope_mesh_containment.cpp --- cgal-5.4.1/examples/Polygon_mesh_processing/polyhedral_envelope_mesh_containment.cpp 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Polygon_mesh_processing/polyhedral_envelope_mesh_containment.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -3,6 +3,8 @@ #include #include +#include +#include #include namespace PMP = CGAL::Polygon_mesh_processing; diff -Nru cgal-5.4.1/examples/Polygon_mesh_processing/polyhedral_envelope_of_triangle_soup.cpp cgal-5.5/examples/Polygon_mesh_processing/polyhedral_envelope_of_triangle_soup.cpp --- cgal-5.4.1/examples/Polygon_mesh_processing/polyhedral_envelope_of_triangle_soup.cpp 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Polygon_mesh_processing/polyhedral_envelope_of_triangle_soup.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -2,8 +2,9 @@ #include #include -#include +#include #include +#include int main(int argc, char* argv[]) { diff -Nru cgal-5.4.1/examples/Polygon_mesh_processing/random_perturbation_SM_example.cpp cgal-5.5/examples/Polygon_mesh_processing/random_perturbation_SM_example.cpp --- cgal-5.4.1/examples/Polygon_mesh_processing/random_perturbation_SM_example.cpp 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Polygon_mesh_processing/random_perturbation_SM_example.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -5,7 +5,7 @@ #include #include -#include +#include typedef CGAL::Exact_predicates_inexact_constructions_kernel K; typedef K::Point_3 Point; diff -Nru cgal-5.4.1/examples/Polygon_mesh_processing/refine_fair_example.cpp cgal-5.5/examples/Polygon_mesh_processing/refine_fair_example.cpp --- cgal-5.4.1/examples/Polygon_mesh_processing/refine_fair_example.cpp 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Polygon_mesh_processing/refine_fair_example.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -5,8 +5,11 @@ #include #include -#include +#include +#include #include +#include +#include typedef CGAL::Exact_predicates_inexact_constructions_kernel Kernel; diff -Nru cgal-5.4.1/examples/Polygon_mesh_processing/self_intersections_example.cpp cgal-5.5/examples/Polygon_mesh_processing/self_intersections_example.cpp --- cgal-5.4.1/examples/Polygon_mesh_processing/self_intersections_example.cpp 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Polygon_mesh_processing/self_intersections_example.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -8,7 +8,9 @@ #include #include -#include +#include +#include +#include typedef CGAL::Exact_predicates_inexact_constructions_kernel K; typedef CGAL::Surface_mesh Mesh; diff -Nru cgal-5.4.1/examples/Polygon_mesh_processing/shape_smoothing_example.cpp cgal-5.5/examples/Polygon_mesh_processing/shape_smoothing_example.cpp --- cgal-5.4.1/examples/Polygon_mesh_processing/shape_smoothing_example.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Polygon_mesh_processing/shape_smoothing_example.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -5,7 +5,8 @@ #include #include -#include +#include +#include typedef CGAL::Exact_predicates_inexact_constructions_kernel K; typedef CGAL::Surface_mesh Mesh; @@ -37,8 +38,8 @@ CGAL::Boolean_property_map > vcmap(constrained_vertices); std::cout << "Smoothing shape... (" << nb_iterations << " iterations)" << std::endl; - PMP::smooth_shape(mesh, time, PMP::parameters::number_of_iterations(nb_iterations) - .vertex_is_constrained_map(vcmap)); + PMP::smooth_shape(mesh, time, CGAL::parameters::number_of_iterations(nb_iterations) + .vertex_is_constrained_map(vcmap)); CGAL::IO::write_polygon_mesh("mesh_shape_smoothed.off", mesh, CGAL::parameters::stream_precision(17)); diff -Nru cgal-5.4.1/examples/Polygon_mesh_processing/stitch_borders_example.cpp cgal-5.5/examples/Polygon_mesh_processing/stitch_borders_example.cpp --- cgal-5.4.1/examples/Polygon_mesh_processing/stitch_borders_example.cpp 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Polygon_mesh_processing/stitch_borders_example.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -6,7 +6,7 @@ #include #include -#include +#include typedef CGAL::Exact_predicates_inexact_constructions_kernel K; typedef CGAL::Polyhedron_3 Polyhedron; diff -Nru cgal-5.4.1/examples/Polygon_mesh_processing/stitch_borders_example_OM.cpp cgal-5.5/examples/Polygon_mesh_processing/stitch_borders_example_OM.cpp --- cgal-5.4.1/examples/Polygon_mesh_processing/stitch_borders_example_OM.cpp 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Polygon_mesh_processing/stitch_borders_example_OM.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -7,7 +7,7 @@ #include #include -#include +#include typedef CGAL::Exact_predicates_inexact_constructions_kernel K; diff -Nru cgal-5.4.1/examples/Polygon_mesh_processing/surface_mesh_intersection.cpp cgal-5.5/examples/Polygon_mesh_processing/surface_mesh_intersection.cpp --- cgal-5.4.1/examples/Polygon_mesh_processing/surface_mesh_intersection.cpp 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Polygon_mesh_processing/surface_mesh_intersection.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -6,8 +6,9 @@ #include +#include #include -#include +#include typedef CGAL::Exact_predicates_inexact_constructions_kernel Kernel; typedef Kernel::Point_3 Point; diff -Nru cgal-5.4.1/examples/Polygon_mesh_processing/tangential_relaxation_example.cpp cgal-5.5/examples/Polygon_mesh_processing/tangential_relaxation_example.cpp --- cgal-5.4.1/examples/Polygon_mesh_processing/tangential_relaxation_example.cpp 1970-01-01 00:00:00.000000000 +0000 +++ cgal-5.5/examples/Polygon_mesh_processing/tangential_relaxation_example.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -0,0 +1,35 @@ +#include +#include +#include +#include + +#include + +typedef CGAL::Exact_predicates_inexact_constructions_kernel K; +typedef CGAL::Surface_mesh Mesh; + + +namespace PMP = CGAL::Polygon_mesh_processing; + + +int main(int argc, char* argv[]) +{ + const std::string filename = (argc > 1) ? argv[1] : CGAL::data_file_path("meshes/pig.off"); + + Mesh mesh; + if(!PMP::IO::read_polygon_mesh(filename, mesh) || !CGAL::is_triangle_mesh(mesh)) + { + std::cerr << "Invalid input." << std::endl; + return 1; + } + + unsigned int nb_iter = (argc > 2) ? std::stoi(std::string(argv[2])) : 10; + + std::cout << "Relax..."; + + PMP::tangential_relaxation(mesh, CGAL::parameters::number_of_iterations(nb_iter)); + + std::cout << "done." << std::endl; + + return 0; +} diff -Nru cgal-5.4.1/examples/Polygon_mesh_processing/triangulate_faces_example.cpp cgal-5.5/examples/Polygon_mesh_processing/triangulate_faces_example.cpp --- cgal-5.4.1/examples/Polygon_mesh_processing/triangulate_faces_example.cpp 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Polygon_mesh_processing/triangulate_faces_example.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -6,8 +6,8 @@ #include -#include #include +#include typedef CGAL::Exact_predicates_inexact_constructions_kernel Kernel; typedef Kernel::Point_3 Point; diff -Nru cgal-5.4.1/examples/Polygon_mesh_processing/triangulate_faces_example_OM.cpp cgal-5.5/examples/Polygon_mesh_processing/triangulate_faces_example_OM.cpp --- cgal-5.4.1/examples/Polygon_mesh_processing/triangulate_faces_example_OM.cpp 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Polygon_mesh_processing/triangulate_faces_example_OM.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -6,7 +6,7 @@ #include #include -#include +#include typedef CGAL::Exact_predicates_inexact_constructions_kernel Kernel; typedef Kernel::Point_3 Point; diff -Nru cgal-5.4.1/examples/Polygon_mesh_processing/triangulate_faces_split_visitor_example.cpp cgal-5.5/examples/Polygon_mesh_processing/triangulate_faces_split_visitor_example.cpp --- cgal-5.4.1/examples/Polygon_mesh_processing/triangulate_faces_split_visitor_example.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Polygon_mesh_processing/triangulate_faces_split_visitor_example.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -4,22 +4,21 @@ #include #include -#include -#include - +#include #include #include +#include +#include +#include typedef CGAL::Exact_predicates_inexact_constructions_kernel Kernel; typedef Kernel::Point_3 Point; typedef CGAL::Surface_mesh Surface_mesh; typedef boost::graph_traits::face_descriptor face_descriptor; - - class Insert_iterator { - typedef boost::unordered_map Container; + typedef std::unordered_map Container; Container& container; public: @@ -44,7 +43,7 @@ struct Visitor { - typedef boost::unordered_map Container; + typedef std::unordered_map Container; Container& container; face_descriptor qfd; @@ -86,7 +85,7 @@ return 1; } - boost::unordered_map t2q; + std::unordered_map t2q; Surface_mesh copy; @@ -94,10 +93,10 @@ Visitor v(t2q); CGAL::Polygon_mesh_processing::triangulate_faces(copy, - CGAL::Polygon_mesh_processing::parameters::visitor(v)); + CGAL::parameters::visitor(v)); - for(boost::unordered_map::iterator it = t2q.begin(); it != t2q.end(); ++it){ + for(std::unordered_map::iterator it = t2q.begin(); it != t2q.end(); ++it){ std::cout << it->first << " " << it->second << std::endl; } diff -Nru cgal-5.4.1/examples/Polygon_mesh_processing/triangulate_polyline_example.cpp cgal-5.5/examples/Polygon_mesh_processing/triangulate_polyline_example.cpp --- cgal-5.4.1/examples/Polygon_mesh_processing/triangulate_polyline_example.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Polygon_mesh_processing/triangulate_polyline_example.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -5,6 +5,7 @@ #include #include +#include typedef CGAL::Exact_predicates_inexact_constructions_kernel Kernel; typedef Kernel::Point_3 Point; @@ -44,7 +45,7 @@ std::vector patch_will_be_empty; CGAL::Polygon_mesh_processing::triangulate_hole_polyline(polyline_collinear, back_inserter(patch_will_be_empty)); - CGAL_assertion(patch_will_be_empty.empty()); + assert(patch_will_be_empty.empty()); return 0; } diff -Nru cgal-5.4.1/examples/Polygon_mesh_processing/volume_connected_components.cpp cgal-5.5/examples/Polygon_mesh_processing/volume_connected_components.cpp --- cgal-5.4.1/examples/Polygon_mesh_processing/volume_connected_components.cpp 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Polygon_mesh_processing/volume_connected_components.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -9,6 +9,7 @@ #include #include #include +#include typedef CGAL::Exact_predicates_inexact_constructions_kernel Kernel; typedef CGAL::Surface_mesh Surface_mesh; diff -Nru cgal-5.4.1/examples/Polyhedron/CMakeLists.txt cgal-5.5/examples/Polyhedron/CMakeLists.txt --- cgal-5.4.1/examples/Polyhedron/CMakeLists.txt 2022-01-18 09:59:29.000000000 +0000 +++ cgal-5.5/examples/Polyhedron/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Polyhedron_Examples) find_package(CGAL REQUIRED OPTIONAL_COMPONENTS Qt5) diff -Nru cgal-5.4.1/examples/Polyhedron/polyhedron_prog_incr_builder.cpp cgal-5.5/examples/Polyhedron/polyhedron_prog_incr_builder.cpp --- cgal-5.4.1/examples/Polyhedron/polyhedron_prog_incr_builder.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Polyhedron/polyhedron_prog_incr_builder.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -1,6 +1,7 @@ #include #include #include +#include // A modifier creating a triangle with the incremental builder. template @@ -33,6 +34,6 @@ Polyhedron P; Build_triangle triangle; P.delegate( triangle); - CGAL_assertion( P.is_triangle( P.halfedges_begin())); + assert( P.is_triangle( P.halfedges_begin())); return 0; } diff -Nru cgal-5.4.1/examples/Polyhedron/polyhedron_prog_off.cpp cgal-5.5/examples/Polyhedron/polyhedron_prog_off.cpp --- cgal-5.4.1/examples/Polyhedron/polyhedron_prog_off.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Polyhedron/polyhedron_prog_off.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -26,7 +26,6 @@ for ( Facet_iterator i = P.facets_begin(); i != P.facets_end(); ++i) { Halfedge_facet_circulator j = i->facet_begin(); // Facets in polyhedral surfaces are at least triangles. - CGAL_assertion( CGAL::circulator_size(j) >= 3); std::cout << CGAL::circulator_size(j) << ' '; do { std::cout << ' ' << std::distance(P.vertices_begin(), j->vertex()); diff -Nru cgal-5.4.1/examples/Polyhedron/polyhedron_prog_subdiv.cpp cgal-5.5/examples/Polyhedron/polyhedron_prog_subdiv.cpp --- cgal-5.4.1/examples/Polyhedron/polyhedron_prog_subdiv.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Polyhedron/polyhedron_prog_subdiv.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -5,6 +5,7 @@ #include #include #include +#include typedef CGAL::Simple_cartesian Kernel; typedef Kernel::Vector_3 Vector; @@ -27,7 +28,7 @@ vec = vec + ( h->vertex()->point() - CGAL::ORIGIN); ++ order; } while ( ++h != f->facet_begin()); - CGAL_assertion( order >= 3); // guaranteed by definition of polyhedron + assert( order >= 3); // guaranteed by definition of polyhedron Point center = CGAL::ORIGIN + (vec / static_cast(order)); Halfedge_handle new_center = P.create_center_vertex( f->halfedge()); new_center->vertex()->point() = center; @@ -44,7 +45,7 @@ vec = vec + ( h->opposite()->vertex()->point() - CGAL::ORIGIN) * alpha / static_cast(degree); ++ h; - CGAL_assertion( h != v.vertex_begin()); // even degree guaranteed + assert( h != v.vertex_begin()); // even degree guaranteed ++ h; } while ( h != v.vertex_begin()); return (CGAL::ORIGIN + vec); diff -Nru cgal-5.4.1/examples/Polyhedron/polyhedron_prog_subdiv_with_boundary.cpp cgal-5.5/examples/Polyhedron/polyhedron_prog_subdiv_with_boundary.cpp --- cgal-5.4.1/examples/Polyhedron/polyhedron_prog_subdiv_with_boundary.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Polyhedron/polyhedron_prog_subdiv_with_boundary.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -7,6 +7,7 @@ #include #include #include +#include typedef CGAL::Simple_cartesian Kernel; typedef Kernel::Vector_3 Vector; @@ -29,7 +30,7 @@ vec = vec + ( h->vertex()->point() - CGAL::ORIGIN); ++ order; } while ( ++h != f->facet_begin()); - CGAL_assertion( order >= 3); // guaranteed by definition of polyhedron + assert( order >= 3); // guaranteed by definition of polyhedron Point center = CGAL::ORIGIN + (vec / static_cast(order)); Halfedge_handle new_center = P.create_center_vertex( f->halfedge()); new_center->vertex()->point() = center; @@ -55,7 +56,7 @@ vec = vec + ( h->opposite()->vertex()->point() - CGAL::ORIGIN) * alpha / static_cast(degree); ++ h; - CGAL_assertion( h != v.vertex_begin()); // even degree guaranteed + assert( h != v.vertex_begin()); // even degree guaranteed ++ h; } while ( h != v.vertex_begin()); return (CGAL::ORIGIN + vec); @@ -101,11 +102,10 @@ ++e; // careful, incr. before flip since flip destroys current edge flip_edge( P, h); }; - CGAL_postcondition( P.is_valid()); } void trisect_border_halfedge( Polyhedron& P, Halfedge_handle e) { - CGAL_precondition( e->is_border()); + assert( e->is_border()); // Create two new vertices on e. e = e->prev(); P.split_vertex( e, e->next()->opposite()); @@ -121,7 +121,7 @@ template void smooth_border_vertices( Halfedge_handle e, OutputIterator out) { - CGAL_precondition( e->is_border()); + assert( e->is_border()); // We know that the vertex at this edge is from the unrefined mesh. // Get the locus vectors of the unrefined vertices in the neighborhood. Vector v0 = e->prev()->prev()->opposite()->vertex()->point() -CGAL::ORIGIN; @@ -166,8 +166,6 @@ e->next()->vertex()->point() = *i++; } } while ( e++ != last_e); - CGAL_assertion( i == pts.end()); - CGAL_postcondition( P.is_valid()); } using namespace std; diff -Nru cgal-5.4.1/examples/Polyhedron/polyhedron_self_intersection.cpp cgal-5.5/examples/Polyhedron/polyhedron_self_intersection.cpp --- cgal-5.4.1/examples/Polyhedron/polyhedron_self_intersection.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Polyhedron/polyhedron_self_intersection.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -6,6 +6,7 @@ #include #include #include +#include using std::cerr; using std::endl; @@ -63,7 +64,7 @@ } if ( v != Halfedge_const_handle()) { // found shared vertex: - CGAL_assertion( h->vertex() == v->vertex()); + assert( h->vertex() == v->vertex()); // geomtric check if the opposite segments intersect the triangles Triangle t1( h->vertex()->point(), h->next()->vertex()->point(), diff -Nru cgal-5.4.1/examples/Polyline_simplification_2/CMakeLists.txt cgal-5.5/examples/Polyline_simplification_2/CMakeLists.txt --- cgal-5.4.1/examples/Polyline_simplification_2/CMakeLists.txt 2022-01-18 09:59:29.000000000 +0000 +++ cgal-5.5/examples/Polyline_simplification_2/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Polyline_simplification_2_Examples) find_package(CGAL REQUIRED) diff -Nru cgal-5.4.1/examples/Polyline_simplification_2/points_and_vertices.cpp cgal-5.5/examples/Polyline_simplification_2/points_and_vertices.cpp --- cgal-5.4.1/examples/Polyline_simplification_2/points_and_vertices.cpp 2022-01-18 09:59:29.000000000 +0000 +++ cgal-5.5/examples/Polyline_simplification_2/points_and_vertices.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,5 @@ #include #include -#include -#include #include #include @@ -74,5 +72,3 @@ print(ct, cid); return 0; } - - diff -Nru cgal-5.4.1/examples/Polyline_simplification_2/simplify.cpp cgal-5.5/examples/Polyline_simplification_2/simplify.cpp --- cgal-5.4.1/examples/Polyline_simplification_2/simplify.cpp 2022-01-18 09:59:29.000000000 +0000 +++ cgal-5.5/examples/Polyline_simplification_2/simplify.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -1,6 +1,3 @@ -#include -#include - #include #include #include @@ -56,4 +53,3 @@ } return 0; } - diff -Nru cgal-5.4.1/examples/Polyline_simplification_2/simplify_polygon.cpp cgal-5.5/examples/Polyline_simplification_2/simplify_polygon.cpp --- cgal-5.4.1/examples/Polyline_simplification_2/simplify_polygon.cpp 2022-01-18 09:59:29.000000000 +0000 +++ cgal-5.5/examples/Polyline_simplification_2/simplify_polygon.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -1,5 +1,3 @@ -#include -#include #include #include #include diff -Nru cgal-5.4.1/examples/Polyline_simplification_2/simplify_polyline.cpp cgal-5.5/examples/Polyline_simplification_2/simplify_polyline.cpp --- cgal-5.4.1/examples/Polyline_simplification_2/simplify_polyline.cpp 2022-01-18 09:59:29.000000000 +0000 +++ cgal-5.5/examples/Polyline_simplification_2/simplify_polyline.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -1,11 +1,8 @@ -#include -#include #include #include #include #include #include -#include #include namespace PS = CGAL::Polyline_simplification_2; diff -Nru cgal-5.4.1/examples/Polynomial/CMakeLists.txt cgal-5.5/examples/Polynomial/CMakeLists.txt --- cgal-5.4.1/examples/Polynomial/CMakeLists.txt 2022-01-18 09:59:29.000000000 +0000 +++ cgal-5.5/examples/Polynomial/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Polynomial_Examples) find_package(CGAL REQUIRED) diff -Nru cgal-5.4.1/examples/Polytope_distance_d/CMakeLists.txt cgal-5.5/examples/Polytope_distance_d/CMakeLists.txt --- cgal-5.4.1/examples/Polytope_distance_d/CMakeLists.txt 2022-01-18 09:59:29.000000000 +0000 +++ cgal-5.5/examples/Polytope_distance_d/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Polytope_distance_d_Examples) find_package(CGAL REQUIRED) diff -Nru cgal-5.4.1/examples/Principal_component_analysis/CMakeLists.txt cgal-5.5/examples/Principal_component_analysis/CMakeLists.txt --- cgal-5.4.1/examples/Principal_component_analysis/CMakeLists.txt 2022-01-18 09:59:29.000000000 +0000 +++ cgal-5.5/examples/Principal_component_analysis/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Principal_component_analysis_Examples) find_package(CGAL REQUIRED) diff -Nru cgal-5.4.1/examples/Profiling_tools/CMakeLists.txt cgal-5.5/examples/Profiling_tools/CMakeLists.txt --- cgal-5.4.1/examples/Profiling_tools/CMakeLists.txt 2022-01-18 09:59:29.000000000 +0000 +++ cgal-5.5/examples/Profiling_tools/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Profiling_tools_Examples) find_package(CGAL REQUIRED) diff -Nru cgal-5.4.1/examples/Property_map/CMakeLists.txt cgal-5.5/examples/Property_map/CMakeLists.txt --- cgal-5.4.1/examples/Property_map/CMakeLists.txt 2022-01-18 09:59:29.000000000 +0000 +++ cgal-5.5/examples/Property_map/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Property_map_Examples) # CGAL and its components diff -Nru cgal-5.4.1/examples/QP_solver/CMakeLists.txt cgal-5.5/examples/QP_solver/CMakeLists.txt --- cgal-5.4.1/examples/QP_solver/CMakeLists.txt 2022-01-18 09:59:29.000000000 +0000 +++ cgal-5.5/examples/QP_solver/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(QP_solver_Examples) find_package(CGAL REQUIRED) diff -Nru cgal-5.4.1/examples/RangeSegmentTrees/CMakeLists.txt cgal-5.5/examples/RangeSegmentTrees/CMakeLists.txt --- cgal-5.4.1/examples/RangeSegmentTrees/CMakeLists.txt 2022-01-18 09:59:29.000000000 +0000 +++ cgal-5.5/examples/RangeSegmentTrees/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(RangeSegmentTrees_Examples) find_package(CGAL REQUIRED) diff -Nru cgal-5.4.1/examples/RangeSegmentTrees/include/Tree_Traits.h cgal-5.5/examples/RangeSegmentTrees/include/Tree_Traits.h --- cgal-5.4.1/examples/RangeSegmentTrees/include/Tree_Traits.h 2022-06-03 19:05:34.000000000 +0000 +++ cgal-5.5/examples/RangeSegmentTrees/include/Tree_Traits.h 2022-07-13 19:06:30.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/SearchStructures/examples/RangeSegmentTrees/include/Tree_Traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/SearchStructures/examples/RangeSegmentTrees/include/Tree_Traits.h $ // $Id: Tree_Traits.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/examples/Rectangular_p_center_2/CMakeLists.txt cgal-5.5/examples/Rectangular_p_center_2/CMakeLists.txt --- cgal-5.4.1/examples/Rectangular_p_center_2/CMakeLists.txt 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/examples/Rectangular_p_center_2/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Rectangular_p_center_2_Examples) find_package(CGAL REQUIRED) diff -Nru cgal-5.4.1/examples/Ridges_3/CMakeLists.txt cgal-5.5/examples/Ridges_3/CMakeLists.txt --- cgal-5.4.1/examples/Ridges_3/CMakeLists.txt 2022-01-18 09:59:29.000000000 +0000 +++ cgal-5.5/examples/Ridges_3/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,5 +1,5 @@ # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Ridges_3_Examples) find_package(CGAL REQUIRED) @@ -19,6 +19,7 @@ target_link_libraries(Ridges_Umbilics_SM PUBLIC CGAL::Eigen3_support) create_single_source_cgal_program(Ridges_Umbilics_LCC.cpp) target_link_libraries(Ridges_Umbilics_LCC PUBLIC CGAL::Eigen3_support) + add_definitions("-DCGAL_USE_BOOST_PROGRAM_OPTIONS") if(TARGET Boost::program_options) target_link_libraries(Compute_Ridges_Umbilics PRIVATE Boost::program_options) target_link_libraries(Ridges_Umbilics_SM PRIVATE Boost::program_options) diff -Nru cgal-5.4.1/examples/Scale_space_reconstruction_3/CMakeLists.txt cgal-5.5/examples/Scale_space_reconstruction_3/CMakeLists.txt --- cgal-5.4.1/examples/Scale_space_reconstruction_3/CMakeLists.txt 2022-01-18 09:59:29.000000000 +0000 +++ cgal-5.5/examples/Scale_space_reconstruction_3/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Scale_space_reconstruction_3_Examples) find_package(CGAL REQUIRED) diff -Nru cgal-5.4.1/examples/Segment_Delaunay_graph_2/CMakeLists.txt cgal-5.5/examples/Segment_Delaunay_graph_2/CMakeLists.txt --- cgal-5.4.1/examples/Segment_Delaunay_graph_2/CMakeLists.txt 2022-01-18 09:59:29.000000000 +0000 +++ cgal-5.5/examples/Segment_Delaunay_graph_2/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Segment_Delaunay_graph_2_Examples) find_package(CGAL REQUIRED) diff -Nru cgal-5.4.1/examples/Segment_Delaunay_graph_Linf_2/CMakeLists.txt cgal-5.5/examples/Segment_Delaunay_graph_Linf_2/CMakeLists.txt --- cgal-5.4.1/examples/Segment_Delaunay_graph_Linf_2/CMakeLists.txt 2022-01-18 09:59:29.000000000 +0000 +++ cgal-5.5/examples/Segment_Delaunay_graph_Linf_2/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Segment_Delaunay_graph_Linf_2_Examples) find_package(CGAL REQUIRED) diff -Nru cgal-5.4.1/examples/Segment_Delaunay_graph_Linf_2/sdg-voronoi-edges-exact-linf.cpp cgal-5.5/examples/Segment_Delaunay_graph_Linf_2/sdg-voronoi-edges-exact-linf.cpp --- cgal-5.4.1/examples/Segment_Delaunay_graph_Linf_2/sdg-voronoi-edges-exact-linf.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Segment_Delaunay_graph_Linf_2/sdg-voronoi-edges-exact-linf.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -35,8 +35,6 @@ // read the sites from the stream and insert them in the diagram while ( ifs >> site ) { sdg.insert( site ); - CGAL_SDG_DEBUG( sdg.file_output_verbose(std::cout); ); - CGAL_assertion( sdg.is_valid(false, 1) ); } ifs.close(); diff -Nru cgal-5.4.1/examples/Segment_Delaunay_graph_Linf_2/sdg-voronoi-edges-linf.cpp cgal-5.5/examples/Segment_Delaunay_graph_Linf_2/sdg-voronoi-edges-linf.cpp --- cgal-5.4.1/examples/Segment_Delaunay_graph_Linf_2/sdg-voronoi-edges-linf.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Segment_Delaunay_graph_Linf_2/sdg-voronoi-edges-linf.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -32,8 +32,6 @@ // read the sites from the stream and insert them in the diagram while ( ifs >> site ) { sdg.insert( site ); - CGAL_SDG_DEBUG( sdg.file_output_verbose(std::cout); ); - CGAL_assertion( sdg.is_valid(false, 1) ); } ifs.close(); diff -Nru cgal-5.4.1/examples/Set_movable_separability_2/CMakeLists.txt cgal-5.5/examples/Set_movable_separability_2/CMakeLists.txt --- cgal-5.4.1/examples/Set_movable_separability_2/CMakeLists.txt 2022-01-18 09:59:29.000000000 +0000 +++ cgal-5.5/examples/Set_movable_separability_2/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Set_movable_separability_2_Examples) list(FIND CMAKE_CXX_COMPILE_FEATURES cxx_generalized_initializers has_cpp11) diff -Nru cgal-5.4.1/examples/Shape_detection/CMakeLists.txt cgal-5.5/examples/Shape_detection/CMakeLists.txt --- cgal-5.4.1/examples/Shape_detection/CMakeLists.txt 2022-01-18 09:59:29.000000000 +0000 +++ cgal-5.5/examples/Shape_detection/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script. # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Shape_detection_Examples) find_package(CGAL REQUIRED COMPONENTS Core) diff -Nru cgal-5.4.1/examples/Shape_regularization/CMakeLists.txt cgal-5.5/examples/Shape_regularization/CMakeLists.txt --- cgal-5.4.1/examples/Shape_regularization/CMakeLists.txt 2022-05-06 19:00:05.000000000 +0000 +++ cgal-5.5/examples/Shape_regularization/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -3,7 +3,7 @@ project(Shape_regularization_Examples) -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) find_package(CGAL REQUIRED COMPONENTS Core) diff -Nru cgal-5.4.1/examples/Skin_surface_3/CMakeLists.txt cgal-5.5/examples/Skin_surface_3/CMakeLists.txt --- cgal-5.4.1/examples/Skin_surface_3/CMakeLists.txt 2022-01-18 09:59:29.000000000 +0000 +++ cgal-5.5/examples/Skin_surface_3/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Skin_surface_3_Examples) find_package(CGAL) diff -Nru cgal-5.4.1/examples/Snap_rounding_2/CMakeLists.txt cgal-5.5/examples/Snap_rounding_2/CMakeLists.txt --- cgal-5.4.1/examples/Snap_rounding_2/CMakeLists.txt 2022-01-18 09:59:29.000000000 +0000 +++ cgal-5.5/examples/Snap_rounding_2/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Snap_rounding_2_Examples) find_package(CGAL REQUIRED) diff -Nru cgal-5.4.1/examples/Solver_interface/CMakeLists.txt cgal-5.5/examples/Solver_interface/CMakeLists.txt --- cgal-5.4.1/examples/Solver_interface/CMakeLists.txt 2022-01-18 09:59:29.000000000 +0000 +++ cgal-5.5/examples/Solver_interface/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Solver_interface_Examples) find_package(CGAL REQUIRED) diff -Nru cgal-5.4.1/examples/Spatial_searching/CMakeLists.txt cgal-5.5/examples/Spatial_searching/CMakeLists.txt --- cgal-5.4.1/examples/Spatial_searching/CMakeLists.txt 2022-01-18 09:59:29.000000000 +0000 +++ cgal-5.5/examples/Spatial_searching/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_CMakeLists # This is the CMake script for compiling a set of CGAL applications. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Spatial_searching_Examples) # CGAL and its components diff -Nru cgal-5.4.1/examples/Spatial_sorting/CMakeLists.txt cgal-5.5/examples/Spatial_sorting/CMakeLists.txt --- cgal-5.4.1/examples/Spatial_sorting/CMakeLists.txt 2022-01-18 09:59:29.000000000 +0000 +++ cgal-5.5/examples/Spatial_sorting/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,6 +1,6 @@ # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Spatial_sorting_Examples) find_package(CGAL REQUIRED) diff -Nru cgal-5.4.1/examples/STL_Extension/CMakeLists.txt cgal-5.5/examples/STL_Extension/CMakeLists.txt --- cgal-5.4.1/examples/STL_Extension/CMakeLists.txt 2022-01-18 09:59:29.000000000 +0000 +++ cgal-5.5/examples/STL_Extension/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(STL_Extension_Examples) find_package(CGAL REQUIRED) diff -Nru cgal-5.4.1/examples/Straight_skeleton_2/CMakeLists.txt cgal-5.5/examples/Straight_skeleton_2/CMakeLists.txt --- cgal-5.4.1/examples/Straight_skeleton_2/CMakeLists.txt 2022-01-18 09:59:29.000000000 +0000 +++ cgal-5.5/examples/Straight_skeleton_2/CMakeLists.txt 2022-07-08 19:00:06.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project( Straight_skeleton_2_Examples ) @@ -15,6 +15,7 @@ if(CGAL_Qt5_FOUND) target_link_libraries(draw_straight_skeleton_2 PUBLIC CGAL::CGAL_Basic_viewer) + target_link_libraries(exterior_offset_of_multiple_polygons_with_holes PUBLIC CGAL::CGAL_Basic_viewer) else() message(STATUS "NOTICE: The example draw_straight_skeleton_2 requires Qt and will not be compiled.") endif() diff -Nru cgal-5.4.1/examples/Straight_skeleton_2/exterior_offset_of_multiple_polygons_with_holes.cpp cgal-5.5/examples/Straight_skeleton_2/exterior_offset_of_multiple_polygons_with_holes.cpp --- cgal-5.4.1/examples/Straight_skeleton_2/exterior_offset_of_multiple_polygons_with_holes.cpp 1970-01-01 00:00:00.000000000 +0000 +++ cgal-5.5/examples/Straight_skeleton_2/exterior_offset_of_multiple_polygons_with_holes.cpp 2022-07-08 19:00:06.000000000 +0000 @@ -0,0 +1,131 @@ +#include + +#include +#include + +#include + +#include + + +#include +#include + +typedef CGAL::Exact_predicates_inexact_constructions_kernel K ; + +typedef K::Point_2 Point ; +typedef CGAL::Polygon_2 Polygon_2 ; +typedef CGAL::Polygon_with_holes_2 PolygonWithHoles ; + +typedef boost::shared_ptr PolygonWithHolesPtr ; +typedef boost::shared_ptr PolygonPtr ; + +typedef std::vector PolygonWithHolesPtrVector; +typedef std::vector PolygonPtrVector; + +PolygonWithHolesPtrVector +exterior_offset_of_disjoint_polygons_with_holes(double lOffset, const std::vector& pwhs) +{ + std::vector outer_vertices; + for (const PolygonWithHoles& pwh : pwhs) + outer_vertices.insert(outer_vertices.end(), + pwh.outer_boundary().container().begin(), + pwh.outer_boundary().container().end()); + boost::optional margin = compute_outer_frame_margin(outer_vertices.begin(), + outer_vertices.end(), + lOffset); + + if ( margin ) + { + double lm = CGAL::to_double(*margin); + CGAL::Bbox_2 bbox = bbox_2(outer_vertices.begin(), outer_vertices.end()); + + double fxmin = bbox.xmin() - lm ; + double fxmax = bbox.xmax() + lm ; + double fymin = bbox.ymin() - lm ; + double fymax = bbox.ymax() + lm ; + + Polygon_2 frame ; + frame.push_back( Point(fxmin,fymin) ); + frame.push_back( Point(fxmax,fymin) ); + frame.push_back( Point(fxmax,fymax) ); + frame.push_back( Point(fxmin,fymax) ); + + std::vector outer_as_holes; + outer_as_holes.reserve(pwhs.size()); + for (const PolygonWithHoles& pwh : pwhs) + outer_as_holes.emplace_back(pwh.outer_boundary().container().rbegin(), + pwh.outer_boundary().container().rend()); + + PolygonWithHoles pwh(frame, outer_as_holes.begin(), outer_as_holes.end()); + PolygonPtrVector off_polys = CGAL::create_interior_skeleton_and_offset_polygons_2(lOffset,pwh); + + // filter outer frame + Point xtrm_pt = *(off_polys[0]->begin()); + std::size_t outer_id=0; + for(std::size_t i=0; iorientation() == CGAL::COUNTERCLOCKWISE) + { + for (const Point& p : off_polys[i]->container()) + if (p < xtrm_pt) + { + xtrm_pt=p; + outer_id=i; + } + } + if (outer_id != (off_polys.size()-1)) + std::swap(off_polys[outer_id], off_polys.back()); + off_polys.pop_back(); + for (PolygonPtr ptr : off_polys) + ptr->reverse_orientation(); + + // offset of holes + for (const PolygonWithHoles& pwh : pwhs) + { + for (PolygonWithHoles::Hole_const_iterator hit=pwh.holes_begin(); + hit!=pwh.holes_end(); + ++hit) + { + Polygon_2 h = *hit; + h.reverse_orientation(); + PolygonPtrVector off_hole = CGAL::create_interior_skeleton_and_offset_polygons_2(lOffset,h); + off_polys.insert(off_polys.end(), off_hole.begin(), off_hole.end()); + } + } + + return CGAL::arrange_offset_polygons_2(off_polys); + } + + return PolygonWithHolesPtrVector(); +} + +int main() +{ + std::vector pwhs; + + for (int i=0; i<4; ++i) + { + Polygon_2 outer; + outer.push_back( Point(i+0+i*10, 0) ); + outer.push_back( Point(i+0+(i+1)*10, 0) ); + outer.push_back( Point(i+0+(i+1)*10, 10) ); + outer.push_back( Point(i+0+i*10, 10) ); + pwhs.emplace_back(outer); + + Polygon_2 hole; + hole.push_back( Point(i+3+i*10,3) ) ; + hole.push_back( Point(i+6+i*10,3) ) ; + hole.push_back( Point(i+6+i*10,6) ) ; + hole.push_back( Point(i+3+i*10,6) ) ; + pwhs[i].add_hole( hole ) ; + } + + double lOffset = 1.1 ; + + PolygonWithHolesPtrVector offset_poly_with_holes = exterior_offset_of_disjoint_polygons_with_holes(lOffset,pwhs); + + for (PolygonWithHolesPtr ptr : offset_poly_with_holes) + CGAL::draw(*ptr); + + return 0; +} diff -Nru cgal-5.4.1/examples/Stream_lines_2/CMakeLists.txt cgal-5.5/examples/Stream_lines_2/CMakeLists.txt --- cgal-5.4.1/examples/Stream_lines_2/CMakeLists.txt 2022-01-18 09:59:29.000000000 +0000 +++ cgal-5.5/examples/Stream_lines_2/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Stream_lines_2_Examples) find_package(CGAL REQUIRED) diff -Nru cgal-5.4.1/examples/Stream_support/CMakeLists.txt cgal-5.5/examples/Stream_support/CMakeLists.txt --- cgal-5.4.1/examples/Stream_support/CMakeLists.txt 2022-01-18 09:59:29.000000000 +0000 +++ cgal-5.5/examples/Stream_support/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Stream_support_Examples) find_package(CGAL REQUIRED) diff -Nru cgal-5.4.1/examples/Stream_support/iv2off.cpp cgal-5.5/examples/Stream_support/iv2off.cpp --- cgal-5.4.1/examples/Stream_support/iv2off.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Stream_support/iv2off.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -67,7 +67,6 @@ // point coordinate list starts here offset = points.size(); in >> c; - CGAL_assertion( c == '['); in >> c; while ( in && ( c != ']')) { in.putback( c); @@ -99,7 +98,6 @@ // indices start here std::size_t face_offset = facets.size(); in >> c; - CGAL_assertion( c == '['); facets.push_back( Facet()); Facet* facet = &facets.back(); in >> c; @@ -133,7 +131,6 @@ // indices start here std::size_t face_offset = facets.size(); in >> c; - CGAL_assertion( c == '['); facets.push_back( Facet()); Facet* facet = &facets.back(); in >> c; diff -Nru cgal-5.4.1/examples/Stream_support/Linestring_WKT.cpp cgal-5.5/examples/Stream_support/Linestring_WKT.cpp --- cgal-5.4.1/examples/Stream_support/Linestring_WKT.cpp 2022-01-18 09:59:29.000000000 +0000 +++ cgal-5.5/examples/Stream_support/Linestring_WKT.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -1,16 +1,10 @@ -#include #include - -#include -#include +#include #include #include #include -#include - -//typedef CGAL::Simple_cartesian Kernel; typedef CGAL::Exact_predicates_exact_constructions_kernel Kernel; int main(int argc, char* argv[]) diff -Nru cgal-5.4.1/examples/Stream_support/Point_WKT.cpp cgal-5.5/examples/Stream_support/Point_WKT.cpp --- cgal-5.4.1/examples/Stream_support/Point_WKT.cpp 2022-01-18 09:59:29.000000000 +0000 +++ cgal-5.5/examples/Stream_support/Point_WKT.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -1,15 +1,10 @@ -#include #include - -#include -#include +#include #include #include #include -#include -//typedef CGAL::Simple_cartesian Kernel; typedef CGAL::Exact_predicates_exact_constructions_kernel Kernel; int main(int argc, char* argv[]) diff -Nru cgal-5.4.1/examples/Stream_support/Polygon_WKT.cpp cgal-5.5/examples/Stream_support/Polygon_WKT.cpp --- cgal-5.4.1/examples/Stream_support/Polygon_WKT.cpp 2022-01-18 09:59:29.000000000 +0000 +++ cgal-5.5/examples/Stream_support/Polygon_WKT.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -1,17 +1,10 @@ -#include #include - -#include -#include +#include #include #include -#include #include -#include - -//typedef CGAL::Simple_cartesian Kernel; typedef CGAL::Exact_predicates_exact_constructions_kernel Kernel; int main(int argc, char* argv[]) diff -Nru cgal-5.4.1/examples/Stream_support/read_WKT.cpp cgal-5.5/examples/Stream_support/read_WKT.cpp --- cgal-5.4.1/examples/Stream_support/read_WKT.cpp 2022-01-18 09:59:29.000000000 +0000 +++ cgal-5.5/examples/Stream_support/read_WKT.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -1,16 +1,12 @@ -#include #include - -#include -#include +#include #include #include #include -#include -//typedef CGAL::Simple_cartesian Kernel; typedef CGAL::Exact_predicates_exact_constructions_kernel Kernel; + int main(int argc, char* argv[]) { typedef CGAL::Point_2 Point; diff -Nru cgal-5.4.1/examples/Subdivision_method_3/CMakeLists.txt cgal-5.5/examples/Subdivision_method_3/CMakeLists.txt --- cgal-5.4.1/examples/Subdivision_method_3/CMakeLists.txt 2022-01-18 09:59:29.000000000 +0000 +++ cgal-5.5/examples/Subdivision_method_3/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Subdivision_method_3_Examples) find_package(CGAL REQUIRED) diff -Nru cgal-5.4.1/examples/Surface_mesh/CMakeLists.txt cgal-5.5/examples/Surface_mesh/CMakeLists.txt --- cgal-5.4.1/examples/Surface_mesh/CMakeLists.txt 2022-01-18 09:59:29.000000000 +0000 +++ cgal-5.5/examples/Surface_mesh/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -6,7 +6,7 @@ # Used in /CGAL/Documentation/doc/Documentation/Developer_manual/create_and_use_a_cmakelist.txt. # Careful when modifying -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Surface_mesh_Examples) #CGAL_Qt5 is needed for the drawing. diff -Nru cgal-5.4.1/examples/Surface_mesh/draw_surface_mesh_small_faces.h cgal-5.5/examples/Surface_mesh/draw_surface_mesh_small_faces.h --- cgal-5.4.1/examples/Surface_mesh/draw_surface_mesh_small_faces.h 2022-06-03 19:05:53.000000000 +0000 +++ cgal-5.5/examples/Surface_mesh/draw_surface_mesh_small_faces.h 2022-07-13 19:06:50.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh/examples/Surface_mesh/draw_surface_mesh_small_faces.h $ -// $Id: draw_surface_mesh_small_faces.h 2bbcabe 2021-11-11T17:23:37+01:00 Guillaume Damiand +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh/examples/Surface_mesh/draw_surface_mesh_small_faces.h $ +// $Id: draw_surface_mesh_small_faces.h 79a38d5 2022-01-24T10:19:04+00:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Guillaume Damiand @@ -20,6 +20,8 @@ #include #include +#include + template class SimpleSurfaceMeshWithSmallFacesViewerQt : public CGAL::Basic_viewer_qt { @@ -54,7 +56,7 @@ bool exist; typename SM::template Property_map faces_size; boost::tie(faces_size, exist)=sm.template property_map("f:size"); - CGAL_assertion(exist); + assert(exist); m_min_size=faces_size[*(sm.faces().begin())]; m_max_size=m_min_size; @@ -84,7 +86,7 @@ bool exist; typename SM::template Property_map faces_size; boost::tie(faces_size, exist)=sm.template property_map("f:size"); - CGAL_assertion(exist); + assert(exist); // It it is smaller, color the face in red. if (get(faces_size, fh) #include #include +#include #include "draw_surface_mesh_small_faces.h" typedef CGAL::Simple_cartesian K; @@ -28,7 +29,7 @@ Mesh::Property_map faces_size; bool created; boost::tie(faces_size, created)=sm.add_property_map("f:size",0.); - CGAL_assertion(created); + assert(created); for(face_descriptor fd : sm.faces()) { faces_size[fd]=CGAL::Polygon_mesh_processing::face_area(fd, sm); } @@ -39,4 +40,3 @@ return EXIT_SUCCESS; } - diff -Nru cgal-5.4.1/examples/Surface_mesh_approximation/CMakeLists.txt cgal-5.5/examples/Surface_mesh_approximation/CMakeLists.txt --- cgal-5.4.1/examples/Surface_mesh_approximation/CMakeLists.txt 2022-01-18 09:59:29.000000000 +0000 +++ cgal-5.5/examples/Surface_mesh_approximation/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_CMakeLists # This is the CMake script for compiling a set of CGAL applications. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Surface_mesh_approximation_Examples) # CGAL and its components diff -Nru cgal-5.4.1/examples/Surface_mesh_approximation/vsa_class_interface_example.cpp cgal-5.5/examples/Surface_mesh_approximation/vsa_class_interface_example.cpp --- cgal-5.4.1/examples/Surface_mesh_approximation/vsa_class_interface_example.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Surface_mesh_approximation/vsa_class_interface_example.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -61,7 +61,7 @@ approx.run(10); // extract approximated mesh with default parameters - approx.extract_mesh(CGAL::parameters::all_default()); + approx.extract_mesh(CGAL::parameters::default_values()); // get approximated triangle soup std::vector anchors; diff -Nru cgal-5.4.1/examples/Surface_mesh_deformation/CMakeLists.txt cgal-5.5/examples/Surface_mesh_deformation/CMakeLists.txt --- cgal-5.4.1/examples/Surface_mesh_deformation/CMakeLists.txt 2022-01-18 09:59:29.000000000 +0000 +++ cgal-5.5/examples/Surface_mesh_deformation/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Surface_mesh_deformation_Examples) find_package(CGAL REQUIRED) diff -Nru cgal-5.4.1/examples/Surface_mesher/CMakeLists.txt cgal-5.5/examples/Surface_mesher/CMakeLists.txt --- cgal-5.4.1/examples/Surface_mesher/CMakeLists.txt 2022-01-18 09:59:29.000000000 +0000 +++ cgal-5.5/examples/Surface_mesher/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,6 +1,6 @@ # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Surface_mesher_Examples) find_package(CGAL REQUIRED COMPONENTS ImageIO) diff -Nru cgal-5.4.1/examples/Surface_mesh_parameterization/CMakeLists.txt cgal-5.5/examples/Surface_mesh_parameterization/CMakeLists.txt --- cgal-5.4.1/examples/Surface_mesh_parameterization/CMakeLists.txt 2022-01-18 09:59:29.000000000 +0000 +++ cgal-5.5/examples/Surface_mesh_parameterization/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,6 +1,6 @@ # This is the CMake script for compiling this folder. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Surface_mesh_parameterization_Examples) # Find CGAL diff -Nru cgal-5.4.1/examples/Surface_mesh_parameterization/lscm.cpp cgal-5.5/examples/Surface_mesh_parameterization/lscm.cpp --- cgal-5.4.1/examples/Surface_mesh_parameterization/lscm.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Surface_mesh_parameterization/lscm.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -76,7 +76,7 @@ UV_pmap uv_pm = sm.add_property_map("h:uv").first; // A halfedge on the (possibly virtual) border - halfedge_descriptor bhd = CGAL::Polygon_mesh_processing::longest_border(mesh, CGAL::Polygon_mesh_processing::parameters::all_default()).first; + halfedge_descriptor bhd = CGAL::Polygon_mesh_processing::longest_border(mesh).first; typedef SMP::Two_vertices_parameterizer_3 Border_parameterizer; typedef SMP::LSCM_parameterizer_3 Parameterizer; diff -Nru cgal-5.4.1/examples/Surface_mesh_parameterization/orbifold.cpp cgal-5.5/examples/Surface_mesh_parameterization/orbifold.cpp --- cgal-5.4.1/examples/Surface_mesh_parameterization/orbifold.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Surface_mesh_parameterization/orbifold.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -11,8 +11,7 @@ #include -#include - +#include #include #include #include @@ -89,7 +88,7 @@ std::cout << mesh.number_of_seam_edges() << " seam edges in input" << std::endl; // Index map of the seam mesh (assuming a single connected component so far) - typedef boost::unordered_map Indices; + typedef std::unordered_map Indices; Indices indices; boost::associative_property_map vimap(indices); int counter = 0; @@ -98,7 +97,7 @@ } // Mark the cones in the seam mesh - boost::unordered_map cmap; + std::unordered_map cmap; SMP::locate_cones(mesh, cone_sm_vds.begin(), cone_sm_vds.end(), cmap); // The 2D points of the uv parametrisation will be written into this map @@ -112,8 +111,7 @@ // a halfedge on the (possibly virtual) border // only used in output (will also be used to handle multiple connected components in the future) - halfedge_descriptor bhd = CGAL::Polygon_mesh_processing::longest_border(mesh, - CGAL::Polygon_mesh_processing::parameters::all_default()).first; + halfedge_descriptor bhd = CGAL::Polygon_mesh_processing::longest_border(mesh).first; parameterizer.parameterize(mesh, bhd, cmap, uvmap, vimap); diff -Nru cgal-5.4.1/examples/Surface_mesh_parameterization/square_border_parameterizer.cpp cgal-5.5/examples/Surface_mesh_parameterization/square_border_parameterizer.cpp --- cgal-5.4.1/examples/Surface_mesh_parameterization/square_border_parameterizer.cpp 2022-01-18 09:59:29.000000000 +0000 +++ cgal-5.5/examples/Surface_mesh_parameterization/square_border_parameterizer.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -11,8 +11,8 @@ #include #include -#include +#include #include #include #include @@ -65,7 +65,7 @@ std::size_t counter = 0; std::istringstream point_line(line); std::size_t s; - boost::unordered_set indices; + std::unordered_set indices; while(point_line >> s) { if(s >= vds.size()) { diff -Nru cgal-5.4.1/examples/Surface_mesh_segmentation/CMakeLists.txt cgal-5.5/examples/Surface_mesh_segmentation/CMakeLists.txt --- cgal-5.4.1/examples/Surface_mesh_segmentation/CMakeLists.txt 2022-01-18 09:59:29.000000000 +0000 +++ cgal-5.5/examples/Surface_mesh_segmentation/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script_with_options # This is the CMake script for compiling a set of CGAL applications. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Surface_mesh_segmentation_Examples) # CGAL and its components diff -Nru cgal-5.4.1/examples/Surface_mesh_shortest_path/CMakeLists.txt cgal-5.5/examples/Surface_mesh_shortest_path/CMakeLists.txt --- cgal-5.4.1/examples/Surface_mesh_shortest_path/CMakeLists.txt 2022-01-18 09:59:29.000000000 +0000 +++ cgal-5.5/examples/Surface_mesh_shortest_path/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Surface_mesh_shortest_path_Examples) find_package(CGAL REQUIRED) diff -Nru cgal-5.4.1/examples/Surface_mesh_shortest_path/shortest_path_sequence.cpp cgal-5.5/examples/Surface_mesh_shortest_path/shortest_path_sequence.cpp --- cgal-5.4.1/examples/Surface_mesh_shortest_path/shortest_path_sequence.cpp 2022-01-18 09:59:29.000000000 +0000 +++ cgal-5.5/examples/Surface_mesh_shortest_path/shortest_path_sequence.cpp 2022-07-13 19:00:07.000000000 +0000 @@ -13,9 +13,11 @@ typedef CGAL::Exact_predicates_inexact_constructions_kernel Kernel; typedef CGAL::Surface_mesh Triangle_mesh; + typedef CGAL::Surface_mesh_shortest_path_traits Traits; typedef CGAL::Surface_mesh_shortest_path Surface_mesh_shortest_path; typedef Traits::Barycentric_coordinates Barycentric_coordinates; + typedef boost::graph_traits Graph_traits; typedef Graph_traits::vertex_iterator vertex_iterator; typedef Graph_traits::face_iterator face_iterator; @@ -34,23 +36,24 @@ void operator()(halfedge_descriptor he, double alpha) { - - sequence.push_back( std::make_pair(he, alpha) ); + sequence.push_back(std::make_pair(he, alpha)); } void operator()(vertex_descriptor v) { - sequence.push_back( v ); + sequence.push_back(v); } void operator()(face_descriptor f, Barycentric_coordinates alpha) { - sequence.push_back( std::make_pair(f, alpha) ); + sequence.push_back(std::make_pair(f, alpha)); } }; // A visitor to print what a variant contains using boost::apply_visitor -struct Print_visitor : public boost::static_visitor<> { +struct Print_visitor + : public boost::static_visitor<> +{ int i; Triangle_mesh& g; @@ -58,22 +61,25 @@ void operator()(vertex_descriptor v) { - std::cout << "#" << ++i << " : Vertex : " << get(boost::vertex_index, g)[v] << "\n"; + std::cout << "#" << ++i << " Vertex: " << get(boost::vertex_index, g)[v]; + std::cout << " Position: " << Surface_mesh_shortest_path::point(v, g) << "\n"; } void operator()(const std::pair& h_a) { - std::cout << "#" << ++i << " : Edge : " << get(CGAL::halfedge_index, g)[h_a.first] << " , (" - << 1.0 - h_a.second << " , " - << h_a.second << ")\n"; + std::cout << "#" << ++i << " Edge: " << get(CGAL::halfedge_index, g)[h_a.first] << " , (" + << 1.0 - h_a.second << " , " + << h_a.second << ")"; + std::cout << " Position: " << Surface_mesh_shortest_path::point(h_a.first, h_a.second, g) << "\n"; } void operator()(const std::pair& f_bc) { - std::cout << "#" << ++i << " : Face : " << get(CGAL::face_index, g)[f_bc.first] << " , (" - << f_bc.second[0] << " , " - << f_bc.second[1] << " , " - << f_bc.second[2] << ")\n"; + std::cout << "#" << ++i << " Face: " << get(CGAL::face_index, g)[f_bc.first] << " , (" + << f_bc.second[0] << " , " + << f_bc.second[1] << " , " + << f_bc.second[2] << ")"; + std::cout << " Position: " << Surface_mesh_shortest_path::point(f_bc.first, f_bc.second, g) << "\n"; } }; @@ -100,12 +106,16 @@ // construct a shortest path query object and add a source point Surface_mesh_shortest_path shortest_paths(tmesh); + + std::cout << "Add source: " << Surface_mesh_shortest_path::point(*face_it, face_location, tmesh) << std::endl; shortest_paths.add_source_point(*face_it, face_location); // pick a random target point inside a face face_it = faces(tmesh).first; std::advance(face_it, rand.get_int(0, static_cast(num_faces(tmesh)))); + std::cout << "Target is: " << Surface_mesh_shortest_path::point(*face_it, face_location, tmesh) << std::endl; + // collect the sequence of simplicies crossed by the shortest path Sequence_collector sequence_collector; shortest_paths.shortest_path_sequence_to_source_points(*face_it, face_location, sequence_collector); diff -Nru cgal-5.4.1/examples/Surface_mesh_simplification/CMakeLists.txt cgal-5.5/examples/Surface_mesh_simplification/CMakeLists.txt --- cgal-5.4.1/examples/Surface_mesh_simplification/CMakeLists.txt 2022-01-18 09:59:29.000000000 +0000 +++ cgal-5.5/examples/Surface_mesh_simplification/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script_with_options # This is the CMake script for compiling a set of CGAL applications. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Surface_mesh_simplification_Examples) # CGAL and its components @@ -26,16 +26,14 @@ # Creating entries for all .cpp/.C files with "main" routine # ########################################################## -create_single_source_cgal_program( "edge_collapse_envelope.cpp" ) +create_single_source_cgal_program("edge_collapse_envelope.cpp") create_single_source_cgal_program("edge_collapse_constrain_sharp_edges.cpp") -create_single_source_cgal_program( - "edge_collapse_constrained_border_polyhedron.cpp") +create_single_source_cgal_program("edge_collapse_constrained_border_polyhedron.cpp") create_single_source_cgal_program("edge_collapse_enriched_polyhedron.cpp") create_single_source_cgal_program("edge_collapse_polyhedron.cpp") create_single_source_cgal_program("edge_collapse_surface_mesh.cpp") create_single_source_cgal_program("edge_collapse_linear_cell_complex.cpp") -create_single_source_cgal_program( - "edge_collapse_constrained_border_surface_mesh.cpp") +create_single_source_cgal_program("edge_collapse_constrained_border_surface_mesh.cpp") create_single_source_cgal_program("edge_collapse_all_short_edges.cpp") create_single_source_cgal_program("edge_collapse_bounded_normal_change.cpp") create_single_source_cgal_program("edge_collapse_visitor_surface_mesh.cpp") @@ -44,13 +42,9 @@ include(CGAL_Eigen3_support) if(TARGET CGAL::Eigen3_support) create_single_source_cgal_program("edge_collapse_garland_heckbert.cpp") - target_link_libraries(edge_collapse_garland_heckbert - PUBLIC CGAL::Eigen3_support) + target_link_libraries(edge_collapse_garland_heckbert PUBLIC CGAL::Eigen3_support) else() - message( - STATUS - "Garland-Heckbert polices require the Eigen library, which has not been found; related examples will not be compiled." - ) + message(STATUS "NOTICE: Garland-Heckbert polices require the Eigen library, which has not been found; related examples will not be compiled.") endif() if(OpenMesh_FOUND) diff -Nru cgal-5.4.1/examples/Surface_mesh_simplification/edge_collapse_garland_heckbert.cpp cgal-5.5/examples/Surface_mesh_simplification/edge_collapse_garland_heckbert.cpp --- cgal-5.4.1/examples/Surface_mesh_simplification/edge_collapse_garland_heckbert.cpp 2022-01-18 09:59:29.000000000 +0000 +++ cgal-5.5/examples/Surface_mesh_simplification/edge_collapse_garland_heckbert.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -1,14 +1,14 @@ #include #include -#include #include #include #include +#include #include -#include #include +#include #include typedef CGAL::Simple_cartesian Kernel; @@ -18,45 +18,31 @@ namespace SMS = CGAL::Surface_mesh_simplification; -int main(int argc, char** argv) +typedef SMS::GarlandHeckbert_plane_policies Classic_plane; +typedef SMS::GarlandHeckbert_probabilistic_plane_policies Prob_plane; +typedef SMS::GarlandHeckbert_triangle_policies Classic_tri; +typedef SMS::GarlandHeckbert_probabilistic_triangle_policies Prob_tri; + +template +void collapse_gh(Surface_mesh& mesh, + const double ratio) { - Surface_mesh surface_mesh; - const std::string filename = (argc > 1) ? argv[1] : CGAL::data_file_path("meshes/cube-meshed.off"); - std::ifstream is(filename); - if(!is || !(is >> surface_mesh)) - { - std::cerr << "Failed to read input mesh: " << filename << std::endl; - return EXIT_FAILURE; - } - - if(!CGAL::is_triangle_mesh(surface_mesh)) - { - std::cerr << "Input geometry is not triangulated." << std::endl; - return EXIT_FAILURE; - } - - std::cout << "Input mesh has " << num_vertices(surface_mesh) << " nv " - << num_edges(surface_mesh) << " ne " - << num_faces(surface_mesh) << " nf" << std::endl; - std::chrono::steady_clock::time_point start_time = std::chrono::steady_clock::now(); - const double ratio = (argc > 2) ? std::stod(argv[2]) : 0.2; SMS::Count_ratio_stop_predicate stop(ratio); // Garland&Heckbert simplification policies - typedef typename SMS::GarlandHeckbert_policies GH_policies; - typedef typename GH_policies::Get_cost GH_cost; - typedef typename GH_policies::Get_placement GH_placement; + + typedef typename GHPolicies::Get_cost GH_cost; + typedef typename GHPolicies::Get_placement GH_placement; typedef SMS::Bounded_normal_change_placement Bounded_GH_placement; - GH_policies gh_policies(surface_mesh); + GHPolicies gh_policies(mesh); const GH_cost& gh_cost = gh_policies.get_cost(); const GH_placement& gh_placement = gh_policies.get_placement(); Bounded_GH_placement placement(gh_placement); - std::cout << "Collapsing edges of mesh: " << filename << ", aiming for " << 100 * ratio << "% of the input edges..." << std::endl; - int r = SMS::edge_collapse(surface_mesh, stop, + int r = SMS::edge_collapse(mesh, stop, CGAL::parameters::get_cost(gh_cost) .get_placement(placement)); @@ -66,9 +52,47 @@ << std::chrono::duration_cast(end_time - start_time).count() << "ms" << std::endl; - std::cout << "\nFinished!\n" << r << " edges removed.\n" << surface_mesh.number_of_edges() << " final edges.\n"; + std::cout << "\nFinished!\n" << r << " edges removed.\n" << edges(mesh).size() << " final edges.\n"; +} + +// Usage: +// ./command [input] [ratio] [policy] [outpout] +// policy can be "cp" (classic plane), "ct" (classic triangle), "pp" (probabilistic plane), "pt" (probabilistic triangle) +int main(int argc, char** argv) +{ + Surface_mesh mesh; + const std::string filename = (argc > 1) ? argv[1] : CGAL::data_file_path("meshes/cube-meshed.off"); + + if(!CGAL::IO::read_polygon_mesh(filename, mesh)) + { + std::cerr << "Failed to read input mesh: " << filename << std::endl; + return EXIT_FAILURE; + } + + if(!CGAL::is_triangle_mesh(mesh)) + { + std::cerr << "Input geometry is not triangulated." << std::endl; + return EXIT_FAILURE; + } + + std::cout << "Input mesh has " << num_vertices(mesh) << " nv " + << num_edges(mesh) << " ne " + << num_faces(mesh) << " nf" << std::endl; + + const double ratio = (argc > 2) ? std::stod(argv[2]) : 0.2; + std::cout << "Collapsing edges of mesh: " << filename << ", aiming for " << 100 * ratio << "% of the input edges..." << std::endl; + + const std::string policy = (argc > 3) ? argv[3] : "cp"; + if(policy == "cp") + collapse_gh(mesh, ratio); + else if(policy == "ct") + collapse_gh(mesh, ratio); + else if(policy == "pp") + collapse_gh(mesh, ratio); + else + collapse_gh(mesh, ratio); - CGAL::IO::write_polygon_mesh((argc > 3) ? argv[3] : "out.off", surface_mesh, CGAL::parameters::stream_precision(17)); + CGAL::IO::write_polygon_mesh((argc > 4) ? argv[4] : "out.off", mesh, CGAL::parameters::stream_precision(17)); return EXIT_SUCCESS; } diff -Nru cgal-5.4.1/examples/Surface_mesh_skeletonization/CMakeLists.txt cgal-5.5/examples/Surface_mesh_skeletonization/CMakeLists.txt --- cgal-5.4.1/examples/Surface_mesh_skeletonization/CMakeLists.txt 2022-01-18 09:59:29.000000000 +0000 +++ cgal-5.5/examples/Surface_mesh_skeletonization/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Surface_mesh_skeletonization_Examples) find_package(CGAL REQUIRED) @@ -9,6 +9,14 @@ find_package(Eigen3 3.2.0) #(requires 3.2.0 or greater) include(CGAL_Eigen3_support) +find_package(OpenMesh QUIET) + +if(OpenMesh_FOUND) + include(UseOpenMesh) +else() + message(STATUS "Examples that use OpenMesh will not be compiled.") +endif() + if(TARGET CGAL::Eigen3_support) create_single_source_cgal_program("simple_mcfskel_example.cpp") create_single_source_cgal_program("simple_mcfskel_sm_example.cpp") @@ -28,6 +36,11 @@ segmentation_example) target_link_libraries(${target} PUBLIC CGAL::Eigen3_support) endforeach() + + if(OpenMesh_FOUND) + create_single_source_cgal_program("MCF_Skeleton_om_example.cpp") + target_link_libraries( MCF_Skeleton_om_example PUBLIC CGAL::Eigen3_support PRIVATE ${OPENMESH_LIBRARIES}) + endif() else() message( STATUS diff -Nru cgal-5.4.1/examples/Surface_mesh_skeletonization/MCF_Skeleton_om_example.cpp cgal-5.5/examples/Surface_mesh_skeletonization/MCF_Skeleton_om_example.cpp --- cgal-5.4.1/examples/Surface_mesh_skeletonization/MCF_Skeleton_om_example.cpp 1970-01-01 00:00:00.000000000 +0000 +++ cgal-5.5/examples/Surface_mesh_skeletonization/MCF_Skeleton_om_example.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -0,0 +1,81 @@ + +#include +#include +#include + +#include +#include + +#include + +#include + +typedef CGAL::Exact_predicates_inexact_constructions_kernel Kernel; +typedef Kernel::Point_3 Point; +typedef OpenMesh::PolyMesh_ArrayKernelT Triangle_mesh; + +typedef boost::graph_traits::vertex_descriptor vertex_descriptor; + +typedef CGAL::Mean_curvature_flow_skeletonization Skeletonization; +typedef Skeletonization::Skeleton Skeleton; + +typedef Skeleton::vertex_descriptor Skeleton_vertex; +typedef Skeleton::edge_descriptor Skeleton_edge; + +int main(int argc, char* argv[]) +{ + const std::string filename = (argc > 1) ? argv[1] : CGAL::data_file_path("meshes/elephant.off"); + + Triangle_mesh tmesh; + OpenMesh::IO::read_mesh(tmesh, filename); + + if (!CGAL::is_triangle_mesh(tmesh)) + { + std::cout << "Input geometry is not triangulated." << std::endl; + return EXIT_FAILURE; + } + + Skeleton skeleton; + Skeletonization mcs(tmesh); + + // 1. Contract the mesh by mean curvature flow. + mcs.contract_geometry(); + + // 2. Collapse short edges and split bad triangles. + mcs.collapse_edges(); + mcs.split_faces(); + + // 3. Fix degenerate vertices. + mcs.detect_degeneracies(); + + // Perform the above three steps in one iteration. + mcs.contract(); + + // Iteratively apply step 1 to 3 until convergence. + mcs.contract_until_convergence(); + + // Convert the contracted mesh into a curve skeleton and + // get the correspondent surface points + mcs.convert_to_skeleton(skeleton); + + std::cout << "Number of vertices of the skeleton: " << boost::num_vertices(skeleton) << "\n"; + std::cout << "Number of edges of the skeleton: " << boost::num_edges(skeleton) << "\n"; + + // Output all the edges of the skeleton. + std::ofstream output("skel-sm.polylines.txt"); + for(Skeleton_edge e : CGAL::make_range(edges(skeleton))) + { + const Point& s = skeleton[source(e, skeleton)].point; + const Point& t = skeleton[target(e, skeleton)].point; + output << "2 "<< s << " " << t << "\n"; + } + output.close(); + + // Output skeleton points and the corresponding surface points + output.open("correspondance-sm.polylines.txt"); + for(Skeleton_vertex v : CGAL::make_range(vertices(skeleton))) + for(vertex_descriptor vd : skeleton[v].vertices) + output << "2 " << skeleton[v].point << " " << get(CGAL::vertex_point, tmesh, vd) << "\n"; + + return EXIT_SUCCESS; +} diff -Nru cgal-5.4.1/examples/Surface_mesh_topology/CMakeLists.txt cgal-5.5/examples/Surface_mesh_topology/CMakeLists.txt --- cgal-5.4.1/examples/Surface_mesh_topology/CMakeLists.txt 2022-01-18 09:59:29.000000000 +0000 +++ cgal-5.5/examples/Surface_mesh_topology/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Surface_mesh_topology_Examples) find_package(CGAL REQUIRED OPTIONAL_COMPONENTS Qt5) diff -Nru cgal-5.4.1/examples/Surface_mesh_topology/unsew_edgewidth_repeatedly.cpp cgal-5.5/examples/Surface_mesh_topology/unsew_edgewidth_repeatedly.cpp --- cgal-5.4.1/examples/Surface_mesh_topology/unsew_edgewidth_repeatedly.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Surface_mesh_topology/unsew_edgewidth_repeatedly.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -8,7 +8,7 @@ #include #include #include -#include +#include using LCC_3 =CGAL::Linear_cell_complex_for_generalized_map<2, 3>; using Dart_handle =LCC_3::Dart_handle; @@ -97,7 +97,7 @@ CGAL::load_off(lccoriginal, inp); std::cout<<"File '"< origin_to_copy; + std::unordered_map origin_to_copy; lcccopy.copy(lccoriginal, &origin_to_copy, nullptr); LCC_3::size_type is_root=lccoriginal.get_new_mark(); diff -Nru cgal-5.4.1/examples/Surface_sweep_2/CMakeLists.txt cgal-5.5/examples/Surface_sweep_2/CMakeLists.txt --- cgal-5.4.1/examples/Surface_sweep_2/CMakeLists.txt 2022-01-18 09:59:29.000000000 +0000 +++ cgal-5.5/examples/Surface_sweep_2/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_CMakeLists # This is the CMake script for compiling a set of CGAL applications. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Surface_sweep_2_Examples) # CGAL and its components diff -Nru cgal-5.4.1/examples/Surface_sweep_2/plane_sweep.cpp cgal-5.5/examples/Surface_sweep_2/plane_sweep.cpp --- cgal-5.4.1/examples/Surface_sweep_2/plane_sweep.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Surface_sweep_2/plane_sweep.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,8 @@ -//! \file examples/Arrangement_on_surface_2/plane_sweep.cpp +//! \file examples/Surface_sweep_2/plane_sweep.cpp // Computing intersection points among curves using the surface-sweep alg. #include +#include #include #include @@ -39,7 +40,7 @@ std::cout << "Found " << sub_segs.size() << " interior-disjoint sub-segments." << std::endl; - CGAL_assertion(CGAL::do_curves_intersect (segments, segments + 4)); + assert(CGAL::do_curves_intersect (segments, segments + 4)); return 0; } diff -Nru cgal-5.4.1/examples/TDS_3/CMakeLists.txt cgal-5.5/examples/TDS_3/CMakeLists.txt --- cgal-5.4.1/examples/TDS_3/CMakeLists.txt 2022-01-18 09:59:29.000000000 +0000 +++ cgal-5.5/examples/TDS_3/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(TDS_3_Examples) find_package(CGAL REQUIRED) diff -Nru cgal-5.4.1/examples/Tetrahedral_remeshing/CMakeLists.txt cgal-5.5/examples/Tetrahedral_remeshing/CMakeLists.txt --- cgal-5.4.1/examples/Tetrahedral_remeshing/CMakeLists.txt 2022-01-18 09:59:29.000000000 +0000 +++ cgal-5.5/examples/Tetrahedral_remeshing/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_CMakeLists # This is the CMake script for compiling a set of CGAL applications. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Tetrahedral_remeshing_Examples) diff -Nru cgal-5.4.1/examples/Tetrahedral_remeshing/tetrahedral_remeshing_generate_input.h cgal-5.5/examples/Tetrahedral_remeshing/tetrahedral_remeshing_generate_input.h --- cgal-5.4.1/examples/Tetrahedral_remeshing/tetrahedral_remeshing_generate_input.h 2022-06-03 19:06:03.000000000 +0000 +++ cgal-5.5/examples/Tetrahedral_remeshing/tetrahedral_remeshing_generate_input.h 2022-07-13 19:07:01.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Tetrahedral_remeshing/examples/Tetrahedral_remeshing/tetrahedral_remeshing_generate_input.h $ -// $Id: tetrahedral_remeshing_generate_input.h 25b0dc5 2020-05-27T19:04:46+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Tetrahedral_remeshing/examples/Tetrahedral_remeshing/tetrahedral_remeshing_generate_input.h $ +// $Id: tetrahedral_remeshing_generate_input.h 4ffc949 2022-02-03T17:11:20+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -12,8 +12,10 @@ #include -#include +#include +#include #include +#include namespace CGAL { @@ -42,7 +44,7 @@ else c->set_subdomain_index(2); } - CGAL_assertion(tr.is_valid(true)); + assert(tr.is_valid(true)); } @@ -66,15 +68,17 @@ for (typename Tr::Cell_handle c : tr.finite_cell_handles()) c->set_subdomain_index(1); - CGAL_assertion(tr.is_valid(true)); + assert(tr.is_valid(true)); } template void add_edge(typename Tr::Vertex_handle v1, typename Tr::Vertex_handle v2, const Tr& tr, - boost::unordered_set >& constraints) + std::unordered_set, + boost::hash>>& constraints) { typename Tr::Cell_handle c; int i, j; @@ -85,8 +89,11 @@ template void make_constraints_from_cube_edges( Tr& tr, - boost::unordered_set >& constraints) + std::unordered_set, + boost::hash> + >& constraints) { typedef typename Tr::Point Point; typedef typename Tr::Vertex_handle Vertex_handle; @@ -143,8 +150,10 @@ template void generate_input_cube(const std::size_t& n, Tr& tr, - boost::unordered_set >& constraints) + std::unordered_set, + boost::hash> >& constraints) { typedef typename Tr::Vertex_handle Vertex_handle; typedef typename Tr::Point Point; @@ -185,7 +194,7 @@ add_edge(v2, v6, tr, constraints); add_edge(v3, v7, tr, constraints); - CGAL_assertion(tr.is_valid(true)); + assert(tr.is_valid(true)); } } -} \ No newline at end of file +} diff -Nru cgal-5.4.1/examples/Tetrahedral_remeshing/tetrahedral_remeshing_with_features.cpp cgal-5.5/examples/Tetrahedral_remeshing/tetrahedral_remeshing_with_features.cpp --- cgal-5.4.1/examples/Tetrahedral_remeshing/tetrahedral_remeshing_with_features.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Tetrahedral_remeshing/tetrahedral_remeshing_with_features.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -5,10 +5,10 @@ #include -#include - +#include #include #include +#include #include "tetrahedral_remeshing_generate_input.h" @@ -30,13 +30,13 @@ typedef boost::read_write_property_map_tag category; private: - boost::unordered_set* m_set_ptr; + std::unordered_set>* m_set_ptr; public: Constrained_edges_property_map() : m_set_ptr(nullptr) {} - Constrained_edges_property_map(boost::unordered_set* set_) + Constrained_edges_property_map(std::unordered_set>* set_) : m_set_ptr(set_) {} @@ -45,8 +45,8 @@ const key_type& k, const bool b) { - CGAL_assertion(map.m_set_ptr != nullptr); - CGAL_assertion(k.first < k.second); + assert(map.m_set_ptr != nullptr); + assert(k.first < k.second); if (b) map.m_set_ptr->insert(k); else map.m_set_ptr->erase(k); } @@ -54,8 +54,8 @@ friend value_type get(const Constrained_edges_property_map& map, const key_type& k) { - CGAL_assertion(map.m_set_ptr != nullptr); - CGAL_assertion(k.first < k.second); + assert(map.m_set_ptr != nullptr); + assert(k.first < k.second); return (map.m_set_ptr->count(k) > 0); } }; @@ -76,11 +76,11 @@ const int nbv = (argc > 3) ? atoi(argv[3]) : 500; Remeshing_triangulation t3; - boost::unordered_set > constraints; + typedef std::pair Vertex_pair; + std::unordered_set> constraints; CGAL::Tetrahedral_remeshing::generate_input_cube(nbv, t3, constraints); make_constraints_from_cube_edges(t3, constraints); - CGAL_assertion(t3.is_valid()); CGAL::tetrahedral_isotropic_remeshing(t3, target_edge_length, CGAL::parameters::edge_is_constrained_map( @@ -89,4 +89,3 @@ return EXIT_SUCCESS; } - diff -Nru cgal-5.4.1/examples/Triangulation/barycentric_subdivision.cpp cgal-5.5/examples/Triangulation/barycentric_subdivision.cpp --- cgal-5.4.1/examples/Triangulation/barycentric_subdivision.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Triangulation/barycentric_subdivision.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -1,6 +1,6 @@ #include #include -#include +#include #include #include @@ -96,7 +96,7 @@ } } std::cerr << "Could not build a face from vertices"< #include #include -#include +#include #include #include @@ -28,7 +28,7 @@ std::copy_n(rand_it, N, std::back_inserter(points)); T t(D); - CGAL_assertion(t.empty()); + assert(t.empty()); // insert the points in the triangulation, only if they are outside the // convex hull diff -Nru cgal-5.4.1/examples/Triangulation/regular_triangulation.cpp cgal-5.5/examples/Triangulation/regular_triangulation.cpp --- cgal-5.4.1/examples/Triangulation/regular_triangulation.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Triangulation/regular_triangulation.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ #include #include #include -#include +#include #include #include @@ -27,11 +27,11 @@ points.push_back(Weighted_point(*rand_it++, rng.get_double(0., 10.))); T t(D); - CGAL_assertion(t.empty()); + assert(t.empty()); // Insert the points in the triangulation t.insert(points.begin(), points.end()); - CGAL_assertion( t.is_valid() ); + assert( t.is_valid() ); std::cout << "Regular triangulation successfully computed: " << t.number_of_vertices() << " vertices, " << t.number_of_finite_full_cells() << " finite cells." diff -Nru cgal-5.4.1/examples/Triangulation/triangulation.cpp cgal-5.5/examples/Triangulation/triangulation.cpp --- cgal-5.4.1/examples/Triangulation/triangulation.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Triangulation/triangulation.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -4,11 +4,11 @@ #include #include #include -#include #include #include #include +#include typedef CGAL::Epick_d< CGAL::Dynamic_dimension_tag > K; typedef CGAL::Triangulation Triangulation; @@ -23,9 +23,9 @@ std::copy_n(rand_it, N, std::back_inserter(points)); Triangulation t(D); // create triangulation - CGAL_assertion(t.empty()); + assert(t.empty()); t.insert(points.begin(), points.end()); // compute triangulation - CGAL_assertion( t.is_valid() ); + assert( t.is_valid() ); // - - - - - - - - - - - - - - - - - - - - - - - - STEP 2 typedef Triangulation::Face Face; typedef std::vector Faces; @@ -41,4 +41,3 @@ return 0; } - diff -Nru cgal-5.4.1/examples/Triangulation/triangulation_data_structure_dynamic.cpp cgal-5.5/examples/Triangulation/triangulation_data_structure_dynamic.cpp --- cgal-5.4.1/examples/Triangulation/triangulation_data_structure_dynamic.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Triangulation/triangulation_data_structure_dynamic.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -1,5 +1,5 @@ #include -#include +#include #include @@ -11,17 +11,17 @@ typedef TDS::Vertex_handle Vertex_handle; TDS D(ddim); // the argument is taken into account. - CGAL_assertion( ddim == D.maximal_dimension() ); - CGAL_assertion( -2 == D.current_dimension() ); - CGAL_assertion( D.is_valid() ); + assert( ddim == D.maximal_dimension() ); + assert( -2 == D.current_dimension() ); + assert( D.is_valid() ); std::vector V(5); V[0] = D.insert_increase_dimension(); V[1] = D.insert_increase_dimension(V[0]); V[2] = D.insert_increase_dimension(V[0]); V[3] = D.insert_increase_dimension(V[0]); V[4] = D.insert_in_full_cell(V[3]->full_cell()); - CGAL_assertion( 6 == D.number_of_full_cells() ); - CGAL_assertion( 2 == D.current_dimension() ); - CGAL_assertion( D.is_valid() ); + assert( 6 == D.number_of_full_cells() ); + assert( 2 == D.current_dimension() ); + assert( D.is_valid() ); return 0; } diff -Nru cgal-5.4.1/examples/Triangulation/triangulation_data_structure_static.cpp cgal-5.5/examples/Triangulation/triangulation_data_structure_static.cpp --- cgal-5.4.1/examples/Triangulation/triangulation_data_structure_static.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Triangulation/triangulation_data_structure_static.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -1,42 +1,42 @@ #include -#include #include +#include int main() { typedef CGAL::Triangulation_data_structure > TDS; TDS S; - CGAL_assertion( 7 == S.maximal_dimension() ); - CGAL_assertion( -2 == S.current_dimension() ); - CGAL_assertion( S.is_valid() ); + assert( 7 == S.maximal_dimension() ); + assert( -2 == S.current_dimension() ); + assert( S.is_valid() ); std::vector V(10); V[0] = S.insert_increase_dimension(); //insert first vertex - CGAL_assertion( -1 == S.current_dimension() ); + assert( -1 == S.current_dimension() ); for( int i = 1; i <= 5; ++i ) V[i] = S.insert_increase_dimension(V[0]); // the first 6 vertices have created a triangulation // of the 4-dimensional topological sphere // (the boundary of a five dimensional simplex). - CGAL_assertion( 4 == S.current_dimension() ); - CGAL_assertion( 6 == S.number_of_vertices() ); - CGAL_assertion( 6 == S.number_of_full_cells() ); + assert( 4 == S.current_dimension() ); + assert( 6 == S.number_of_vertices() ); + assert( 6 == S.number_of_full_cells() ); TDS::Full_cell_handle c = V[5]->full_cell(); V[6] = S.insert_in_full_cell(c); // full cell c is split in 5 - CGAL_assertion( 7 == S.number_of_vertices() ); - CGAL_assertion( 10 == S.number_of_full_cells() ); + assert( 7 == S.number_of_vertices() ); + assert( 10 == S.number_of_full_cells() ); c = V[3]->full_cell(); TDS::Facet ft(c, 2); // the Facet opposite to vertex 2 in c V[7] = S.insert_in_facet(ft); // facet ft is split in 4 and the two incident cells are split accordingly - CGAL_assertion( 8 == S.number_of_vertices() ); - CGAL_assertion( 16 == S.number_of_full_cells() ); + assert( 8 == S.number_of_vertices() ); + assert( 16 == S.number_of_full_cells() ); c = V[3]->full_cell(); TDS::Face face(c); @@ -45,7 +45,7 @@ face.set_index(1, 4); // and vertex 4 V[8] = S.insert_in_face(face); // face is split in 2, and all incident full cells also - CGAL_assertion( S.is_valid() ); + assert( S.is_valid() ); TDS::Full_cell_handle hole[2]; hole[0] = V[8]->full_cell(); @@ -54,6 +54,6 @@ ft = TDS::Facet(hole[0], 1); // a face on the boundary of hole[0] V[9] = S.insert_in_hole(hole, hole+2, ft); // the hole is triangulated by linking a new vertex to its boundary - CGAL_assertion( S.is_valid() ); + assert( S.is_valid() ); return 0; } diff -Nru cgal-5.4.1/examples/Triangulation_2/CMakeLists.txt cgal-5.5/examples/Triangulation_2/CMakeLists.txt --- cgal-5.4.1/examples/Triangulation_2/CMakeLists.txt 2022-01-18 09:59:29.000000000 +0000 +++ cgal-5.5/examples/Triangulation_2/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Triangulation_2_Examples) find_package(CGAL REQUIRED OPTIONAL_COMPONENTS Qt5) @@ -17,6 +17,7 @@ if(CGAL_Qt5_FOUND) target_link_libraries(draw_triangulation_2 PUBLIC CGAL::CGAL_Basic_viewer) + target_link_libraries(star_conflict_zone PUBLIC CGAL::CGAL_Basic_viewer) else() message( STATUS diff -Nru cgal-5.4.1/examples/Triangulation_2/copy_triangulation_2.cpp cgal-5.5/examples/Triangulation_2/copy_triangulation_2.cpp --- cgal-5.4.1/examples/Triangulation_2/copy_triangulation_2.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Triangulation_2/copy_triangulation_2.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -3,6 +3,7 @@ #include #include +#include typedef CGAL::Exact_predicates_inexact_constructions_kernel EPIC; typedef CGAL::Exact_predicates_exact_constructions_kernel EPEC; @@ -44,5 +45,5 @@ dt2_epec.set_infinite_vertex( dt2_epec.tds().copy_tds( dt2_epic.tds(),dt2_epic.infinite_vertex(), Convert_vertex(), Convert_face() ) ); - CGAL_assertion( dt2_epec.is_valid() ); + assert( dt2_epec.is_valid() ); } diff -Nru cgal-5.4.1/examples/Triangulation_2/info_insert_with_pair_iterator_2.cpp cgal-5.5/examples/Triangulation_2/info_insert_with_pair_iterator_2.cpp --- cgal-5.4.1/examples/Triangulation_2/info_insert_with_pair_iterator_2.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Triangulation_2/info_insert_with_pair_iterator_2.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -24,8 +24,6 @@ Delaunay T; T.insert( points.begin(),points.end() ); - CGAL_assertion( T.number_of_vertices() == 6 ); - // check that the info was correctly set. Delaunay::Finite_vertices_iterator vit; for (Vertex_handle v : T.finite_vertex_handles()) diff -Nru cgal-5.4.1/examples/Triangulation_2/info_insert_with_pair_iterator_regular_2.cpp cgal-5.5/examples/Triangulation_2/info_insert_with_pair_iterator_regular_2.cpp --- cgal-5.4.1/examples/Triangulation_2/info_insert_with_pair_iterator_regular_2.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Triangulation_2/info_insert_with_pair_iterator_regular_2.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -28,8 +28,6 @@ Regular rt; rt.insert( points.begin(),points.end() ); - CGAL_assertion( rt.number_of_vertices() == 6 ); - // check that the info was correctly set. for (Vertex_handle v : rt.finite_vertex_handles()) if( points[ v->info() ].first != v->point() ){ diff -Nru cgal-5.4.1/examples/Triangulation_2/info_insert_with_transform_iterator_2.cpp cgal-5.5/examples/Triangulation_2/info_insert_with_transform_iterator_2.cpp --- cgal-5.4.1/examples/Triangulation_2/info_insert_with_transform_iterator_2.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Triangulation_2/info_insert_with_transform_iterator_2.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -37,8 +37,6 @@ T.insert( boost::make_transform_iterator(points.begin(),Auto_count()), boost::make_transform_iterator(points.end(), Auto_count() ) ); - CGAL_assertion( T.number_of_vertices() == 6 ); - // check that the info was correctly set. Delaunay::Finite_vertices_iterator vit; for (Vertex_handle v : T.finite_vertex_handles()) diff -Nru cgal-5.4.1/examples/Triangulation_2/info_insert_with_zip_iterator_2.cpp cgal-5.5/examples/Triangulation_2/info_insert_with_zip_iterator_2.cpp --- cgal-5.4.1/examples/Triangulation_2/info_insert_with_zip_iterator_2.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Triangulation_2/info_insert_with_zip_iterator_2.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -36,9 +36,6 @@ T.insert( boost::make_zip_iterator(boost::make_tuple( points.begin(),indices.begin() )), boost::make_zip_iterator(boost::make_tuple( points.end(),indices.end() ) ) ); - CGAL_assertion( T.number_of_vertices() == 6 ); - - // check that the info was correctly set. for (Vertex_handle v : T.finite_vertex_handles()) diff -Nru cgal-5.4.1/examples/Triangulation_2/star_conflict_zone.cpp cgal-5.5/examples/Triangulation_2/star_conflict_zone.cpp --- cgal-5.4.1/examples/Triangulation_2/star_conflict_zone.cpp 1970-01-01 00:00:00.000000000 +0000 +++ cgal-5.5/examples/Triangulation_2/star_conflict_zone.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -0,0 +1,62 @@ +#include +#include +#include +#include +#include +#include +#include + +typedef CGAL::Exact_predicates_inexact_constructions_kernel K; +typedef K::Point_2 Point_2; +typedef CGAL::Delaunay_triangulation_2 Dt2; +typedef Dt2::Edge Edge; +typedef Dt2::Face_handle Face_handle; +typedef Dt2::Face_circulator Face_circulator; +typedef Dt2::Vertex_handle Vertex_handle; + +int main( ) +{ + Dt2 dt2; + + dt2.insert(Point_2(0,0)); + dt2.insert(Point_2(10,0)); + dt2.insert(Point_2(0,10)); + + std::array points = { Point_2(2,2), Point_2(1,0), Point_2(2,2) }; + + CGAL::spatial_sort(points.begin(), points.end()); + + Face_handle hint; + + std::vector faces; + std::vector edges; + + assert(dt2.dimension() == 2); // precondition of get_conflicts_and_boundary + for(const Point_2 p : points){ + faces.clear(); // faster than variables in the scope + edges.clear(); + dt2.get_conflicts_and_boundary(p, + std::back_inserter(faces), + std::back_inserter(edges), + hint); + + if(faces.empty()){ + std::cout << "point " << p << " already in the triangulation" << std::endl; + }else{ + // Do something with the faces before the insertion + + Vertex_handle vh = dt2.star_hole(p, + edges.begin(), edges.end(), + faces.begin(), faces.end()); + hint = vh->face(); // we could also take any element of faces + + // Do something with the faces after the insertion + Face_circulator fc = dt2.incident_faces(vh), done(fc); + do { + fc++; + } while (fc != done); + } + draw(dt2); + } + return 0; +} diff -Nru cgal-5.4.1/examples/Triangulation_2/terr_trian.cpp cgal-5.5/examples/Triangulation_2/terr_trian.cpp --- cgal-5.4.1/examples/Triangulation_2/terr_trian.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Triangulation_2/terr_trian.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -5,9 +5,12 @@ #include #include +#include #include #include #include +#include +#include #include #include @@ -15,159 +18,159 @@ #include #include -#include "triangulation_print_OFF.h" - -using namespace std; - -template -class Indexed_point: public CGAL::Point_3 { - typedef CGAL::Point_3 Point_3; -public: - int* index; - Indexed_point() {} - Indexed_point( Point_3 p) : Point_3(p) {} - Indexed_point( double x, double y, double z, int* i) - : Point_3(x,y,z), index(i) {} -}; - typedef CGAL::Exact_predicates_inexact_constructions_kernel Kernel; +typedef CGAL::Point_3 Point_3; -typedef Indexed_point IPoint; -typedef CGAL::Projection_traits_xy_3 Gtraits; - -struct Gt : public Gtraits { - typedef IPoint Point; -}; +typedef CGAL::Projection_traits_xy_3 Gt; typedef CGAL::Triangulation_2 Triangulation; typedef CGAL::Delaunay_triangulation_2 Delaunay_triangulation; bool verbose = false; -bool binary = false; -bool noc = false; bool delaunay = false; bool incr = false; // main function with standard unix commandline arguments // ------------------------------------------------------ int main( int argc, char **argv) { - int n = 0; // number of filenames - char *filename[2]; - bool help = false; - for (int i = 1; i < argc; i++) { // check commandline options - if ( strcmp( "-v", argv[i]) == 0) - verbose = true; - else if ( strcmp( "-b", argv[i]) == 0) - binary = true; - else if ( strcmp( "-noc", argv[i]) == 0) - noc = true; - else if ( strcmp( "-delaunay", argv[i]) == 0) - delaunay = true; - else if ( strcmp( "-incr", argv[i]) == 0) - incr = true; - else if ( (strcmp( "-h", argv[i]) == 0) || - (strcmp( "-help", argv[i]) == 0)) - help = true; - else if ( n < 2 ) { - filename[ n++] = argv[i]; - } else { - ++n; - break; - } - } - if ((n > 2) || help) { - if ( ! help) - cerr << "Error: in parameter list" << endl; - cerr << "Usage: " << argv[0] << " [] [ []]" - << endl; - cerr << " Terrain triangulation in the xy-plane." << endl; - cerr << " -delaunay Delaunay triangulation (default)." << endl; - cerr << " -incr Incremental insertion (no flips)." << endl; - cerr << " -b binary output (default is ASCII)." << endl; - cerr << " -noc no comments in file." << endl; - cerr << " -v verbose." << endl; - exit( ! help); - } - - CGAL::Verbose_ostream vout( verbose); - vout << argv[0] << ": verbosity on." << endl; - - const char* iname = "cin"; - istream* p_in = &cin; - ifstream in; - if ( n > 0) { - in.open( filename[0]); - p_in = ∈ - iname = filename[0]; - } - if ( !*p_in) { - cerr << argv[0] << ": error: cannot open file '" << iname - << "' for reading." < 1) { - out.open( filename[1]); - p_out = &out; - oname = filename[1]; - } - if ( !*p_out) { - cerr << argv[0] << ": error: cannot open file '"<< oname - << "' for writing." < 2) || help) { + if ( ! help) + std::cerr << "Error: in parameter list" << std::endl; + std::cerr << "Usage: " << argv[0] << " [] [ []]" + << std::endl; + std::cerr << " Terrain triangulation in the xy-plane." << std::endl; + std::cerr << " -delaunay Delaunay triangulation (triangulation otherwise)." << std::endl; + std::cerr << " -incr Incremental insertion (no flips)." << std::endl; + std::cerr << " -v verbose." << std::endl; + exit( ! help); + } + + CGAL::Verbose_ostream vout( verbose); + vout << argv[0] << ": verbosity on." << std::endl; + + const char* iname = "cin"; + std::istream* p_in = &std::cin; + std::ifstream in; + if ( n > 0) { + in.open( filename[0]); + p_in = ∈ + iname = filename[0]; + } + if ( !*p_in) { + std::cerr << argv[0] << ": error: cannot open file '" << iname + << "' for reading." << std::endl; + exit(1); + } + + CGAL::File_scanner_OFF scanner( * p_in, true); + if ( !*p_in) + exit(1); + + const char* oname = "cout"; + std::ostream* p_out = &std::cout; + std::ofstream out; + if ( n > 1) { + out.open( filename[1]); + p_out = &out; + oname = filename[1]; + } + if ( !*p_out) { + std::cerr << argv[0] << ": error: cannot open file '"<< oname + << "' for writing." << std::endl; + exit(1); + } + + if ( delaunay) + { + Delaunay_triangulation triang; + if (incr) + { + vout << "Scanning and triangulating ... " << std::flush; + for ( std::size_t j = 0; j < scanner.size_of_vertices(); j++) { + double x, y, z; + scanner.scan_vertex( x, y, z); + Point_3 p( x, y, z); + triang.insert( p); + } + } + else + { + vout << "Scanning ... " << std::flush; + std::vector points; + for ( std::size_t j = 0; j < scanner.size_of_vertices(); j++) { + double x, y, z; + scanner.scan_vertex( x, y, z); + points.push_back(Point_3(x, y, z)); + } + vout << "done." << std::endl; + vout << "Triangulating ... " << std::flush; + triang.insert(points.begin(), points.end()); + } + vout << " done." << std::endl; + vout << "write_triangulation(" << oname << ") ... " << std::flush; + CGAL::IO::write_OFF(*p_out, triang); + vout << "done." << std::endl; + + } else { + Triangulation triang; + if(incr) + { + vout << "Scanning and triangulating ... " << std::flush; + for ( std::size_t j = 0; j < scanner.size_of_vertices(); j++) { + double x, y, z; + scanner.scan_vertex( x, y, z); + Point_3 p( x, y, z); + triang.insert( p); + } + } + else + { + vout << "Scanning ... " << std::flush; + std::vector points; + for ( std::size_t j = 0; j < scanner.size_of_vertices(); j++) { + double x, y, z; + scanner.scan_vertex( x, y, z); + points.push_back(Point_3( x, y, z)); + } + vout << "done." << std::endl; + vout << "Triangulating ... " << std::flush; + triang.insert(points.begin(), points.end()); + } + vout << "done." << std::endl; + vout << "write_triangulation(" << oname << ") ... " << std::flush; + CGAL::IO::write_OFF(*p_out, triang); + vout << "done." << std::endl; + } + if ( !*p_in) { + std::cerr << argv[0] << " read error: while reading file '"<< iname << "'." + << std::endl; + std::exit(1); + } + if ( !*p_out) { + std::cerr << argv[0] << " write error: while writing file '"<< oname << "'." + << std::endl; + exit(1); + } + + return 0; } diff -Nru cgal-5.4.1/examples/Triangulation_2/triangulation_print_OFF.h cgal-5.5/examples/Triangulation_2/triangulation_print_OFF.h --- cgal-5.4.1/examples/Triangulation_2/triangulation_print_OFF.h 2022-06-03 19:06:06.000000000 +0000 +++ cgal-5.5/examples/Triangulation_2/triangulation_print_OFF.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,73 +0,0 @@ -// Print a Triangulation with 3d points in object file format (OFF). - -#ifndef CGAL_TRIANGULATION_PRINT_OFF_H -#define CGAL_TRIANGULATION_PRINT_OFF_H 1 - -#include - -namespace CGAL { - -template < class Triang > -void -triangulation_print_OFF( std::ostream& out, - const Triang& triang, - bool binary = false, - bool noc = false, - bool verbose = false) { - CGAL_precondition( triang.is_valid()); - typedef typename Triang::Vertex Vertex; - typedef typename Triang::Vertex_iterator Vertex_iterator; - typedef typename Triang::Face_iterator Face_iterator; - // Build a map from vertex pointers to vertex indices. - std::map > mapping; - std::size_t vn = 0; - Vertex_iterator vi = triang.vertices_begin(); - for ( ; vi != triang.vertices_end(); ++vi) { - CGAL_assertion( ! triang.is_infinite( vi)); - mapping[ &*vi] = vn; - vn++; - } - CGAL_assertion( vn == std::size_t( triang.number_of_vertices())); - - // Count finite and infinite faces. - std::size_t fn = 0; - Face_iterator fi = triang.faces_begin(); - for ( ; fi != triang.faces_end(); ++fi) { - CGAL_assertion( ! triang.is_infinite( fi)); - fn++; - } - std::size_t fin = triang.number_of_faces() - fn; - - File_header_OFF header( binary, noc, false, verbose); - File_writer_OFF writer( header); - writer.write_header( out, vn, 3 * fn + fin, fn); - - vi = triang.vertices_begin(); - for ( ; vi != triang.vertices_end(); ++vi) { - CGAL_assertion( ! triang.is_infinite( vi)); - writer.write_vertex( to_double(vi->point().x()), - to_double(vi->point().y()), - to_double(vi->point().z())); - } - writer.write_facet_header(); - - fi = triang.faces_begin(); - while ( fn --) { - writer.write_facet_begin( 3); - CGAL_assertion( mapping.find(&*(fi->vertex(0))) != mapping.end()); - CGAL_assertion( mapping.find(&*(fi->vertex(1))) != mapping.end()); - CGAL_assertion( mapping.find(&*(fi->vertex(2))) != mapping.end()); - writer.write_facet_vertex_index( mapping[ &*(fi->vertex(0))]); - writer.write_facet_vertex_index( mapping[ &*(fi->vertex(1))]); - writer.write_facet_vertex_index( mapping[ &*(fi->vertex(2))]); - writer.write_facet_end(); - ++fi; - } - CGAL_assertion( fi == triang.faces_end()); - writer.write_footer(); -} - -} //namespace CGAL - -#endif // CGAL_TRIANGULATION_PRINT_OFF_H // -// EOF // diff -Nru cgal-5.4.1/examples/Triangulation_3/CMakeLists.txt cgal-5.5/examples/Triangulation_3/CMakeLists.txt --- cgal-5.4.1/examples/Triangulation_3/CMakeLists.txt 2022-01-18 09:59:29.000000000 +0000 +++ cgal-5.5/examples/Triangulation_3/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Triangulation_3_Examples) find_package(CGAL REQUIRED OPTIONAL_COMPONENTS Qt5) diff -Nru cgal-5.4.1/examples/Triangulation_3/copy_triangulation_3.cpp cgal-5.5/examples/Triangulation_3/copy_triangulation_3.cpp --- cgal-5.4.1/examples/Triangulation_3/copy_triangulation_3.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Triangulation_3/copy_triangulation_3.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -3,6 +3,7 @@ #include #include +#include typedef CGAL::Exact_predicates_inexact_constructions_kernel EPIC; typedef CGAL::Exact_predicates_exact_constructions_kernel EPEC; @@ -43,5 +44,5 @@ dt3_epec.set_infinite_vertex( dt3_epec.tds().copy_tds( dt3_epic.tds(),dt3_epic.infinite_vertex(), Convert_vertex(), Convert_cell() ) ); - CGAL_assertion( dt3_epec.is_valid() ); + assert( dt3_epec.is_valid() ); } diff -Nru cgal-5.4.1/examples/Triangulation_3/info_insert_with_pair_iterator.cpp cgal-5.5/examples/Triangulation_3/info_insert_with_pair_iterator.cpp --- cgal-5.4.1/examples/Triangulation_3/info_insert_with_pair_iterator.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Triangulation_3/info_insert_with_pair_iterator.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -26,8 +26,6 @@ Delaunay T( points.begin(),points.end() ); - CGAL_assertion( T.number_of_vertices() == 6 ); - // check that the info was correctly set. for (Delaunay::Vertex_handle v : T.finite_vertex_handles()) if( points[ v->info() ].first != v->point() ){ diff -Nru cgal-5.4.1/examples/Triangulation_3/info_insert_with_pair_iterator_regular.cpp cgal-5.5/examples/Triangulation_3/info_insert_with_pair_iterator_regular.cpp --- cgal-5.4.1/examples/Triangulation_3/info_insert_with_pair_iterator_regular.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Triangulation_3/info_insert_with_pair_iterator_regular.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -26,8 +26,6 @@ Regular rt( points.begin(),points.end() ); - CGAL_assertion( rt.number_of_vertices() == 6 ); - // check that the info was correctly set. for (Regular::Vertex_handle v : rt.finite_vertex_handles()) if( points[ v->info() ].first != v->point() ){ diff -Nru cgal-5.4.1/examples/Triangulation_3/info_insert_with_transform_iterator.cpp cgal-5.5/examples/Triangulation_3/info_insert_with_transform_iterator.cpp --- cgal-5.4.1/examples/Triangulation_3/info_insert_with_transform_iterator.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Triangulation_3/info_insert_with_transform_iterator.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -38,8 +38,6 @@ Delaunay T( boost::make_transform_iterator(points.begin(),Auto_count()), boost::make_transform_iterator(points.end(), Auto_count() ) ); - CGAL_assertion( T.number_of_vertices() == 6 ); - // check that the info was correctly set. for (Delaunay::Vertex_handle v : T.finite_vertex_handles()) if( points[ v->info() ] != v->point() ){ diff -Nru cgal-5.4.1/examples/Triangulation_3/info_insert_with_zip_iterator.cpp cgal-5.5/examples/Triangulation_3/info_insert_with_zip_iterator.cpp --- cgal-5.4.1/examples/Triangulation_3/info_insert_with_zip_iterator.cpp 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/examples/Triangulation_3/info_insert_with_zip_iterator.cpp 2022-06-13 09:15:37.000000000 +0000 @@ -37,8 +37,6 @@ Delaunay T( boost::make_zip_iterator(boost::make_tuple( points.begin(),indices.begin() )), boost::make_zip_iterator(boost::make_tuple( points.end(),indices.end() ) ) ); - CGAL_assertion( T.number_of_vertices() == 6 ); - // check that the info was correctly set. for (Delaunay::Vertex_handle v : T.finite_vertex_handles() ) if( points[ v->info() ] != v->point() ){ diff -Nru cgal-5.4.1/examples/Triangulation_on_sphere_2/CMakeLists.txt cgal-5.5/examples/Triangulation_on_sphere_2/CMakeLists.txt --- cgal-5.4.1/examples/Triangulation_on_sphere_2/CMakeLists.txt 2022-01-18 09:59:29.000000000 +0000 +++ cgal-5.5/examples/Triangulation_on_sphere_2/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project( Triangulation_on_sphere_2_Examples ) diff -Nru cgal-5.4.1/examples/Visibility_2/CMakeLists.txt cgal-5.5/examples/Visibility_2/CMakeLists.txt --- cgal-5.4.1/examples/Visibility_2/CMakeLists.txt 2022-01-18 09:59:29.000000000 +0000 +++ cgal-5.5/examples/Visibility_2/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Visibility_2_Examples) find_package(CGAL REQUIRED) diff -Nru cgal-5.4.1/examples/Voronoi_diagram_2/CMakeLists.txt cgal-5.5/examples/Voronoi_diagram_2/CMakeLists.txt --- cgal-5.4.1/examples/Voronoi_diagram_2/CMakeLists.txt 2022-01-18 09:59:29.000000000 +0000 +++ cgal-5.5/examples/Voronoi_diagram_2/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -1,7 +1,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) project(Voronoi_diagram_2_Examples) find_package(CGAL REQUIRED OPTIONAL_COMPONENTS Qt5) diff -Nru cgal-5.4.1/examples/Weights/CMakeLists.txt cgal-5.5/examples/Weights/CMakeLists.txt --- cgal-5.4.1/examples/Weights/CMakeLists.txt 2022-05-06 19:00:05.000000000 +0000 +++ cgal-5.5/examples/Weights/CMakeLists.txt 2022-06-13 09:15:37.000000000 +0000 @@ -3,7 +3,7 @@ project(Weights_Examples) -cmake_minimum_required(VERSION 3.1...3.22) +cmake_minimum_required(VERSION 3.1...3.23) find_package(CGAL REQUIRED COMPONENTS Core) diff -Nru cgal-5.4.1/include/CGAL/AABB_face_graph_triangle_primitive.h cgal-5.5/include/CGAL/AABB_face_graph_triangle_primitive.h --- cgal-5.4.1/include/CGAL/AABB_face_graph_triangle_primitive.h 2022-06-03 19:03:28.000000000 +0000 +++ cgal-5.5/include/CGAL/AABB_face_graph_triangle_primitive.h 2022-07-13 19:04:10.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/AABB_tree/include/CGAL/AABB_face_graph_triangle_primitive.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/AABB_tree/include/CGAL/AABB_face_graph_triangle_primitive.h $ // $Id: AABB_face_graph_triangle_primitive.h 746e00f 2020-11-30T18:16:39+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/AABB_halfedge_graph_segment_primitive.h cgal-5.5/include/CGAL/AABB_halfedge_graph_segment_primitive.h --- cgal-5.4.1/include/CGAL/AABB_halfedge_graph_segment_primitive.h 2022-06-03 19:03:28.000000000 +0000 +++ cgal-5.5/include/CGAL/AABB_halfedge_graph_segment_primitive.h 2022-07-13 19:04:10.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/AABB_tree/include/CGAL/AABB_halfedge_graph_segment_primitive.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/AABB_tree/include/CGAL/AABB_halfedge_graph_segment_primitive.h $ // $Id: AABB_halfedge_graph_segment_primitive.h 746e00f 2020-11-30T18:16:39+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/AABB_polyhedral_oracle.h cgal-5.5/include/CGAL/AABB_polyhedral_oracle.h --- cgal-5.4.1/include/CGAL/AABB_polyhedral_oracle.h 2022-06-03 19:05:59.000000000 +0000 +++ cgal-5.5/include/CGAL/AABB_polyhedral_oracle.h 2022-07-13 19:06:56.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesher/include/CGAL/AABB_polyhedral_oracle.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesher/include/CGAL/AABB_polyhedral_oracle.h $ // $Id: AABB_polyhedral_oracle.h 1faa0e2 2021-04-28T10:55:26+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/AABB_polyhedron_segment_primitive.h cgal-5.5/include/CGAL/AABB_polyhedron_segment_primitive.h --- cgal-5.4.1/include/CGAL/AABB_polyhedron_segment_primitive.h 2022-06-03 19:03:28.000000000 +0000 +++ cgal-5.5/include/CGAL/AABB_polyhedron_segment_primitive.h 2022-07-13 19:04:10.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/AABB_tree/include/CGAL/AABB_polyhedron_segment_primitive.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/AABB_tree/include/CGAL/AABB_polyhedron_segment_primitive.h $ // $Id: AABB_polyhedron_segment_primitive.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/AABB_polyhedron_triangle_primitive.h cgal-5.5/include/CGAL/AABB_polyhedron_triangle_primitive.h --- cgal-5.4.1/include/CGAL/AABB_polyhedron_triangle_primitive.h 2022-06-03 19:03:28.000000000 +0000 +++ cgal-5.5/include/CGAL/AABB_polyhedron_triangle_primitive.h 2022-07-13 19:04:10.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/AABB_tree/include/CGAL/AABB_polyhedron_triangle_primitive.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/AABB_tree/include/CGAL/AABB_polyhedron_triangle_primitive.h $ // $Id: AABB_polyhedron_triangle_primitive.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/AABB_primitive.h cgal-5.5/include/CGAL/AABB_primitive.h --- cgal-5.4.1/include/CGAL/AABB_primitive.h 2022-06-03 19:03:28.000000000 +0000 +++ cgal-5.5/include/CGAL/AABB_primitive.h 2022-07-13 19:04:10.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/AABB_tree/include/CGAL/AABB_primitive.h $ -// $Id: AABB_primitive.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/AABB_tree/include/CGAL/AABB_primitive.h $ +// $Id: AABB_primitive.h 3b52e46 2022-05-24T10:02:15+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -53,9 +53,8 @@ * The two property maps which are template parameters of the class enable to get the datum and the reference point of * the primitive from the identifier. The last template parameter controls whether the primitive class holds a copy of the datum. * - * \cgalModels `AABBPrimitive` if `ExternalPropertyMaps` is `CGAL::Tag_false`, - * and `AABBPrimitiveWithSharedData` if `ExternalPropertyMaps` is `CGAL::Tag_true`. - * + * \cgalModels `AABBPrimitive` if `ExternalPropertyMaps` is `CGAL::Tag_false`. + * \cgalModels `AABBPrimitiveWithSharedData` if `ExternalPropertyMaps` is `CGAL::Tag_true`. * * \tparam ObjectPropertyMap is a model of `ReadablePropertyMap` with `Id` as * `key_type`. It must be a model of `CopyConstructible`, `DefaultConstructible`, and `CopyAssignable`. @@ -70,7 +69,6 @@ * it is constructed on the fly to reduce the memory footprint. * The default is `CGAL::Tag_false` (datum is not stored). * - * \sa `AABBPrimitive` * \sa `AABB_segment_primitive` * \sa `AABB_triangle_primitive` * \sa `AABB_halfedge_graph_segment_primitive` diff -Nru cgal-5.4.1/include/CGAL/AABB_segment_primitive.h cgal-5.5/include/CGAL/AABB_segment_primitive.h --- cgal-5.4.1/include/CGAL/AABB_segment_primitive.h 2022-06-03 19:03:28.000000000 +0000 +++ cgal-5.5/include/CGAL/AABB_segment_primitive.h 2022-07-13 19:04:10.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/AABB_tree/include/CGAL/AABB_segment_primitive.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/AABB_tree/include/CGAL/AABB_segment_primitive.h $ // $Id: AABB_segment_primitive.h 3127190 2020-12-08T12:48:04+01:00 Dmitry Anisimov // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/AABB_traits.h cgal-5.5/include/CGAL/AABB_traits.h --- cgal-5.4.1/include/CGAL/AABB_traits.h 2022-06-03 19:03:28.000000000 +0000 +++ cgal-5.5/include/CGAL/AABB_traits.h 2022-07-13 19:04:10.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/AABB_tree/include/CGAL/AABB_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/AABB_tree/include/CGAL/AABB_traits.h $ // $Id: AABB_traits.h 2dda84c 2021-09-28T15:34:25+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/AABB_tree/internal/AABB_drawing_traits.h cgal-5.5/include/CGAL/AABB_tree/internal/AABB_drawing_traits.h --- cgal-5.4.1/include/CGAL/AABB_tree/internal/AABB_drawing_traits.h 2022-06-03 19:03:28.000000000 +0000 +++ cgal-5.5/include/CGAL/AABB_tree/internal/AABB_drawing_traits.h 2022-07-13 19:04:10.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/AABB_tree/include/CGAL/AABB_tree/internal/AABB_drawing_traits.h $ -// $Id: AABB_drawing_traits.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/AABB_tree/include/CGAL/AABB_tree/internal/AABB_drawing_traits.h $ +// $Id: AABB_drawing_traits.h b411e26 2022-06-30T09:22:44+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -28,7 +28,7 @@ double offset[3]; typedef CGAL::Bbox_3 Bbox; - bool go_further() { return true; } + constexpr bool go_further() const { return true; } bool intersection(const int&, const Primitive&) { diff -Nru cgal-5.4.1/include/CGAL/AABB_tree/internal/AABB_node.h cgal-5.5/include/CGAL/AABB_tree/internal/AABB_node.h --- cgal-5.4.1/include/CGAL/AABB_tree/internal/AABB_node.h 2022-06-03 19:03:28.000000000 +0000 +++ cgal-5.5/include/CGAL/AABB_tree/internal/AABB_node.h 2022-07-13 19:04:10.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/AABB_tree/include/CGAL/AABB_tree/internal/AABB_node.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/AABB_tree/include/CGAL/AABB_tree/internal/AABB_node.h $ // $Id: AABB_node.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/AABB_tree/internal/AABB_ray_intersection.h cgal-5.5/include/CGAL/AABB_tree/internal/AABB_ray_intersection.h --- cgal-5.4.1/include/CGAL/AABB_tree/internal/AABB_ray_intersection.h 2022-06-03 19:03:28.000000000 +0000 +++ cgal-5.5/include/CGAL/AABB_tree/internal/AABB_ray_intersection.h 2022-07-13 19:04:10.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/AABB_tree/include/CGAL/AABB_tree/internal/AABB_ray_intersection.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/AABB_tree/include/CGAL/AABB_tree/internal/AABB_ray_intersection.h $ // $Id: AABB_ray_intersection.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/AABB_tree/internal/AABB_search_tree.h cgal-5.5/include/CGAL/AABB_tree/internal/AABB_search_tree.h --- cgal-5.4.1/include/CGAL/AABB_tree/internal/AABB_search_tree.h 2022-06-03 19:03:28.000000000 +0000 +++ cgal-5.5/include/CGAL/AABB_tree/internal/AABB_search_tree.h 2022-07-13 19:04:10.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/AABB_tree/include/CGAL/AABB_tree/internal/AABB_search_tree.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/AABB_tree/include/CGAL/AABB_tree/internal/AABB_search_tree.h $ // $Id: AABB_search_tree.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/AABB_tree/internal/AABB_traversal_traits.h cgal-5.5/include/CGAL/AABB_tree/internal/AABB_traversal_traits.h --- cgal-5.4.1/include/CGAL/AABB_tree/internal/AABB_traversal_traits.h 2022-06-03 19:03:28.000000000 +0000 +++ cgal-5.5/include/CGAL/AABB_tree/internal/AABB_traversal_traits.h 2022-07-13 19:04:10.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/AABB_tree/include/CGAL/AABB_tree/internal/AABB_traversal_traits.h $ -// $Id: AABB_traversal_traits.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/AABB_tree/include/CGAL/AABB_tree/internal/AABB_traversal_traits.h $ +// $Id: AABB_traversal_traits.h 678b9d8 2022-06-24T11:09:06+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -120,7 +120,7 @@ Listing_intersection_traits(Output_iterator out_it, const AABBTraits& traits) : m_out_it(out_it), m_traits(traits) {} - bool go_further() const { return true; } + constexpr bool go_further() const { return true; } void intersection(const Query& query, const Primitive& primitive) { @@ -163,7 +163,7 @@ Listing_primitive_traits(Output_iterator out_it, const AABBTraits& traits) : m_out_it(out_it), m_traits(traits) {} - bool go_further() const { return true; } + constexpr bool go_further() const { return true; } void intersection(const Query& query, const Primitive& primitive) { @@ -295,7 +295,7 @@ m_traits(traits) {} - bool go_further() const { return true; } + constexpr bool go_further() const { return true; } void intersection(const Point& query, const Primitive& primitive) { diff -Nru cgal-5.4.1/include/CGAL/AABB_tree/internal/Has_nested_type_Shared_data.h cgal-5.5/include/CGAL/AABB_tree/internal/Has_nested_type_Shared_data.h --- cgal-5.4.1/include/CGAL/AABB_tree/internal/Has_nested_type_Shared_data.h 2022-06-03 19:03:28.000000000 +0000 +++ cgal-5.5/include/CGAL/AABB_tree/internal/Has_nested_type_Shared_data.h 2022-07-13 19:04:10.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/AABB_tree/include/CGAL/AABB_tree/internal/Has_nested_type_Shared_data.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/AABB_tree/include/CGAL/AABB_tree/internal/Has_nested_type_Shared_data.h $ // $Id: Has_nested_type_Shared_data.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/AABB_tree/internal/Is_ray_intersection_geomtraits.h cgal-5.5/include/CGAL/AABB_tree/internal/Is_ray_intersection_geomtraits.h --- cgal-5.4.1/include/CGAL/AABB_tree/internal/Is_ray_intersection_geomtraits.h 2022-06-03 19:03:28.000000000 +0000 +++ cgal-5.5/include/CGAL/AABB_tree/internal/Is_ray_intersection_geomtraits.h 2022-07-13 19:04:10.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/AABB_tree/include/CGAL/AABB_tree/internal/Is_ray_intersection_geomtraits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/AABB_tree/include/CGAL/AABB_tree/internal/Is_ray_intersection_geomtraits.h $ // $Id: Is_ray_intersection_geomtraits.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/AABB_tree/internal/Primitive_helper.h cgal-5.5/include/CGAL/AABB_tree/internal/Primitive_helper.h --- cgal-5.4.1/include/CGAL/AABB_tree/internal/Primitive_helper.h 2022-06-03 19:03:28.000000000 +0000 +++ cgal-5.5/include/CGAL/AABB_tree/internal/Primitive_helper.h 2022-07-13 19:04:10.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/AABB_tree/include/CGAL/AABB_tree/internal/Primitive_helper.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/AABB_tree/include/CGAL/AABB_tree/internal/Primitive_helper.h $ // $Id: Primitive_helper.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/AABB_tree/internal/triangle_datum_covering.h cgal-5.5/include/CGAL/AABB_tree/internal/triangle_datum_covering.h --- cgal-5.4.1/include/CGAL/AABB_tree/internal/triangle_datum_covering.h 1970-01-01 00:00:00.000000000 +0000 +++ cgal-5.5/include/CGAL/AABB_tree/internal/triangle_datum_covering.h 2022-07-13 19:04:10.000000000 +0000 @@ -0,0 +1,406 @@ +// Copyright (c) 2021 INRIA Sophia-Antipolis (France). +// All rights reserved. +// +// This file is part of CGAL (www.cgal.org). +// +// $URL: https://github.com/CGAL/cgal/blob/v5.5/AABB_tree/include/CGAL/AABB_tree/internal/triangle_datum_covering.h $ +// $Id: triangle_datum_covering.h 1375a0a 2022-03-24T16:10:36+01:00 Mael Rouxel-Labbé +// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial +// +// Author(s) : Mael Rouxel-Labbé + +#ifndef CGAL_AABB_TREE_INTERNAL_TRIANGLE_DATUM_COVERING_H +#define CGAL_AABB_TREE_INTERNAL_TRIANGLE_DATUM_COVERING_H + +#include + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +namespace CGAL { +namespace AABB_trees { +namespace internal { + +// std::vector to property map +// Not using Pointer_property_map because the underlying range is empty initially and can change +template +struct Vector_property_map +{ + using Range = std::vector; + + using key_type = std::size_t; + using value_type = T; + using reference = value_type&; + using category = boost::read_write_property_map_tag; + + Vector_property_map() : m_range_ptr(std::make_shared()) { } + + inline friend void put(const Vector_property_map& map, const key_type& k, const value_type& v) + { + CGAL_precondition(map.m_range_ptr != nullptr); + + if(k >= map.m_range_ptr->size()) + map.m_range_ptr->resize(k+1); + + map.m_range_ptr->operator[](k) = v; + } + + inline friend reference get(const Vector_property_map& map, const key_type& k) + { + CGAL_precondition(map.m_range_ptr != nullptr); + return map.m_range_ptr->operator[](k); + } + + Range& range() { return *m_range_ptr; } + const Range& range() const { return *m_range_ptr; } + +private: + std::shared_ptr m_range_ptr; +}; + +// Same as the standard traversal traits, but for multiple primitives per datum, +// such that the final operation on the datum is only performed once. +template +struct Covered_traversal_traits + : BaseTraversalTraits +{ + using Base = BaseTraversalTraits; + using Primitive = typename AABBTraits::Primitive; + + std::unordered_set visited_data; + +public: + template + Covered_traversal_traits(Args&&... args) : Base(std::forward(args)...) { } + + template + void intersection(const Query& query, const Primitive& primitive) + { + // check a datum only once + auto is_insert_successful = visited_data.insert(primitive.id().second/*unique input face ID*/); + if(!is_insert_successful.second) + return; + + return Base::intersection(query, primitive); + } +}; + +template +struct Covered_tree_traversal_traits +{ + using Base_projection_traits = CGAL::internal::AABB_tree::Projection_traits; + using Projection_traits = Covered_traversal_traits; + + template + using Do_intersect_traits_base = CGAL::internal::AABB_tree::Do_intersect_traits; + template + using Do_intersect_traits = Covered_traversal_traits >; + + template + using First_intersection_traits_base = CGAL::internal::AABB_tree::First_intersection_traits; + template + using First_intersection_traits = Covered_traversal_traits >; + + template + using First_primitive_traits_base = CGAL::internal::AABB_tree::First_primitive_traits; + template + using First_primitive_traits = Covered_traversal_traits >; + + template + using Listing_primitive_traits_base = CGAL::internal::AABB_tree::Listing_primitive_traits; + template + using Listing_primitive_traits = Covered_traversal_traits >; + + template + using Listing_intersection_traits_base = CGAL::internal::AABB_tree::Listing_intersection_traits; + template + using Listing_intersection_traits = Covered_traversal_traits >; +}; + +// Dissociated from the class `AABB_covered_triangle_tree` for clarity +template +struct AABB_covered_triangle_tree_traits +{ + using Triangle_3 = typename Kernel::Triangle_3; + + // Below is a lot of trouble to cover a single datum with multiple primitives using smaller bboxes + using ID = std::pair; + using IDPM = CGAL::First_of_pair_property_map; + + // Primitive ID --> box vector pos --> Bounding Box + using BPMB = internal::Vector_property_map; + using BPM = CGAL::Property_map_binder; + + // Primitive ID --> point vector pos --> Reference Point + using RPPMB = internal::Vector_property_map; + using RPPM = CGAL::Property_map_binder; + + // Primitive ID --> Datum pos vector pos --> Datum pos --> Datum + // The vector of data has size nf, but the vector of datum pos has size tree.size() + using DPPMB = internal::Vector_property_map; // pos --> Datum pos + using DPPM = CGAL::Property_map_binder; // PID --> Datum pos + using DPMB = internal::Vector_property_map; // Datum pos --> Datum + using DPM = CGAL::Property_map_binder; // PID --> Datum + + using Primitive = CGAL::AABB_primitive; + + using AABB_geom_traits = Kernel; + using AABB_traits = CGAL::AABB_traits; + using AABB_tree = CGAL::AABB_tree; +}; + +template +struct AABB_covered_triangle_tree + : public AABB_covered_triangle_tree_traits::AABB_tree +{ + using FT = typename Kernel::FT; + using Triangle_3 = typename Kernel::Triangle_3; + + using ACTTT = AABB_covered_triangle_tree_traits; + + using BPM = typename ACTTT::BPM; + using RPPM = typename ACTTT::RPPM; + using DPPMB = typename ACTTT::DPPMB; + using DPPM = typename ACTTT::DPPM; + using DPMB = typename ACTTT::DPMB; + using DPM = typename ACTTT::DPM; + + using ID = typename ACTTT::ID; + using Primitive = typename ACTTT::Primitive; + using AABB_traits = typename ACTTT::AABB_traits; + using AABB_tree = typename ACTTT::AABB_tree; + using Base = AABB_tree; + +protected: + double m_sq_length; + + DPPMB m_dppmb; // std::size_t (id) --> datum pos + + BPM m_bpm; // std::size_t (id) --> bounding box + RPPM m_rppm; // std::size_t (id) --> reference point + DPMB m_dpmb; // std::size_t (datum pos) --> triangle datum + + DPM m_dpm; // std::size_t (id) --> triangle (datum) + + std::size_t fid = 0; + +public: + AABB_covered_triangle_tree(const double max_length, + const AABB_traits& traits = AABB_traits()) + : Base(traits), + m_sq_length(square(max_length)), + m_dppmb(), m_bpm(), m_rppm(), m_dpmb(), + m_dpm(DPPM(m_dppmb/*first binder's value_map*/)/*second binder's key map*/, m_dpmb) + { + initialize_tree_property_maps(); + } + +private: + void initialize_tree_property_maps() const + { + // Can't be set in the default constructed traits that are passed to the base + // since m_bpm is a member of the derived class. + // + // 'const_cast' because CGAL::AABB_tree only gives a const& to its traits... + const_cast(this->traits()).bbm = m_bpm; + const_cast(this->traits()).set_shared_data(m_dpm, m_rppm); + } + + template // Kernel is Simple_Cartesian + CGAL::Bbox_3 compute_bbox(const P& ap0, const P& ap1, const P& ap2) + { + double xmin = (CGAL::min)(ap0.x().inf(), (CGAL::min)(ap1.x().inf(), ap2.x().inf())); + double ymin = (CGAL::min)(ap0.y().inf(), (CGAL::min)(ap1.y().inf(), ap2.y().inf())); + double zmin = (CGAL::min)(ap0.z().inf(), (CGAL::min)(ap1.z().inf(), ap2.z().inf())); + + double xmax = (CGAL::max)(ap0.x().sup(), (CGAL::max)(ap1.x().sup(), ap2.x().sup())); + double ymax = (CGAL::max)(ap0.y().sup(), (CGAL::max)(ap1.y().sup(), ap2.y().sup())); + double zmax = (CGAL::max)(ap0.z().sup(), (CGAL::max)(ap1.z().sup(), ap2.z().sup())); + + return CGAL::Bbox_3(xmin, ymin, zmin, xmax, ymax, zmax); + } + + template // Kernel is Simple_Cartesian + const P& compute_reference_point(const P&, const P&, const P& ap2) + { + return ap2; // ap2 is the midpoint when splitting + } + +public: + void reserve(std::size_t nf) + { + CGAL::internal::reserve(m_dpmb.range(), m_dpmb.range().size() + nf); + + // Due to splitting, these might need more than 'nf' + CGAL::internal::reserve(m_dppmb.range(), m_dppmb.range().size() + nf); + CGAL::internal::reserve(m_rppm.value_map.range(), m_rppm.value_map.range().size() + nf); + CGAL::internal::reserve(m_bpm.value_map.range(), m_bpm.value_map.range().size() + nf); + } + + void split_and_insert(const Triangle_3& tr) + { + // Convert to intervals to ensure that the bounding box fully covers the subdividing triangle + using IT = CGAL::Interval_nt; + using NT = typename IT::value_type; + using AK = CGAL::Simple_cartesian; + using K2AK = CGAL::Cartesian_converter; + using AFT = AK::FT; + using APoint_3 = AK::Point_3; + + using APL = std::pair; // point and upper bound of the length of the opposite edge + using AT = std::array; + + const std::size_t data_size = m_dpmb.range().size(); + put(m_dpmb, data_size, tr); + + auto vertex = Kernel().construct_vertex_3_object(); + const Point& p0 = vertex(tr, 0); + const Point& p1 = vertex(tr, 1); + const Point& p2 = vertex(tr, 2); + + if(m_sq_length == FT(0)) // no splits + { + const std::size_t pid = this->size(); + ID id = std::make_pair(pid, fid++); + + put(m_dppmb, pid, data_size); + put(m_rppm, id, p1); // the ref point that `One_point_from_face_descriptor_map` would give + put(m_bpm, id, Kernel().construct_bbox_3_object()(tr)); + +// std::cout << "Primitive[" << id.first << " " << id.second << "]; " +// << "Bbox: [" << get(m_bpm, id) << "] " +// << "Point: (" << get(m_rppm, id) << ") " +// << "Datum: [" << get(m_bpm, id) << "]" << std::endl; + + Primitive p(id/*, m_dpm, m_rppm*/); // pmaps are external, shared data + this->insert(p); + return; + } + + K2AK k2ak; + std::queue to_treat; + + const APoint_3 ap0 = k2ak(p0); + const APoint_3 ap1 = k2ak(p1); + const APoint_3 ap2 = k2ak(p2); + const AFT sq_l0 = CGAL::squared_distance(ap1, ap2); + const AFT sq_l1 = CGAL::squared_distance(ap2, ap0); + const AFT sq_l2 = CGAL::squared_distance(ap0, ap1); + + to_treat.push(CGAL::make_array(std::make_pair(ap0, sq_l0.sup()), + std::make_pair(ap1, sq_l1.sup()), + std::make_pair(ap2, sq_l2.sup()))); + + while(!to_treat.empty()) + { + const AT t = std::move(to_treat.front()); + to_treat.pop(); + + const APL& apl0 = t[0]; + const APL& apl1 = t[1]; + const APL& apl2 = t[2]; + + int i = (apl0.second >= apl1.second) + ? (apl0.second >= apl2.second) ? 0 : 2 + : (apl1.second >= apl2.second) ? 1 : 2; + + const NT max_sql = t[i].second; + + // If the face is too big, do a split (two small bboxes rather than a big one) + if(max_sql > m_sq_length) + { + // Could be factorized, but this is simpler to read + if(i == 0) + { + // 0 1 2 into 0 1 A and 0 A 2 + const APoint_3 amp = CGAL::midpoint(apl1.first, apl2.first); + const NT sq_half_length = apl0.second / NT(4); + const NT sq_diag_length = CGAL::squared_distance(amp, apl0.first).sup(); + + to_treat.push(CGAL::make_array(std::make_pair(apl0.first, sq_half_length), + std::make_pair(apl1.first, sq_diag_length), + std::make_pair(amp, apl2.second))); + to_treat.push(CGAL::make_array(std::make_pair(apl2.first, sq_diag_length), + std::make_pair(apl0.first, sq_half_length), + std::make_pair(amp, apl1.second))); + } + else if(i == 1) + { + // 0 1 2 into 0 1 A and 1 2 A + const APoint_3 amp = CGAL::midpoint(apl2.first, apl0.first); + const NT sq_half_length = apl1.second / NT(4); + const NT sq_diag_length = CGAL::squared_distance(amp, apl1.first).sup(); + + to_treat.push(CGAL::make_array(std::make_pair(apl0.first, sq_diag_length), + std::make_pair(apl1.first, sq_half_length), + std::make_pair(amp, apl2.second))); + to_treat.push(CGAL::make_array(std::make_pair(apl1.first, sq_half_length), + std::make_pair(apl2.first, sq_diag_length), + std::make_pair(amp, apl0.second))); + } + else // i == 2 + { + // 0 1 2 into 0 A 2 and 2 A 1 + const APoint_3 amp = CGAL::midpoint(apl0.first, apl1.first); + const NT sq_half_length = apl2.second / NT(4); + const NT sq_diag_length = CGAL::squared_distance(amp, apl2.first).sup(); + + to_treat.push(CGAL::make_array(std::make_pair(apl2.first, sq_half_length), + std::make_pair(apl0.first, sq_diag_length), + std::make_pair(amp, apl1.second))); + to_treat.push(CGAL::make_array(std::make_pair(apl1.first, sq_diag_length), + std::make_pair(apl2.first, sq_half_length), + std::make_pair(amp, apl0.second))); + } + } + else // all edges have length below the threshold, create a primitive + { + const std::size_t pid = this->size(); + ID id = std::make_pair(pid, fid); + + put(m_dppmb, pid, data_size); + + // this is basically to_double() of an APoint_3, but FT is not necessarily 'double' + const APoint_3& apt = compute_reference_point(apl0.first, apl1.first, apl2.first); + put(m_rppm, id, Point((FT(apt.x().sup()) + FT(apt.x().inf())) / FT(2), + (FT(apt.y().sup()) + FT(apt.y().inf())) / FT(2), + (FT(apt.z().sup()) + FT(apt.z().inf())) / FT(2))); + + put(m_bpm, id, compute_bbox(apl0.first, apl1.first, apl2.first)); + +// std::cout << "Primitive[" << std::get<0>(id) << " " << std::get<1>(id) << " " << std::get<2>(id) << "]; " +// << "Bbox: [" << get(m_bpm, id) << "] " +// << "Point: (" << get(m_rppm, id) << ") " +// << "Datum: [" << get(m_dpm, id) << "]" << std::endl; + + Primitive p(id/*, m_dpm, m_rppm*/); // pmaps are external, shared data + this->insert(p); + } + } + + ++fid; + } +}; + +} // namespace internal +} // namespace AABB_trees +} // namespace CGAL + +#endif // CGAL_AABB_TREE_INTERNAL_TRIANGLE_DATUM_COVERING_H diff -Nru cgal-5.4.1/include/CGAL/AABB_tree.h cgal-5.5/include/CGAL/AABB_tree.h --- cgal-5.4.1/include/CGAL/AABB_tree.h 2022-06-03 19:03:28.000000000 +0000 +++ cgal-5.5/include/CGAL/AABB_tree.h 2022-07-13 19:04:10.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/AABB_tree/include/CGAL/AABB_tree.h $ -// $Id: AABB_tree.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/AABB_tree/include/CGAL/AABB_tree.h $ +// $Id: AABB_tree.h f23deb3 2022-06-01T12:48:17+01:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -562,11 +562,14 @@ /** * @brief Builds the tree by recursive expansion. + * @param node the root node of the subtree to generate * @param first the first primitive to insert - * @param last the last primitive to insert + * @param beyond the last primitive to insert * @param range the number of primitive of the range + * @param compute_bbox a functor + * @param split_primitives a functor * - * [first,last[ is the range of primitives to be added to the tree. + * [first,beyond[ is the range of primitives to be added to the tree. */ template void expand(Node& node, @@ -574,8 +577,7 @@ ConstPrimitiveIterator beyond, const std::size_t range, const ComputeBbox& compute_bbox, - const SplitPrimitives& split_primitives, - const AABBTraits&); + const SplitPrimitives& split_primitives); public: // returns a point which must be on one primitive @@ -791,8 +793,7 @@ ConstPrimitiveIterator beyond, const std::size_t range, const ComputeBbox& compute_bbox, - const SplitPrimitives& split_primitives, - const Tr& traits) + const SplitPrimitives& split_primitives) { node.set_bbox(compute_bbox(first, beyond)); @@ -806,13 +807,13 @@ break; case 3: node.set_children(*first, new_node()); - expand(node.right_child(), first+1, beyond, 2, compute_bbox, split_primitives, traits); + expand(node.right_child(), first+1, beyond, 2, compute_bbox, split_primitives); break; default: const std::size_t new_range = range/2; node.set_children(new_node(), new_node()); - expand(node.left_child(), first, first + new_range, new_range, compute_bbox, split_primitives, traits); - expand(node.right_child(), first + new_range, beyond, range - new_range, compute_bbox, split_primitives, traits); + expand(node.left_child(), first, first + new_range, new_range, compute_bbox, split_primitives); + expand(node.right_child(), first + new_range, beyond, range - new_range, compute_bbox, split_primitives); } } @@ -844,8 +845,7 @@ m_primitives.begin(), m_primitives.end(), m_primitives.size(), compute_bbox, - split_primitives, - m_traits); + split_primitives); } #ifdef CGAL_HAS_THREADS m_atomic_need_build.store(false, std::memory_order_release); // in case build() is triggered by a call to root_node() diff -Nru cgal-5.4.1/include/CGAL/AABB_triangle_primitive.h cgal-5.5/include/CGAL/AABB_triangle_primitive.h --- cgal-5.4.1/include/CGAL/AABB_triangle_primitive.h 2022-06-03 19:03:28.000000000 +0000 +++ cgal-5.5/include/CGAL/AABB_triangle_primitive.h 2022-07-13 19:04:11.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/AABB_tree/include/CGAL/AABB_triangle_primitive.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/AABB_tree/include/CGAL/AABB_triangle_primitive.h $ // $Id: AABB_triangle_primitive.h 3127190 2020-12-08T12:48:04+01:00 Dmitry Anisimov // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/AABB_triangulation_3_cell_primitive.h cgal-5.5/include/CGAL/AABB_triangulation_3_cell_primitive.h --- cgal-5.4.1/include/CGAL/AABB_triangulation_3_cell_primitive.h 2022-06-03 19:03:28.000000000 +0000 +++ cgal-5.5/include/CGAL/AABB_triangulation_3_cell_primitive.h 2022-07-13 19:04:11.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/AABB_tree/include/CGAL/AABB_triangulation_3_cell_primitive.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/AABB_tree/include/CGAL/AABB_triangulation_3_cell_primitive.h $ // $Id: AABB_triangulation_3_cell_primitive.h 8166579 2021-10-11T19:58:07+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/AABB_triangulation_3_triangle_primitive.h cgal-5.5/include/CGAL/AABB_triangulation_3_triangle_primitive.h --- cgal-5.4.1/include/CGAL/AABB_triangulation_3_triangle_primitive.h 2022-06-03 19:03:28.000000000 +0000 +++ cgal-5.5/include/CGAL/AABB_triangulation_3_triangle_primitive.h 2022-07-13 19:04:11.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/AABB_tree/include/CGAL/AABB_triangulation_3_triangle_primitive.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/AABB_tree/include/CGAL/AABB_triangulation_3_triangle_primitive.h $ // $Id: AABB_triangulation_3_triangle_primitive.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Advancing_front_surface_reconstruction/internal/construct_polyhedron.h cgal-5.5/include/CGAL/Advancing_front_surface_reconstruction/internal/construct_polyhedron.h --- cgal-5.4.1/include/CGAL/Advancing_front_surface_reconstruction/internal/construct_polyhedron.h 2022-06-03 19:03:28.000000000 +0000 +++ cgal-5.5/include/CGAL/Advancing_front_surface_reconstruction/internal/construct_polyhedron.h 2022-07-13 19:04:11.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Advancing_front_surface_reconstruction/include/CGAL/Advancing_front_surface_reconstruction/internal/construct_polyhedron.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Advancing_front_surface_reconstruction/include/CGAL/Advancing_front_surface_reconstruction/internal/construct_polyhedron.h $ // $Id: construct_polyhedron.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Advancing_front_surface_reconstruction/internal/construct_surface_2.h cgal-5.5/include/CGAL/Advancing_front_surface_reconstruction/internal/construct_surface_2.h --- cgal-5.4.1/include/CGAL/Advancing_front_surface_reconstruction/internal/construct_surface_2.h 2022-06-03 19:03:28.000000000 +0000 +++ cgal-5.5/include/CGAL/Advancing_front_surface_reconstruction/internal/construct_surface_2.h 2022-07-13 19:04:11.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Advancing_front_surface_reconstruction/include/CGAL/Advancing_front_surface_reconstruction/internal/construct_surface_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Advancing_front_surface_reconstruction/include/CGAL/Advancing_front_surface_reconstruction/internal/construct_surface_2.h $ // $Id: construct_surface_2.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Advancing_front_surface_reconstruction/internal/Surface_face_base_2.h cgal-5.5/include/CGAL/Advancing_front_surface_reconstruction/internal/Surface_face_base_2.h --- cgal-5.4.1/include/CGAL/Advancing_front_surface_reconstruction/internal/Surface_face_base_2.h 2022-06-03 19:03:28.000000000 +0000 +++ cgal-5.5/include/CGAL/Advancing_front_surface_reconstruction/internal/Surface_face_base_2.h 2022-07-13 19:04:11.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Advancing_front_surface_reconstruction/include/CGAL/Advancing_front_surface_reconstruction/internal/Surface_face_base_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Advancing_front_surface_reconstruction/include/CGAL/Advancing_front_surface_reconstruction/internal/Surface_face_base_2.h $ // $Id: Surface_face_base_2.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Advancing_front_surface_reconstruction/internal/Surface_vertex_base_2.h cgal-5.5/include/CGAL/Advancing_front_surface_reconstruction/internal/Surface_vertex_base_2.h --- cgal-5.4.1/include/CGAL/Advancing_front_surface_reconstruction/internal/Surface_vertex_base_2.h 2022-06-03 19:03:28.000000000 +0000 +++ cgal-5.5/include/CGAL/Advancing_front_surface_reconstruction/internal/Surface_vertex_base_2.h 2022-07-13 19:04:11.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Advancing_front_surface_reconstruction/include/CGAL/Advancing_front_surface_reconstruction/internal/Surface_vertex_base_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Advancing_front_surface_reconstruction/include/CGAL/Advancing_front_surface_reconstruction/internal/Surface_vertex_base_2.h $ // $Id: Surface_vertex_base_2.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Advancing_front_surface_reconstruction/internal/write_triple_indices.h cgal-5.5/include/CGAL/Advancing_front_surface_reconstruction/internal/write_triple_indices.h --- cgal-5.4.1/include/CGAL/Advancing_front_surface_reconstruction/internal/write_triple_indices.h 2022-06-03 19:03:28.000000000 +0000 +++ cgal-5.5/include/CGAL/Advancing_front_surface_reconstruction/internal/write_triple_indices.h 2022-07-13 19:04:11.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Advancing_front_surface_reconstruction/include/CGAL/Advancing_front_surface_reconstruction/internal/write_triple_indices.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Advancing_front_surface_reconstruction/include/CGAL/Advancing_front_surface_reconstruction/internal/write_triple_indices.h $ // $Id: write_triple_indices.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Advancing_front_surface_reconstruction_cell_base_3.h cgal-5.5/include/CGAL/Advancing_front_surface_reconstruction_cell_base_3.h --- cgal-5.4.1/include/CGAL/Advancing_front_surface_reconstruction_cell_base_3.h 2022-06-03 19:03:28.000000000 +0000 +++ cgal-5.5/include/CGAL/Advancing_front_surface_reconstruction_cell_base_3.h 2022-07-13 19:04:11.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Advancing_front_surface_reconstruction/include/CGAL/Advancing_front_surface_reconstruction_cell_base_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Advancing_front_surface_reconstruction/include/CGAL/Advancing_front_surface_reconstruction_cell_base_3.h $ // $Id: Advancing_front_surface_reconstruction_cell_base_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Advancing_front_surface_reconstruction.h cgal-5.5/include/CGAL/Advancing_front_surface_reconstruction.h --- cgal-5.4.1/include/CGAL/Advancing_front_surface_reconstruction.h 2022-06-03 19:03:28.000000000 +0000 +++ cgal-5.5/include/CGAL/Advancing_front_surface_reconstruction.h 2022-07-13 19:04:11.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Advancing_front_surface_reconstruction/include/CGAL/Advancing_front_surface_reconstruction.h $ -// $Id: Advancing_front_surface_reconstruction.h ec573af 2022-01-04T15:29:20+00:00 Andreas Fabri +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Advancing_front_surface_reconstruction/include/CGAL/Advancing_front_surface_reconstruction.h $ +// $Id: Advancing_front_surface_reconstruction.h a23c42a 2022-01-18T13:57:20+01:00 Paul-Edouard Sarlin // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Frank Da, David Cohen-Steiner, Andreas Fabri @@ -394,7 +394,7 @@ bool deal_with_2d; Priority priority; int max_connected_component; - double K_init, K_step; + coord_type K_init, K_step; std::list interior_edges; std::list< Incidence_request_elt > incidence_requests; typename std::list< Incidence_request_elt >::iterator sentinel; diff -Nru cgal-5.4.1/include/CGAL/Advancing_front_surface_reconstruction_vertex_base_3.h cgal-5.5/include/CGAL/Advancing_front_surface_reconstruction_vertex_base_3.h --- cgal-5.4.1/include/CGAL/Advancing_front_surface_reconstruction_vertex_base_3.h 2022-06-03 19:03:28.000000000 +0000 +++ cgal-5.5/include/CGAL/Advancing_front_surface_reconstruction_vertex_base_3.h 2022-07-13 19:04:11.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Advancing_front_surface_reconstruction/include/CGAL/Advancing_front_surface_reconstruction_vertex_base_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Advancing_front_surface_reconstruction/include/CGAL/Advancing_front_surface_reconstruction_vertex_base_3.h $ // $Id: Advancing_front_surface_reconstruction_vertex_base_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Aff_transformation_2.h cgal-5.5/include/CGAL/Aff_transformation_2.h --- cgal-5.4.1/include/CGAL/Aff_transformation_2.h 2022-06-03 19:04:31.000000000 +0000 +++ cgal-5.5/include/CGAL/Aff_transformation_2.h 2022-07-13 19:05:22.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Aff_transformation_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Aff_transformation_2.h $ // $Id: Aff_transformation_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Aff_transformation_3.h cgal-5.5/include/CGAL/Aff_transformation_3.h --- cgal-5.4.1/include/CGAL/Aff_transformation_3.h 2022-06-03 19:04:31.000000000 +0000 +++ cgal-5.5/include/CGAL/Aff_transformation_3.h 2022-07-13 19:05:22.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Aff_transformation_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Aff_transformation_3.h $ // $Id: Aff_transformation_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/aff_transformation_tags.h cgal-5.5/include/CGAL/aff_transformation_tags.h --- cgal-5.4.1/include/CGAL/aff_transformation_tags.h 2022-06-03 19:04:33.000000000 +0000 +++ cgal-5.5/include/CGAL/aff_transformation_tags.h 2022-07-13 19:05:24.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/aff_transformation_tags.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/aff_transformation_tags.h $ // $Id: aff_transformation_tags.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/aff_transformation_tags_impl.h cgal-5.5/include/CGAL/aff_transformation_tags_impl.h --- cgal-5.4.1/include/CGAL/aff_transformation_tags_impl.h 2022-06-03 19:04:33.000000000 +0000 +++ cgal-5.5/include/CGAL/aff_transformation_tags_impl.h 2022-07-13 19:05:24.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/aff_transformation_tags_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/aff_transformation_tags_impl.h $ // $Id: aff_transformation_tags_impl.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Algebraic_extension_traits.h cgal-5.5/include/CGAL/Algebraic_extension_traits.h --- cgal-5.4.1/include/CGAL/Algebraic_extension_traits.h 2022-06-03 19:03:30.000000000 +0000 +++ cgal-5.5/include/CGAL/Algebraic_extension_traits.h 2022-07-13 19:04:12.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_foundations/include/CGAL/Algebraic_extension_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_foundations/include/CGAL/Algebraic_extension_traits.h $ // $Id: Algebraic_extension_traits.h 26355e2 2020-06-25T12:31:21+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Algebraic_kernel_converter.h cgal-5.5/include/CGAL/Algebraic_kernel_converter.h --- cgal-5.4.1/include/CGAL/Algebraic_kernel_converter.h 2022-06-03 19:03:33.000000000 +0000 +++ cgal-5.5/include/CGAL/Algebraic_kernel_converter.h 2022-07-13 19:04:16.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_for_circles/include/CGAL/Algebraic_kernel_converter.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_for_circles/include/CGAL/Algebraic_kernel_converter.h $ // $Id: Algebraic_kernel_converter.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Algebraic_kernel_d/Algebraic_curve_kernel_2.h cgal-5.5/include/CGAL/Algebraic_kernel_d/Algebraic_curve_kernel_2.h --- cgal-5.4.1/include/CGAL/Algebraic_kernel_d/Algebraic_curve_kernel_2.h 2022-06-03 19:03:31.000000000 +0000 +++ cgal-5.5/include/CGAL/Algebraic_kernel_d/Algebraic_curve_kernel_2.h 2022-07-13 19:04:14.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Algebraic_curve_kernel_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Algebraic_curve_kernel_2.h $ // $Id: Algebraic_curve_kernel_2.h 1faa0e2 2021-04-28T10:55:26+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Algebraic_kernel_d/algebraic_curve_kernel_2_tools.h cgal-5.5/include/CGAL/Algebraic_kernel_d/algebraic_curve_kernel_2_tools.h --- cgal-5.4.1/include/CGAL/Algebraic_kernel_d/algebraic_curve_kernel_2_tools.h 2022-06-03 19:03:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Algebraic_kernel_d/algebraic_curve_kernel_2_tools.h 2022-07-13 19:04:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/algebraic_curve_kernel_2_tools.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/algebraic_curve_kernel_2_tools.h $ // $Id: algebraic_curve_kernel_2_tools.h 26355e2 2020-06-25T12:31:21+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Algebraic_kernel_d/Algebraic_real_d_1.h cgal-5.5/include/CGAL/Algebraic_kernel_d/Algebraic_real_d_1.h --- cgal-5.4.1/include/CGAL/Algebraic_kernel_d/Algebraic_real_d_1.h 2022-06-03 19:03:31.000000000 +0000 +++ cgal-5.5/include/CGAL/Algebraic_kernel_d/Algebraic_real_d_1.h 2022-07-13 19:04:14.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Algebraic_real_d_1.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Algebraic_real_d_1.h $ // $Id: Algebraic_real_d_1.h 4e519a3 2021-05-05T13:15:37+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Algebraic_kernel_d/Algebraic_real_quadratic_refinement_rep_bfi.h cgal-5.5/include/CGAL/Algebraic_kernel_d/Algebraic_real_quadratic_refinement_rep_bfi.h --- cgal-5.4.1/include/CGAL/Algebraic_kernel_d/Algebraic_real_quadratic_refinement_rep_bfi.h 2022-06-03 19:03:31.000000000 +0000 +++ cgal-5.5/include/CGAL/Algebraic_kernel_d/Algebraic_real_quadratic_refinement_rep_bfi.h 2022-07-13 19:04:14.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Algebraic_real_quadratic_refinement_rep_bfi.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Algebraic_real_quadratic_refinement_rep_bfi.h $ // $Id: Algebraic_real_quadratic_refinement_rep_bfi.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Algebraic_kernel_d/Algebraic_real_rep_bfi.h cgal-5.5/include/CGAL/Algebraic_kernel_d/Algebraic_real_rep_bfi.h --- cgal-5.4.1/include/CGAL/Algebraic_kernel_d/Algebraic_real_rep_bfi.h 2022-06-03 19:03:31.000000000 +0000 +++ cgal-5.5/include/CGAL/Algebraic_kernel_d/Algebraic_real_rep_bfi.h 2022-07-13 19:04:14.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Algebraic_real_rep_bfi.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Algebraic_real_rep_bfi.h $ // $Id: Algebraic_real_rep_bfi.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Algebraic_kernel_d/Algebraic_real_rep.h cgal-5.5/include/CGAL/Algebraic_kernel_d/Algebraic_real_rep.h --- cgal-5.4.1/include/CGAL/Algebraic_kernel_d/Algebraic_real_rep.h 2022-06-03 19:03:31.000000000 +0000 +++ cgal-5.5/include/CGAL/Algebraic_kernel_d/Algebraic_real_rep.h 2022-07-13 19:04:14.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Algebraic_real_rep.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Algebraic_real_rep.h $ // $Id: Algebraic_real_rep.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Algebraic_kernel_d/Bitstream_coefficient_kernel_at_alpha.h cgal-5.5/include/CGAL/Algebraic_kernel_d/Bitstream_coefficient_kernel_at_alpha.h --- cgal-5.4.1/include/CGAL/Algebraic_kernel_d/Bitstream_coefficient_kernel_at_alpha.h 2022-06-03 19:03:31.000000000 +0000 +++ cgal-5.5/include/CGAL/Algebraic_kernel_d/Bitstream_coefficient_kernel_at_alpha.h 2022-07-13 19:04:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Bitstream_coefficient_kernel_at_alpha.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Bitstream_coefficient_kernel_at_alpha.h $ // $Id: Bitstream_coefficient_kernel_at_alpha.h fdb17cb 2020-03-26T19:26:10+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Algebraic_kernel_d/Bitstream_coefficient_kernel.h cgal-5.5/include/CGAL/Algebraic_kernel_d/Bitstream_coefficient_kernel.h --- cgal-5.4.1/include/CGAL/Algebraic_kernel_d/Bitstream_coefficient_kernel.h 2022-06-03 19:03:31.000000000 +0000 +++ cgal-5.5/include/CGAL/Algebraic_kernel_d/Bitstream_coefficient_kernel.h 2022-07-13 19:04:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Bitstream_coefficient_kernel.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Bitstream_coefficient_kernel.h $ // $Id: Bitstream_coefficient_kernel.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Algebraic_kernel_d/Bitstream_descartes_E08_tree.h cgal-5.5/include/CGAL/Algebraic_kernel_d/Bitstream_descartes_E08_tree.h --- cgal-5.4.1/include/CGAL/Algebraic_kernel_d/Bitstream_descartes_E08_tree.h 2022-06-03 19:03:31.000000000 +0000 +++ cgal-5.5/include/CGAL/Algebraic_kernel_d/Bitstream_descartes_E08_tree.h 2022-07-13 19:04:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Bitstream_descartes_E08_tree.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Bitstream_descartes_E08_tree.h $ // $Id: Bitstream_descartes_E08_tree.h 26355e2 2020-06-25T12:31:21+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Algebraic_kernel_d/Bitstream_descartes.h cgal-5.5/include/CGAL/Algebraic_kernel_d/Bitstream_descartes.h --- cgal-5.4.1/include/CGAL/Algebraic_kernel_d/Bitstream_descartes.h 2022-06-03 19:03:31.000000000 +0000 +++ cgal-5.5/include/CGAL/Algebraic_kernel_d/Bitstream_descartes.h 2022-07-13 19:04:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Bitstream_descartes.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Bitstream_descartes.h $ // $Id: Bitstream_descartes.h 521c72d 2021-10-04T13:22:00+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Algebraic_kernel_d/Bitstream_descartes_rndl_tree.h cgal-5.5/include/CGAL/Algebraic_kernel_d/Bitstream_descartes_rndl_tree.h --- cgal-5.4.1/include/CGAL/Algebraic_kernel_d/Bitstream_descartes_rndl_tree.h 2022-06-03 19:03:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Algebraic_kernel_d/Bitstream_descartes_rndl_tree.h 2022-07-13 19:04:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Bitstream_descartes_rndl_tree.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Bitstream_descartes_rndl_tree.h $ // $Id: Bitstream_descartes_rndl_tree.h 26355e2 2020-06-25T12:31:21+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Algebraic_kernel_d/Bitstream_descartes_rndl_tree_traits.h cgal-5.5/include/CGAL/Algebraic_kernel_d/Bitstream_descartes_rndl_tree_traits.h --- cgal-5.4.1/include/CGAL/Algebraic_kernel_d/Bitstream_descartes_rndl_tree_traits.h 2022-06-03 19:03:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Algebraic_kernel_d/Bitstream_descartes_rndl_tree_traits.h 2022-07-13 19:04:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Bitstream_descartes_rndl_tree_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Bitstream_descartes_rndl_tree_traits.h $ // $Id: Bitstream_descartes_rndl_tree_traits.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Algebraic_kernel_d/bound_between_1.h cgal-5.5/include/CGAL/Algebraic_kernel_d/bound_between_1.h --- cgal-5.4.1/include/CGAL/Algebraic_kernel_d/bound_between_1.h 2022-06-03 19:03:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Algebraic_kernel_d/bound_between_1.h 2022-07-13 19:04:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/bound_between_1.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/bound_between_1.h $ // $Id: bound_between_1.h 26355e2 2020-06-25T12:31:21+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Algebraic_kernel_d/construct_binary.h cgal-5.5/include/CGAL/Algebraic_kernel_d/construct_binary.h --- cgal-5.4.1/include/CGAL/Algebraic_kernel_d/construct_binary.h 2022-06-03 19:03:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Algebraic_kernel_d/construct_binary.h 2022-07-13 19:04:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/construct_binary.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/construct_binary.h $ // $Id: construct_binary.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Algebraic_kernel_d/Curve_analysis_2.h cgal-5.5/include/CGAL/Algebraic_kernel_d/Curve_analysis_2.h --- cgal-5.4.1/include/CGAL/Algebraic_kernel_d/Curve_analysis_2.h 2022-06-03 19:03:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Algebraic_kernel_d/Curve_analysis_2.h 2022-07-13 19:04:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Curve_analysis_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Curve_analysis_2.h $ // $Id: Curve_analysis_2.h 4e519a3 2021-05-05T13:15:37+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Algebraic_kernel_d/Curve_pair_analysis_2.h cgal-5.5/include/CGAL/Algebraic_kernel_d/Curve_pair_analysis_2.h --- cgal-5.4.1/include/CGAL/Algebraic_kernel_d/Curve_pair_analysis_2.h 2022-06-03 19:03:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Algebraic_kernel_d/Curve_pair_analysis_2.h 2022-07-13 19:04:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Curve_pair_analysis_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Curve_pair_analysis_2.h $ // $Id: Curve_pair_analysis_2.h 26355e2 2020-06-25T12:31:21+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Algebraic_kernel_d/Descartes.h cgal-5.5/include/CGAL/Algebraic_kernel_d/Descartes.h --- cgal-5.4.1/include/CGAL/Algebraic_kernel_d/Descartes.h 2022-06-03 19:03:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Algebraic_kernel_d/Descartes.h 2022-07-13 19:04:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Descartes.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Descartes.h $ // $Id: Descartes.h 26355e2 2020-06-25T12:31:21+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Algebraic_kernel_d/enums.h cgal-5.5/include/CGAL/Algebraic_kernel_d/enums.h --- cgal-5.4.1/include/CGAL/Algebraic_kernel_d/enums.h 2022-06-03 19:03:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Algebraic_kernel_d/enums.h 2022-07-13 19:04:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/enums.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/enums.h $ // $Id: enums.h 26355e2 2020-06-25T12:31:21+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Algebraic_kernel_d/Event_line_builder.h cgal-5.5/include/CGAL/Algebraic_kernel_d/Event_line_builder.h --- cgal-5.4.1/include/CGAL/Algebraic_kernel_d/Event_line_builder.h 2022-06-03 19:03:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Algebraic_kernel_d/Event_line_builder.h 2022-07-13 19:04:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Event_line_builder.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Event_line_builder.h $ // $Id: Event_line_builder.h 4e519a3 2021-05-05T13:15:37+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Algebraic_kernel_d/exceptions.h cgal-5.5/include/CGAL/Algebraic_kernel_d/exceptions.h --- cgal-5.4.1/include/CGAL/Algebraic_kernel_d/exceptions.h 2022-06-03 19:03:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Algebraic_kernel_d/exceptions.h 2022-07-13 19:04:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/exceptions.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/exceptions.h $ // $Id: exceptions.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Algebraic_kernel_d/flags.h cgal-5.5/include/CGAL/Algebraic_kernel_d/flags.h --- cgal-5.4.1/include/CGAL/Algebraic_kernel_d/flags.h 2022-06-03 19:03:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Algebraic_kernel_d/flags.h 2022-07-13 19:04:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/flags.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/flags.h $ // $Id: flags.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Algebraic_kernel_d/Float_traits.h cgal-5.5/include/CGAL/Algebraic_kernel_d/Float_traits.h --- cgal-5.4.1/include/CGAL/Algebraic_kernel_d/Float_traits.h 2022-06-03 19:03:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Algebraic_kernel_d/Float_traits.h 2022-07-13 19:04:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Float_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Float_traits.h $ // $Id: Float_traits.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Algebraic_kernel_d/Interval_evaluate_1.h cgal-5.5/include/CGAL/Algebraic_kernel_d/Interval_evaluate_1.h --- cgal-5.4.1/include/CGAL/Algebraic_kernel_d/Interval_evaluate_1.h 2022-06-03 19:03:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Algebraic_kernel_d/Interval_evaluate_1.h 2022-07-13 19:04:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Interval_evaluate_1.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Interval_evaluate_1.h $ // $Id: Interval_evaluate_1.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Algebraic_kernel_d/Interval_evaluate_2.h cgal-5.5/include/CGAL/Algebraic_kernel_d/Interval_evaluate_2.h --- cgal-5.4.1/include/CGAL/Algebraic_kernel_d/Interval_evaluate_2.h 2022-06-03 19:03:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Algebraic_kernel_d/Interval_evaluate_2.h 2022-07-13 19:04:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Interval_evaluate_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Interval_evaluate_2.h $ // $Id: Interval_evaluate_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Algebraic_kernel_d/LRU_hashed_map.h cgal-5.5/include/CGAL/Algebraic_kernel_d/LRU_hashed_map.h --- cgal-5.4.1/include/CGAL/Algebraic_kernel_d/LRU_hashed_map.h 2022-06-03 19:03:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Algebraic_kernel_d/LRU_hashed_map.h 2022-07-13 19:04:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/LRU_hashed_map.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/LRU_hashed_map.h $ // $Id: LRU_hashed_map.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Algebraic_kernel_d/macros.h cgal-5.5/include/CGAL/Algebraic_kernel_d/macros.h --- cgal-5.4.1/include/CGAL/Algebraic_kernel_d/macros.h 2022-06-03 19:03:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Algebraic_kernel_d/macros.h 2022-07-13 19:04:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/macros.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/macros.h $ // $Id: macros.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Algebraic_kernel_d/Real_embeddable_extension.h cgal-5.5/include/CGAL/Algebraic_kernel_d/Real_embeddable_extension.h --- cgal-5.4.1/include/CGAL/Algebraic_kernel_d/Real_embeddable_extension.h 2022-06-03 19:03:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Algebraic_kernel_d/Real_embeddable_extension.h 2022-07-13 19:04:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Real_embeddable_extension.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Real_embeddable_extension.h $ // $Id: Real_embeddable_extension.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Algebraic_kernel_d/Real_roots.h cgal-5.5/include/CGAL/Algebraic_kernel_d/Real_roots.h --- cgal-5.4.1/include/CGAL/Algebraic_kernel_d/Real_roots.h 2022-06-03 19:03:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Algebraic_kernel_d/Real_roots.h 2022-07-13 19:04:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Real_roots.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Real_roots.h $ // $Id: Real_roots.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Algebraic_kernel_d/refine_zero_against.h cgal-5.5/include/CGAL/Algebraic_kernel_d/refine_zero_against.h --- cgal-5.4.1/include/CGAL/Algebraic_kernel_d/refine_zero_against.h 2022-06-03 19:03:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Algebraic_kernel_d/refine_zero_against.h 2022-07-13 19:04:15.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/refine_zero_against.h $ -// $Id: refine_zero_against.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/refine_zero_against.h $ +// $Id: refine_zero_against.h 3f8b32d 2022-03-16T14:53:06+01:00 Andreas Fabri // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // @@ -100,7 +100,7 @@ if (CGAL::degree(q) == 0) return false; CGAL::Sign sign_p_low = p.sign_at(low); - CGAL::Sign sign_p_high = p.sign_at(high); + CGAL_assertion_code(CGAL::Sign sign_p_high = p.sign_at(high)); CGAL_precondition(sign_p_low != CGAL::ZERO); CGAL_precondition(sign_p_high != CGAL::ZERO); CGAL_precondition(sign_p_high != sign_p_low); @@ -148,9 +148,9 @@ low = mid; sign_p_low = s; } else { - CGAL_postcondition(s == sign_p_high); + CGAL_assertion(s == sign_p_high); high = mid; - sign_p_high = s; + CGAL_assertion_code(sign_p_high = s); } } } @@ -168,7 +168,7 @@ std::cout << "done, " << has_common_root << std::endl; CGAL::Sign sign_p_low = p.sign_at(low); - CGAL::Sign sign_p_high = p.sign_at(high); + CGAL_assertion_code(CGAL::Sign sign_p_high = p.sign_at(high)); Field mid; CGAL::Sign s; @@ -191,7 +191,7 @@ else { CGAL_assertion(s == sign_p_high); high = mid; - sign_p_high = s; //bogus? + CGAL_assertion_code(sign_p_high = s); //bogus? } } diff -Nru cgal-5.4.1/include/CGAL/Algebraic_kernel_d/Shear_controller.h cgal-5.5/include/CGAL/Algebraic_kernel_d/Shear_controller.h --- cgal-5.4.1/include/CGAL/Algebraic_kernel_d/Shear_controller.h 2022-06-03 19:03:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Algebraic_kernel_d/Shear_controller.h 2022-07-13 19:04:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Shear_controller.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Shear_controller.h $ // $Id: Shear_controller.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Algebraic_kernel_d/shear.h cgal-5.5/include/CGAL/Algebraic_kernel_d/shear.h --- cgal-5.4.1/include/CGAL/Algebraic_kernel_d/shear.h 2022-06-03 19:03:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Algebraic_kernel_d/shear.h 2022-07-13 19:04:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/shear.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/shear.h $ // $Id: shear.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Algebraic_kernel_d/Shear_transformation.h cgal-5.5/include/CGAL/Algebraic_kernel_d/Shear_transformation.h --- cgal-5.4.1/include/CGAL/Algebraic_kernel_d/Shear_transformation.h 2022-06-03 19:03:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Algebraic_kernel_d/Shear_transformation.h 2022-07-13 19:04:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Shear_transformation.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Shear_transformation.h $ // $Id: Shear_transformation.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Algebraic_kernel_d/Status_line_CA_1.h cgal-5.5/include/CGAL/Algebraic_kernel_d/Status_line_CA_1.h --- cgal-5.4.1/include/CGAL/Algebraic_kernel_d/Status_line_CA_1.h 2022-06-03 19:03:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Algebraic_kernel_d/Status_line_CA_1.h 2022-07-13 19:04:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Status_line_CA_1.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Status_line_CA_1.h $ // $Id: Status_line_CA_1.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Algebraic_kernel_d/Status_line_CPA_1.h cgal-5.5/include/CGAL/Algebraic_kernel_d/Status_line_CPA_1.h --- cgal-5.4.1/include/CGAL/Algebraic_kernel_d/Status_line_CPA_1.h 2022-06-03 19:03:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Algebraic_kernel_d/Status_line_CPA_1.h 2022-07-13 19:04:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Status_line_CPA_1.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Status_line_CPA_1.h $ // $Id: Status_line_CPA_1.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Algebraic_kernel_d/univariate_polynomial_utils.h cgal-5.5/include/CGAL/Algebraic_kernel_d/univariate_polynomial_utils.h --- cgal-5.4.1/include/CGAL/Algebraic_kernel_d/univariate_polynomial_utils.h 2022-06-03 19:03:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Algebraic_kernel_d/univariate_polynomial_utils.h 2022-07-13 19:04:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/univariate_polynomial_utils.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/univariate_polynomial_utils.h $ // $Id: univariate_polynomial_utils.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Algebraic_kernel_d/Xy_coordinate_2.h cgal-5.5/include/CGAL/Algebraic_kernel_d/Xy_coordinate_2.h --- cgal-5.4.1/include/CGAL/Algebraic_kernel_d/Xy_coordinate_2.h 2022-06-03 19:03:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Algebraic_kernel_d/Xy_coordinate_2.h 2022-07-13 19:04:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Xy_coordinate_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Xy_coordinate_2.h $ // $Id: Xy_coordinate_2.h 4e519a3 2021-05-05T13:15:37+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Algebraic_kernel_d_1.h cgal-5.5/include/CGAL/Algebraic_kernel_d_1.h --- cgal-5.4.1/include/CGAL/Algebraic_kernel_d_1.h 2022-06-03 19:03:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Algebraic_kernel_d_1.h 2022-07-13 19:04:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d_1.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d_1.h $ // $Id: Algebraic_kernel_d_1.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Algebraic_kernel_d_2.h cgal-5.5/include/CGAL/Algebraic_kernel_d_2.h --- cgal-5.4.1/include/CGAL/Algebraic_kernel_d_2.h 2022-06-03 19:03:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Algebraic_kernel_d_2.h 2022-07-13 19:04:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d_2.h $ // $Id: Algebraic_kernel_d_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Algebraic_kernel_for_circles/function_objects_on_roots_and_polynomials_2_2.h cgal-5.5/include/CGAL/Algebraic_kernel_for_circles/function_objects_on_roots_and_polynomials_2_2.h --- cgal-5.4.1/include/CGAL/Algebraic_kernel_for_circles/function_objects_on_roots_and_polynomials_2_2.h 2022-06-03 19:03:33.000000000 +0000 +++ cgal-5.5/include/CGAL/Algebraic_kernel_for_circles/function_objects_on_roots_and_polynomials_2_2.h 2022-07-13 19:04:16.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_for_circles/include/CGAL/Algebraic_kernel_for_circles/function_objects_on_roots_and_polynomials_2_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_for_circles/include/CGAL/Algebraic_kernel_for_circles/function_objects_on_roots_and_polynomials_2_2.h $ // $Id: function_objects_on_roots_and_polynomials_2_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Algebraic_kernel_for_circles/internal_functions_comparison_root_for_circles_2_2.h cgal-5.5/include/CGAL/Algebraic_kernel_for_circles/internal_functions_comparison_root_for_circles_2_2.h --- cgal-5.4.1/include/CGAL/Algebraic_kernel_for_circles/internal_functions_comparison_root_for_circles_2_2.h 2022-06-03 19:03:33.000000000 +0000 +++ cgal-5.5/include/CGAL/Algebraic_kernel_for_circles/internal_functions_comparison_root_for_circles_2_2.h 2022-07-13 19:04:16.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_for_circles/include/CGAL/Algebraic_kernel_for_circles/internal_functions_comparison_root_for_circles_2_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_for_circles/include/CGAL/Algebraic_kernel_for_circles/internal_functions_comparison_root_for_circles_2_2.h $ // $Id: internal_functions_comparison_root_for_circles_2_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Algebraic_kernel_for_circles/internal_functions_on_roots_and_polynomial_1_2_and_2_2.h cgal-5.5/include/CGAL/Algebraic_kernel_for_circles/internal_functions_on_roots_and_polynomial_1_2_and_2_2.h --- cgal-5.4.1/include/CGAL/Algebraic_kernel_for_circles/internal_functions_on_roots_and_polynomial_1_2_and_2_2.h 2022-06-03 19:03:33.000000000 +0000 +++ cgal-5.5/include/CGAL/Algebraic_kernel_for_circles/internal_functions_on_roots_and_polynomial_1_2_and_2_2.h 2022-07-13 19:04:16.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_for_circles/include/CGAL/Algebraic_kernel_for_circles/internal_functions_on_roots_and_polynomial_1_2_and_2_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_for_circles/include/CGAL/Algebraic_kernel_for_circles/internal_functions_on_roots_and_polynomial_1_2_and_2_2.h $ // $Id: internal_functions_on_roots_and_polynomial_1_2_and_2_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Algebraic_kernel_for_circles/internal_functions_on_roots_and_polynomials_2_2.h cgal-5.5/include/CGAL/Algebraic_kernel_for_circles/internal_functions_on_roots_and_polynomials_2_2.h --- cgal-5.4.1/include/CGAL/Algebraic_kernel_for_circles/internal_functions_on_roots_and_polynomials_2_2.h 2022-06-03 19:03:33.000000000 +0000 +++ cgal-5.5/include/CGAL/Algebraic_kernel_for_circles/internal_functions_on_roots_and_polynomials_2_2.h 2022-07-13 19:04:17.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_for_circles/include/CGAL/Algebraic_kernel_for_circles/internal_functions_on_roots_and_polynomials_2_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_for_circles/include/CGAL/Algebraic_kernel_for_circles/internal_functions_on_roots_and_polynomials_2_2.h $ // $Id: internal_functions_on_roots_and_polynomials_2_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Algebraic_kernel_for_circles_2_2.h cgal-5.5/include/CGAL/Algebraic_kernel_for_circles_2_2.h --- cgal-5.4.1/include/CGAL/Algebraic_kernel_for_circles_2_2.h 2022-06-03 19:03:33.000000000 +0000 +++ cgal-5.5/include/CGAL/Algebraic_kernel_for_circles_2_2.h 2022-07-13 19:04:17.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_for_circles/include/CGAL/Algebraic_kernel_for_circles_2_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_for_circles/include/CGAL/Algebraic_kernel_for_circles_2_2.h $ // $Id: Algebraic_kernel_for_circles_2_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Algebraic_kernel_for_spheres/function_objects_on_roots_and_polynomials_2_3.h cgal-5.5/include/CGAL/Algebraic_kernel_for_spheres/function_objects_on_roots_and_polynomials_2_3.h --- cgal-5.4.1/include/CGAL/Algebraic_kernel_for_spheres/function_objects_on_roots_and_polynomials_2_3.h 2022-06-03 19:03:33.000000000 +0000 +++ cgal-5.5/include/CGAL/Algebraic_kernel_for_spheres/function_objects_on_roots_and_polynomials_2_3.h 2022-07-13 19:04:17.000000000 +0000 @@ -9,7 +9,7 @@ // and a STREP (FET Open) Project under Contract No IST-006413 // (ACS -- Algorithms for Complex Shapes) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_for_spheres/include/CGAL/Algebraic_kernel_for_spheres/function_objects_on_roots_and_polynomials_2_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_for_spheres/include/CGAL/Algebraic_kernel_for_spheres/function_objects_on_roots_and_polynomials_2_3.h $ // $Id: function_objects_on_roots_and_polynomials_2_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Algebraic_kernel_for_spheres/internal_functions_comparison_root_for_spheres_2_3.h cgal-5.5/include/CGAL/Algebraic_kernel_for_spheres/internal_functions_comparison_root_for_spheres_2_3.h --- cgal-5.4.1/include/CGAL/Algebraic_kernel_for_spheres/internal_functions_comparison_root_for_spheres_2_3.h 2022-06-03 19:03:33.000000000 +0000 +++ cgal-5.5/include/CGAL/Algebraic_kernel_for_spheres/internal_functions_comparison_root_for_spheres_2_3.h 2022-07-13 19:04:17.000000000 +0000 @@ -9,7 +9,7 @@ // and a STREP (FET Open) Project under Contract No IST-006413 // (ACS -- Algorithms for Complex Shapes) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_for_spheres/include/CGAL/Algebraic_kernel_for_spheres/internal_functions_comparison_root_for_spheres_2_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_for_spheres/include/CGAL/Algebraic_kernel_for_spheres/internal_functions_comparison_root_for_spheres_2_3.h $ // $Id: internal_functions_comparison_root_for_spheres_2_3.h 82989ae 2021-03-01T13:11:00+01:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Algebraic_kernel_for_spheres/internal_functions_on_roots_and_polynomial_1_3_and_2_3.h cgal-5.5/include/CGAL/Algebraic_kernel_for_spheres/internal_functions_on_roots_and_polynomial_1_3_and_2_3.h --- cgal-5.4.1/include/CGAL/Algebraic_kernel_for_spheres/internal_functions_on_roots_and_polynomial_1_3_and_2_3.h 2022-06-03 19:03:33.000000000 +0000 +++ cgal-5.5/include/CGAL/Algebraic_kernel_for_spheres/internal_functions_on_roots_and_polynomial_1_3_and_2_3.h 2022-07-13 19:04:17.000000000 +0000 @@ -9,7 +9,7 @@ // and a STREP (FET Open) Project under Contract No IST-006413 // (ACS -- Algorithms for Complex Shapes) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_for_spheres/include/CGAL/Algebraic_kernel_for_spheres/internal_functions_on_roots_and_polynomial_1_3_and_2_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_for_spheres/include/CGAL/Algebraic_kernel_for_spheres/internal_functions_on_roots_and_polynomial_1_3_and_2_3.h $ // $Id: internal_functions_on_roots_and_polynomial_1_3_and_2_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Algebraic_kernel_for_spheres/internal_functions_on_roots_and_polynomials_1_3.h cgal-5.5/include/CGAL/Algebraic_kernel_for_spheres/internal_functions_on_roots_and_polynomials_1_3.h --- cgal-5.4.1/include/CGAL/Algebraic_kernel_for_spheres/internal_functions_on_roots_and_polynomials_1_3.h 2022-06-03 19:03:34.000000000 +0000 +++ cgal-5.5/include/CGAL/Algebraic_kernel_for_spheres/internal_functions_on_roots_and_polynomials_1_3.h 2022-07-13 19:04:17.000000000 +0000 @@ -9,7 +9,7 @@ // and a STREP (FET Open) Project under Contract No IST-006413 // (ACS -- Algorithms for Complex Shapes) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_for_spheres/include/CGAL/Algebraic_kernel_for_spheres/internal_functions_on_roots_and_polynomials_1_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_for_spheres/include/CGAL/Algebraic_kernel_for_spheres/internal_functions_on_roots_and_polynomials_1_3.h $ // $Id: internal_functions_on_roots_and_polynomials_1_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Algebraic_kernel_for_spheres/internal_functions_on_roots_and_polynomials_2_3.h cgal-5.5/include/CGAL/Algebraic_kernel_for_spheres/internal_functions_on_roots_and_polynomials_2_3.h --- cgal-5.4.1/include/CGAL/Algebraic_kernel_for_spheres/internal_functions_on_roots_and_polynomials_2_3.h 2022-06-03 19:03:34.000000000 +0000 +++ cgal-5.5/include/CGAL/Algebraic_kernel_for_spheres/internal_functions_on_roots_and_polynomials_2_3.h 2022-07-13 19:04:17.000000000 +0000 @@ -9,7 +9,7 @@ // and a STREP (FET Open) Project under Contract No IST-006413 // (ACS -- Algorithms for Complex Shapes) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_for_spheres/include/CGAL/Algebraic_kernel_for_spheres/internal_functions_on_roots_and_polynomials_2_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_for_spheres/include/CGAL/Algebraic_kernel_for_spheres/internal_functions_on_roots_and_polynomials_2_3.h $ // $Id: internal_functions_on_roots_and_polynomials_2_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Algebraic_kernel_for_spheres_2_3.h cgal-5.5/include/CGAL/Algebraic_kernel_for_spheres_2_3.h --- cgal-5.4.1/include/CGAL/Algebraic_kernel_for_spheres_2_3.h 2022-06-03 19:03:34.000000000 +0000 +++ cgal-5.5/include/CGAL/Algebraic_kernel_for_spheres_2_3.h 2022-07-13 19:04:17.000000000 +0000 @@ -9,7 +9,7 @@ // and a STREP (FET Open) Project under Contract No IST-006413 // (ACS -- Algorithms for Complex Shapes) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_for_spheres/include/CGAL/Algebraic_kernel_for_spheres_2_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_for_spheres/include/CGAL/Algebraic_kernel_for_spheres_2_3.h $ // $Id: Algebraic_kernel_for_spheres_2_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Algebraic_kernel_rs_gmpq_d_1.h cgal-5.5/include/CGAL/Algebraic_kernel_rs_gmpq_d_1.h --- cgal-5.4.1/include/CGAL/Algebraic_kernel_rs_gmpq_d_1.h 2022-06-03 19:03:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Algebraic_kernel_rs_gmpq_d_1.h 2022-07-13 19:04:15.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_rs_gmpq_d_1.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_rs_gmpq_d_1.h $ // $Id: Algebraic_kernel_rs_gmpq_d_1.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Algebraic_kernel_rs_gmpz_d_1.h cgal-5.5/include/CGAL/Algebraic_kernel_rs_gmpz_d_1.h --- cgal-5.4.1/include/CGAL/Algebraic_kernel_rs_gmpz_d_1.h 2022-06-03 19:03:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Algebraic_kernel_rs_gmpz_d_1.h 2022-07-13 19:04:15.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_rs_gmpz_d_1.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_rs_gmpz_d_1.h $ // $Id: Algebraic_kernel_rs_gmpz_d_1.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Algebraic_structure_traits.h cgal-5.5/include/CGAL/Algebraic_structure_traits.h --- cgal-5.4.1/include/CGAL/Algebraic_structure_traits.h 2022-06-03 19:03:30.000000000 +0000 +++ cgal-5.5/include/CGAL/Algebraic_structure_traits.h 2022-07-13 19:04:12.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_foundations/include/CGAL/Algebraic_structure_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_foundations/include/CGAL/Algebraic_structure_traits.h $ // $Id: Algebraic_structure_traits.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/algorithm.h cgal-5.5/include/CGAL/algorithm.h --- cgal-5.4.1/include/CGAL/algorithm.h 2022-06-03 19:05:33.000000000 +0000 +++ cgal-5.5/include/CGAL/algorithm.h 2022-07-13 19:06:28.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/algorithm.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/algorithm.h $ // $Id: algorithm.h 4e519a3 2021-05-05T13:15:37+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/all_furthest_neighbors_2.h cgal-5.5/include/CGAL/all_furthest_neighbors_2.h --- cgal-5.4.1/include/CGAL/all_furthest_neighbors_2.h 2022-06-03 19:05:27.000000000 +0000 +++ cgal-5.5/include/CGAL/all_furthest_neighbors_2.h 2022-07-13 19:06:22.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polytope_distance_d/include/CGAL/all_furthest_neighbors_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polytope_distance_d/include/CGAL/all_furthest_neighbors_2.h $ // $Id: all_furthest_neighbors_2.h 2b61a99 2021-01-05T18:38:16+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Alpha_shape_2.h cgal-5.5/include/CGAL/Alpha_shape_2.h --- cgal-5.4.1/include/CGAL/Alpha_shape_2.h 2022-06-03 19:03:34.000000000 +0000 +++ cgal-5.5/include/CGAL/Alpha_shape_2.h 2022-07-13 19:04:17.000000000 +0000 @@ -5,7 +5,7 @@ // // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Alpha_shapes_2/include/CGAL/Alpha_shape_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Alpha_shapes_2/include/CGAL/Alpha_shape_2.h $ // $Id: Alpha_shape_2.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // Author(s) : Tran Kai Frank DA // Andreas Fabri diff -Nru cgal-5.4.1/include/CGAL/Alpha_shape_3.h cgal-5.5/include/CGAL/Alpha_shape_3.h --- cgal-5.4.1/include/CGAL/Alpha_shape_3.h 2022-06-03 19:03:35.000000000 +0000 +++ cgal-5.5/include/CGAL/Alpha_shape_3.h 2022-07-13 19:04:18.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Alpha_shapes_3/include/CGAL/Alpha_shape_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Alpha_shapes_3/include/CGAL/Alpha_shape_3.h $ // $Id: Alpha_shape_3.h 115fa5a 2021-12-14T14:01:21+00:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Alpha_shape_cell_base_3.h cgal-5.5/include/CGAL/Alpha_shape_cell_base_3.h --- cgal-5.4.1/include/CGAL/Alpha_shape_cell_base_3.h 2022-06-03 19:03:35.000000000 +0000 +++ cgal-5.5/include/CGAL/Alpha_shape_cell_base_3.h 2022-07-13 19:04:18.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Alpha_shapes_3/include/CGAL/Alpha_shape_cell_base_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Alpha_shapes_3/include/CGAL/Alpha_shape_cell_base_3.h $ // $Id: Alpha_shape_cell_base_3.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Alpha_shape_face_base_2.h cgal-5.5/include/CGAL/Alpha_shape_face_base_2.h --- cgal-5.4.1/include/CGAL/Alpha_shape_face_base_2.h 2022-06-03 19:03:34.000000000 +0000 +++ cgal-5.5/include/CGAL/Alpha_shape_face_base_2.h 2022-07-13 19:04:17.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Alpha_shapes_2/include/CGAL/Alpha_shape_face_base_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Alpha_shapes_2/include/CGAL/Alpha_shape_face_base_2.h $ // $Id: Alpha_shape_face_base_2.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Alpha_shapes_2/internal/Lazy_alpha_nt_2.h cgal-5.5/include/CGAL/Alpha_shapes_2/internal/Lazy_alpha_nt_2.h --- cgal-5.4.1/include/CGAL/Alpha_shapes_2/internal/Lazy_alpha_nt_2.h 2022-06-03 19:03:34.000000000 +0000 +++ cgal-5.5/include/CGAL/Alpha_shapes_2/internal/Lazy_alpha_nt_2.h 2022-07-13 19:04:17.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Alpha_shapes_2/include/CGAL/Alpha_shapes_2/internal/Lazy_alpha_nt_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Alpha_shapes_2/include/CGAL/Alpha_shapes_2/internal/Lazy_alpha_nt_2.h $ // $Id: Lazy_alpha_nt_2.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Alpha_shapes_3/internal/Classification_type.h cgal-5.5/include/CGAL/Alpha_shapes_3/internal/Classification_type.h --- cgal-5.4.1/include/CGAL/Alpha_shapes_3/internal/Classification_type.h 2022-06-03 19:03:35.000000000 +0000 +++ cgal-5.5/include/CGAL/Alpha_shapes_3/internal/Classification_type.h 2022-07-13 19:04:18.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Alpha_shapes_3/include/CGAL/Alpha_shapes_3/internal/Classification_type.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Alpha_shapes_3/include/CGAL/Alpha_shapes_3/internal/Classification_type.h $ // $Id: Classification_type.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Alpha_shapes_3/internal/Lazy_alpha_nt_3.h cgal-5.5/include/CGAL/Alpha_shapes_3/internal/Lazy_alpha_nt_3.h --- cgal-5.4.1/include/CGAL/Alpha_shapes_3/internal/Lazy_alpha_nt_3.h 2022-06-03 19:03:35.000000000 +0000 +++ cgal-5.5/include/CGAL/Alpha_shapes_3/internal/Lazy_alpha_nt_3.h 2022-07-13 19:04:18.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Alpha_shapes_3/include/CGAL/Alpha_shapes_3/internal/Lazy_alpha_nt_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Alpha_shapes_3/include/CGAL/Alpha_shapes_3/internal/Lazy_alpha_nt_3.h $ // $Id: Lazy_alpha_nt_3.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Alpha_shape_vertex_base_2.h cgal-5.5/include/CGAL/Alpha_shape_vertex_base_2.h --- cgal-5.4.1/include/CGAL/Alpha_shape_vertex_base_2.h 2022-06-03 19:03:34.000000000 +0000 +++ cgal-5.5/include/CGAL/Alpha_shape_vertex_base_2.h 2022-07-13 19:04:17.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Alpha_shapes_2/include/CGAL/Alpha_shape_vertex_base_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Alpha_shapes_2/include/CGAL/Alpha_shape_vertex_base_2.h $ // $Id: Alpha_shape_vertex_base_2.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Alpha_shape_vertex_base_3.h cgal-5.5/include/CGAL/Alpha_shape_vertex_base_3.h --- cgal-5.4.1/include/CGAL/Alpha_shape_vertex_base_3.h 2022-06-03 19:03:35.000000000 +0000 +++ cgal-5.5/include/CGAL/Alpha_shape_vertex_base_3.h 2022-07-13 19:04:18.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Alpha_shapes_3/include/CGAL/Alpha_shape_vertex_base_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Alpha_shapes_3/include/CGAL/Alpha_shape_vertex_base_3.h $ // $Id: Alpha_shape_vertex_base_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Alpha_wrap_3/internal/Alpha_wrap_3.h cgal-5.5/include/CGAL/Alpha_wrap_3/internal/Alpha_wrap_3.h --- cgal-5.4.1/include/CGAL/Alpha_wrap_3/internal/Alpha_wrap_3.h 1970-01-01 00:00:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Alpha_wrap_3/internal/Alpha_wrap_3.h 2022-07-13 19:04:18.000000000 +0000 @@ -0,0 +1,1590 @@ +// Copyright (c) 2019-2022 Google LLC (USA). +// All rights reserved. +// +// This file is part of CGAL (www.cgal.org). +// +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Alpha_wrap_3/include/CGAL/Alpha_wrap_3/internal/Alpha_wrap_3.h $ +// $Id: Alpha_wrap_3.h beeae18 2022-06-08T12:04:02+02:00 Mael Rouxel-Labbé +// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial +// +// Author(s) : Pierre Alliez +// Cedric Portaneri, +// Mael Rouxel-Labbé +// Andreas Fabri +// Michael Hemmer +// +#ifndef CGAL_ALPHA_WRAP_3_INTERNAL_ALPHA_WRAP_3_H +#define CGAL_ALPHA_WRAP_3_INTERNAL_ALPHA_WRAP_3_H + +#ifdef CGAL_AW3_DEBUG_PP + #ifndef CGAL_AW3_DEBUG + #define CGAL_AW3_DEBUG + #define CGAL_AW3_DEBUG_INITIALIZATION + #define CGAL_AW3_DEBUG_STEINER_COMPUTATION + #define CGAL_AW3_DEBUG_QUEUE + #define CGAL_AW3_DEBUG_FACET_STATUS + #define CGAL_AW3_DEBUG_MANIFOLDNESS + #endif +#endif + +#include + +#include +#include +#include +#include + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include // only if non-manifoldness is not treated +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace CGAL { +namespace Alpha_wraps_3 { +namespace internal { + +template +class Cell_base_with_timestamp + : public Cb +{ + std::size_t time_stamp_; + +public: + template + Cell_base_with_timestamp(const Args&... args) : Cb(args...), time_stamp_(-1) { } + + Cell_base_with_timestamp(const Cell_base_with_timestamp& other) : Cb(other), time_stamp_(other.time_stamp_) { } + + typedef CGAL::Tag_true Has_timestamp; + + std::size_t time_stamp() const { return time_stamp_; } + void set_time_stamp(const std::size_t& ts) { time_stamp_ = ts; } + + template + struct Rebind_TDS + { + typedef typename Cb::template Rebind_TDS::Other Cb2; + typedef Cell_base_with_timestamp Other; + }; +}; + +struct Wrapping_default_visitor +{ + Wrapping_default_visitor() { } + + template + void on_alpha_wrapping_begin(const AlphaWrapper&) { } + + template + void on_flood_fill_begin(const AlphaWrapper&) { } + + template + void before_facet_treatment(const AlphaWrapper&, const Gate&) { } + + template + void before_Steiner_point_insertion(const Wrapper&, const Point&) { } + + template + void after_Steiner_point_insertion(const Wrapper&, VertexHandle) { } + + template + void on_flood_fill_end(const AlphaWrapper&) { } + + template + void on_alpha_wrapping_end(const AlphaWrapper&) { }; +}; + +template +class Alpha_wrap_3 +{ + using Base_GT = typename Oracle::Geom_traits; + using Geom_traits = Robust_circumcenter_filtered_traits_3; + + using FT = typename Geom_traits::FT; + using Point_3 = typename Geom_traits::Point_3; + using Vector_3 = typename Geom_traits::Vector_3; + using Ball_3 = typename Geom_traits::Ball_3; + using Iso_cuboid_3 = typename Geom_traits::Iso_cuboid_3; + + using SC = Simple_cartesian; + using SC_Point_3 = SC::Point_3; + using SC_Vector_3 = SC::Vector_3; + using SC_Iso_cuboid_3 = SC::Iso_cuboid_3; + using SC2GT = Cartesian_converter; + + struct Cell_info + { + bool is_outside = false; + }; + + enum Vertex_info + { + DEFAULT = 0, + BBOX_VERTEX, + SEED_VERTEX + }; + + using Vb = Triangulation_vertex_base_3; + using Vbi = Triangulation_vertex_base_with_info_3; + using Cbb = Delaunay_triangulation_cell_base_3; + using Cb = Delaunay_triangulation_cell_base_with_circumcenter_3; + using Cbi = Triangulation_cell_base_with_info_3; + using Cbt = Cell_base_with_timestamp; + using Tds = Triangulation_data_structure_3; + using Dt = Delaunay_triangulation_3; + + using Cell_handle = typename Dt::Cell_handle; + using Facet = typename Dt::Facet; + using Vertex_handle = typename Dt::Vertex_handle; + using Locate_type = typename Dt::Locate_type; + + using Gate = internal::Gate
; + using Alpha_PQ = Modifiable_priority_queue, CGAL_BOOST_PAIRING_HEAP>; + +protected: + const Oracle& m_oracle; + SC_Iso_cuboid_3 m_bbox; + + FT m_alpha, m_sq_alpha; + FT m_offset, m_sq_offset; + + Dt m_dt; + Alpha_PQ m_queue; + +public: + // Main constructor + Alpha_wrap_3(const Oracle& oracle) + : + m_oracle(oracle), + m_dt(Geom_traits(oracle.geom_traits())), + // used to set up the initial MPQ, use some arbitrary not-too-small value + m_queue(4096) + { + // Due to the Steiner point computation being a dichotomy, the algorithm is inherently inexact + // and passing exact kernels is explicitely disabled to ensure no misunderstanding. + CGAL_static_assertion((std::is_floating_point::value)); + } + +public: + const Geom_traits& geom_traits() const { return m_dt.geom_traits(); } + Dt& triangulation() { return m_dt; } + const Dt& triangulation() const { return m_dt; } + const Alpha_PQ& queue() const { return m_queue; } + + double default_alpha() const + { + const Bbox_3 bbox = m_oracle.bbox(); + const double diag_length = std::sqrt(square(bbox.xmax() - bbox.xmin()) + + square(bbox.ymax() - bbox.ymin()) + + square(bbox.zmax() - bbox.zmin())); + + return diag_length / 20.; + } + +private: + const Point_3& circumcenter(const Cell_handle c) const + { + // We only cross an infinite facet once, so this isn't going to be recomputed many times + if(m_dt.is_infinite(c)) + { + const int inf_index = c->index(m_dt.infinite_vertex()); + c->set_circumcenter( + geom_traits().construct_circumcenter_3_object()(m_dt.point(c, (inf_index+1)&3), + m_dt.point(c, (inf_index+2)&3), + m_dt.point(c, (inf_index+3)&3))); + } + + return c->circumcenter(geom_traits()); + } + +public: + template + void operator()(const double alpha, // = default_alpha() + const double offset, // = alpha / 30. + OutputMesh& output_mesh, + const NamedParameters& np) + { + namespace PMP = Polygon_mesh_processing; + + using parameters::get_parameter; + using parameters::get_parameter_reference; + using parameters::choose_parameter; + + using OVPM = typename CGAL::GetVertexPointMap::type; + OVPM ovpm = choose_parameter(get_parameter(np, internal_np::vertex_point), + get_property_map(vertex_point, output_mesh)); + + typedef typename internal_np::Lookup_named_param_def < + internal_np::visitor_t, + NamedParameters, + Wrapping_default_visitor // default + >::reference Visitor; + + Wrapping_default_visitor default_visitor; + Visitor visitor = choose_parameter(get_parameter_reference(np, internal_np::visitor), default_visitor); + + std::vector no_seeds; + using Seeds = typename internal_np::Lookup_named_param_def< + internal_np::seed_points_t, NamedParameters, std::vector >::reference; + Seeds seeds = choose_parameter(get_parameter_reference(np, internal_np::seed_points), no_seeds); + + const bool do_enforce_manifoldness = choose_parameter(get_parameter(np, internal_np::do_enforce_manifoldness), true); + +#ifdef CGAL_AW3_TIMER + CGAL::Real_timer t; + t.start(); +#endif + + visitor.on_alpha_wrapping_begin(*this); + + if(!initialize(alpha, offset, seeds)) + return; + +#ifdef CGAL_AW3_DEBUG_DUMP_EVERY_STEP + extract_surface(output_mesh, ovpm, true /*tolerate non manifoldness*/); + CGAL::IO::write_polygon_mesh("initial_cavities.off", output_mesh, + CGAL::parameters::vertex_point_map(ovpm).stream_precision(17)); +#endif + + alpha_flood_fill(visitor); + +#ifdef CGAL_AW3_TIMER + t.stop(); + std::cout << "Flood filling took: " << t.time() << " s." << std::endl; +#endif + + if(do_enforce_manifoldness) + { +#ifdef CGAL_AW3_DEBUG_MANIFOLDNESS + std::cout << "> Make manifold..." << std::endl; + + extract_surface(output_mesh, ovpm, true /*tolerate non manifoldness*/); + +#ifdef CGAL_AW3_DEBUG_DUMP_EVERY_STEP + dump_triangulation_faces("intermediate_dt3.off", false /*only_boundary_faces*/); + IO::write_polygon_mesh("intermediate.off", output_mesh, + CGAL::parameters::vertex_point_map(ovpm).stream_precision(17)); +#endif + + FT base_vol = 0; + if(is_closed(output_mesh)) // might not be due to manifoldness + base_vol = PMP::volume(output_mesh, CGAL::parameters::vertex_point_map(ovpm)); + else + std::cerr << "Warning: couldn't compute volume before manifoldness fixes (mesh is not closed)" << std::endl; +#endif + +#ifdef CGAL_AW3_TIMER + t.reset(); + t.start(); +#endif + + make_manifold(); + +#ifdef CGAL_AW3_TIMER + t.stop(); + std::cout << "\nManifoldness post-processing took: " << t.time() << " s." << std::endl; +#endif + +#ifdef CGAL_AW3_DEBUG_MANIFOLDNESS + if(!is_zero(base_vol)) + { + extract_surface(output_mesh, ovpm, false /*do not tolerate non-manifoldness*/); + + const FT manifold_vol = PMP::volume(output_mesh, CGAL::parameters::vertex_point_map(ovpm)); + const FT ratio = manifold_vol / base_vol; + + std::cout << "Volumes post-manifoldness fix:\n" + << "before: " << base_vol << "\n" + << "after: " << manifold_vol << "\n" + << "ratio: " << ratio << std::endl; + if(ratio > 1.1) // more than 10% extra volume + std::cerr << "Warning: large increase of volume after manifoldness resolution" << std::endl; + } +#endif + } // do_enforce_manifoldness + +#ifdef CGAL_AW3_TIMER + t.reset(); + t.start(); +#endif + + extract_surface(output_mesh, ovpm, !do_enforce_manifoldness); + +#ifdef CGAL_AW3_TIMER + t.stop(); + std::cout << "Surface extraction took: " << t.time() << " s." << std::endl; +#endif + +#ifdef CGAL_AW3_DEBUG + std::cout << "Alpha wrap vertices: " << vertices(output_mesh).size() << std::endl; + std::cout << "Alpha wrap faces: " << faces(output_mesh).size() << std::endl; + + #ifdef CGAL_AW3_DEBUG_DUMP_EVERY_STEP + IO::write_polygon_mesh("final.off", output_mesh, CGAL::parameters::stream_precision(17)); + dump_triangulation_faces("final_dt3.off", false /*only_boundary_faces*/); + #endif +#endif + + visitor.on_alpha_wrapping_end(*this); + } + + // Convenience overloads + template + void operator()(const double alpha, + const double offset, + OutputMesh& output_mesh) + { + return operator()(alpha, offset, output_mesh, parameters::default_values()); + } + + template + void operator()(const double alpha, + OutputMesh& output_mesh) + { + return operator()(alpha, alpha / 30. /*offset*/, output_mesh); + } + + template + void operator()(OutputMesh& output_mesh) + { + return operator()(default_alpha(), output_mesh); + } + + // This function is public only because it is used in the tests + SC_Iso_cuboid_3 construct_bbox(const double offset) + { + // Input axis-aligned bounding box + SC_Iso_cuboid_3 bbox = m_oracle.bbox(); + const SC_Point_3 bbox_centroid = midpoint((bbox.min)(), (bbox.max)()); + + // Scale a bit to create the initial points not too close to the input + double scaling = 1.2; + CGAL::Aff_transformation_3 scale(SCALING, scaling); + bbox = SC_Iso_cuboid_3(scale.transform((bbox.min)()), scale.transform((bbox.max)())); + + // Translate bbox back to initial centroid + const SC_Point_3 bbox_transformed_centroid = midpoint((bbox.min)(), (bbox.max)()); + const SC_Vector_3 diff_centroid = bbox_centroid - bbox_transformed_centroid; + CGAL::Aff_transformation_3 centroid_translate(TRANSLATION, diff_centroid); + bbox = SC_Iso_cuboid_3(centroid_translate.transform((bbox.min)()), + centroid_translate.transform((bbox.max)())); + + // Add the offset + SC_Vector_3 offset_ext = std::sqrt(3.) * offset * SC_Vector_3(1, 1, 1); + CGAL::Aff_transformation_3 translate_m(TRANSLATION, - offset_ext); + CGAL::Aff_transformation_3 translate_M(TRANSLATION, offset_ext); + bbox = SC_Iso_cuboid_3(translate_m.transform((bbox.min)()), translate_M.transform((bbox.max)())); + + return bbox; + } + +private: + // Adjust the bbox & insert its corners to construct the starting triangulation + void insert_bbox_corners() + { + m_bbox = construct_bbox(CGAL::to_double(m_offset)); + +#ifdef CGAL_AW3_DEBUG_INITIALIZATION + std::cout << "Insert Bbox vertices" << std::endl; +#endif + + // insert in dt the eight corner vertices of the input loose bounding box + for(int i=0; i<8; ++i) + { + const Point_3 bp = SC2GT()(m_bbox.vertex(i)); + Vertex_handle bv = m_dt.insert(bp); +#ifdef CGAL_AW3_DEBUG_INITIALIZATION + std::cout << "\t" << bp << std::endl; +#endif + bv->info() = BBOX_VERTEX; + } + } + + // Two criteria: + // - Cells that are intersecting the input are inside + // - Cells whose circumcenter is in the offset volume are inside: this is because + // we need to have outside cell circumcenters outside of the volume to ensure + // that the refinement point is separated from the existing point set. + bool cavity_cell_outside_tag(const Cell_handle ch) + { + CGAL_precondition(!m_dt.is_infinite(ch)); + + const Tetrahedron_with_outside_info tet(ch, geom_traits()); + if(m_oracle.do_intersect(tet)) + return false; + + const Point_3& ch_cc = circumcenter(ch); + typename Geom_traits::Construct_ball_3 ball = geom_traits().construct_ball_3_object(); + const Ball_3 ch_cc_offset_ball = ball(ch_cc, m_sq_offset); + const bool is_cc_in_offset = m_oracle.do_intersect(ch_cc_offset_ball); + + return !is_cc_in_offset; + } + + // Create a cavity using seeds rather than starting from the infinity. + // + // For each seed, insert the seeds and its neighboring vertices on a regular icosahedron. + // The idea behind an icosahedron rather than e.g. a simple tetrahedron is twofold: + // - Improve the odds of both starting the algorithm, but also of not immediately stopping, + // which could happen if a conflict zone included all the initial cavity when using a simple cavity. + // - Base the cavity diameter on alpha, and allow its cells to intersect the input. If a single + // tetrahedron is used, one is forced to make it small-enough such that it does not intersect + // the input, and then it could be forced to be smaller than 'alpha' and the algorithm cannot start, + // for example if the seed is close to the offset. If we have many tetrahedra, this is far less + // likely to happen. + // + // For an edge length a, the radius of an icosahedron is + // r = 0.5 * a * sqrt(phi * sqrt(5)), phi being the golden ratio + // which yields + // r = a * sin(2pi / 5) =~ 0.95105651629515353 * a + // Faces of an icosahedron are equilateral triangles with size a and circumradius a / sqrt(3) + // Since we want faces of the icosahedron to be traversable, we want a such that + // a / sqrt(3) > alpha + // Hence r such that + // r / (sqrt(3) * sin(2pi/5)) > alpha + // r > alpha * sqrt(3) * sin(2pi / 5) ~= 1.6472782070926637 * alpha + // + // Furthermore, the triangles between edges of the icosahedron and the center of the icosahedron + // are not equilateral triangles since a is slightly bigger than r. They are + // slightly flattened isocele triangles with base 'a' and the circumradius is smaller. + // The circumradius is + // r_iso = r² / (2 * h) = r² / (2 * sqrt(r² - (a / 2)²)) + // Since r = a * sin(2pi / 5) + // r_iso = r² / (2 * sqrt(r² - (r / 2 * sin(2pi / 5))²)) + // = r / (2 * sqrt(1 - 1 / (2 * sin(2pi / 5))²)) + // So we want r_iso > alpha, i.e. + // r > (2 * sqrt(1 - 1 / (2 * sin(2pi / 5))²)) * alpha ~= 1.7013016167040798 * alpha + // + // Another way is to simply make faces incident to the seed always traversable, and then + // we only have to ensure faces opposite of the seed are traversable (i.e., radius ~= 1.65 * alpha) + template + bool initialize_with_cavities(const SeedRange& seeds) + { +#ifdef CGAL_AW3_DEBUG_INITIALIZATION + std::cout << "> Dig cavities" << std::endl; + std::cout << seeds.size() << " seed(s)" << std::endl; +#endif + + CGAL_precondition(!seeds.empty()); + + // Get a double value approximating the scaling factors +// std::cout << sqrt(3) * sin(2pi / 5) << std::endl; +// std::cout << (2. * std::sqrt(1. - 1. / square(2 * std::sin(2 * CGAL_PI / 5)))) << std::endl; + + Iso_cuboid_3 bbox = SC2GT()(m_bbox); + + std::vector seed_vs; + for(const Point_3& seed_p : seeds) + { +#ifdef CGAL_AW3_DEBUG_INITIALIZATION + std::cout << "Initialize from seed " << seed_p << std::endl; +#endif + + if(bbox.has_on_unbounded_side(seed_p)) + { +#ifdef CGAL_AW3_DEBUG_INITIALIZATION + std::cerr << "Warning: seed " << seed_p << " is outside the bounding box" << std::endl; +#endif + continue; + } + + // get the closest point on the input + const Point_3 closest_pt = m_oracle.closest_point(seed_p); + const FT sq_d_to_closest = geom_traits().compute_squared_distance_3_object()(seed_p, closest_pt); + + if(sq_d_to_closest < m_sq_offset) + { +#ifdef CGAL_AW3_DEBUG_INITIALIZATION + std::cerr << "Warning: seed " << seed_p << " is in the offset" << std::endl; +#endif + continue; + } + + // Mark the seeds and icosahedron vertices as "artificial vertices" such that the facets + // incident to these vertices are always traversable regardless of their circumcenter. + // This is done because otherwise some cavities can appear on the mesh: non-traversable facets + // with two vertices on the offset, and the third being a deeper inside seed / ico_seed. + // Making them traversable will cause more refinement than "alpha", but they will eventually + // not appear anymore in the inside/outside boundary and the surface will look smoother. + // + // This problem only appears when the seed and icosahedron vertices are close to the offset surface, + // which usually happens for large alpha values. + + Vertex_handle seed_v = m_dt.insert(seed_p); + seed_v->info() = SEED_VERTEX; + seed_vs.push_back(seed_v); + + // Icosahedron vertices (see also BGL::make_icosahedron()) + const Point_3 center = seed_p; + const FT radius = 1.65 * m_alpha; + const FT phi = (FT(1) + approximate_sqrt(FT(5))) / FT(2); + const FT t = radius / approximate_sqrt(1 + square(phi)); + const FT t_phi = t * phi; + + std::array ico_ps = + { + Point_3(center.x(), center.y() + t, center.z() + t_phi), + Point_3(center.x(), center.y() + t, center.z() - t_phi), + Point_3(center.x(), center.y() - t, center.z() + t_phi), + Point_3(center.x(), center.y() - t, center.z() - t_phi), + + Point_3(center.x() + t, center.y() + t_phi, center.z()), + Point_3(center.x() + t, center.y() - t_phi, center.z()), + Point_3(center.x() - t, center.y() + t_phi, center.z()), + Point_3(center.x() - t, center.y() - t_phi, center.z()), + + Point_3(center.x() + t_phi, center.y(), center.z() + t), + Point_3(center.x() + t_phi, center.y(), center.z() - t), + Point_3(center.x() - t_phi, center.y(), center.z() + t), + Point_3(center.x() - t_phi, center.y(), center.z() - t) + }; + + for(const Point_3& seed_neighbor_p : ico_ps) + { +#ifdef CGAL_AW3_DEBUG_PP + std::cout << seed_neighbor_p << std::endl; +#endif + if(bbox.has_on_unbounded_side(seed_neighbor_p)) + continue; + + Vertex_handle ico_v = m_dt.insert(seed_neighbor_p, seed_v /*hint*/); + ico_v->info() = SEED_VERTEX; + } + } + + if(seed_vs.empty()) + { +#ifdef CGAL_AW3_DEBUG_INITIALIZATION + std::cerr << "Error: no acceptable seed was provided" << std::endl; +#endif + return false; + } + +#ifdef CGAL_AW3_DEBUG_INITIALIZATION + std::cout << m_dt.number_of_vertices() - 8 /*bbox*/ << " vertice(s) due to seeds" << std::endl; +#endif + + for(Vertex_handle seed_v : seed_vs) + { + std::vector inc_cells; + inc_cells.reserve(64); + m_dt.incident_cells(seed_v, std::back_inserter(inc_cells)); + for(Cell_handle ch : inc_cells) + ch->info().is_outside = cavity_cell_outside_tag(ch); + } + + // Might as well go through the full triangulation since only seeds should have been inserted + for(Cell_handle ch : m_dt.all_cell_handles()) + { + if(!ch->info().is_outside) + continue; + + // When the algorithm starts from a manually dug hole, infinite cells are tagged "inside" + CGAL_assertion(!m_dt.is_infinite(ch)); + + for(int i=0; i<4; ++i) + push_facet(std::make_pair(ch, i)); + } + + if(m_queue.empty()) + { +#ifdef CGAL_AW3_DEBUG_INITIALIZATION + std::cerr << "Could not initialize the algorithm with these seeds, and alpha|offset values" << std::endl; +#endif + return false; + } + + return true; + } + + // tag all infinite cells OUTSIDE and all finite cells INSIDE + // init queue with all convex hull facets + bool initialize_from_infinity() + { + for(Cell_handle ch : m_dt.all_cell_handles()) + { + if(m_dt.is_infinite(ch)) + { + ch->info().is_outside = true; + const int inf_index = ch->index(m_dt.infinite_vertex()); + push_facet(std::make_pair(ch, inf_index)); + } + else + { + ch->info().is_outside = false; + } + } + + return true; + } + +public: + // Manifoldness is tolerated while debugging and extracting at intermediate states + // Not the preferred way because it uses 3*nv storage + template + void extract_possibly_non_manifold_surface(OutputMesh& output_mesh, + OVPM ovpm) const + { + namespace PMP = Polygon_mesh_processing; + +#ifdef CGAL_AW3_DEBUG + std::cout << "> Extract possibly non-manifold wrap... ()" << std::endl; +#endif + + clear(output_mesh); + + CGAL_assertion_code(for(auto cit=m_dt.finite_cells_begin(), cend=m_dt.finite_cells_end(); cit!=cend; ++cit)) + CGAL_assertion(cit->tds_data().is_clear()); + + for(auto cit=m_dt.finite_cells_begin(), cend=m_dt.finite_cells_end(); cit!=cend; ++cit) + { + Cell_handle seed = cit; + if(seed->info().is_outside || seed->tds_data().processed()) + continue; + + std::queue to_visit; + to_visit.push(seed); + + std::vector points; + std::vector > faces; + std::size_t idx = 0; + + while(!to_visit.empty()) + { + const Cell_handle cell = to_visit.front(); + CGAL_assertion(!cell->info().is_outside && !m_dt.is_infinite(cell)); + + to_visit.pop(); + + if(cell->tds_data().processed()) + continue; + + cell->tds_data().mark_processed(); + + for(int fid=0; fid<4; ++fid) + { + const Cell_handle neighbor = cell->neighbor(fid); + if(neighbor->info().is_outside) + { + // There shouldn't be any artificial vertex on the inside/outside boundary + // (past initialization) +// CGAL_assertion(cell->vertex((fid + 1)&3)->info() == DEFAULT); +// CGAL_assertion(cell->vertex((fid + 2)&3)->info() == DEFAULT); +// CGAL_assertion(cell->vertex((fid + 3)&3)->info() == DEFAULT); + + points.push_back(m_dt.point(cell, Dt::vertex_triple_index(fid, 0))); + points.push_back(m_dt.point(cell, Dt::vertex_triple_index(fid, 1))); + points.push_back(m_dt.point(cell, Dt::vertex_triple_index(fid, 2))); + faces.push_back({idx, idx + 1, idx + 2}); + idx += 3; + } + else + { + to_visit.push(neighbor); + } + } + } + + PMP::duplicate_non_manifold_edges_in_polygon_soup(points, faces); + + CGAL_assertion(PMP::is_polygon_soup_a_polygon_mesh(faces)); + PMP::polygon_soup_to_polygon_mesh(points, faces, output_mesh, + CGAL::parameters::default_values(), + CGAL::parameters::vertex_point_map(ovpm)); + + PMP::stitch_borders(output_mesh, CGAL::parameters::vertex_point_map(ovpm)); + CGAL_assertion(is_closed(output_mesh)); + } + + for(auto cit=m_dt.finite_cells_begin(), cend=m_dt.finite_cells_end(); cit!=cend; ++cit) + cit->tds_data().clear(); + + CGAL_postcondition(!is_empty(output_mesh)); + CGAL_postcondition(is_valid_polygon_mesh(output_mesh)); + CGAL_postcondition(is_closed(output_mesh)); + + PMP::orient_to_bound_a_volume(output_mesh, CGAL::parameters::vertex_point_map(ovpm)); + } + + template + void extract_manifold_surface(OutputMesh& output_mesh, + OVPM ovpm) const + { + namespace PMP = Polygon_mesh_processing; + +#ifdef CGAL_AW3_DEBUG + std::cout << "> Extract wrap... ()" << std::endl; +#endif + + CGAL_assertion_code(for(Vertex_handle v : m_dt.finite_vertex_handles())) + CGAL_assertion(!is_non_manifold(v)); + + clear(output_mesh); + + // boundary faces to polygon soup + std::vector points; + std::vector > faces; + + std::unordered_map vertex_to_id; + std::size_t nv = 0; + + for(auto fit=m_dt.finite_facets_begin(), fend=m_dt.finite_facets_end(); fit!=fend; ++fit) + { + Facet f = *fit; + if(!f.first->info().is_outside) + f = m_dt.mirror_facet(f); + + const Cell_handle c = f.first; + const int s = f.second; + const Cell_handle nh = c->neighbor(s); + if(c->info().is_outside == nh->info().is_outside) + continue; + + std::array ids; + for(int pos=0; pos<3; ++pos) + { + Vertex_handle vh = c->vertex(Dt::vertex_triple_index(s, pos)); + auto insertion_res = vertex_to_id.emplace(vh, nv); + if(insertion_res.second) // successful insertion, never-seen-before vertex + { + points.push_back(m_dt.point(vh)); + ++nv; + } + + ids[pos] = insertion_res.first->second; + } + + faces.emplace_back(std::array{ids[0], ids[1], ids[2]}); + } + + if(faces.empty()) + return; + + if(!PMP::is_polygon_soup_a_polygon_mesh(faces)) + { + CGAL_warning_msg(false, "Could NOT extract mesh..."); + return; + } + + PMP::polygon_soup_to_polygon_mesh(points, faces, output_mesh, + CGAL::parameters::default_values(), + CGAL::parameters::vertex_point_map(ovpm)); + + CGAL_postcondition(!is_empty(output_mesh)); + CGAL_postcondition(is_valid_polygon_mesh(output_mesh)); + CGAL_postcondition(is_closed(output_mesh)); + + PMP::orient_to_bound_a_volume(output_mesh, CGAL::parameters::vertex_point_map(ovpm)); + } + + template + void extract_surface(OutputMesh& output_mesh, + OVPM ovpm, + const bool tolerate_non_manifoldness = false) const + { + if(tolerate_non_manifoldness) + extract_possibly_non_manifold_surface(output_mesh, ovpm); + else + extract_manifold_surface(output_mesh, ovpm); + } + +private: + bool is_traversable(const Facet& f) const + { + return less_squared_radius_of_min_empty_sphere(m_sq_alpha, f, m_dt); + } + + bool compute_steiner_point(const Cell_handle ch, + const Cell_handle neighbor, + Point_3& steiner_point) const + { + CGAL_precondition(!m_dt.is_infinite(neighbor)); + + typename Geom_traits::Construct_ball_3 ball = geom_traits().construct_ball_3_object(); + typename Geom_traits::Construct_vector_3 vector = geom_traits().construct_vector_3_object(); + typename Geom_traits::Construct_translated_point_3 translate = geom_traits().construct_translated_point_3_object(); + typename Geom_traits::Construct_scaled_vector_3 scale = geom_traits().construct_scaled_vector_3_object(); + + const Point_3& neighbor_cc = circumcenter(neighbor); + const Ball_3 neighbor_cc_offset_ball = ball(neighbor_cc, m_sq_offset); + const bool is_neighbor_cc_in_offset = m_oracle.do_intersect(neighbor_cc_offset_ball); + +#ifdef CGAL_AW3_DEBUG_STEINER_COMPUTATION + std::cout << "Compute_steiner_point(" << &*ch << ", " << &*neighbor << ")" << std::endl; + + const Point_3& chc = circumcenter(ch); + std::cout << "CH" << std::endl; + std::cout << "\t" << ch->vertex(0)->point() << std::endl; + std::cout << "\t" << ch->vertex(1)->point() << std::endl; + std::cout << "\t" << ch->vertex(2)->point() << std::endl; + std::cout << "\t" << ch->vertex(3)->point() << std::endl; + std::cout << "cc: " << chc << std::endl; + std::cout << "CC Distance to input: " << CGAL::squared_distance(chc, m_oracle.closest_point(chc)) << std::endl; + + std::cout << "NCH" << std::endl; + std::cout << "\t" << neighbor->vertex(0)->point() << std::endl; + std::cout << "\t" << neighbor->vertex(1)->point() << std::endl; + std::cout << "\t" << neighbor->vertex(2)->point() << std::endl; + std::cout << "\t" << neighbor->vertex(3)->point() << std::endl; + std::cout << "ncc: " << neighbor_cc << std::endl; + std::cout << "NC Distance to input: " << CGAL::squared_distance(neighbor_cc, m_oracle.closest_point(neighbor_cc)) << std::endl; + std::cout << "is_neighbor_cc_in_offset = " << is_neighbor_cc_in_offset << std::endl; + + std::cout << "squared offset " << m_sq_offset << std::endl; +#endif + + // ch's circumcenter should not be within the offset volume + CGAL_assertion_code(const Point_3& ch_cc = circumcenter(ch);) + CGAL_assertion_code(const Ball_3 ch_cc_offset_ball = ball(ch_cc, m_sq_offset);) + CGAL_assertion(!m_oracle.do_intersect(ch_cc_offset_ball)); + + if(is_neighbor_cc_in_offset) + { + const Point_3& ch_cc = circumcenter(ch); + + // If the voronoi edge intersects the offset, the steiner point is the first intersection + if(m_oracle.first_intersection(ch_cc, neighbor_cc, steiner_point, m_offset)) + { +#ifdef CGAL_AW3_DEBUG_STEINER_COMPUTATION + std::cout << "Steiner found through first_intersection(): " << steiner_point << std::endl; +#endif + return true; + } + } + + Tetrahedron_with_outside_info tet(neighbor, geom_traits()); + if(m_oracle.do_intersect(tet)) + { + // steiner point is the closest point on input from cell centroid with offset + const Point_3 closest_pt = m_oracle.closest_point(neighbor_cc); + CGAL_assertion(closest_pt != neighbor_cc); + + Vector_3 unit = vector(closest_pt, neighbor_cc); + + // PMP::internal::normalize() requires sqrt() + unit = scale(unit, m_offset / approximate_sqrt(geom_traits().compute_squared_length_3_object()(unit))); + steiner_point = translate(closest_pt, unit); + +#ifdef CGAL_AW3_DEBUG_STEINER_COMPUTATION + std::cout << "Steiner found through neighboring tet intersecting the input: " << steiner_point << std::endl; + std::cout << "Closest point: " << closest_pt << std::endl; + std::cout << "Direction: " << vector(closest_pt, neighbor_cc) << std::endl; +#endif + + return true; + } + +#ifdef CGAL_AW3_DEBUG_STEINER_COMPUTATION + std::cout << "No Steiner point" << std::endl; +#endif + + return false; + } + +private: + enum Facet_queue_status + { + IRRELEVANT = 0, + ARTIFICIAL_FACET, + TRAVERSABLE + }; + + // @speed some decent time may be spent constructing Facet (pairs) for no reason as it's always + // just to grab the .first and .second as soon as it's constructed, and not due to API requirements + // e.g. from DT3 + Facet_queue_status facet_status(const Facet& f) const + { + CGAL_precondition(!m_dt.is_infinite(f)); + +#ifdef CGAL_AW3_DEBUG_FACET_STATUS + std::cout << "facet status: " + << f.first->vertex((f.second + 1)&3)->point() << " " + << f.first->vertex((f.second + 2)&3)->point() << " " + << f.first->vertex((f.second + 3)&3)->point() << std::endl; +#endif + + // skip if neighbor is OUTSIDE or infinite + const Cell_handle ch = f.first; + const int id = f.second; + const Cell_handle nh = ch->neighbor(id); + if(m_dt.is_infinite(nh)) + return TRAVERSABLE; + + if(nh->info().is_outside) + { +#ifdef CGAL_AW3_DEBUG_FACET_STATUS + std::cout << "Neighbor already outside" << std::endl; +#endif + return IRRELEVANT; + } + + // push if facet is connected to artifical vertices + for(int i=0; i<3; ++i) + { + const Vertex_handle vh = ch->vertex(Dt::vertex_triple_index(id, i)); + if(vh->info() == BBOX_VERTEX || vh->info() == SEED_VERTEX) + { +#ifdef CGAL_AW3_DEBUG_FACET_STATUS + std::cout << "artificial facet due to artificial vertex #" << i << std::endl; +#endif + return ARTIFICIAL_FACET; + } + } + + // skip if f min empty sphere radius is smaller than alpha + if(is_traversable(f)) + { +#ifdef CGAL_AW3_DEBUG_FACET_STATUS + std::cout << "traversable" << std::endl; +#endif + return TRAVERSABLE; + } + +#ifdef CGAL_AW3_DEBUG_FACET_STATUS + std::cout << "not traversable" << std::endl; +#endif + return IRRELEVANT; + } + + bool push_facet(const Facet& f) + { + CGAL_precondition(f.first->info().is_outside); + + // skip if f is already in queue + if(m_queue.contains_with_bounds_check(Gate(f))) + return false; + + const Facet_queue_status s = facet_status(f); + if(s == IRRELEVANT) + return false; + + const Cell_handle ch = f.first; + const int id = f.second; + const Point_3& p0 = m_dt.point(ch, (id+1)&3); + const Point_3& p1 = m_dt.point(ch, (id+2)&3); + const Point_3& p2 = m_dt.point(ch, (id+3)&3); + + // @todo should prob be the real value we compare to alpha instead of squared_radius + const FT sqr = geom_traits().compute_squared_radius_3_object()(p0, p1, p2); + m_queue.resize_and_push(Gate(f, sqr, (s == ARTIFICIAL_FACET))); + + return true; + } + +private: + template + bool initialize(const double alpha, + const double offset, + const SeedRange& seeds) + { +#ifdef CGAL_AW3_DEBUG + std::cout << "> Initialize..." << std::endl; + std::cout << "Alpha: " << alpha << std::endl; + std::cout << "Offset: " << offset << std::endl; +#endif + + if(!is_positive(alpha) || !is_positive(offset)) + { +#ifdef CGAL_AW3_DEBUG + std::cout << "Error: invalid input parameters" << std::endl; +#endif + return false; + } + + m_alpha = FT(alpha); + m_sq_alpha = square(m_alpha); + m_offset = FT(offset); + m_sq_offset = square(m_offset); + + m_dt.clear(); + m_queue.clear(); + + insert_bbox_corners(); + + if(seeds.empty()) + return initialize_from_infinity(); + else + return initialize_with_cavities(seeds); + } + + template + void alpha_flood_fill(Visitor& visitor) + { +#ifdef CGAL_AW3_DEBUG + std::cout << "> Flood fill..." << std::endl; +#endif + + visitor.on_flood_fill_begin(*this); + + // Explore all finite cells that are reachable from one of the initial outside cells. + while(!m_queue.empty()) + { +#ifdef CGAL_AW3_DEBUG_QUEUE_PP + check_queue_sanity(); +#endif + + // const& to something that will be poped, but safe as `ch` && `id` are extracted before the pop + const Gate& gate = m_queue.top(); + const Facet& f = gate.facet(); + CGAL_precondition(!m_dt.is_infinite(f)); + + const Cell_handle ch = f.first; + const int id = f.second; + const Cell_handle neighbor = ch->neighbor(id); + +#ifdef CGAL_AW3_DEBUG_QUEUE + static int fid = 0; + std::cout << m_dt.number_of_vertices() << " DT vertices" << std::endl; + std::cout << m_queue.size() << " facets in the queue" << std::endl; + std::cout << "Face " << fid++ << "\n" + << "c = " << &*ch << " (" << m_dt.is_infinite(ch) << "), n = " << &*neighbor << " (" << m_dt.is_infinite(neighbor) << ")" << "\n" + << m_dt.point(ch, (id+1)&3) << "\n" << m_dt.point(ch, (id+2)&3) << "\n" << m_dt.point(ch, (id+3)&3) << std::endl; + std::cout << "Priority: " << gate.priority() << std::endl; +#endif + + visitor.before_facet_treatment(*this, gate); + + m_queue.pop(); + +#ifdef CGAL_AW3_DEBUG_DUMP_EVERY_STEP + static int i = 0; + std::string step_name = "results/steps/step_" + std::to_string(static_cast(i)) + ".off"; + dump_triangulation_faces(step_name, true /*only_boundary_faces*/); + + std::string face_name = "results/steps/face_" + std::to_string(static_cast(i++)) + ".xyz"; + std::ofstream face_out(face_name); + face_out.precision(17); + face_out << "3\n" << m_dt.point(ch, (id+1)&3) << "\n" << m_dt.point(ch, (id+2)&3) << "\n" << m_dt.point(ch, (id+3)&3) << std::endl; + face_out.close(); +#endif + + if(m_dt.is_infinite(neighbor)) + { + neighbor->info().is_outside = true; + continue; + } + + Point_3 steiner_point; + if(compute_steiner_point(ch, neighbor, steiner_point)) + { +// std::cout << CGAL::abs(CGAL::approximate_sqrt(m_oracle.squared_distance(steiner_point)) - m_offset) +// << " vs " << 1e-2 * m_offset << std::endl; + CGAL_assertion(CGAL::abs(CGAL::approximate_sqrt(m_oracle.squared_distance(steiner_point)) - m_offset) <= 1e-2 * m_offset); + + // locate cells that are going to be destroyed and remove their facet from the queue + int li, lj = 0; + Locate_type lt; + const Cell_handle conflict_cell = m_dt.locate(steiner_point, lt, li, lj, neighbor); + CGAL_assertion(lt != Dt::VERTEX); + + std::vector boundary_facets; + std::vector conflict_zone; + boundary_facets.reserve(32); + conflict_zone.reserve(32); + m_dt.find_conflicts(steiner_point, conflict_cell, + std::back_inserter(boundary_facets), + std::back_inserter(conflict_zone)); + + // Purge the queue of facets that will be deleted/modified by the Steiner point insertion, + // and which might have been gates + for(const Cell_handle& cch : conflict_zone) + { + for(int i=0; i<4; ++i) + { + const Facet cf = std::make_pair(cch, i); + if(m_queue.contains_with_bounds_check(Gate(cf))) + m_queue.erase(Gate(cf)); + } + } + + for(const Facet& f : boundary_facets) + { + const Facet mf = m_dt.mirror_facet(f); // boundary facets have incident cells in the CZ + if(m_queue.contains_with_bounds_check(Gate(mf))) + m_queue.erase(Gate(mf)); + } + + visitor.before_Steiner_point_insertion(*this, steiner_point); + + // Actual insertion of the Steiner point + Vertex_handle vh = m_dt.insert(steiner_point, lt, conflict_cell, li, lj); + vh->info() = DEFAULT; + + visitor.after_Steiner_point_insertion(*this, vh); + + std::vector new_cells; + new_cells.reserve(32); + m_dt.incident_cells(vh, std::back_inserter(new_cells)); + for(const Cell_handle& ch : new_cells) + { + // std::cout << "new cell has time stamp " << ch->time_stamp() << std::endl; + ch->info().is_outside = m_dt.is_infinite(ch); + } + + // Push all new boundary facets to the queue. + // It is not performed by looking at the facets on the boundary of the conflict zones + // because we need to handle internal facets, infinite facets, and also more subtle changes + // such as a new cell being marked inside which now creates a boundary + // with its incident "outside" flagged cell. + for(Cell_handle ch : new_cells) + { + for(int i=0; i<4; ++i) + { + if(m_dt.is_infinite(ch, i)) + continue; + + const Cell_handle nh = ch->neighbor(i); + if(nh->info().is_outside == ch->info().is_outside) // not on the boundary + continue; + + const Facet boundary_f = std::make_pair(ch, i); + if(ch->info().is_outside) + push_facet(boundary_f); + else + push_facet(m_dt.mirror_facet(boundary_f)); + } + } + } + else + { + // tag neighbor as OUTSIDE + neighbor->info().is_outside = true; + + // for each finite facet of neighbor, push it to the queue + for(int i=0; i<4; ++i) + { + const Facet neighbor_f = std::make_pair(neighbor, i); + push_facet(neighbor_f); + } + } + } // while(!queue.empty()) + + visitor.on_flood_fill_end(*this); + + // Check that no useful facet has been ignored + CGAL_postcondition_code(for(auto fit=m_dt.finite_facets_begin(), fend=m_dt.finite_facets_end(); fit!=fend; ++fit) {) + CGAL_postcondition_code( if(fit->first->info().is_outside == fit->first->neighbor(fit->second)->info().is_outside) continue;) + CGAL_postcondition_code( Facet f = *fit;) + CGAL_postcondition_code( if(!fit->first->info().is_outside) f = m_dt.mirror_facet(f);) + CGAL_postcondition( facet_status(f) == IRRELEVANT); + CGAL_postcondition_code(}) + } + +private: + bool is_non_manifold(Vertex_handle v) const + { + CGAL_precondition(!m_dt.is_infinite(v)); + + bool is_non_manifold = false; + + std::vector inc_cells; + inc_cells.reserve(64); + m_dt.incident_cells(v, std::back_inserter(inc_cells)); + + // Flood one inside and outside CC. + // Process both an inside and an outside CC to also detect edge pinching. + // If there are still unprocessed afterwards, there is a non-manifoldness issue. + // + // Squat the conflict cell data to mark visits + Cell_handle inside_start = Cell_handle(); + Cell_handle outside_start = Cell_handle(); + + for(Cell_handle ic : inc_cells) + { + ic->tds_data().clear(); + if(ic->info().is_outside) + outside_start = ic; + else if(inside_start == Cell_handle()) + inside_start = ic; + } + + // fully inside / outside + if(inside_start == Cell_handle() || outside_start == Cell_handle()) + return false; + + std::stack cells_to_visit; + cells_to_visit.push(inside_start); + cells_to_visit.push(outside_start); + while(!cells_to_visit.empty()) + { + Cell_handle curr_c = cells_to_visit.top(); + cells_to_visit.pop(); + + if(curr_c->tds_data().processed()) + continue; + curr_c->tds_data().mark_processed(); + + int v_pos = -1; + CGAL_assertion_code(bool res = ) curr_c->has_vertex(v, v_pos); + CGAL_assertion(res); + + for(int j=0; j<4; ++j) + { + if(j == v_pos) + continue; + + Cell_handle neigh_c = curr_c->neighbor(j); + CGAL_assertion(neigh_c->has_vertex(v)); + + if(neigh_c->tds_data().processed() || + neigh_c->info().is_outside != curr_c->info().is_outside) // do not cross the boundary + continue; + + cells_to_visit.push(neigh_c); + } + } + + for(Cell_handle ic : inc_cells) + { + if(ic->tds_data().is_clear()) // <=> unvisited cell + { + is_non_manifold = true; + break; + } + } + + // reset the conflict flags + for(Cell_handle ic : inc_cells) + ic->tds_data().clear(); + + return is_non_manifold; + } + + bool is_non_manifold(Cell_handle c) const + { + CGAL_precondition(!m_dt.is_infinite(c)); + + for(int i=0; i<4; ++i) + { + Vertex_handle v = c->vertex(i); + if(is_non_manifold(v)) + return true; + } + + return false; + } + + bool is_manifold() const + { + // Not the best complexity, but it's not important: this function is purely for information + // Better complexity --> see PMP::non_manifold_vertices + throw + for(const Vertex_handle v : m_dt.finite_vertex_handles()) + if(is_non_manifold(v)) + return true; + + return false; + } + + // Remove bbox vertices, if they are not necessary (i.e., no "inside" incident cell) + // This is to try and avoid having long tets with bbox vertices being tagged "inside" as part + // of the manifold re-tagging + bool remove_bbox_vertices() + { + bool do_remove = true; + auto vit = m_dt.finite_vertices_begin(); + for(std::size_t i=0; i<8; ++i) + { + Vertex_handle v = vit++; + + std::vector inc_cells; + inc_cells.reserve(64); + m_dt.finite_incident_cells(v, std::back_inserter(inc_cells)); + + for(Cell_handle c : inc_cells) + { + if(!c->info().is_outside) + { + do_remove = false; + break; + } + } + + if(!do_remove) + break; + } + + std::cout << "Removing bbox vertices? " << do_remove << std::endl; + if(!do_remove) + return false; + + vit = m_dt.finite_vertices_begin(); + for(std::size_t i=0; i<8; ++i) + { + Vertex_handle v = vit++; + m_dt.remove(v); + } + + return true; + } + + // Not the best complexity, but it's very cheap compared to the rest of the algorithm. + void make_manifold() + { + namespace PMP = Polygon_mesh_processing; + + // This seems more harmful than useful after the priority queue has been introduced since + // it adds a lot of flat cells into the triangulation, which then get added to the mesh + // during manifoldness fixing. +// remove_bbox_vertices(); + + std::stack non_manifold_vertices; // @todo sort somehow? + for(Vertex_handle v : m_dt.finite_vertex_handles()) + { + if(is_non_manifold(v)) + non_manifold_vertices.push(v); + } + + // Some lambdas for the comparer + auto has_artificial_vertex = [](Cell_handle c) -> bool + { + for(int i=0; i<4; ++i) + if(c->vertex(i)->info() == BBOX_VERTEX || c->vertex(i)->info() == SEED_VERTEX) + return true; + + return false; + }; + + auto is_on_boundary = [](Cell_handle c, int i) -> bool + { + return (c->info().is_outside != c->neighbor(i)->info().is_outside); + }; + + auto count_boundary_facets = [&](Cell_handle c, Vertex_handle v) -> int + { + const int v_index_in_c = c->index(v); + int boundary_facets = 0; + for(int i=0; i<3; ++i) // also take into account the opposite facet? + { + if(i == v_index_in_c) + continue; + + boundary_facets += is_on_boundary(c, i); + } + + return boundary_facets; + }; + + // longest edge works better +// auto sq_circumradius = [&](Cell_handle c) -> FT +// { +// const Point_3& cc = circumcenter(c); +// return geom_traits().compute_squared_distance_3_object()(m_dt.point(c, 0), cc); +// }; + + auto sq_longest_edge = [&](Cell_handle c) -> FT + { + return (std::max)({ squared_distance(m_dt.point(c, 0), m_dt.point(c, 1)), + squared_distance(m_dt.point(c, 0), m_dt.point(c, 2)), + squared_distance(m_dt.point(c, 0), m_dt.point(c, 3)), + squared_distance(m_dt.point(c, 1), m_dt.point(c, 2)), + squared_distance(m_dt.point(c, 3), m_dt.point(c, 3)), + squared_distance(m_dt.point(c, 2), m_dt.point(c, 3)) }); + }; + +#ifdef CGAL_AW3_DEBUG_MANIFOLDNESS + std::cout << non_manifold_vertices.size() << " initial NMV" << std::endl; +#endif + + while(!non_manifold_vertices.empty()) + { +#ifdef CGAL_AW3_DEBUG_MANIFOLDNESS + std::cout << non_manifold_vertices.size() << " NMV in queue" << std::endl; +#endif + + Vertex_handle v = non_manifold_vertices.top(); + non_manifold_vertices.pop(); + +#ifdef CGAL_AW3_DEBUG_MANIFOLDNESS + std::cout << "·"; +#endif + + if(!is_non_manifold(v)) + continue; + + // Prioritize: + // - cells without bbox vertices + // - cells that already have a large number of boundary facets + // - small cells when equal number of boundary facets + // @todo give topmost priority to cells with > 1 non-manifold vertex? + auto comparer = [&](Cell_handle l, Cell_handle r) -> bool + { + if(has_artificial_vertex(l)) + return false; + if(has_artificial_vertex(r)) + return true; + + const int l_bf_count = count_boundary_facets(l, v); + const int r_bf_count = count_boundary_facets(r, v); + if(l_bf_count != r_bf_count) + return l_bf_count > r_bf_count; + + return sq_longest_edge(l) < sq_longest_edge(r); + }; + + std::vector inc_cells; + inc_cells.reserve(64); + m_dt.finite_incident_cells(v, std::back_inserter(inc_cells)); + +#define CGAL_AW3_USE_BRUTE_FORCE_MUTABLE_PRIORITY_QUEUE +#ifndef CGAL_AW3_USE_BRUTE_FORCE_MUTABLE_PRIORITY_QUEUE + std::sort(inc_cells.begin(), inc_cells.end(), comparer); // sort once +#endif + + for(auto cit=inc_cells.begin(), cend=inc_cells.end(); cit!=cend; ++cit) + { +#ifdef CGAL_AW3_USE_BRUTE_FORCE_MUTABLE_PRIORITY_QUEUE + // sort at every iteration since the number of boundary facets evolves + std::sort(cit, cend, comparer); +#endif + Cell_handle ic = *cit; + CGAL_assertion(!m_dt.is_infinite(ic)); + + // This is where new material is added + ic->info().is_outside = false; + +#ifdef CGAL_AW3_DEBUG_DUMP_EVERY_STEP + static int i = 0; + std::string step_name = "results/steps_manifold/step" + std::to_string(static_cast(i++)) + ".off"; + dump_triangulation_faces(step_name, true /*only_boundary_faces*/); +#endif + + // @speed could update the manifold status while tagging + if(!is_non_manifold(v)) + break; + } + + CGAL_assertion(!is_non_manifold(v)); + + std::vector adj_vertices; + adj_vertices.reserve(64); + m_dt.finite_adjacent_vertices(v, std::back_inserter(adj_vertices)); + + for(Vertex_handle nv : adj_vertices) + if(is_non_manifold(nv)) + non_manifold_vertices.push(nv); + } + + CGAL_assertion_code(for(Vertex_handle v : m_dt.finite_vertex_handles())) + CGAL_assertion(!is_non_manifold(v)); + } + +private: + void check_queue_sanity() + { + std::cout << "Check queue sanity..." << std::endl; + std::vector queue_gates; + Gate previous_top_gate = m_queue.top(); + while(!m_queue.empty()) + { + const Gate& current_gate = m_queue.top(); + queue_gates.push_back(current_gate); + const Facet& current_f = current_gate.facet(); + const Cell_handle ch = current_f.first; + const int id = current_f.second; + const Point_3& p0 = m_dt.point(ch, (id+1)&3); + const Point_3& p1 = m_dt.point(ch, (id+2)&3); + const Point_3& p2 = m_dt.point(ch, (id+3)&3); + const FT sqr = geom_traits().compute_squared_radius_3_object()(p0, p1, p2); + + std::cout << "At Facet with VID " << get(Gate_ID_PM
(), current_gate) << std::endl; + + if(current_gate.priority() != sqr) + std::cerr << "Error: facet in queue has wrong priority" << std::endl; + + if(Less_gate()(current_gate, previous_top_gate)) + std::cerr << "Error: current gate has higher priority than the previous top" << std::endl; + + previous_top_gate = current_gate; + + m_queue.pop(); + } + std::cout << "End sanity check" << std::endl; + + // Rebuild + CGAL_assertion(m_queue.empty()); + for(const auto& g : queue_gates) + m_queue.push(g); // no need for a resize here since the vector capacity is unchanged + } + + void dump_triangulation_faces(const std::string filename, + bool only_boundary_faces = false) + { + std::stringstream vertices_ss; + vertices_ss.precision(17); + + std::stringstream facets_ss; + facets_ss.precision(17); + + std::unordered_map vertex_to_id; + std::size_t nv = 0; + std::size_t nf = 0; + + for(auto fit=m_dt.finite_facets_begin(), fend=m_dt.finite_facets_end(); fit!=fend; ++fit) + { + Cell_handle c = fit->first; + int s = fit->second; + + Cell_handle nc = c->neighbor(s); + if(only_boundary_faces && (c->info().is_outside == nc->info().is_outside)) + continue; + + std::array ids; + for(std::size_t pos=0; pos<3; ++pos) + { + Vertex_handle v = c->vertex((s+pos+1)&3); + auto insertion_res = vertex_to_id.emplace(v, nv); + if(insertion_res.second) + { + vertices_ss << m_dt.point(v) << "\n"; + ++nv; + } + + ids[pos] = insertion_res.first->second; + } + + facets_ss << "3 " << ids[0] << " " << ids[1] << " " << ids[2] << "\n"; + ++nf; + } + + std::ofstream out(filename.c_str()); + out << "OFF\n" << nv << " " << nf << " 0\n"; + out << vertices_ss.str() << "\n" << facets_ss.str() << std::endl; + } +}; + +} // namespace internal +} // namespace Alpha_wraps_3 +} // namespace CGAL + +#endif // CGAL_ALPHA_WRAP_3_INTERNAL_ALPHA_WRAP_3_H diff -Nru cgal-5.4.1/include/CGAL/Alpha_wrap_3/internal/Alpha_wrap_AABB_traits.h cgal-5.5/include/CGAL/Alpha_wrap_3/internal/Alpha_wrap_AABB_traits.h --- cgal-5.4.1/include/CGAL/Alpha_wrap_3/internal/Alpha_wrap_AABB_traits.h 1970-01-01 00:00:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Alpha_wrap_3/internal/Alpha_wrap_AABB_traits.h 2022-07-13 19:04:18.000000000 +0000 @@ -0,0 +1,298 @@ +// Copyright (c) 2019-2022 Google LLC (USA). +// All rights reserved. +// +// This file is part of CGAL (www.cgal.org). +// +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Alpha_wrap_3/include/CGAL/Alpha_wrap_3/internal/Alpha_wrap_AABB_traits.h $ +// $Id: Alpha_wrap_AABB_traits.h 3a64952 2022-05-24T14:31:00+02:00 Mael Rouxel-Labbé +// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial +// +// Author(s) : Pierre Alliez +// Cedric Portaneri, +// Mael Rouxel-Labbé +// Andreas Fabri +// Michael Hemmer +// +#ifndef CGAL_ALPHA_WRAP_3_INTERNAL_ALPHA_WRAP_AABB_TRAITS_H +#define CGAL_ALPHA_WRAP_3_INTERNAL_ALPHA_WRAP_AABB_TRAITS_H + +#include + +#include + +#include +#include +#include + +namespace CGAL { +namespace Alpha_wraps_3 { +namespace internal { + +template +struct Tetrahedron_with_outside_info +{ + using Kernel = K; + using Tetrahedron_3 = typename Kernel::Tetrahedron_3; + using Triangle_3 = typename Kernel::Triangle_3; + + template + Tetrahedron_with_outside_info(const CellHandle ch, const K& k) + { + typename K::Construct_bbox_3 bbox = k.construct_bbox_3_object(); + typename K::Construct_tetrahedron_3 tetrahedron = k.construct_tetrahedron_3_object(); + typename K::Construct_triangle_3 triangle = k.construct_triangle_3_object(); + + m_tet = tetrahedron(ch->vertex(0)->point(), ch->vertex(1)->point(), + ch->vertex(2)->point(), ch->vertex(3)->point()); + m_bbox = bbox(m_tet); + + for(int i=0; i<4; ++i) + { + if(ch->neighbor(i)->info().is_outside) + m_b.set(i, true); + + m_triangles[i] = triangle(ch->vertex((i+1)& 3)->point(), + ch->vertex((i+2)& 3)->point(), + ch->vertex((i+3)& 3)->point()); + m_tbox[i] = bbox(m_triangles[i]); + } + } + + Tetrahedron_with_outside_info& operator=(const Tetrahedron_with_outside_info& rhs) = default; + + friend std::ostream& operator<<(std::ostream& os, const Tetrahedron_with_outside_info& t) + { + os << t.m_tet; + return os; + } + + Tetrahedron_3 m_tet; + Bbox_3 m_bbox; + std::array m_tbox; + std::array m_triangles; + std::bitset<4> m_b; +}; + +template +class Ball_3 + : private K::Sphere_3 +{ + using FT = typename K::FT; + using Point_3 = typename K::Point_3; + using Sphere_3 = typename K::Sphere_3; + +public: + explicit Ball_3(const Sphere_3& s) : Sphere_3(s) { } + +public: + const Sphere_3& boundary() const { return static_cast(*this); } +}; + +template +class Alpha_wrap_AABB_traits + : public GT +{ +public: + using Ball_3 = internal::Ball_3; + +public: + Alpha_wrap_AABB_traits(const GT& gt = GT()) : GT(gt) { } + +public: + class Construct_ball_3 + { + using FT = typename GT::FT; + using Point_3 = typename GT::Point_3; + using Ball_3 = internal::Ball_3; + + const GT& m_base_traits; + +public: + Construct_ball_3(const GT& base_traits) : m_base_traits(base_traits) { } + + Ball_3 operator()(const Point_3& p, const FT sqr) + { + return Ball_3(m_base_traits.construct_sphere_3_object()(p, sqr)); + } + }; + + // Enrich the base's Do_intersect_3 with Tetrahedron_with_outside_info and Ball_3 overloads + class Do_intersect_3 + : public GT::Do_intersect_3 + { + using Base = typename GT::Do_intersect_3; + + using Point_3 = typename GT::Point_3; + using Segment_3 = typename GT::Segment_3; + using Triangle_3 = typename GT::Triangle_3; + using Ball_3 = internal::Ball_3; + + const GT& m_base_traits; + +public: + Do_intersect_3(const GT& base_traits) + : Base(base_traits.do_intersect_3_object()), + m_base_traits(base_traits) + { } + + using Base::operator(); + + // ====== + // Ball_3 + + bool operator()(const Ball_3& ball, + const Point_3& p) const + { + return !m_base_traits.has_on_unbounded_side_3_object()(ball.boundary(), p); + } + + bool operator()(const Ball_3& ball, + const Segment_3& s) const + { + typename GT::Construct_bbox_3 bbox = m_base_traits.construct_bbox_3_object(); + typename GT::Construct_vertex_3 vertex = m_base_traits.construct_vertex_3_object(); + typename GT::Has_on_bounded_side_3 has_on_bounded_side = m_base_traits.has_on_bounded_side_3_object(); + + if(!do_overlap(bbox(ball.boundary()), bbox(s))) + return false; + + if(Base::operator()(ball.boundary(), s)) + return true; + + return has_on_bounded_side(ball.boundary(), vertex(s, 0)); + } + + bool operator()(const Ball_3& ball, + const Triangle_3& tr) const + { + typename GT::Construct_bbox_3 bbox = m_base_traits.construct_bbox_3_object(); + typename GT::Construct_vertex_3 vertex = m_base_traits.construct_vertex_3_object(); + typename GT::Has_on_bounded_side_3 has_on_bounded_side = m_base_traits.has_on_bounded_side_3_object(); + + if(!do_overlap(bbox(ball.boundary()), bbox(tr))) + return false; + + if(Base::operator()(ball.boundary(), tr)) + return true; + + return has_on_bounded_side(ball.boundary(), vertex(tr, 0)); + } + + bool operator()(const Ball_3& ball, + const CGAL::Bbox_3& bb) const + { + typename GT::Construct_bbox_3 bbox = m_base_traits.construct_bbox_3_object(); + typename GT::Construct_point_3 point = m_base_traits.construct_point_3_object(); + typename GT::Has_on_bounded_side_3 has_on_bounded_side = m_base_traits.has_on_bounded_side_3_object(); + + if(!do_overlap(bbox(ball.boundary()), bb)) + return false; + + if(Base::operator()(ball.boundary(), bb)) + return true; + + const Point_3 bbp = point(bb.xmin(), bb.ymin(), bb.zmin()); + + return has_on_bounded_side(ball.boundary(), bbp); + } + + // ====== + // Tetrahedron_with_outside_info + + template + bool operator()(const Tetrahedron_with_outside_info& q, + const Point_3& p) const + { + typename GT::Construct_bbox_3 bbox = m_base_traits.construct_bbox_3_object(); + + const CGAL::Bbox_3 pbox = bbox(p); + if(!do_overlap(q.m_bbox, pbox)) + return false; + + for(int i=0; i<4; ++i) + { + if(!q.m_b.test(i) && do_overlap(q.m_tbox[i], pbox) && Base::operator()(q.m_triangles[i], p)) + return true; + } + + return m_base_traits.has_on_bounded_side_3_object()(q.m_tet, p); + } + + template + bool operator()(const Tetrahedron_with_outside_info& q, + const Segment_3& s) const + { + typename GT::Construct_bbox_3 bbox = m_base_traits.construct_bbox_3_object(); + typename GT::Construct_vertex_3 vertex = m_base_traits.construct_vertex_3_object(); + + const CGAL::Bbox_3 sbox = bbox(s); + if(!do_overlap(q.m_bbox, sbox)) + return false; + + for(int i=0; i<4; ++i) + { + if(!q.m_b.test(i) && do_overlap(q.m_tbox[i], sbox) && Base::operator()(q.m_triangles[i], s)) + return true; + } + + return m_base_traits.has_on_bounded_side_3_object()(q.m_tet, vertex(s, 0)); + } + + template + bool operator()(const Tetrahedron_with_outside_info& q, + const Triangle_3& tr) const + { + typename GT::Construct_bbox_3 bbox = m_base_traits.construct_bbox_3_object(); + typename GT::Construct_vertex_3 vertex = m_base_traits.construct_vertex_3_object(); + + const CGAL::Bbox_3 tbox = bbox(tr); + if(!do_overlap(q.m_bbox, tbox)) + return false; + + for(int i=0; i<4; ++i) + { + if(!q.m_b.test(i) && do_overlap(q.m_tbox[i], tbox) && Base::operator()(q.m_triangles[i], tr)) + return true; + } + + return m_base_traits.has_on_bounded_side_3_object()(q.m_tet, vertex(tr, 0)); + } + + template + bool operator()(const Tetrahedron_with_outside_info& q, + const CGAL::Bbox_3& bb) const + { + if(!do_overlap(q.m_bbox, bb)) + return false; + + for(int i=0; i<4; ++i) + { + // this overload of do_intersect() must not filter based on q.m_b because + // it is called from the AABB_tree's traversal with a node's bounding box, + // and the fact that a facet is incident to an outside cell is irrelevant + // for the hierarchy of bounding boxes of the primitives. + if(do_overlap(q.m_tbox[i], bb) && Base::operator()(q.m_triangles[i], bb)) + return true; + } + + const Point_3 bbp = m_base_traits.construct_point_3_object()(bb.xmin(), bb.ymin(), bb.zmin()); + return m_base_traits.has_on_bounded_side_3_object()(q.m_tet, bbp); + } + }; + + Construct_ball_3 construct_ball_3_object() const + { + return Construct_ball_3(static_cast(*this)); + } + + Do_intersect_3 do_intersect_3_object() const + { + return Do_intersect_3(static_cast(*this)); + } +}; + +} // namespace internal +} // namespace Alpha_wraps_3 +} // namespace CGAL + +#endif // CGAL_ALPHA_WRAP_3_INTERNAL_ALPHA_WRAP_AABB_TRAITS_H diff -Nru cgal-5.4.1/include/CGAL/Alpha_wrap_3/internal/gate_priority_queue.h cgal-5.5/include/CGAL/Alpha_wrap_3/internal/gate_priority_queue.h --- cgal-5.4.1/include/CGAL/Alpha_wrap_3/internal/gate_priority_queue.h 1970-01-01 00:00:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Alpha_wrap_3/internal/gate_priority_queue.h 2022-07-13 19:04:18.000000000 +0000 @@ -0,0 +1,101 @@ +// Copyright (c) 2019-2022 Google LLC (USA). +// All rights reserved. +// +// This file is part of CGAL (www.cgal.org). +// +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Alpha_wrap_3/include/CGAL/Alpha_wrap_3/internal/gate_priority_queue.h $ +// $Id: gate_priority_queue.h 57cf9e0 2022-04-19T14:55:15+02:00 Mael Rouxel-Labbé +// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial +// +// Author(s) : Pierre Alliez +// Cedric Portaneri, +// Mael Rouxel-Labbé +// Andreas Fabri +// Michael Hemmer +// +#ifndef CGAL_ALPHA_WRAP_3_INTERNAL_GATE_PRIORITY_QUEUE_H +#define CGAL_ALPHA_WRAP_3_INTERNAL_GATE_PRIORITY_QUEUE_H + +#include + +#include + +#include +#include + +namespace CGAL { +namespace Alpha_wraps_3 { +namespace internal { + +// Represents an alpha-traversable facet in the mutable priority queue +template +class Gate +{ + using Facet = typename DT3::Facet; + using FT = typename DT3::Geom_traits::FT; + +private: + Facet m_facet; + FT m_priority; // circumsphere sq_radius + bool m_is_artificial_facet; + +public: + // Constructors + Gate(const Facet& facet, + const FT& priority, + const bool is_artificial_facet) + : + m_facet(facet), + m_priority(priority), + m_is_artificial_facet(is_artificial_facet) + { + CGAL_assertion(priority >= 0); + } + + // This overload is only used for contains() and erase(), priority and bbox flag are dummy value + Gate(const Facet& facet) + : Gate(facet, 0, false) + { } + +public: + const Facet& facet() const { return m_facet; } + const FT& priority() const { return m_priority; } + bool is_artificial_facet() const { return m_is_artificial_facet; } +}; + +struct Less_gate +{ + template + bool operator()(const Gate& a, const Gate& b) const + { + // @fixme? make it a total order by comparing addresses if both gates are bbox facets + if(a.is_artificial_facet()) + return true; + else if(b.is_artificial_facet()) + return false; + return a.priority() > b.priority(); + } +}; + +template +struct Gate_ID_PM +{ + using key_type = Gate; + using value_type = std::size_t; + using reference = std::size_t; + using category = boost::readable_property_map_tag; + + inline friend value_type get(Gate_ID_PM, const key_type& k) + { + using Facet = typename DT3::Facet; + + const Facet& f = k.facet(); + return (4 * f.first->time_stamp() + f.second); + } +}; + +} // namespace internal +} // namespace Alpha_wraps_3 +} // namespace CGAL + +#endif // CGAL_ALPHA_WRAP_3_INTERNAL_GATE_PRIORITY_QUEUE_H diff -Nru cgal-5.4.1/include/CGAL/Alpha_wrap_3/internal/geometry_utils.h cgal-5.5/include/CGAL/Alpha_wrap_3/internal/geometry_utils.h --- cgal-5.4.1/include/CGAL/Alpha_wrap_3/internal/geometry_utils.h 1970-01-01 00:00:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Alpha_wrap_3/internal/geometry_utils.h 2022-07-13 19:04:18.000000000 +0000 @@ -0,0 +1,161 @@ +// Copyright (c) 2019-2022 Google LLC (USA). +// All rights reserved. +// +// This file is part of CGAL (www.cgal.org). +// +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Alpha_wrap_3/include/CGAL/Alpha_wrap_3/internal/geometry_utils.h $ +// $Id: geometry_utils.h 57cf9e0 2022-04-19T14:55:15+02:00 Mael Rouxel-Labbé +// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial +// +// Author(s) : Pierre Alliez +// Cedric Portaneri, +// Mael Rouxel-Labbé +// Andreas Fabri +// Michael Hemmer +// +#ifndef CGAL_ALPHA_WRAP_3_INTERNAL_GEOMETRY_UTILS_H +#define CGAL_ALPHA_WRAP_3_INTERNAL_GEOMETRY_UTILS_H + +#include + +#include +#include + +namespace CGAL { +namespace Alpha_wraps_3 { +namespace internal { + +template +struct Orientation_of_circumcenter +{ + typedef typename K::Point_3 Point_3; + + typedef Orientation result_type; + + Orientation operator()(const Point_3& p, const Point_3& q, const Point_3& r, + const Point_3& ccp, const Point_3& ccq, const Point_3& ccr, const Point_3& ccs) const + { + Point_3 cc = circumcenter(ccp, ccq, ccr, ccs); + return orientation(p, q, r, cc); + } +}; + +template +bool +less_squared_radius_of_min_empty_sphere(typename Dt::Geom_traits::FT sq_alpha, + const typename Dt::Facet& fh, + const Dt& dt) +{ + using Cell_handle = typename Dt::Cell_handle; + using Point = typename Dt::Point; + + using CK = typename Dt::Geom_traits; + using Exact_kernel = typename Exact_kernel_selector::Exact_kernel; + using Approximate_kernel = Simple_cartesian; + using C2A = Cartesian_converter; + using C2E = typename Exact_kernel_selector::C2E; + + using Orientation_of_circumcenter = Filtered_predicate, + Orientation_of_circumcenter, + C2E, C2A>; + + Orientation_of_circumcenter orientation_of_circumcenter; + + const Cell_handle c = fh.first; + const int ic = fh.second; + const Cell_handle n = c->neighbor(ic); + + const Point& p1 = dt.point(c, Dt::vertex_triple_index(ic,0)); + const Point& p2 = dt.point(c, Dt::vertex_triple_index(ic,1)); + const Point& p3 = dt.point(c, Dt::vertex_triple_index(ic,2)); + + // This is not actually possible in the context of alpha wrapping, but keeping it for genericity + // and because it does not cost anything. + if(dt.is_infinite(n)) + { + Orientation ori = orientation_of_circumcenter(p1, p2, p3, + dt.point(c, 0), dt.point(c, 1), + dt.point(c, 2), dt.point(c, 3)); + + if(ori == POSITIVE) + { + Comparison_result cr = compare_squared_radius(p1, p2, p3, sq_alpha); + return cr == LARGER; + } + else + { + Comparison_result cr = compare_squared_radius(dt.point(c, 0), dt.point(c, 1), + dt.point(c, 2), dt.point(c, 3), + sq_alpha); + return cr == LARGER; + } + } + + if(dt.is_infinite(c)) + { + Orientation ori = orientation_of_circumcenter(p1, p2, p3, + dt.point(n, 0), dt.point(n, 1), + dt.point(n, 2), dt.point(n, 3)); + + if(ori == NEGATIVE) + { + Comparison_result cr = compare_squared_radius(p1, p2, p3, sq_alpha); + return cr == LARGER; + } + else + { + Comparison_result cr = compare_squared_radius(dt.point(n, 0), dt.point(n, 1), + dt.point(n, 2), dt.point(n, 3), + sq_alpha); + return cr == LARGER; + } + } + + // both c and n are finite + if(orientation_of_circumcenter(p1, p2, p3, + dt.point(c, 0), dt.point(c, 1), dt.point(c, 2), dt.point(c, 3)) != + orientation_of_circumcenter(p1, p2, p3, + dt.point(n, 0), dt.point(n, 1), dt.point(n, 2), dt.point(n, 3))) + { + Comparison_result cr = compare_squared_radius(p1, p2, p3, sq_alpha); +#ifdef CGAL_AW3_DEBUG_TRAVERSABILITY + std::cout << "dual crosses the face; CR: " + << typename Dt::Geom_traits().compute_squared_radius_3_object()(p1, p2, p3) + << " sq alpha " << sq_alpha << std::endl; +#endif + return cr == LARGER; + } + else + { + Comparison_result cr = compare_squared_radius(dt.point(c, 0), dt.point(c, 1), + dt.point(c, 2), dt.point(c, 3), + sq_alpha); +#ifdef CGAL_AW3_DEBUG_TRAVERSABILITY + std::cout << "dual does not cross the face; CR(c): " + << typename Dt::Geom_traits().compute_squared_radius_3_object()(dt.point(c, 0), dt.point(c, 1), + dt.point(c, 2), dt.point(c, 3)) + << " sq alpha " << sq_alpha << std::endl; +#endif + + if(cr != LARGER) + return false; + + cr = compare_squared_radius(dt.point(n, 0), dt.point(n, 1), + dt.point(n, 2), dt.point(n, 3), + sq_alpha); +#ifdef CGAL_AW3_DEBUG_TRAVERSABILITY + std::cout << "dual does not cross the face; CR(n): " + << typename Dt::Geom_traits().compute_squared_radius_3_object()(dt.point(n, 0), dt.point(n, 1), + dt.point(n, 2), dt.point(n, 3)) + << " sq alpha " << sq_alpha << std::endl; +#endif + + return cr == LARGER; + } +} + +} // namespace internal +} // namespace Alpha_wraps_3 +} // namespace CGAL + +#endif // CGAL_ALPHA_WRAP_3_INTERNAL_GEOMETRY_UTILS_H diff -Nru cgal-5.4.1/include/CGAL/Alpha_wrap_3/internal/offset_intersection.h cgal-5.5/include/CGAL/Alpha_wrap_3/internal/offset_intersection.h --- cgal-5.4.1/include/CGAL/Alpha_wrap_3/internal/offset_intersection.h 1970-01-01 00:00:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Alpha_wrap_3/internal/offset_intersection.h 2022-07-13 19:04:18.000000000 +0000 @@ -0,0 +1,220 @@ +// Copyright (c) 2019-2022 Google LLC (USA). +// All rights reserved. +// +// This file is part of CGAL (www.cgal.org). +// +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Alpha_wrap_3/include/CGAL/Alpha_wrap_3/internal/offset_intersection.h $ +// $Id: offset_intersection.h 57cf9e0 2022-04-19T14:55:15+02:00 Mael Rouxel-Labbé +// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial +// +// Author(s) : Pierre Alliez +// Cedric Portaneri, +// Mael Rouxel-Labbé +// Andreas Fabri +// Michael Hemmer +// +#ifndef CGAL_ALPHA_WRAP_3_INTERNAL_OFFSET_INTERSECTION_H +#define CGAL_ALPHA_WRAP_3_INTERNAL_OFFSET_INTERSECTION_H + +#include + +#include + +#include + +namespace CGAL { +namespace Alpha_wraps_3 { +namespace internal { + +template +struct AABB_tree_oracle_helper; + +template +struct AABB_distance_oracle +{ + using FT = typename AABBTree::FT; + using Point_3 = typename AABBTree::Point; + + using AABB_helper = AABB_tree_oracle_helper; + + AABB_distance_oracle(const AABBTree& tree) : tree(tree) { } + + FT operator()(const Point_3& p) const + { + return approximate_sqrt(AABB_helper::squared_distance(p, tree)); + } + +private: + const AABBTree& tree; +}; + +// @todo even with EPECK, the precision cannot be 0 (otherwise it will not converge), +// thus exactness is pointless. Might as well use a cheap kernel (e.g. SC), as long +// as there exists a mechanism to catch when the cheap kernel fails to converge (iterations? +// see also Tr_3::locate() or Mesh_3::Robust_intersection_traits_3.h) +template +class Offset_intersection +{ + using FT = typename Kernel::FT; + using Point_2 = typename Kernel::Point_2; + using Point_3 = typename Kernel::Point_3; + using Vector_3 = typename Kernel::Vector_3; + +public: + Offset_intersection(const DistanceOracle& oracle, + const FT& off, + const FT& prec, + const FT& lip) + : dist_oracle(oracle), offset(off), precision(prec), lipschitz(lip) + { } + + bool first_intersection(const Point_3& s, + const Point_3& t, + Point_3& output_pt) + { + source = s; + target = t; + seg_length = approximate_sqrt(squared_distance(s, t)); + seg_unit_v = (t - s) / seg_length; + const Point_2 p0 { 0, dist_oracle(source) }; + const Point_2 p1 { seg_length, dist_oracle(target) }; + + return recursive_dichotomic_search(p0, p1, output_pt); + } + +private: + Point_3 source; + Point_3 target; + FT seg_length; + Vector_3 seg_unit_v; + DistanceOracle dist_oracle; + FT offset; + FT precision; + FT lipschitz; + + template + bool recursive_dichotomic_search(const Point_2& s, const Point_2& t, + Point& output_pt) + { + if(CGAL::abs(s.x() - t.x()) < precision) + { + if(CGAL::abs(s.y() - offset) < precision) + { + const FT x_clamp = boost::algorithm::clamp(s.x(), FT{0}, seg_length); + output_pt = source + (seg_unit_v * x_clamp); + return true; + } + + return false; + } + + const bool sign_s = (s.y() > offset); + const bool sign_t = (t.y() > offset); + const FT gs_a = (sign_s) ? -lipschitz : lipschitz; + const FT gs_b = s.y() - (gs_a * s.x()); + const FT gt_a = (sign_t) ? lipschitz : -lipschitz; + + const FT gt_b = t.y() - (gt_a * t.x()); + FT ms = (offset - gs_b) / gs_a; + FT mt = (offset - gt_b) / gt_a; + + // early exit if there is no intersection + if(sign_s == sign_t) + { + FT ui = (gt_b - gs_b) / (gs_a - gt_a); + const FT gs_ui = (gs_a * ui) + gs_b; + if((sign_s && (gs_ui > offset)) || (!sign_s && (gs_ui < offset))) + { + if(CGAL::abs(s.y() - offset) < precision) + { + const FT x_clamp = boost::algorithm::clamp(s.x(), FT{0}, seg_length); + output_pt = source + (seg_unit_v * x_clamp); + return true; + } + else if(CGAL::abs(t.y() - offset) < precision) + { + const FT x_clamp = boost::algorithm::clamp(t.x(), FT{0}, seg_length); + output_pt = source + (seg_unit_v * x_clamp); + return true; + } + + return false; + } + else + { + ms = boost::algorithm::clamp(ms, FT{0}, seg_length); + ui = boost::algorithm::clamp(ui, FT{0}, seg_length); + mt = boost::algorithm::clamp(mt, FT{0}, seg_length); + const Point_2 ms_pt { ms, dist_oracle(source + (seg_unit_v * ms)) }; + const Point_2 ui_pt { ui, dist_oracle(source + (seg_unit_v * ui)) }; + const Point_2 mt_pt { mt, dist_oracle(source + (seg_unit_v * mt)) }; + + if(CGAL::abs(ms_pt.y() - offset) < precision) + { + const FT x_clamp = boost::algorithm::clamp(ms_pt.x(), FT{0}, seg_length); + output_pt = source + (seg_unit_v * x_clamp); + return true; + } + else if(CGAL::abs(ui_pt.y() - offset) < precision) + { + const FT x_clamp = boost::algorithm::clamp(ui_pt.x(), FT{0}, seg_length); + output_pt = source + (seg_unit_v * x_clamp); + return true; + } + else if(CGAL::abs(mt_pt.y() - offset) < precision) + { + const FT x_clamp = boost::algorithm::clamp(mt_pt.x(), FT{0}, seg_length); + output_pt = source + (seg_unit_v * x_clamp); + return true; + } + + return (recursive_dichotomic_search(ms_pt, ui_pt, output_pt) || + recursive_dichotomic_search(ui_pt, mt_pt, output_pt)); + } + } + else // there is an intersection + { + if(CGAL::abs(mt - ms) <= precision) // linear approximation + { + const FT fsft_a = (t.y() - s.y()) / (t.x() - s.x()); + const FT fsft_b = s.y() - fsft_a * s.x(); + FT m_fsft; + if(fsft_a == FT{0}) + { + if(CGAL::abs(s.y() - offset) < precision) + m_fsft = s.x(); + else + return false; + } + else + { + m_fsft = (offset - fsft_b) / fsft_a; + } + m_fsft = boost::algorithm::clamp(m_fsft, FT{0}, seg_length); + output_pt = source + (seg_unit_v * m_fsft); + return true; + } + else + { + FT m = (ms + mt) / FT{2}; + ms = boost::algorithm::clamp(ms, FT{0}, seg_length); + m = boost::algorithm::clamp(m, FT{0}, seg_length); + mt = boost::algorithm::clamp(mt, FT{0}, seg_length); + + const Point_2 ms_pt { ms, dist_oracle(source + (seg_unit_v * ms)) }; + const Point_2 m_pt { m, dist_oracle(source + (seg_unit_v * m)) }; + const Point_2 mt_pt { mt, dist_oracle(source + (seg_unit_v * mt)) }; + + return (recursive_dichotomic_search(ms_pt, m_pt, output_pt) || + recursive_dichotomic_search(m_pt, mt_pt, output_pt)); + } + } + } +}; + +} // namespace internal +} // namespace Alpha_wraps_3 +} // namespace CGAL + +#endif // CGAL_ALPHA_WRAP_3_INTERNAL_OFFSET_INTERSECTION_H diff -Nru cgal-5.4.1/include/CGAL/Alpha_wrap_3/internal/Oracle_base.h cgal-5.5/include/CGAL/Alpha_wrap_3/internal/Oracle_base.h --- cgal-5.4.1/include/CGAL/Alpha_wrap_3/internal/Oracle_base.h 1970-01-01 00:00:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Alpha_wrap_3/internal/Oracle_base.h 2022-07-13 19:04:18.000000000 +0000 @@ -0,0 +1,365 @@ +// Copyright (c) 2019-2022 Google LLC (USA). +// All rights reserved. +// +// This file is part of CGAL (www.cgal.org). +// +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Alpha_wrap_3/include/CGAL/Alpha_wrap_3/internal/Oracle_base.h $ +// $Id: Oracle_base.h 06053d2 2022-05-24T10:02:57+02:00 Mael Rouxel-Labbé +// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial +// +// Author(s) : Mael Rouxel-Labbé +// +#ifndef CGAL_ALPHA_WRAP_3_INTERNAL_ORACLE_BASE_H +#define CGAL_ALPHA_WRAP_3_INTERNAL_ORACLE_BASE_H + +#include + +#include + +#include +#include + +#include +#include + +namespace CGAL { +namespace Alpha_wraps_3 { +namespace internal { + +template +struct Default_traversal_traits +{ + using Projection_traits = CGAL::internal::AABB_tree::Projection_traits; + + template + using Do_intersect_traits = CGAL::internal::AABB_tree::Do_intersect_traits; + + template + using First_intersection_traits = CGAL::internal::AABB_tree::First_intersection_traits; +}; + +// Factorize the implementation of the functions calling the AABB tree +template +struct AABB_tree_oracle_helper +{ + using Self = AABB_tree_oracle_helper; + + using AABB_traits = typename AABBTree::AABB_traits; + using GT = typename AABB_traits::Geom_traits; + + using FT = typename AABB_traits::FT; + using Point_3 = typename AABB_traits::Point_3; + + template + static bool do_intersect(const Query& query, + const AABBTree& tree) + { + CGAL_precondition(!tree.empty()); + + using Do_intersect_traits = typename AABBTraversalTraits::template Do_intersect_traits; + + Do_intersect_traits traversal_traits(tree.traits()); + tree.traversal(query, traversal_traits); + return traversal_traits.is_intersection_found(); + } + + static Point_3 closest_point(const Point_3& p, + const AABBTree& tree) + { + CGAL_precondition(!tree.empty()); + + using Projection_traits = typename AABBTraversalTraits::Projection_traits; + + const auto& hint = tree.best_hint(p); + + Projection_traits projection_traits(hint.first, hint.second, tree.traits()); + tree.traversal(p, projection_traits); + return projection_traits.closest_point(); + } + + static FT squared_distance(const Point_3& p, + const AABBTree& tree) + { + CGAL_precondition(!tree.empty()); + + const Point_3 closest = Self::closest_point(p, tree); + return tree.traits().squared_distance_object()(p, closest); + } + + static bool first_intersection(const Point_3& p, const Point_3& q, Point_3& o, + const FT offset_size, + const FT intersection_precision, + const AABBTree& tree) + { + CGAL_precondition(!tree.empty()); + + using AABB_distance_oracle = internal::AABB_distance_oracle; + using Offset_intersection = internal::Offset_intersection; + + AABB_distance_oracle dist_oracle(tree); + Offset_intersection offset_intersection(dist_oracle, offset_size, intersection_precision, 1 /*lip*/); + return offset_intersection.first_intersection(p, q, o); + } +}; + +template // base oracle +class AABB_tree_oracle + : public BaseOracle +{ +protected: + using Geom_traits = GT; + using FT = typename GT::FT; + using Point_3 = typename GT::Point_3; + + // When building oracle stacks, there are copies of (empty) trees, which isn't possible, thus pointer + using AABB_tree = AABBTree; + using AABB_tree_ptr = std::shared_ptr; + using AABB_traits = typename AABB_tree::AABB_traits; + using AABB_traversal_traits = typename Default::Get >::type; + + using AABB_helper = AABB_tree_oracle_helper; + +public: + AABB_tree_oracle(const BaseOracle& base, + const GT& gt) + : BaseOracle(base), + m_gt(gt), + m_tree_ptr(std::make_shared()) + { } + + AABB_tree_oracle(const AABB_tree_oracle&) = default; + +public: + const Geom_traits& geom_traits() const { return m_gt; } + + AABB_tree& tree() { return *m_tree_ptr; } + const AABB_tree& tree() const { return *m_tree_ptr; } + BaseOracle& base() { return static_cast(*this); } + const BaseOracle& base() const { return static_cast(*this); } + + bool empty() const { return m_tree_ptr->empty(); } + bool do_call() const { return (!empty() || base().do_call()); } + +public: + typename AABB_tree::Bounding_box bbox() const + { + CGAL_precondition(do_call()); + + typename AABB_tree::Bounding_box bb; + + if(base().do_call()) + bb += base().bbox(); + + if(!empty()) + bb += tree().bbox(); + + return bb; + } + + template + bool do_intersect(const T& t) const + { + CGAL_precondition(do_call()); + + if(base().do_call() && base().do_intersect(t)) + return true; + + if(!empty()) + return AABB_helper::do_intersect(t, tree()); + + return false; + } + + FT squared_distance(const Point_3& p) const + { + CGAL_precondition(do_call()); + + if(base().do_call()) + { + if(!empty()) // both non empty + { + const FT base_sqd = base().squared_distance(p); + // @speed could do a smarter traversal, no need to search deeper than the current best + const FT this_sqd = AABB_helper::squared_distance(p, tree()); + return (std::min)(base_sqd, this_sqd); + } + else // this level is empty + { + return base().squared_distance(p); + } + } + else // empty base + { + return AABB_helper::squared_distance(p, tree()); + } + } + + Point_3 closest_point(const Point_3& p) const + { + CGAL_precondition(do_call()); + + if(base().do_call()) + { + if(!empty()) // both non empty + { + const Point_3 base_c = base().closest_point(p); + // @speed could do a smarter traversal, no need to search deeper than the current best + const Point_3 this_c = AABB_helper::closest_point(p, tree()); + return (compare_distance_to_point(p, base_c, this_c) == CGAL::SMALLER) ? base_c : this_c; + } + else // this level is empty + { + return base().closest_point(p); + } + } + else // empty base + { + return AABB_helper::closest_point(p, tree()); + } + } + + bool first_intersection(const Point_3& p, const Point_3& q, + Point_3& o, + const FT offset_size, + const FT intersection_precision) const + { + CGAL_precondition(do_call()); + + if(base().do_call()) + { + if(!empty()) // both non empty + { + Point_3 base_o; + bool base_b = base().first_intersection(p, q, base_o, offset_size, intersection_precision); + + if(base_b) // intersection found in base + { + // @speed could do a smarter traversal, no need to search deeper than the current best + Point_3 this_o; + bool this_b = AABB_helper::first_intersection(p, q, this_o, offset_size, intersection_precision, tree()); + if(this_b) + o = (compare_distance_to_point(p, base_o, this_o) == SMALLER) ? base_o : this_o; + else + o = base_o; + + return true; + } + else // no intersection found in non-empty base + { + return AABB_helper::first_intersection(p, q, o, offset_size, intersection_precision, tree()); + } + } + else // this level is empty + { + return base().first_intersection(p, q, o, offset_size, intersection_precision); + } + } + else // empty base + { + return AABB_helper::first_intersection(p, q, o, offset_size, intersection_precision, tree()); + } + } + + bool first_intersection(const Point_3& p, const Point_3& q, + Point_3& o, + const FT offset_size) const + { + return first_intersection(p, q, o, offset_size, 1e-2 * offset_size); + } + +protected: + Geom_traits m_gt; + AABB_tree_ptr m_tree_ptr; +}; + +// partial specialization, when there is no further oracle beneath in the stack. +// +// `int` is used to denote the absence of base rather than `void`, +// as to use the same constructor for both versions (thus requires a default construction) +template +class AABB_tree_oracle +{ +protected: + using Geom_traits = GT; + using FT = typename GT::FT; + using Point_3 = typename GT::Point_3; + + using AABB_tree = AABBTree; + using AABB_tree_ptr = std::shared_ptr; + using AABB_traits = typename AABB_tree::AABB_traits; + using AABB_traversal_traits = typename Default::Get >::type; + + using AABB_helper = AABB_tree_oracle_helper; + +public: + AABB_tree_oracle(const int, // to have a common constructor API between both versions + const GT& gt) + : m_gt(gt), m_tree_ptr(std::make_shared()) + { } + +public: + const Geom_traits& geom_traits() const { return m_gt; } + AABB_tree& tree() { return *m_tree_ptr; } + const AABB_tree& tree() const { return *m_tree_ptr; } + + bool empty() const { return m_tree_ptr->empty(); } + bool do_call() const { return !empty(); } + +public: + typename AABB_tree::Bounding_box bbox() const + { + CGAL_precondition(!empty()); + + return tree().bbox(); + } + + template + bool do_intersect(const T& t) const + { + CGAL_precondition(!empty()); + return AABB_helper::do_intersect(t, tree()); + } + + FT squared_distance(const Point_3& p) const + { + CGAL_precondition(!empty()); + return AABB_helper::squared_distance(p, tree()); + } + + Point_3 closest_point(const Point_3& p) const + { + CGAL_precondition(!empty()); + return AABB_helper::closest_point(p, tree()); + } + + bool first_intersection(const Point_3& p, const Point_3& q, Point_3& o, + const FT offset_size, const FT intersection_precision) const + { + CGAL_precondition(!empty()); + return AABB_helper::first_intersection(p, q, o, offset_size, intersection_precision, tree()); + } + + bool first_intersection(const Point_3& p, const Point_3& q, Point_3& o, const FT offset_size) const + { + CGAL_precondition(!empty()); + return AABB_helper::first_intersection(p, q, o, offset_size, 1e-2 * offset_size, tree()); + } + +private: + Geom_traits m_gt; + AABB_tree_ptr m_tree_ptr; +}; + +} // namespace internal +} // namespace Alpha_wraps_3 +} // namespace CGAL + +#endif // CGAL_ALPHA_WRAP_3_INTERNAL_ORACLE_BASE_H diff -Nru cgal-5.4.1/include/CGAL/Alpha_wrap_3/internal/oracles.h cgal-5.5/include/CGAL/Alpha_wrap_3/internal/oracles.h --- cgal-5.4.1/include/CGAL/Alpha_wrap_3/internal/oracles.h 1970-01-01 00:00:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Alpha_wrap_3/internal/oracles.h 2022-07-13 19:04:18.000000000 +0000 @@ -0,0 +1,25 @@ +// Copyright (c) 2019-2022 Google LLC (USA). +// All rights reserved. +// +// This file is part of CGAL (www.cgal.org). +// +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Alpha_wrap_3/include/CGAL/Alpha_wrap_3/internal/oracles.h $ +// $Id: oracles.h 57cf9e0 2022-04-19T14:55:15+02:00 Mael Rouxel-Labbé +// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial +// +// Author(s) : Mael Rouxel-Labbé +// +#ifndef CGAL_ALPHA_WRAP_3_INTERNAL_ORACLES_H +#define CGAL_ALPHA_WRAP_3_INTERNAL_ORACLES_H + +#include + +#include +#include + +#include +#include +#include +#include + +#endif // CGAL_ALPHA_WRAP_3_INTERNAL_ORACLES_H diff -Nru cgal-5.4.1/include/CGAL/Alpha_wrap_3/internal/Point_set_oracle.h cgal-5.5/include/CGAL/Alpha_wrap_3/internal/Point_set_oracle.h --- cgal-5.4.1/include/CGAL/Alpha_wrap_3/internal/Point_set_oracle.h 1970-01-01 00:00:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Alpha_wrap_3/internal/Point_set_oracle.h 2022-07-13 19:04:18.000000000 +0000 @@ -0,0 +1,126 @@ +// Copyright (c) 2019-2022 Google LLC (USA). +// All rights reserved. +// +// This file is part of CGAL (www.cgal.org). +// +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Alpha_wrap_3/include/CGAL/Alpha_wrap_3/internal/Point_set_oracle.h $ +// $Id: Point_set_oracle.h 9fbfd9a 2022-05-24T10:08:56+02:00 Mael Rouxel-Labbé +// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial +// +// Author(s) : Mael Rouxel-Labbé +// +#ifndef CGAL_ALPHA_WRAP_3_INTERNAL_POINT_SET_ORACLE_H +#define CGAL_ALPHA_WRAP_3_INTERNAL_POINT_SET_ORACLE_H + +#include + +#include +#include + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +namespace CGAL { +namespace Alpha_wraps_3 { +namespace internal { + +// Just some typedefs for readability +template +struct PS_oracle_traits +{ + using Geom_traits = Alpha_wrap_AABB_traits; // Wrap the kernel to add Ball_3 + custom Do_intersect_3 + + using Points = std::vector; + using PR_iterator = typename Points::const_iterator; + + using Primitive = AABB_primitive /*DPM*/, + Input_iterator_property_map /*RPM*/, + CGAL::Tag_false, // not external + CGAL::Tag_false>; // no caching + + using AABB_traits = CGAL::AABB_traits; + using AABB_tree = CGAL::AABB_tree; +}; + +template +class Point_set_oracle + : public AABB_tree_oracle::Geom_traits, + typename PS_oracle_traits::AABB_tree, + CGAL::Default, // Default_traversal_traits + BaseOracle> +{ + using PSOT = PS_oracle_traits; + using Base_GT = GT_; + +public: + using Geom_traits = typename PSOT::Geom_traits; + +private: + using Points = typename PSOT::Points; + using AABB_tree = typename PSOT::AABB_tree; + using Oracle_base = AABB_tree_oracle; + +private: + Points m_points; + +public: + // Constructors + Point_set_oracle() + : Oracle_base(BaseOracle(), Base_GT()) + { } + + Point_set_oracle(const BaseOracle& base_oracle, + const Base_GT& gt = Base_GT()) + : Oracle_base(base_oracle, gt) + { } + + Point_set_oracle(const Base_GT& gt, + const BaseOracle& base_oracle = BaseOracle()) + : Oracle_base(base_oracle, gt) + { } + +public: + // adds a range of points to the oracle + template + void add_point_set(const PointRange& points, + const CGAL_NP_CLASS& /*np*/ = CGAL::parameters::default_values()) + { + if(points.empty()) + { +#ifdef CGAL_AW3_DEBUG + std::cout << "Warning: Input is empty " << std::endl; +#endif + return; + } + + const std::size_t old_size = m_points.size(); + m_points.insert(std::cend(m_points), std::cbegin(points), std::cend(points)); + +#ifdef CGAL_AW3_DEBUG + std::cout << "Insert into AABB tree (points)..." << std::endl; +#endif + + this->tree().insert(std::next(std::cbegin(m_points), old_size), std::cend(m_points)); + + CGAL_postcondition(this->tree().size() == m_points.size()); + } +}; + +} // namespace internal +} // namespace Alpha_wraps_3 +} // namespace CGAL + +#endif // CGAL_ALPHA_WRAP_3_INTERNAL_POINT_SET_ORACLE_H diff -Nru cgal-5.4.1/include/CGAL/Alpha_wrap_3/internal/Segment_soup_oracle.h cgal-5.5/include/CGAL/Alpha_wrap_3/internal/Segment_soup_oracle.h --- cgal-5.4.1/include/CGAL/Alpha_wrap_3/internal/Segment_soup_oracle.h 1970-01-01 00:00:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Alpha_wrap_3/internal/Segment_soup_oracle.h 2022-07-13 19:04:18.000000000 +0000 @@ -0,0 +1,124 @@ +// Copyright (c) 2019-2022 Google LLC (USA). +// All rights reserved. +// +// This file is part of CGAL (www.cgal.org). +// +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Alpha_wrap_3/include/CGAL/Alpha_wrap_3/internal/Segment_soup_oracle.h $ +// $Id: Segment_soup_oracle.h 9fbfd9a 2022-05-24T10:08:56+02:00 Mael Rouxel-Labbé +// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial +// +// Author(s) : Mael Rouxel-Labbé +// +#ifndef CGAL_ALPHA_WRAP_3_INTERNAL_SEGMENT_SOUP_ORACLE_H +#define CGAL_ALPHA_WRAP_3_INTERNAL_SEGMENT_SOUP_ORACLE_H + +#include + +#include +#include + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +namespace CGAL { +namespace Alpha_wraps_3 { +namespace internal { + +// Just some typedefs for readability +template +struct SS_oracle_traits +{ + using Geom_traits = Alpha_wrap_AABB_traits; // Wrap the kernel to add Ball_3 + custom Do_intersect_3 + + using Segments = std::vector; + using SR_iterator = typename Segments::const_iterator; + + using Primitive = AABB_primitive, // DPM + CGAL::internal::Source_of_segment_3_iterator_property_map, // RPM + CGAL::Tag_false, // not external + CGAL::Tag_false>; // no caching + + using AABB_traits = CGAL::AABB_traits; + using AABB_tree = CGAL::AABB_tree; +}; + +template +class Segment_soup_oracle + : public AABB_tree_oracle::Geom_traits, + typename SS_oracle_traits::AABB_tree, + CGAL::Default, // Default_traversal_traits + BaseOracle> +{ + using SSOT = SS_oracle_traits; + using Base_GT = GT_; + +public: + using Geom_traits = typename SSOT::Geom_traits; + +private: + using Segments = typename SSOT::Segments; + using AABB_tree = typename SSOT::AABB_tree; + using Oracle_base = AABB_tree_oracle; + +private: + Segments m_segments; + +public: + // Constructors + Segment_soup_oracle() + : Oracle_base(BaseOracle(), Base_GT()) + { } + + Segment_soup_oracle(const BaseOracle& base_oracle, + const Base_GT& gt = Base_GT()) + : Oracle_base(base_oracle, gt) + { } + + Segment_soup_oracle(const Base_GT& gt, + const BaseOracle& base_oracle = BaseOracle()) + : Oracle_base(base_oracle, gt) + { } + +public: + template + void add_segment_soup(const SegmentRange& segments, + const CGAL_NP_CLASS& /*np*/ = CGAL::parameters::default_values()) + { + if(segments.empty()) + { +#ifdef CGAL_AW3_DEBUG + std::cout << "Warning: Input is empty " << std::endl; +#endif + return; + } + + const std::size_t old_size = m_segments.size(); + m_segments.insert(std::cend(m_segments), std::cbegin(segments), std::cend(segments)); + +#ifdef CGAL_AW3_DEBUG + std::cout << "Insert into AABB tree (segments)..." << std::endl; +#endif + this->tree().insert(std::next(std::cbegin(m_segments), old_size), std::cend(m_segments)); + + CGAL_postcondition(this->tree().size() == m_segments.size()); + } +}; + +} // namespace internal +} // namespace Alpha_wraps_3 +} // namespace CGAL + +#endif // CGAL_ALPHA_WRAP_3_INTERNAL_SEGMENT_SOUP_ORACLE_H diff -Nru cgal-5.4.1/include/CGAL/Alpha_wrap_3/internal/splitting_helper.h cgal-5.5/include/CGAL/Alpha_wrap_3/internal/splitting_helper.h --- cgal-5.4.1/include/CGAL/Alpha_wrap_3/internal/splitting_helper.h 1970-01-01 00:00:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Alpha_wrap_3/internal/splitting_helper.h 2022-07-13 19:04:18.000000000 +0000 @@ -0,0 +1,424 @@ +// Copyright (c) 2019-2022 Google LLC (USA). +// All rights reserved. +// +// This file is part of CGAL (www.cgal.org). +// +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Alpha_wrap_3/include/CGAL/Alpha_wrap_3/internal/splitting_helper.h $ +// $Id: splitting_helper.h 57cf9e0 2022-04-19T14:55:15+02:00 Mael Rouxel-Labbé +// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial +// +// Author(s) : Mael Rouxel-Labbé +// +#ifndef CGAL_ALPHA_WRAP_3_INTERNAL_SPLITTING_HELPER_H +#define CGAL_ALPHA_WRAP_3_INTERNAL_SPLITTING_HELPER_H + +#include + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +namespace CGAL { +namespace Alpha_wraps_3 { +namespace internal { + +// std::vector to property map +// Not using Pointer_property_map because the underlying range is empty initially and can change +template +struct Vector_property_map +{ + using Range = std::vector; + + using key_type = std::size_t; + using value_type = T; + using reference = value_type&; + using category = boost::read_write_property_map_tag; + + Vector_property_map() : m_range_ptr(std::make_shared()) { } + + inline friend void put(const Vector_property_map& map, const key_type& k, const value_type& v) + { + CGAL_precondition(map.m_range_ptr != nullptr); + + if(k >= map.m_range_ptr->size()) + map.m_range_ptr->resize(k+1); + + map.m_range_ptr->operator[](k) = v; + } + + inline friend reference get(const Vector_property_map& map, const key_type& k) + { + CGAL_precondition(map.m_range_ptr != nullptr); + return map.m_range_ptr->operator[](k); + } + + Range& range() { return *m_range_ptr; } + const Range& range() const { return *m_range_ptr; } + +private: + std::shared_ptr m_range_ptr; +}; + +// Same as the standard traversal traits, but for multiple primitives per datum: the final operation +// done on the datum is only performed once. +template +struct Splitter_traversal_traits +{ + // ----------------------------------------------------------------------------------------------- + class Projection_traits + : public CGAL::internal::AABB_tree::Projection_traits + { + using Base = CGAL::internal::AABB_tree::Projection_traits; + using Point = typename AABBTraits::Point_3; + using Primitive = typename AABBTraits::Primitive; + + std::unordered_set visited_data; + +public: + Projection_traits(const Point& hint, + const typename Primitive::Id& hint_primitive, + const AABBTraits& traits) + : Base(hint, hint_primitive, traits) + { } + + void intersection(const Point& query, const Primitive& primitive) + { + // check a datum only once + auto is_insert_successful = visited_data.insert(primitive.id().second/*unique input face ID*/); + if(!is_insert_successful.second) + return; + + return Base::intersection(query, primitive); + } + }; + + // ----------------------------------------------------------------------------------------------- + template + class Do_intersect_traits + : public CGAL::internal::AABB_tree::Do_intersect_traits + { + using Base = CGAL::internal::AABB_tree::Do_intersect_traits; + using Primitive = typename AABBTraits::Primitive; + + std::unordered_set visited_data; + +public: + Do_intersect_traits(const AABBTraits& traits) : Base(traits) { } + + void intersection(const Query& query, const Primitive& primitive) + { + // check a datum only once + auto is_insert_successful = visited_data.insert(primitive.id().second/*unique input face ID*/); + if(!is_insert_successful.second) + return; + + return Base::intersection(query, primitive); + } + }; + + // ----------------------------------------------------------------------------------------------- + template + class First_intersection_traits + : public CGAL::internal::AABB_tree::First_intersection_traits + { + using Base = CGAL::internal::AABB_tree::First_intersection_traits; + using Primitive = typename AABBTraits::Primitive; + + std::unordered_set visited_data; + +public: + First_intersection_traits(const AABBTraits& traits) : Base(traits) { } + + void intersection(const Query& query, const Primitive& primitive) + { + // check a datum only once + auto is_insert_successful = visited_data.insert(primitive.id().second/*unique input face ID*/); + if(!is_insert_successful.second) + return; + + return Base::intersection(query, primitive); + } + }; +}; + +// Dissociated from the class `AABB_tree_oracle_splitter` for clarity (the AABB_tree is a template +// parameter of the other base of the oracle too) +template +struct AABB_tree_splitter_traits +{ + using Triangle_3 = typename GT::Triangle_3; + + // Below is a lot of trouble to cover a single datum with multiple primitives using smaller bboxes + + // The input face ID serves when traversing the tree, to avoid doing the same intersection() + // on the same datum seen from different primitives. + // + // Technically, FPM could type-erase the mesh and the VPM, as it currently forces all independant + // inputs to have the same types. This is not such much of an issue for the mesh type, + // but it can be annoying for the VPM type. + using ID = std::pair; + using IDPM = CGAL::First_of_pair_property_map; + + // Primitive ID --> box vector pos --> Bounding Box + using BPMB = internal::Vector_property_map; + using BPM = CGAL::Property_map_binder; + + // Primitive ID --> point vector pos --> Reference Point + using RPPMB = internal::Vector_property_map; + using RPPM = CGAL::Property_map_binder; + + // Primitive ID --> Datum pos vector pos --> Datum pos --> Datum + // The vector of data has size nf, but the vector of datum pos has size tree.size() + using DPPMB = internal::Vector_property_map; // pos --> Datum pos + using DPPM = CGAL::Property_map_binder; // PID --> Datum pos + using DPMB = internal::Vector_property_map; // Datum pos --> Datum + using DPM = CGAL::Property_map_binder; // PID --> Datum + + using Primitive = CGAL::AABB_primitive; + + using AABB_traits = CGAL::AABB_traits; + using AABB_tree = CGAL::AABB_tree; +}; + +template +struct AABB_tree_oracle_splitter +{ + using FT = typename GT::FT; + using Triangle_3 = typename GT::Triangle_3; + + using ATST = AABB_tree_splitter_traits; + + using BPM = typename ATST::BPM; + using RPPM = typename ATST::RPPM; + using DPPMB = typename ATST::DPPMB; + using DPPM = typename ATST::DPPM; + using DPMB = typename ATST::DPMB; + using DPM = typename ATST::DPM; + + using ID = typename ATST::ID; + using Primitive = typename ATST::Primitive; + using AABB_traits = typename ATST::AABB_traits; + using AABB_tree = typename ATST::AABB_tree; + +protected: + double m_sq_alpha; + + // one per face + DPPMB m_dppmb; // std::size_t (id) --> datum pos + + // possibly more than one per face + BPM m_bpm; // std::size_t (id) --> bounding box + RPPM m_rppm; // std::size_t (id) --> reference point + DPMB m_dpmb; // std::size_t (datum pos) --> triangle datum + + DPM m_dpm; // std::size_t (id) --> triangle (datum) + + std::size_t fid = 0; + +public: + AABB_tree_oracle_splitter(const double alpha) + : + m_sq_alpha(square(alpha)), + m_dppmb(), m_bpm(), m_rppm(), m_dpmb(), + m_dpm(DPPM(m_dppmb/*first binder's value_map*/)/*second binder's key map*/, m_dpmb) + { } + +protected: + void initialize_tree_property_maps(const AABB_tree& tree) const + { + // Can't be set in the default constructed traits that are passed to the base + // since m_bpm is a member of the derived class. + // + // 'const_cast' because CGAL::AABB_tree only gives a const& to its traits. + const_cast(tree.traits()).bbm = m_bpm; + + const_cast(tree.traits()).set_shared_data(m_dpm, m_rppm); + } + + void reserve(std::size_t nf) + { + CGAL::internal::reserve(m_dpmb.range(), m_dpmb.range().size() + nf); + + // Due to splitting, these might need more than 'nf' + CGAL::internal::reserve(m_dppmb.range(), m_dppmb.range().size() + nf); + CGAL::internal::reserve(m_rppm.value_map.range(), m_rppm.value_map.range().size() + nf); + CGAL::internal::reserve(m_bpm.value_map.range(), m_bpm.value_map.range().size() + nf); + } + + template // Kernel is Simple_Cartesian + CGAL::Bbox_3 compute_bbox(const P& ap0, const P& ap1, const P& ap2) + { + double xmin = (CGAL::min)(ap0.x().inf(), (CGAL::min)(ap1.x().inf(), ap2.x().inf())); + double ymin = (CGAL::min)(ap0.y().inf(), (CGAL::min)(ap1.y().inf(), ap2.y().inf())); + double zmin = (CGAL::min)(ap0.z().inf(), (CGAL::min)(ap1.z().inf(), ap2.z().inf())); + + double xmax = (CGAL::max)(ap0.x().sup(), (CGAL::max)(ap1.x().sup(), ap2.x().sup())); + double ymax = (CGAL::max)(ap0.y().sup(), (CGAL::max)(ap1.y().sup(), ap2.y().sup())); + double zmax = (CGAL::max)(ap0.z().sup(), (CGAL::max)(ap1.z().sup(), ap2.z().sup())); + + return CGAL::Bbox_3(xmin, ymin, zmin, xmax, ymax, zmax); + } + + template // Kernel is Simple_Cartesian + const P& compute_reference_point(const P&, const P&, const P& ap2) + { + return ap2; // ap2 is the midpoint when splitting + } + + void split_and_insert_datum(const Triangle_3& tr, + AABB_tree& tree, + const GT& gt) + { + // Convert to intervals to ensure that the bounding box fully covers the subdividing triangle + using AK = CGAL::Simple_cartesian >; + using K2AK = CGAL::Cartesian_converter; + using AK2K = CGAL::Cartesian_converter; + using AFT = AK::FT; + using APoint_3 = AK::Point_3; + + using APL = std::pair; // point and length of the opposite edge + using AT = std::array; + + const std::size_t data_size = m_dpmb.range().size(); + put(m_dpmb, data_size, tr); + + auto vertex = gt.construct_vertex_3_object(); + + const Point& p0 = vertex(tr, 0); + const Point& p1 = vertex(tr, 1); + const Point& p2 = vertex(tr, 2); + + if(!subdivide || m_sq_alpha == 0.) // no splits + { + const std::size_t pid = tree.size(); + ID id = std::make_pair(pid, fid++); + + put(m_dppmb, pid, data_size); + put(m_rppm, id, p1); // the ref point that `One_point_from_face_descriptor_map` would give + put(m_bpm, id, gt.construct_bbox_3_object()(tr)); + +// std::cout << "Primitive[" << id.first << " " << id.second << "]; " +// << "Bbox: [" << get(m_bpm, id) << "] " +// << "Point: (" << get(m_rppm, id) << ") " +// << "Datum: [" << get(m_bpm, id) << "]" << std::endl; + + Primitive p(id/*, m_dpm, m_rppm*/); // pmaps are external, shared data + tree.insert(p); + return; + } + + K2AK k2ak; + AK2K ak2k; + std::queue to_treat; + + const APoint_3 ap0 = k2ak(p0); + const APoint_3 ap1 = k2ak(p1); + const APoint_3 ap2 = k2ak(p2); + const AFT sq_l0 = CGAL::squared_distance(ap1, ap2); + const AFT sq_l1 = CGAL::squared_distance(ap2, ap0); + const AFT sq_l2 = CGAL::squared_distance(ap0, ap1); + + to_treat.push(CGAL::make_array(std::make_pair(ap0, sq_l0), + std::make_pair(ap1, sq_l1), + std::make_pair(ap2, sq_l2))); + + while(!to_treat.empty()) + { + const AT t = std::move(to_treat.front()); + to_treat.pop(); + + const APL& apl0 = t[0]; + const APL& apl1 = t[1]; + const APL& apl2 = t[2]; + + int i = (apl0.second.sup() >= apl1.second.sup()) + ? (apl0.second.sup() >= apl2.second.sup()) ? 0 : 2 + : (apl1.second.sup() >= apl2.second.sup()) ? 1 : 2; + + const FT max_sql = t[i].second.sup(); + + // The '3 * alpha' is some empirically-determined value + const FT sq_bound = 9. * m_sq_alpha; + + // If the face is too big, do a fake split (two small bboxes rather than a big one) + if(max_sql > sq_bound) + { + // Could be factorized, but this is simpler to read + if(i == 0) + { + // 0 1 2 into 0 1 A and 0 A 2 + const APoint_3 amp = CGAL::midpoint(apl1.first, apl2.first); + to_treat.push(CGAL::make_array(std::make_pair(apl0.first, CGAL::squared_distance(apl1.first, amp)), + std::make_pair(apl1.first, CGAL::squared_distance(amp, apl0.first)), + std::make_pair(amp, apl2.second))); + to_treat.push(CGAL::make_array(std::make_pair(apl2.first, CGAL::squared_distance(apl0.first, amp)), + std::make_pair(apl0.first, CGAL::squared_distance(amp, apl2.first)), + std::make_pair(amp, apl1.second))); + } + else if(i == 1) + { + // 0 1 2 into 0 1 A and 1 2 A + const APoint_3 amp = CGAL::midpoint(apl2.first, apl0.first); + to_treat.push(CGAL::make_array(std::make_pair(apl0.first, CGAL::squared_distance(apl1.first, amp)), + std::make_pair(apl1.first, CGAL::squared_distance(amp, apl0.first)), + std::make_pair(amp, apl2.second))); + to_treat.push(CGAL::make_array(std::make_pair(apl1.first, CGAL::squared_distance(apl2.first, amp)), + std::make_pair(apl2.first, CGAL::squared_distance(amp, apl1.first)), + std::make_pair(amp, apl0.second))); + } + else // i == 2 + { + // 0 1 2 into 0 A 2 and 2 A 1 + const APoint_3 amp = CGAL::midpoint(apl0.first, apl1.first); + to_treat.push(CGAL::make_array(std::make_pair(apl2.first, CGAL::squared_distance(apl0.first, amp)), + std::make_pair(apl0.first, CGAL::squared_distance(amp, apl2.first)), + std::make_pair(amp, apl1.second))); + to_treat.push(CGAL::make_array(std::make_pair(apl1.first, CGAL::squared_distance(apl2.first, amp)), + std::make_pair(apl2.first, CGAL::squared_distance(amp, apl1.first)), + std::make_pair(amp, apl0.second))); + } + } + else // all edges have length below the threshold, create a primitive + { + const std::size_t pid = tree.size(); + ID id = std::make_pair(pid, fid); + + put(m_dppmb, pid, data_size); + put(m_rppm, id, ak2k(compute_reference_point(apl0.first, apl1.first, apl2.first))); + put(m_bpm, id, compute_bbox(apl0.first, apl1.first, apl2.first)); + +// std::cout << "Primitive[" << id.first << " " << id.second << "]; " +// << "Bbox: [" << get(m_bpm, id) << "] " +// << "Point: (" << get(m_rppm, id) << ") " +// << "Datum: [" << get(m_dpm, id) << "]" << std::endl; + + Primitive p(id/*, m_dpm, m_rppm*/); // pmaps are external, shared data + tree.insert(p); + } + } + + ++fid; + } +}; + +} // namespace internal +} // namespace Alpha_wraps_3 +} // namespace CGAL + +#endif // CGAL_ALPHA_WRAP_3_INTERNAL_SPLITTING_HELPER_H diff -Nru cgal-5.4.1/include/CGAL/Alpha_wrap_3/internal/Triangle_mesh_oracle.h cgal-5.5/include/CGAL/Alpha_wrap_3/internal/Triangle_mesh_oracle.h --- cgal-5.4.1/include/CGAL/Alpha_wrap_3/internal/Triangle_mesh_oracle.h 1970-01-01 00:00:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Alpha_wrap_3/internal/Triangle_mesh_oracle.h 2022-07-13 19:04:18.000000000 +0000 @@ -0,0 +1,177 @@ +// Copyright (c) 2019-2022 Google LLC (USA). +// All rights reserved. +// +// This file is part of CGAL (www.cgal.org). +// +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Alpha_wrap_3/include/CGAL/Alpha_wrap_3/internal/Triangle_mesh_oracle.h $ +// $Id: Triangle_mesh_oracle.h 9fbfd9a 2022-05-24T10:08:56+02:00 Mael Rouxel-Labbé +// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial +// +// Author(s) : Mael Rouxel-Labbé +// +#ifndef CGAL_ALPHA_WRAP_3_INTERNAL_TRIANGLE_MESH_ORACLE_H +#define CGAL_ALPHA_WRAP_3_INTERNAL_TRIANGLE_MESH_ORACLE_H + +#include + +#include +#include +#include + +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +namespace CGAL { +namespace Alpha_wraps_3 { +namespace internal { + +// Just some typedefs for readability in the main oracle class +template +struct TM_oracle_traits +{ + using Geom_traits = Alpha_wrap_AABB_traits; // Wrap the kernel to add Ball_3 + custom Do_intersect_3 + + using Point_3 = typename Geom_traits::Point_3; + using AABB_traits = typename AABB_tree_splitter_traits::AABB_traits; + using AABB_tree = typename AABB_tree_splitter_traits::AABB_tree; +}; + +// @speed could do a partial specialization 'subdivide = false' with simpler code for speed? +template +class Triangle_mesh_oracle + : // this is the base that handles calls to the AABB tree + public AABB_tree_oracle::Geom_traits, + typename TM_oracle_traits::AABB_tree, + typename std::conditional< + /*condition*/subdivide, + /*true*/Splitter_traversal_traits::AABB_traits>, + /*false*/Default_traversal_traits::AABB_traits> >::type, + BaseOracle>, + // this is the base that handles splitting input faces and inserting them into the AABB tree + public AABB_tree_oracle_splitter::Point_3, + typename TM_oracle_traits::Geom_traits> +{ + using TMOT = TM_oracle_traits; + using Base_GT = GT_; + +public: + using Geom_traits = typename TMOT::Geom_traits; + +private: + using Point_3 = typename Geom_traits::Point_3; + using Triangle_3 = typename Geom_traits::Triangle_3; + + using AABB_traits = typename TMOT::AABB_traits; + using AABB_tree = typename TMOT::AABB_tree; + using AABB_traversal_traits = typename std::conditional< + /*condition*/subdivide, + /*true*/Splitter_traversal_traits, + /*false*/Default_traversal_traits >::type; + + using Oracle_base = AABB_tree_oracle; + using Splitter_base = AABB_tree_oracle_splitter; + +public: + // Constructors + // + // When using this constructor (and thus doing actual splitting), note that the oracle + // will be adapted to this particular 'alpha', and so when calling again AW3(other_alpha) + // the oracle might not have performed a split that is adapted to this other alpha value. + Triangle_mesh_oracle(const double alpha, + const BaseOracle& base_oracle = BaseOracle(), + const Base_GT& gt = Base_GT()) + : Oracle_base(base_oracle, gt), Splitter_base(alpha) + { + Splitter_base::initialize_tree_property_maps(this->tree()); + } + + Triangle_mesh_oracle(const double alpha, + const Base_GT& gt, + const BaseOracle& base_oracle = BaseOracle()) + : Triangle_mesh_oracle(alpha, base_oracle, gt) + { } + + Triangle_mesh_oracle(const BaseOracle& base_oracle, + const Base_GT& gt = Base_GT()) + : Triangle_mesh_oracle(0. /*alpha*/, base_oracle, gt) + { } + + Triangle_mesh_oracle(const Base_GT& gt, + const BaseOracle& base_oracle = BaseOracle()) + : Triangle_mesh_oracle(0. /*alpha*/, base_oracle, gt) + { } + + Triangle_mesh_oracle() + : Triangle_mesh_oracle(0. /*alpha*/, BaseOracle(), Base_GT()) + { } + +public: + template + void add_triangle_mesh(const TriangleMesh& tmesh, + const CGAL_NP_CLASS& np = CGAL::parameters::default_values()) + { + using parameters::get_parameter; + using parameters::choose_parameter; + + using face_descriptor = typename boost::graph_traits::face_descriptor; + + using VPM = typename GetVertexPointMap::const_type; + using Point_ref = typename boost::property_traits::reference; + + CGAL_precondition(CGAL::is_triangle_mesh(tmesh)); + + if(is_empty(tmesh)) + { +#ifdef CGAL_AW3_DEBUG + std::cout << "Warning: Input is empty " << std::endl; +#endif + return; + } + +#ifdef CGAL_AW3_DEBUG + std::cout << "Insert into AABB tree (faces)..." << std::endl; +#endif + + VPM vpm = choose_parameter(get_parameter(np, internal_np::vertex_point), + get_const_property_map(vertex_point, tmesh)); + CGAL_static_assertion((std::is_same::value_type, Point_3>::value)); + + Splitter_base::reserve(num_faces(tmesh)); + + for(face_descriptor f : faces(tmesh)) + { + if(Polygon_mesh_processing::is_degenerate_triangle_face(f, tmesh, np)) + continue; + + const Point_ref p0 = get(vpm, source(halfedge(f, tmesh), tmesh)); + const Point_ref p1 = get(vpm, target(halfedge(f, tmesh), tmesh)); + const Point_ref p2 = get(vpm, target(next(halfedge(f, tmesh), tmesh), tmesh)); + + const Triangle_3 tr = this->geom_traits().construct_triangle_3_object()(p0, p1, p2); + + Splitter_base::split_and_insert_datum(tr, this->tree(), this->geom_traits()); + } + +#ifdef CGAL_AW3_DEBUG + std::cout << "Tree: " << this->tree().size() << " primitives (" << num_faces(tmesh) << " faces in input)" << std::endl; +#endif + } +}; + +} // namespace internal +} // namespace Alpha_wraps_3 +} // namespace CGAL + +#endif // CGAL_ALPHA_WRAP_3_INTERNAL_TRIANGLE_MESH_ORACLE_H diff -Nru cgal-5.4.1/include/CGAL/Alpha_wrap_3/internal/Triangle_soup_oracle.h cgal-5.5/include/CGAL/Alpha_wrap_3/internal/Triangle_soup_oracle.h --- cgal-5.4.1/include/CGAL/Alpha_wrap_3/internal/Triangle_soup_oracle.h 1970-01-01 00:00:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Alpha_wrap_3/internal/Triangle_soup_oracle.h 2022-07-13 19:04:18.000000000 +0000 @@ -0,0 +1,198 @@ +// Copyright (c) 2019-2022 Google LLC (USA). +// All rights reserved. +// +// This file is part of CGAL (www.cgal.org). +// +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Alpha_wrap_3/include/CGAL/Alpha_wrap_3/internal/Triangle_soup_oracle.h $ +// $Id: Triangle_soup_oracle.h 964bcd8 2022-05-25T09:37:37+02:00 Mael Rouxel-Labbé +// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial +// +// Author(s) : Mael Rouxel-Labbé +// +#ifndef CGAL_ALPHA_WRAP_3_INTERNAL_TRIANGLE_SOUP_ORACLE_H +#define CGAL_ALPHA_WRAP_3_INTERNAL_TRIANGLE_SOUP_ORACLE_H + +#include + +#include +#include +#include + +#include +#include +#include +#include +#include + +#include + +#include +#include +#include + +namespace CGAL { +namespace Alpha_wraps_3 { +namespace internal { + +// Just some typedefs for readability +template +struct TS_oracle_traits +{ + using Geom_traits = Alpha_wrap_AABB_traits; // Wrap the kernel to add Ball_3 + custom Do_intersect_3 + using Point_3 = typename Geom_traits::Point_3; + using AABB_traits = typename AABB_tree_splitter_traits::AABB_traits; + using AABB_tree = typename AABB_tree_splitter_traits::AABB_tree; +}; + +template +class Triangle_soup_oracle + : // this is the base that handles calls to the AABB tree + public AABB_tree_oracle::Geom_traits, + typename TS_oracle_traits::AABB_tree, + typename std::conditional< + /*condition*/subdivide, + /*true*/Splitter_traversal_traits::AABB_traits>, + /*false*/Default_traversal_traits::AABB_traits> >::type, + BaseOracle>, + // this is the base that handles splitting input faces and inserting them into the AABB tree + public AABB_tree_oracle_splitter::Point_3, + typename TS_oracle_traits::Geom_traits> +{ + using TSOT = TS_oracle_traits; + using Base_GT = GT_; + +public: + using Geom_traits = typename TSOT::Geom_traits; + +private: + using Point_3 = typename Geom_traits::Point_3; + using Triangle_3 = typename Geom_traits::Triangle_3; + + using AABB_traits = typename TSOT::AABB_traits; + using AABB_tree = typename TSOT::AABB_tree; + using AABB_traversal_traits = typename std::conditional< + /*condition*/subdivide, + /*true*/Splitter_traversal_traits, + /*false*/Default_traversal_traits >::type; + + using Oracle_base = AABB_tree_oracle; + using Splitter_base = AABB_tree_oracle_splitter; + +public: + // Constructors + // + // When using this constructor (and thus doing actual splitting), note that the oracle + // will be adapted to this particular 'alpha', and so when calling again AW3(other_alpha) + // the oracle might not have performed a split that is adapted to this other alpha value. + Triangle_soup_oracle(const double alpha, + const BaseOracle& base_oracle = BaseOracle(), + const Base_GT& gt = Base_GT()) + : Oracle_base(base_oracle, gt), Splitter_base(alpha) + { + Splitter_base::initialize_tree_property_maps(this->tree()); + } + + Triangle_soup_oracle(const double alpha, + const Base_GT& gt, + const BaseOracle& base_oracle = BaseOracle()) + : Triangle_soup_oracle(alpha, base_oracle, gt) + { } + + Triangle_soup_oracle(const BaseOracle& base_oracle, + const Base_GT& gt = Base_GT()) + : Triangle_soup_oracle(0. /*alpha*/, base_oracle, gt) + { } + + Triangle_soup_oracle(const Base_GT& gt, + const BaseOracle& base_oracle = BaseOracle()) + : Triangle_soup_oracle(0. /*alpha*/, base_oracle, gt) + { } + + Triangle_soup_oracle() + : Triangle_soup_oracle(0. /*alpha*/, BaseOracle(), Base_GT()) + { } + +public: + template + void add_triangle_soup(const PointRange& points, + const FaceRange& faces, + const CGAL_NP_CLASS& np = CGAL::parameters::default_values()) + { + using parameters::choose_parameter; + using parameters::get_parameter; + + using PPM = typename GetPointMap::const_type; + using Point_ref = typename boost::property_traits::reference; + + using Face = typename boost::range_value::type; + + if(points.empty() || faces.empty()) + { +#ifdef CGAL_AW3_DEBUG + std::cout << "Warning: Input is empty " << std::endl; +#endif + return; + } + +#ifdef CGAL_AW3_DEBUG + std::cout << "Insert into AABB Tree (triangles)..." << std::endl; +#endif + + PPM pm = choose_parameter(get_parameter(np, internal_np::point_map)); + CGAL_static_assertion((std::is_same::value_type, Point_3>::value)); + + Splitter_base::reserve(faces.size()); + + typename Geom_traits::Construct_triangle_3 triangle = this->geom_traits().construct_triangle_3_object(); + typename Geom_traits::Is_degenerate_3 is_degenerate = this->geom_traits().is_degenerate_3_object(); + + for(const Face& f : faces) + { + CGAL_precondition(std::distance(std::cbegin(f), std::cend(f)) == 3); + + auto vi = std::cbegin(f); + CGAL_assertion(*vi < points.size()); + Point_ref p0 = get(pm, points[*vi++]); + CGAL_assertion(*vi < points.size()); + Point_ref p1 = get(pm, points[*vi++]); + CGAL_assertion(*vi < points.size()); + Point_ref p2 = get(pm, points[*vi]); + + const Triangle_3 tr = triangle(p0, p1, p2); + if(is_degenerate(tr)) + continue; + + Splitter_base::split_and_insert_datum(tr, this->tree(), this->geom_traits()); + } + +#ifdef CGAL_AW3_DEBUG + std::cout << "Tree: " << this->tree().size() << " primitives (" << faces.size() << " faces in input)" << std::endl; +#endif + } + + template + void add_triangle_soup(const TriangleRange& triangles, + const CGAL_NP_CLASS& /*np*/ = CGAL::parameters::default_values()) + { + typename Geom_traits::Is_degenerate_3 is_degenerate = this->geom_traits().is_degenerate_3_object(); + + for(const Triangle_3& tr : triangles) + { + if(is_degenerate(tr)) + continue; + + Splitter_base::split_and_insert_datum(tr, this->tree(), this->geom_traits()); + } + } +}; + +} // namespace internal +} // namespace Alpha_wraps_3 +} // namespace CGAL + +#endif // CGAL_ALPHA_WRAP_3_INTERNAL_TRIANGLE_SOUP_ORACLE_H diff -Nru cgal-5.4.1/include/CGAL/alpha_wrap_3.h cgal-5.5/include/CGAL/alpha_wrap_3.h --- cgal-5.4.1/include/CGAL/alpha_wrap_3.h 1970-01-01 00:00:00.000000000 +0000 +++ cgal-5.5/include/CGAL/alpha_wrap_3.h 2022-07-13 19:04:18.000000000 +0000 @@ -0,0 +1,417 @@ +// Copyright (c) 2019-2022 Google LLC (USA). +// All rights reserved. +// +// This file is part of CGAL (www.cgal.org). +// +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Alpha_wrap_3/include/CGAL/alpha_wrap_3.h $ +// $Id: alpha_wrap_3.h 9fbfd9a 2022-05-24T10:08:56+02:00 Mael Rouxel-Labbé +// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial +// +// Author(s) : Pierre Alliez +// Cedric Portaneri, +// Mael Rouxel-Labbé +// Andreas Fabri +// Michael Hemmer +// +#ifndef CGAL_ALPHA_WRAP_3_H +#define CGAL_ALPHA_WRAP_3_H + +#include + +#include + +#include +#include +#include + +#include + +#include + +namespace CGAL { + +// ///////////////////////////////////////////////////////////////////////////////////////////////// +// WITH A TRIANGLE SOUP --------------------------------------------------------------------------- +// ///////////////////////////////////////////////////////////////////////////////////////////////// + +/*! +* \ingroup AW3_free_functions_grp +* +* \brief computes a watertight, 2-manifold, and intersection-free triangulated surface mesh +* that strictly contains an input triangle soup. +* +* The parameters `alpha` and `offset` respectively control which features will appear in the output, +* and the distance from the input. See Section \ref aw3_parameters for a detailed breakdown of their influence. +* +* \tparam PointRange a model of `Range` whose value type is the point type +* \tparam FaceRange a model of `RandomAccessContainer` whose value type is a model of `RandomAccessContainer` whose value type is an integral type +* \tparam OutputMesh model of `MutableFaceGraph`. +* \tparam InputNamedParameters a sequence of \ref bgl_namedparameters "Named Parameters" +* \tparam OutputNamedParameters a sequence of \ref bgl_namedparameters "Named Parameters" +* +* \param points the input points +* \param faces the input faces, with each element of the range being a range of indices corresponding to points in `points` +* \param alpha the value of the parameter `alpha` +* \param offset the value of the parameter `offset` +* \param alpha_wrap the output surface mesh +* \param in_np an optional sequence of \ref bgl_namedparameters "Named Parameters" among the ones listed below +* +* \cgalNamedParamsBegin +* \cgalParamNBegin{point_map} +* \cgalParamDescription{a property map associating points to the elements of the point set `points`} +* \cgalParamType{a model of `ReadablePropertyMap` whose key type is the value type +* of the iterator of `PointRange` and whose value type is `geom_traits::Point_3`} +* \cgalParamDefault{`CGAL::Identity_property_map`} +* \cgalParamNEnd +* +* \cgalParamNBegin{geom_traits} +* \cgalParamDescription{an instance of a geometric traits class} +* \cgalParamType{a class model of `Kernel`} +* \cgalParamDefault{a \cgal Kernel deduced from the point type, using `CGAL::Kernel_traits`} +* \cgalParamExtra{
  • The geometric traits class must be compatible with the point type.
  • +*
  • The geometric traits should use a floating point number type (see \ref aw3_interface).
} +* \cgalParamNEnd +* \cgalNamedParamsEnd +* +* \param out_np an optional sequence of \ref bgl_namedparameters "Named Parameters" among the ones listed below +* +* \cgalNamedParamsBegin +* \cgalParamNBegin{vertex_point_map} +* \cgalParamDescription{a property map associating points to the vertices of `alpha_wrap`} +* \cgalParamType{a class model of `ReadWritePropertyMap` with `boost::graph_traits::%vertex_descriptor` +* as key type and `%Point_3` as value type} +* \cgalParamDefault{`boost::get(CGAL::vertex_point, alpha_wrap)`} +* \cgalParamExtra{If this parameter is omitted, an internal property map for `CGAL::vertex_point_t` +* must be available in `OutputMesh`.} +* \cgalParamNEnd +* \cgalNamedParamsEnd +* +* \pre The elements of `faces` are triangles. +* \pre `alpha` and `offset` are strictly positive values. +*/ +template +void alpha_wrap_3(const PointRange& points, + const FaceRange& faces, + const double alpha, + const double offset, + OutputMesh& alpha_wrap, + const InputNamedParameters& in_np, + const OutputNamedParameters& out_np) +{ + using parameters::get_parameter; + using parameters::choose_parameter; + + using NP_helper = Point_set_processing_3_np_helper; + using Geom_traits = typename NP_helper::Geom_traits; + using Oracle = Alpha_wraps_3::internal::Triangle_soup_oracle; + using AW3 = Alpha_wraps_3::internal::Alpha_wrap_3; + + Geom_traits gt = choose_parameter(get_parameter(in_np, internal_np::geom_traits)); + + Oracle oracle(alpha, gt); + oracle.add_triangle_soup(points, faces, in_np); + AW3 alpha_wrap_builder(oracle); + alpha_wrap_builder(alpha, offset, alpha_wrap, out_np); +} + +// Convenience overloads +template +void alpha_wrap_3(const PointRange& points, + const FaceRange& faces, + const double alpha, + const double offset, + OutputMesh& alpha_wrap, + const CGAL_NP_CLASS& in_np) +{ + return alpha_wrap_3(points, faces, alpha, offset, alpha_wrap, in_np, CGAL::parameters::default_values()); +} + +template +void alpha_wrap_3(const PointRange& points, + const FaceRange& faces, + const double alpha, + const double offset, + OutputMesh& alpha_wrap) +{ + return alpha_wrap_3(points, faces, alpha, offset, alpha_wrap, CGAL::parameters::default_values()); +} + +// without offset +template +void alpha_wrap_3(const PointRange& points, + const FaceRange& faces, + const double alpha, + OutputMesh& alpha_wrap, + const CGAL::Named_function_parameters& in_np, + const CGAL::Named_function_parameters& out_np, + typename std::enable_if::value>::type* = nullptr) +{ + return alpha_wrap_3(points, faces, alpha, alpha / 30., alpha_wrap, in_np, out_np); +} + +template +void alpha_wrap_3(const PointRange& points, + const FaceRange& faces, + const double alpha, + OutputMesh& alpha_wrap, + const CGAL_NP_CLASS& in_np, + typename std::enable_if::value>::type* = nullptr) +{ + return alpha_wrap_3(points, faces, alpha, alpha / 30., alpha_wrap, in_np, + CGAL::parameters::default_values()); +} + +template +void alpha_wrap_3(const PointRange& points, + const FaceRange& faces, + const double alpha, + OutputMesh& alpha_wrap, + typename std::enable_if::value>::type* = nullptr) +{ + return alpha_wrap_3(points, faces, alpha, alpha / 30., alpha_wrap, + CGAL::parameters::default_values(), CGAL::parameters::default_values()); +} + +// ///////////////////////////////////////////////////////////////////////////////////////////////// +// WITH A TRIANGLE MESH ---------------------------------------------------------------------------- +// ///////////////////////////////////////////////////////////////////////////////////////////////// + +/*! +* \ingroup AW3_free_functions_grp +* +* \brief computes a watertight, 2-manifold, and intersection-free triangulated surface mesh +* that strictly contains an input triangle mesh. +* +* The parameters `alpha` and `offset` respectively control which features will appear in the output, +* and the distance from the input. See Section \ref aw3_parameters for a detailed breakdown of their influence. +* +* \tparam TriangleMesh model of `FaceListGraph`. +* \tparam OutputMesh model of `MutableFaceGraph`. +* \tparam InputNamedParameters a sequence of \ref bgl_namedparameters "Named Parameters" +* \tparam OutputNamedParameters a sequence of \ref bgl_namedparameters "Named Parameters" +* +* \param tmesh a triangle mesh +* \param alpha the value of the parameter `alpha` +* \param offset the value of the parameter `offset` +* \param alpha_wrap the output surface mesh +* \param in_np an optional sequence of \ref bgl_namedparameters "Named Parameters" among the ones listed below +* +* \cgalNamedParamsBegin +* \cgalParamNBegin{vertex_point_map} +* \cgalParamDescription{a property map associating points to the vertices of `tmesh`} +* \cgalParamType{a class model of `ReadablePropertyMap` with `boost::graph_traits::%vertex_descriptor` +* as key type and `%Point_3` as value type} +* \cgalParamDefault{`boost::get(CGAL::vertex_point, tmesh)`} +* \cgalParamExtra{If this parameter is omitted, an internal property map for `CGAL::vertex_point_t` +* must be available in `TriangleMesh`.} +* \cgalParamNEnd +* +* \cgalParamNBegin{geom_traits} +* \cgalParamDescription{an instance of a geometric traits class} +* \cgalParamType{a class model of `Kernel`} +* \cgalParamDefault{a \cgal Kernel deduced from the point type, using `CGAL::Kernel_traits`} +* \cgalParamExtra{
  • The geometric traits class must be compatible with the point type.
  • +*
  • The geometric traits should use a floating point number type (see \ref aw3_interface).
} +* \cgalParamNEnd +* \cgalNamedParamsEnd +* +* \param out_np an optional sequence of \ref bgl_namedparameters "Named Parameters" among the ones listed below +* +* \cgalNamedParamsBegin +* \cgalParamNBegin{vertex_point_map} +* \cgalParamDescription{a property map associating points to the vertices of `alpha_wrap`} +* \cgalParamType{a class model of `ReadWritePropertyMap` with `boost::graph_traits::%vertex_descriptor` +* as key type and `%Point_3` as value type} +* \cgalParamDefault{`boost::get(CGAL::vertex_point, alpha_wrap)`} +* \cgalParamExtra{If this parameter is omitted, an internal property map for `CGAL::vertex_point_t` +* must be available in `OutputMesh`.} +* \cgalParamNEnd +* \cgalNamedParamsEnd +* +* \pre `tmesh` is a triangle mesh. +* \pre `alpha` and `offset` are strictly positive values. +*/ +template +void alpha_wrap_3(const TriangleMesh& tmesh, + const double alpha, + const double offset, + OutputMesh& alpha_wrap, + const InputNamedParameters& in_np, + const OutputNamedParameters& out_np +#ifndef DOXYGEN_RUNNING + , typename std::enable_if::value>::type* = nullptr +#endif + ) +{ + using parameters::get_parameter; + using parameters::choose_parameter; + + using Geom_traits = typename GetGeomTraits::type; + using Oracle = Alpha_wraps_3::internal::Triangle_mesh_oracle; + using AW3 = Alpha_wraps_3::internal::Alpha_wrap_3; + + Geom_traits gt = choose_parameter(get_parameter(in_np, internal_np::geom_traits)); + + Oracle oracle(alpha, gt); + oracle.add_triangle_mesh(tmesh, in_np); + AW3 alpha_wrap_builder(oracle); + alpha_wrap_builder(alpha, offset, alpha_wrap, out_np); +} + +// The convenience overloads are the same for triangle mesh & point set + +// ///////////////////////////////////////////////////////////////////////////////////////////////// +// WITH A POINT SET ------------------------------------------------------------------------------- +// ///////////////////////////////////////////////////////////////////////////////////////////////// + +/*! +* \ingroup AW3_free_functions_grp +* +* \brief computes a watertight, 2-manifold, and intersection-free triangulated surface mesh +* that strictly contains an input point set. +* +* The parameters `alpha` and `offset` respectively control which features will appear in the output, +* and the distance from the input. See Section \ref aw3_parameters for a detailed breakdown of their influence. +* +* \tparam PointRange model of `Range` whose value type is a point type. +* \tparam OutputMesh model of `MutableFaceGraph`. +* \tparam InputNamedParameters a sequence of \ref bgl_namedparameters "Named Parameters" +* \tparam OutputNamedParameters a sequence of \ref bgl_namedparameters "Named Parameters" +* +* \param points the input points +* \param alpha the value of the parameter `alpha` +* \param offset the value of the parameter `offset` +* \param alpha_wrap the output surface mesh +* \param in_np an optional sequence of \ref bgl_namedparameters "Named Parameters" among the ones listed below +* +* \cgalNamedParamsBegin +* \cgalParamNBegin{point_map} +* \cgalParamDescription{a property map associating points to the elements of the point range} +* \cgalParamType{a model of `ReadablePropertyMap` with value type `geom_traits::Point_3`} +* \cgalParamDefault{`CGAL::Identity_property_map`} +* \cgalParamNEnd +* +* \cgalParamNBegin{geom_traits} +* \cgalParamDescription{an instance of a geometric traits class} +* \cgalParamType{a class model of `Kernel`} +* \cgalParamDefault{a \cgal Kernel deduced from the point type, using `CGAL::Kernel_traits`} +* \cgalParamExtra{
  • The geometric traits class must be compatible with the point type.
  • +*
  • The geometric traits should use a floating point number type (see \ref aw3_interface).
} +* \cgalParamNEnd +* \cgalNamedParamsEnd +* +* \param out_np an optional sequence of \ref bgl_namedparameters "Named Parameters" among the ones listed below +* +* \cgalNamedParamsBegin +* \cgalParamNBegin{vertex_point_map} +* \cgalParamDescription{a property map associating points to the vertices of `alpha_wrap`} +* \cgalParamType{a class model of `ReadWritePropertyMap` with `boost::graph_traits::%vertex_descriptor` +* as key type and `%Point_3` as value type} +* \cgalParamDefault{`boost::get(CGAL::vertex_point, alpha_wrap)`} +* \cgalParamExtra{If this parameter is omitted, an internal property map for `CGAL::vertex_point_t` +* must be available in `OutputMesh`.} +* \cgalParamNEnd +* \cgalNamedParamsEnd +* +* \pre `alpha` and `offset` are strictly positive values. +*/ +template +#else + typename T_I, typename Tag_I, typename Base_I, + typename T_O, typename Tag_O, typename Base_O> +#endif +void alpha_wrap_3(const PointRange& points, + const double alpha, + const double offset, + OutputMesh& alpha_wrap, +#ifdef DOXYGEN_RUNNING + const InputNamedParameters& in_np, + const OutputNamedParameters& out_np +#else + const CGAL::Named_function_parameters& in_np, + const CGAL::Named_function_parameters& out_np, + typename std::enable_if::value>::type* = nullptr +#endif + ) +{ + using parameters::get_parameter; + using parameters::choose_parameter; + + using InputNamedParameters = CGAL::Named_function_parameters; + + using NP_helper = Point_set_processing_3_np_helper; + using Geom_traits = typename NP_helper::Geom_traits; + using Oracle = Alpha_wraps_3::internal::Point_set_oracle; + using AW3 = Alpha_wraps_3::internal::Alpha_wrap_3; + + Geom_traits gt = choose_parameter(get_parameter(in_np, internal_np::geom_traits)); + + Oracle oracle(gt); + oracle.add_point_set(points, in_np); + AW3 alpha_wrap_builder(oracle); + alpha_wrap_builder(alpha, offset, alpha_wrap, out_np); +} + +// Convenience overloads, common to both mesh and point set +template +void alpha_wrap_3(const Input& input, + const double alpha, + const double offset, + OutputMesh& alpha_wrap, + const CGAL_NP_CLASS& in_np) +{ + return alpha_wrap_3(input, alpha, offset, alpha_wrap, in_np, CGAL::parameters::default_values()); +} + +template +void alpha_wrap_3(const Input& input, + const double alpha, + const double offset, + OutputMesh& alpha_wrap) +{ + return alpha_wrap_3(input, alpha, offset, alpha_wrap, CGAL::parameters::default_values()); +} + +// without offset +template +void alpha_wrap_3(const Input& input, + const double alpha, + OutputMesh& alpha_wrap, + const CGAL::Named_function_parameters& in_np, + const CGAL::Named_function_parameters& out_np) +{ + return alpha_wrap_3(input, alpha, alpha / 30., alpha_wrap, in_np, out_np); +} + +template +void alpha_wrap_3(const Input& input, + const double alpha, + OutputMesh& alpha_wrap, + const CGAL_NP_CLASS& in_np) +{ + return alpha_wrap_3(input, alpha, alpha / 30., alpha_wrap, in_np, CGAL::parameters::default_values()); +} + +template +void alpha_wrap_3(const Input& input, + const double alpha, + OutputMesh& alpha_wrap) +{ + return alpha_wrap_3(input, alpha, alpha / 30., alpha_wrap, + CGAL::parameters::default_values(), CGAL::parameters::default_values()); +} + +} // namespace CGAL + +#endif // CGAL_ALPHA_WRAP_3_H diff -Nru cgal-5.4.1/include/CGAL/Apollonius_graph_2/Apollonius_graph_2_impl.h cgal-5.5/include/CGAL/Apollonius_graph_2/Apollonius_graph_2_impl.h --- cgal-5.4.1/include/CGAL/Apollonius_graph_2/Apollonius_graph_2_impl.h 2022-06-03 19:03:35.000000000 +0000 +++ cgal-5.5/include/CGAL/Apollonius_graph_2/Apollonius_graph_2_impl.h 2022-07-13 19:04:19.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Apollonius_graph_2/include/CGAL/Apollonius_graph_2/Apollonius_graph_2_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Apollonius_graph_2/include/CGAL/Apollonius_graph_2/Apollonius_graph_2_impl.h $ // $Id: Apollonius_graph_2_impl.h 4e519a3 2021-05-05T13:15:37+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Apollonius_graph_2/Apollonius_graph_hierarchy_2_impl.h cgal-5.5/include/CGAL/Apollonius_graph_2/Apollonius_graph_hierarchy_2_impl.h --- cgal-5.4.1/include/CGAL/Apollonius_graph_2/Apollonius_graph_hierarchy_2_impl.h 2022-06-03 19:03:35.000000000 +0000 +++ cgal-5.5/include/CGAL/Apollonius_graph_2/Apollonius_graph_hierarchy_2_impl.h 2022-07-13 19:04:19.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Apollonius_graph_2/include/CGAL/Apollonius_graph_2/Apollonius_graph_hierarchy_2_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Apollonius_graph_2/include/CGAL/Apollonius_graph_2/Apollonius_graph_hierarchy_2_impl.h $ // $Id: Apollonius_graph_hierarchy_2_impl.h 4e519a3 2021-05-05T13:15:37+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Apollonius_graph_2/basic.h cgal-5.5/include/CGAL/Apollonius_graph_2/basic.h --- cgal-5.4.1/include/CGAL/Apollonius_graph_2/basic.h 2022-06-03 19:03:36.000000000 +0000 +++ cgal-5.5/include/CGAL/Apollonius_graph_2/basic.h 2022-07-13 19:04:19.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Apollonius_graph_2/include/CGAL/Apollonius_graph_2/basic.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Apollonius_graph_2/include/CGAL/Apollonius_graph_2/basic.h $ // $Id: basic.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Apollonius_graph_2/Bounded_side_of_ccw_circle_C2.h cgal-5.5/include/CGAL/Apollonius_graph_2/Bounded_side_of_ccw_circle_C2.h --- cgal-5.4.1/include/CGAL/Apollonius_graph_2/Bounded_side_of_ccw_circle_C2.h 2022-06-03 19:03:35.000000000 +0000 +++ cgal-5.5/include/CGAL/Apollonius_graph_2/Bounded_side_of_ccw_circle_C2.h 2022-07-13 19:04:19.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Apollonius_graph_2/include/CGAL/Apollonius_graph_2/Bounded_side_of_ccw_circle_C2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Apollonius_graph_2/include/CGAL/Apollonius_graph_2/Bounded_side_of_ccw_circle_C2.h $ // $Id: Bounded_side_of_ccw_circle_C2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Apollonius_graph_2/comparator_profiler.h cgal-5.5/include/CGAL/Apollonius_graph_2/comparator_profiler.h --- cgal-5.4.1/include/CGAL/Apollonius_graph_2/comparator_profiler.h 2022-06-03 19:03:36.000000000 +0000 +++ cgal-5.5/include/CGAL/Apollonius_graph_2/comparator_profiler.h 2022-07-13 19:04:19.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Apollonius_graph_2/include/CGAL/Apollonius_graph_2/comparator_profiler.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Apollonius_graph_2/include/CGAL/Apollonius_graph_2/comparator_profiler.h $ // $Id: comparator_profiler.h 3e03d50 2021-05-05T15:32:22+02:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Apollonius_graph_2/compare_quadratic.h cgal-5.5/include/CGAL/Apollonius_graph_2/compare_quadratic.h --- cgal-5.4.1/include/CGAL/Apollonius_graph_2/compare_quadratic.h 2022-06-03 19:03:36.000000000 +0000 +++ cgal-5.5/include/CGAL/Apollonius_graph_2/compare_quadratic.h 2022-07-13 19:04:20.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Apollonius_graph_2/include/CGAL/Apollonius_graph_2/compare_quadratic.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Apollonius_graph_2/include/CGAL/Apollonius_graph_2/compare_quadratic.h $ // $Id: compare_quadratic.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Apollonius_graph_2/Compare_weight_2.h cgal-5.5/include/CGAL/Apollonius_graph_2/Compare_weight_2.h --- cgal-5.4.1/include/CGAL/Apollonius_graph_2/Compare_weight_2.h 2022-06-03 19:03:35.000000000 +0000 +++ cgal-5.5/include/CGAL/Apollonius_graph_2/Compare_weight_2.h 2022-07-13 19:04:19.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Apollonius_graph_2/include/CGAL/Apollonius_graph_2/Compare_weight_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Apollonius_graph_2/include/CGAL/Apollonius_graph_2/Compare_weight_2.h $ // $Id: Compare_weight_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Apollonius_graph_2/Compare_x_2.h cgal-5.5/include/CGAL/Apollonius_graph_2/Compare_x_2.h --- cgal-5.4.1/include/CGAL/Apollonius_graph_2/Compare_x_2.h 2022-06-03 19:03:35.000000000 +0000 +++ cgal-5.5/include/CGAL/Apollonius_graph_2/Compare_x_2.h 2022-07-13 19:04:19.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Apollonius_graph_2/include/CGAL/Apollonius_graph_2/Compare_x_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Apollonius_graph_2/include/CGAL/Apollonius_graph_2/Compare_x_2.h $ // $Id: Compare_x_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Apollonius_graph_2/Compare_y_2.h cgal-5.5/include/CGAL/Apollonius_graph_2/Compare_y_2.h --- cgal-5.4.1/include/CGAL/Apollonius_graph_2/Compare_y_2.h 2022-06-03 19:03:35.000000000 +0000 +++ cgal-5.5/include/CGAL/Apollonius_graph_2/Compare_y_2.h 2022-07-13 19:04:19.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Apollonius_graph_2/include/CGAL/Apollonius_graph_2/Compare_y_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Apollonius_graph_2/include/CGAL/Apollonius_graph_2/Compare_y_2.h $ // $Id: Compare_y_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Apollonius_graph_2/Constructions_C2.h cgal-5.5/include/CGAL/Apollonius_graph_2/Constructions_C2.h --- cgal-5.4.1/include/CGAL/Apollonius_graph_2/Constructions_C2.h 2022-06-03 19:03:35.000000000 +0000 +++ cgal-5.5/include/CGAL/Apollonius_graph_2/Constructions_C2.h 2022-07-13 19:04:19.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Apollonius_graph_2/include/CGAL/Apollonius_graph_2/Constructions_C2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Apollonius_graph_2/include/CGAL/Apollonius_graph_2/Constructions_C2.h $ // $Id: Constructions_C2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Apollonius_graph_2/Constructions_ftC2.h cgal-5.5/include/CGAL/Apollonius_graph_2/Constructions_ftC2.h --- cgal-5.4.1/include/CGAL/Apollonius_graph_2/Constructions_ftC2.h 2022-06-03 19:03:35.000000000 +0000 +++ cgal-5.5/include/CGAL/Apollonius_graph_2/Constructions_ftC2.h 2022-07-13 19:04:19.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Apollonius_graph_2/include/CGAL/Apollonius_graph_2/Constructions_ftC2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Apollonius_graph_2/include/CGAL/Apollonius_graph_2/Constructions_ftC2.h $ // $Id: Constructions_ftC2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Apollonius_graph_2/Constructions_rtH2.h cgal-5.5/include/CGAL/Apollonius_graph_2/Constructions_rtH2.h --- cgal-5.4.1/include/CGAL/Apollonius_graph_2/Constructions_rtH2.h 2022-06-03 19:03:35.000000000 +0000 +++ cgal-5.5/include/CGAL/Apollonius_graph_2/Constructions_rtH2.h 2022-07-13 19:04:19.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Apollonius_graph_2/include/CGAL/Apollonius_graph_2/Constructions_rtH2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Apollonius_graph_2/include/CGAL/Apollonius_graph_2/Constructions_rtH2.h $ // $Id: Constructions_rtH2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Apollonius_graph_2/Finite_edge_test8_C2.h cgal-5.5/include/CGAL/Apollonius_graph_2/Finite_edge_test8_C2.h --- cgal-5.4.1/include/CGAL/Apollonius_graph_2/Finite_edge_test8_C2.h 2022-06-03 19:03:35.000000000 +0000 +++ cgal-5.5/include/CGAL/Apollonius_graph_2/Finite_edge_test8_C2.h 2022-07-13 19:04:19.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Apollonius_graph_2/include/CGAL/Apollonius_graph_2/Finite_edge_test8_C2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Apollonius_graph_2/include/CGAL/Apollonius_graph_2/Finite_edge_test8_C2.h $ // $Id: Finite_edge_test8_C2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Apollonius_graph_2/Finite_edge_test_C2.h cgal-5.5/include/CGAL/Apollonius_graph_2/Finite_edge_test_C2.h --- cgal-5.4.1/include/CGAL/Apollonius_graph_2/Finite_edge_test_C2.h 2022-06-03 19:03:35.000000000 +0000 +++ cgal-5.5/include/CGAL/Apollonius_graph_2/Finite_edge_test_C2.h 2022-07-13 19:04:19.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Apollonius_graph_2/include/CGAL/Apollonius_graph_2/Finite_edge_test_C2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Apollonius_graph_2/include/CGAL/Apollonius_graph_2/Finite_edge_test_C2.h $ // $Id: Finite_edge_test_C2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Apollonius_graph_2/Incircle8_C2.h cgal-5.5/include/CGAL/Apollonius_graph_2/Incircle8_C2.h --- cgal-5.4.1/include/CGAL/Apollonius_graph_2/Incircle8_C2.h 2022-06-03 19:03:35.000000000 +0000 +++ cgal-5.5/include/CGAL/Apollonius_graph_2/Incircle8_C2.h 2022-07-13 19:04:19.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Apollonius_graph_2/include/CGAL/Apollonius_graph_2/Incircle8_C2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Apollonius_graph_2/include/CGAL/Apollonius_graph_2/Incircle8_C2.h $ // $Id: Incircle8_C2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Apollonius_graph_2/Incircle_C2.h cgal-5.5/include/CGAL/Apollonius_graph_2/Incircle_C2.h --- cgal-5.4.1/include/CGAL/Apollonius_graph_2/Incircle_C2.h 2022-06-03 19:03:35.000000000 +0000 +++ cgal-5.5/include/CGAL/Apollonius_graph_2/Incircle_C2.h 2022-07-13 19:04:19.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Apollonius_graph_2/include/CGAL/Apollonius_graph_2/Incircle_C2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Apollonius_graph_2/include/CGAL/Apollonius_graph_2/Incircle_C2.h $ // $Id: Incircle_C2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Apollonius_graph_2/Infinite_edge_test_C2.h cgal-5.5/include/CGAL/Apollonius_graph_2/Infinite_edge_test_C2.h --- cgal-5.4.1/include/CGAL/Apollonius_graph_2/Infinite_edge_test_C2.h 2022-06-03 19:03:35.000000000 +0000 +++ cgal-5.5/include/CGAL/Apollonius_graph_2/Infinite_edge_test_C2.h 2022-07-13 19:04:19.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Apollonius_graph_2/include/CGAL/Apollonius_graph_2/Infinite_edge_test_C2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Apollonius_graph_2/include/CGAL/Apollonius_graph_2/Infinite_edge_test_C2.h $ // $Id: Infinite_edge_test_C2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Apollonius_graph_2/Is_degenerate_edge_C2.h cgal-5.5/include/CGAL/Apollonius_graph_2/Is_degenerate_edge_C2.h --- cgal-5.4.1/include/CGAL/Apollonius_graph_2/Is_degenerate_edge_C2.h 2022-06-03 19:03:35.000000000 +0000 +++ cgal-5.5/include/CGAL/Apollonius_graph_2/Is_degenerate_edge_C2.h 2022-07-13 19:04:19.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Apollonius_graph_2/include/CGAL/Apollonius_graph_2/Is_degenerate_edge_C2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Apollonius_graph_2/include/CGAL/Apollonius_graph_2/Is_degenerate_edge_C2.h $ // $Id: Is_degenerate_edge_C2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Apollonius_graph_2/Is_hidden_C2.h cgal-5.5/include/CGAL/Apollonius_graph_2/Is_hidden_C2.h --- cgal-5.4.1/include/CGAL/Apollonius_graph_2/Is_hidden_C2.h 2022-06-03 19:03:35.000000000 +0000 +++ cgal-5.5/include/CGAL/Apollonius_graph_2/Is_hidden_C2.h 2022-07-13 19:04:19.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Apollonius_graph_2/include/CGAL/Apollonius_graph_2/Is_hidden_C2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Apollonius_graph_2/include/CGAL/Apollonius_graph_2/Is_hidden_C2.h $ // $Id: Is_hidden_C2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Apollonius_graph_2/Kernel_wrapper_2.h cgal-5.5/include/CGAL/Apollonius_graph_2/Kernel_wrapper_2.h --- cgal-5.4.1/include/CGAL/Apollonius_graph_2/Kernel_wrapper_2.h 2022-06-03 19:03:35.000000000 +0000 +++ cgal-5.5/include/CGAL/Apollonius_graph_2/Kernel_wrapper_2.h 2022-07-13 19:04:19.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Apollonius_graph_2/include/CGAL/Apollonius_graph_2/Kernel_wrapper_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Apollonius_graph_2/include/CGAL/Apollonius_graph_2/Kernel_wrapper_2.h $ // $Id: Kernel_wrapper_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Apollonius_graph_2/Orientation_2.h cgal-5.5/include/CGAL/Apollonius_graph_2/Orientation_2.h --- cgal-5.4.1/include/CGAL/Apollonius_graph_2/Orientation_2.h 2022-06-03 19:03:36.000000000 +0000 +++ cgal-5.5/include/CGAL/Apollonius_graph_2/Orientation_2.h 2022-07-13 19:04:19.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Apollonius_graph_2/include/CGAL/Apollonius_graph_2/Orientation_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Apollonius_graph_2/include/CGAL/Apollonius_graph_2/Orientation_2.h $ // $Id: Orientation_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Apollonius_graph_2/Orientation8_C2.h cgal-5.5/include/CGAL/Apollonius_graph_2/Orientation8_C2.h --- cgal-5.4.1/include/CGAL/Apollonius_graph_2/Orientation8_C2.h 2022-06-03 19:03:36.000000000 +0000 +++ cgal-5.5/include/CGAL/Apollonius_graph_2/Orientation8_C2.h 2022-07-13 19:04:19.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Apollonius_graph_2/include/CGAL/Apollonius_graph_2/Orientation8_C2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Apollonius_graph_2/include/CGAL/Apollonius_graph_2/Orientation8_C2.h $ // $Id: Orientation8_C2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Apollonius_graph_2/Oriented_side_of_bisector_C2.h cgal-5.5/include/CGAL/Apollonius_graph_2/Oriented_side_of_bisector_C2.h --- cgal-5.4.1/include/CGAL/Apollonius_graph_2/Oriented_side_of_bisector_C2.h 2022-06-03 19:03:36.000000000 +0000 +++ cgal-5.5/include/CGAL/Apollonius_graph_2/Oriented_side_of_bisector_C2.h 2022-07-13 19:04:19.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Apollonius_graph_2/include/CGAL/Apollonius_graph_2/Oriented_side_of_bisector_C2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Apollonius_graph_2/include/CGAL/Apollonius_graph_2/Oriented_side_of_bisector_C2.h $ // $Id: Oriented_side_of_bisector_C2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Apollonius_graph_2/Predicate_constructions_C2.h cgal-5.5/include/CGAL/Apollonius_graph_2/Predicate_constructions_C2.h --- cgal-5.4.1/include/CGAL/Apollonius_graph_2/Predicate_constructions_C2.h 2022-06-03 19:03:36.000000000 +0000 +++ cgal-5.5/include/CGAL/Apollonius_graph_2/Predicate_constructions_C2.h 2022-07-13 19:04:19.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Apollonius_graph_2/include/CGAL/Apollonius_graph_2/Predicate_constructions_C2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Apollonius_graph_2/include/CGAL/Apollonius_graph_2/Predicate_constructions_C2.h $ // $Id: Predicate_constructions_C2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Apollonius_graph_2/predicate_profiler.h cgal-5.5/include/CGAL/Apollonius_graph_2/predicate_profiler.h --- cgal-5.4.1/include/CGAL/Apollonius_graph_2/predicate_profiler.h 2022-06-03 19:03:36.000000000 +0000 +++ cgal-5.5/include/CGAL/Apollonius_graph_2/predicate_profiler.h 2022-07-13 19:04:20.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Apollonius_graph_2/include/CGAL/Apollonius_graph_2/predicate_profiler.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Apollonius_graph_2/include/CGAL/Apollonius_graph_2/predicate_profiler.h $ // $Id: predicate_profiler.h 3e03d50 2021-05-05T15:32:22+02:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Apollonius_graph_2/Predicates_C2.h cgal-5.5/include/CGAL/Apollonius_graph_2/Predicates_C2.h --- cgal-5.4.1/include/CGAL/Apollonius_graph_2/Predicates_C2.h 2022-06-03 19:03:36.000000000 +0000 +++ cgal-5.5/include/CGAL/Apollonius_graph_2/Predicates_C2.h 2022-07-13 19:04:19.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Apollonius_graph_2/include/CGAL/Apollonius_graph_2/Predicates_C2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Apollonius_graph_2/include/CGAL/Apollonius_graph_2/Predicates_C2.h $ // $Id: Predicates_C2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Apollonius_graph_2/Traits_wrapper_2.h cgal-5.5/include/CGAL/Apollonius_graph_2/Traits_wrapper_2.h --- cgal-5.4.1/include/CGAL/Apollonius_graph_2/Traits_wrapper_2.h 2022-06-03 19:03:36.000000000 +0000 +++ cgal-5.5/include/CGAL/Apollonius_graph_2/Traits_wrapper_2.h 2022-07-13 19:04:19.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Apollonius_graph_2/include/CGAL/Apollonius_graph_2/Traits_wrapper_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Apollonius_graph_2/include/CGAL/Apollonius_graph_2/Traits_wrapper_2.h $ // $Id: Traits_wrapper_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Apollonius_graph_2/uncertain/uncertain_functions_on_signs.h cgal-5.5/include/CGAL/Apollonius_graph_2/uncertain/uncertain_functions_on_signs.h --- cgal-5.4.1/include/CGAL/Apollonius_graph_2/uncertain/uncertain_functions_on_signs.h 2022-06-03 19:03:36.000000000 +0000 +++ cgal-5.5/include/CGAL/Apollonius_graph_2/uncertain/uncertain_functions_on_signs.h 2022-07-13 19:04:20.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Apollonius_graph_2/include/CGAL/Apollonius_graph_2/uncertain/uncertain_functions_on_signs.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Apollonius_graph_2/include/CGAL/Apollonius_graph_2/uncertain/uncertain_functions_on_signs.h $ // $Id: uncertain_functions_on_signs.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Apollonius_graph_2/uncertain/Uncertain_is_hidden_C2.h cgal-5.5/include/CGAL/Apollonius_graph_2/uncertain/Uncertain_is_hidden_C2.h --- cgal-5.4.1/include/CGAL/Apollonius_graph_2/uncertain/Uncertain_is_hidden_C2.h 2022-06-03 19:03:36.000000000 +0000 +++ cgal-5.5/include/CGAL/Apollonius_graph_2/uncertain/Uncertain_is_hidden_C2.h 2022-07-13 19:04:20.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Apollonius_graph_2/include/CGAL/Apollonius_graph_2/uncertain/Uncertain_is_hidden_C2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Apollonius_graph_2/include/CGAL/Apollonius_graph_2/uncertain/Uncertain_is_hidden_C2.h $ // $Id: Uncertain_is_hidden_C2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Apollonius_graph_2/uncertain/Uncertain_oriented_side_of_bisector_C2.h cgal-5.5/include/CGAL/Apollonius_graph_2/uncertain/Uncertain_oriented_side_of_bisector_C2.h --- cgal-5.4.1/include/CGAL/Apollonius_graph_2/uncertain/Uncertain_oriented_side_of_bisector_C2.h 2022-06-03 19:03:36.000000000 +0000 +++ cgal-5.5/include/CGAL/Apollonius_graph_2/uncertain/Uncertain_oriented_side_of_bisector_C2.h 2022-07-13 19:04:20.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Apollonius_graph_2/include/CGAL/Apollonius_graph_2/uncertain/Uncertain_oriented_side_of_bisector_C2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Apollonius_graph_2/include/CGAL/Apollonius_graph_2/uncertain/Uncertain_oriented_side_of_bisector_C2.h $ // $Id: Uncertain_oriented_side_of_bisector_C2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Apollonius_graph_2/uncertain/Uncertain_vertex_conflict_2.h cgal-5.5/include/CGAL/Apollonius_graph_2/uncertain/Uncertain_vertex_conflict_2.h --- cgal-5.4.1/include/CGAL/Apollonius_graph_2/uncertain/Uncertain_vertex_conflict_2.h 2022-06-03 19:03:36.000000000 +0000 +++ cgal-5.5/include/CGAL/Apollonius_graph_2/uncertain/Uncertain_vertex_conflict_2.h 2022-07-13 19:04:20.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Apollonius_graph_2/include/CGAL/Apollonius_graph_2/uncertain/Uncertain_vertex_conflict_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Apollonius_graph_2/include/CGAL/Apollonius_graph_2/uncertain/Uncertain_vertex_conflict_2.h $ // $Id: Uncertain_vertex_conflict_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Apollonius_graph_2.h cgal-5.5/include/CGAL/Apollonius_graph_2.h --- cgal-5.4.1/include/CGAL/Apollonius_graph_2.h 2022-06-03 19:03:35.000000000 +0000 +++ cgal-5.5/include/CGAL/Apollonius_graph_2.h 2022-07-13 19:04:19.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Apollonius_graph_2/include/CGAL/Apollonius_graph_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Apollonius_graph_2/include/CGAL/Apollonius_graph_2.h $ // $Id: Apollonius_graph_2.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Apollonius_graph_adaptation_policies_2.h cgal-5.5/include/CGAL/Apollonius_graph_adaptation_policies_2.h --- cgal-5.4.1/include/CGAL/Apollonius_graph_adaptation_policies_2.h 2022-06-03 19:06:13.000000000 +0000 +++ cgal-5.5/include/CGAL/Apollonius_graph_adaptation_policies_2.h 2022-07-13 19:07:12.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Voronoi_diagram_2/include/CGAL/Apollonius_graph_adaptation_policies_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Voronoi_diagram_2/include/CGAL/Apollonius_graph_adaptation_policies_2.h $ // $Id: Apollonius_graph_adaptation_policies_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Apollonius_graph_adaptation_traits_2.h cgal-5.5/include/CGAL/Apollonius_graph_adaptation_traits_2.h --- cgal-5.4.1/include/CGAL/Apollonius_graph_adaptation_traits_2.h 2022-06-03 19:06:13.000000000 +0000 +++ cgal-5.5/include/CGAL/Apollonius_graph_adaptation_traits_2.h 2022-07-13 19:07:12.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Voronoi_diagram_2/include/CGAL/Apollonius_graph_adaptation_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Voronoi_diagram_2/include/CGAL/Apollonius_graph_adaptation_traits_2.h $ // $Id: Apollonius_graph_adaptation_traits_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Apollonius_graph_data_structure_2.h cgal-5.5/include/CGAL/Apollonius_graph_data_structure_2.h --- cgal-5.4.1/include/CGAL/Apollonius_graph_data_structure_2.h 2022-06-03 19:03:36.000000000 +0000 +++ cgal-5.5/include/CGAL/Apollonius_graph_data_structure_2.h 2022-07-13 19:04:20.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Apollonius_graph_2/include/CGAL/Apollonius_graph_data_structure_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Apollonius_graph_2/include/CGAL/Apollonius_graph_data_structure_2.h $ // $Id: Apollonius_graph_data_structure_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Apollonius_graph_filtered_traits_2.h cgal-5.5/include/CGAL/Apollonius_graph_filtered_traits_2.h --- cgal-5.4.1/include/CGAL/Apollonius_graph_filtered_traits_2.h 2022-06-03 19:03:36.000000000 +0000 +++ cgal-5.5/include/CGAL/Apollonius_graph_filtered_traits_2.h 2022-07-13 19:04:20.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Apollonius_graph_2/include/CGAL/Apollonius_graph_filtered_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Apollonius_graph_2/include/CGAL/Apollonius_graph_filtered_traits_2.h $ // $Id: Apollonius_graph_filtered_traits_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Apollonius_graph_hierarchy_2.h cgal-5.5/include/CGAL/Apollonius_graph_hierarchy_2.h --- cgal-5.4.1/include/CGAL/Apollonius_graph_hierarchy_2.h 2022-06-03 19:03:36.000000000 +0000 +++ cgal-5.5/include/CGAL/Apollonius_graph_hierarchy_2.h 2022-07-13 19:04:20.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Apollonius_graph_2/include/CGAL/Apollonius_graph_hierarchy_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Apollonius_graph_2/include/CGAL/Apollonius_graph_hierarchy_2.h $ // $Id: Apollonius_graph_hierarchy_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Apollonius_graph_hierarchy_vertex_base_2.h cgal-5.5/include/CGAL/Apollonius_graph_hierarchy_vertex_base_2.h --- cgal-5.4.1/include/CGAL/Apollonius_graph_hierarchy_vertex_base_2.h 2022-06-03 19:03:36.000000000 +0000 +++ cgal-5.5/include/CGAL/Apollonius_graph_hierarchy_vertex_base_2.h 2022-07-13 19:04:20.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Apollonius_graph_2/include/CGAL/Apollonius_graph_hierarchy_vertex_base_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Apollonius_graph_2/include/CGAL/Apollonius_graph_hierarchy_vertex_base_2.h $ // $Id: Apollonius_graph_hierarchy_vertex_base_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Apollonius_graph_traits_2.h cgal-5.5/include/CGAL/Apollonius_graph_traits_2.h --- cgal-5.4.1/include/CGAL/Apollonius_graph_traits_2.h 2022-06-03 19:03:36.000000000 +0000 +++ cgal-5.5/include/CGAL/Apollonius_graph_traits_2.h 2022-07-13 19:04:20.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Apollonius_graph_2/include/CGAL/Apollonius_graph_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Apollonius_graph_2/include/CGAL/Apollonius_graph_traits_2.h $ // $Id: Apollonius_graph_traits_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Apollonius_graph_vertex_base_2.h cgal-5.5/include/CGAL/Apollonius_graph_vertex_base_2.h --- cgal-5.4.1/include/CGAL/Apollonius_graph_vertex_base_2.h 2022-06-03 19:03:36.000000000 +0000 +++ cgal-5.5/include/CGAL/Apollonius_graph_vertex_base_2.h 2022-07-13 19:04:20.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Apollonius_graph_2/include/CGAL/Apollonius_graph_vertex_base_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Apollonius_graph_2/include/CGAL/Apollonius_graph_vertex_base_2.h $ // $Id: Apollonius_graph_vertex_base_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Apollonius_site_2.h cgal-5.5/include/CGAL/Apollonius_site_2.h --- cgal-5.4.1/include/CGAL/Apollonius_site_2.h 2022-06-03 19:03:36.000000000 +0000 +++ cgal-5.5/include/CGAL/Apollonius_site_2.h 2022-07-13 19:04:20.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Apollonius_graph_2/include/CGAL/Apollonius_site_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Apollonius_graph_2/include/CGAL/Apollonius_site_2.h $ // $Id: Apollonius_site_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/apply_to_range.h cgal-5.5/include/CGAL/apply_to_range.h --- cgal-5.4.1/include/CGAL/apply_to_range.h 2022-06-03 19:06:07.000000000 +0000 +++ cgal-5.5/include/CGAL/apply_to_range.h 2022-07-13 19:07:06.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_2/include/CGAL/apply_to_range.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_2/include/CGAL/apply_to_range.h $ // $Id: apply_to_range.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/approximated_offset_2.h cgal-5.5/include/CGAL/approximated_offset_2.h --- cgal-5.4.1/include/CGAL/approximated_offset_2.h 2022-06-03 19:04:52.000000000 +0000 +++ cgal-5.5/include/CGAL/approximated_offset_2.h 2022-07-13 19:05:45.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Minkowski_sum_2/include/CGAL/approximated_offset_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Minkowski_sum_2/include/CGAL/approximated_offset_2.h $ // $Id: approximated_offset_2.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Approximate_min_ellipsoid_d/Approximate_min_ellipsoid_d_configure.h cgal-5.5/include/CGAL/Approximate_min_ellipsoid_d/Approximate_min_ellipsoid_d_configure.h --- cgal-5.4.1/include/CGAL/Approximate_min_ellipsoid_d/Approximate_min_ellipsoid_d_configure.h 2022-06-03 19:03:53.000000000 +0000 +++ cgal-5.5/include/CGAL/Approximate_min_ellipsoid_d/Approximate_min_ellipsoid_d_configure.h 2022-07-13 19:04:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Bounding_volumes/include/CGAL/Approximate_min_ellipsoid_d/Approximate_min_ellipsoid_d_configure.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Bounding_volumes/include/CGAL/Approximate_min_ellipsoid_d/Approximate_min_ellipsoid_d_configure.h $ // $Id: Approximate_min_ellipsoid_d_configure.h 5a36ff8 2020-12-04T08:02:26+00:00 Giles Bathgate // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Approximate_min_ellipsoid_d/Approximate_min_ellipsoid_d_debug.h cgal-5.5/include/CGAL/Approximate_min_ellipsoid_d/Approximate_min_ellipsoid_d_debug.h --- cgal-5.4.1/include/CGAL/Approximate_min_ellipsoid_d/Approximate_min_ellipsoid_d_debug.h 2022-06-03 19:03:53.000000000 +0000 +++ cgal-5.5/include/CGAL/Approximate_min_ellipsoid_d/Approximate_min_ellipsoid_d_debug.h 2022-07-13 19:04:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Bounding_volumes/include/CGAL/Approximate_min_ellipsoid_d/Approximate_min_ellipsoid_d_debug.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Bounding_volumes/include/CGAL/Approximate_min_ellipsoid_d/Approximate_min_ellipsoid_d_debug.h $ // $Id: Approximate_min_ellipsoid_d_debug.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Approximate_min_ellipsoid_d/Approximate_min_ellipsoid_d_impl.h cgal-5.5/include/CGAL/Approximate_min_ellipsoid_d/Approximate_min_ellipsoid_d_impl.h --- cgal-5.4.1/include/CGAL/Approximate_min_ellipsoid_d/Approximate_min_ellipsoid_d_impl.h 2022-06-03 19:03:53.000000000 +0000 +++ cgal-5.5/include/CGAL/Approximate_min_ellipsoid_d/Approximate_min_ellipsoid_d_impl.h 2022-07-13 19:04:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Bounding_volumes/include/CGAL/Approximate_min_ellipsoid_d/Approximate_min_ellipsoid_d_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Bounding_volumes/include/CGAL/Approximate_min_ellipsoid_d/Approximate_min_ellipsoid_d_impl.h $ // $Id: Approximate_min_ellipsoid_d_impl.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Approximate_min_ellipsoid_d/Khachiyan_approximation.h cgal-5.5/include/CGAL/Approximate_min_ellipsoid_d/Khachiyan_approximation.h --- cgal-5.4.1/include/CGAL/Approximate_min_ellipsoid_d/Khachiyan_approximation.h 2022-06-03 19:03:53.000000000 +0000 +++ cgal-5.5/include/CGAL/Approximate_min_ellipsoid_d/Khachiyan_approximation.h 2022-07-13 19:04:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Bounding_volumes/include/CGAL/Approximate_min_ellipsoid_d/Khachiyan_approximation.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Bounding_volumes/include/CGAL/Approximate_min_ellipsoid_d/Khachiyan_approximation.h $ // $Id: Khachiyan_approximation.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Approximate_min_ellipsoid_d/Khachiyan_approximation_impl.h cgal-5.5/include/CGAL/Approximate_min_ellipsoid_d/Khachiyan_approximation_impl.h --- cgal-5.4.1/include/CGAL/Approximate_min_ellipsoid_d/Khachiyan_approximation_impl.h 2022-06-03 19:03:53.000000000 +0000 +++ cgal-5.5/include/CGAL/Approximate_min_ellipsoid_d/Khachiyan_approximation_impl.h 2022-07-13 19:04:39.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Bounding_volumes/include/CGAL/Approximate_min_ellipsoid_d/Khachiyan_approximation_impl.h $ -// $Id: Khachiyan_approximation_impl.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Bounding_volumes/include/CGAL/Approximate_min_ellipsoid_d/Khachiyan_approximation_impl.h $ +// $Id: Khachiyan_approximation_impl.h 54529af 2022-06-01T10:53:10+01:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -482,10 +482,16 @@ // check whether eps is negative (which under exact arithmetic is // not possible, and which we will take as a sign that the input // points are degenerate): - if (CGAL::is_negative(eps_e)) { - CGAL_APPEL_LOG("appel", "Negative Exact epsilon -> degenerate!" << "\n"); - is_deg = true; - } + // BG: the following check is wrong and has been commented out. + // If the ellipsoid happens to be optimal (valid with eps=0), + // a slightly negative eps_e is a legit outcome due to roundoff: + // while eps_e is computed with exact arithmetic, it is based on + // the inexact inverse M(x)^{-1}. + // + // if (CGAL::is_negative(eps_e)) { + // CGAL_APPEL_LOG("appel", "Negative Exact epsilon -> degenerate!" << "\n"); + // is_deg = true; + // } is_exact_eps_uptodate = true; return eps_exact; diff -Nru cgal-5.4.1/include/CGAL/Approximate_min_ellipsoid_d.h cgal-5.5/include/CGAL/Approximate_min_ellipsoid_d.h --- cgal-5.4.1/include/CGAL/Approximate_min_ellipsoid_d.h 2022-06-03 19:03:53.000000000 +0000 +++ cgal-5.5/include/CGAL/Approximate_min_ellipsoid_d.h 2022-07-13 19:04:39.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Bounding_volumes/include/CGAL/Approximate_min_ellipsoid_d.h $ -// $Id: Approximate_min_ellipsoid_d.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Bounding_volumes/include/CGAL/Approximate_min_ellipsoid_d.h $ +// $Id: Approximate_min_ellipsoid_d.h 2b31362 2022-06-22T07:53:20+01:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -294,10 +294,13 @@ double tmp = sum; for (int i=0; i= 0.0); + if (CGAL::is_negative(eps)) { + CGAL_APPEL_LOG("appel", "Clamp negative approximate eps to zero" << "\n"); + eps = 0; + } return eps; } @@ -362,7 +365,7 @@ // the computed ellipsoid's axes. The d lengths are floating-point // approximations to the exact axes-lengths of the computed ellipsoid; no // guarantee is given w.r.t. the involved relative error. (See also method - // axes_direction_cartesian_begin().) The elements of the iterator are + // `axis_direction_cartesian_begin()`.) The elements of the iterator are // sorted descending. // // Precondition: !is_degenerate() && (d==2 || d==3) diff -Nru cgal-5.4.1/include/CGAL/Approximate_min_ellipsoid_d_traits_2.h cgal-5.5/include/CGAL/Approximate_min_ellipsoid_d_traits_2.h --- cgal-5.4.1/include/CGAL/Approximate_min_ellipsoid_d_traits_2.h 2022-06-03 19:03:53.000000000 +0000 +++ cgal-5.5/include/CGAL/Approximate_min_ellipsoid_d_traits_2.h 2022-07-13 19:04:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Bounding_volumes/include/CGAL/Approximate_min_ellipsoid_d_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Bounding_volumes/include/CGAL/Approximate_min_ellipsoid_d_traits_2.h $ // $Id: Approximate_min_ellipsoid_d_traits_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Approximate_min_ellipsoid_d_traits_3.h cgal-5.5/include/CGAL/Approximate_min_ellipsoid_d_traits_3.h --- cgal-5.4.1/include/CGAL/Approximate_min_ellipsoid_d_traits_3.h 2022-06-03 19:03:53.000000000 +0000 +++ cgal-5.5/include/CGAL/Approximate_min_ellipsoid_d_traits_3.h 2022-07-13 19:04:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Bounding_volumes/include/CGAL/Approximate_min_ellipsoid_d_traits_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Bounding_volumes/include/CGAL/Approximate_min_ellipsoid_d_traits_3.h $ // $Id: Approximate_min_ellipsoid_d_traits_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Approximate_min_ellipsoid_d_traits_d.h cgal-5.5/include/CGAL/Approximate_min_ellipsoid_d_traits_d.h --- cgal-5.4.1/include/CGAL/Approximate_min_ellipsoid_d_traits_d.h 2022-06-03 19:03:53.000000000 +0000 +++ cgal-5.5/include/CGAL/Approximate_min_ellipsoid_d_traits_d.h 2022-07-13 19:04:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Bounding_volumes/include/CGAL/Approximate_min_ellipsoid_d_traits_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Bounding_volumes/include/CGAL/Approximate_min_ellipsoid_d_traits_d.h $ // $Id: Approximate_min_ellipsoid_d_traits_d.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/argument_swaps.h cgal-5.5/include/CGAL/argument_swaps.h --- cgal-5.4.1/include/CGAL/argument_swaps.h 2022-06-03 19:04:58.000000000 +0000 +++ cgal-5.5/include/CGAL/argument_swaps.h 2022-07-13 19:05:52.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/NewKernel_d/include/CGAL/argument_swaps.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/NewKernel_d/include/CGAL/argument_swaps.h $ // $Id: argument_swaps.h 822bc55 2020-03-27T08:28:48+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arithmetic_kernel/Arithmetic_kernel_base.h cgal-5.5/include/CGAL/Arithmetic_kernel/Arithmetic_kernel_base.h --- cgal-5.4.1/include/CGAL/Arithmetic_kernel/Arithmetic_kernel_base.h 2022-06-03 19:03:36.000000000 +0000 +++ cgal-5.5/include/CGAL/Arithmetic_kernel/Arithmetic_kernel_base.h 2022-07-13 19:04:20.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arithmetic_kernel/include/CGAL/Arithmetic_kernel/Arithmetic_kernel_base.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arithmetic_kernel/include/CGAL/Arithmetic_kernel/Arithmetic_kernel_base.h $ // $Id: Arithmetic_kernel_base.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arithmetic_kernel.h cgal-5.5/include/CGAL/Arithmetic_kernel.h --- cgal-5.4.1/include/CGAL/Arithmetic_kernel.h 2022-06-03 19:03:36.000000000 +0000 +++ cgal-5.5/include/CGAL/Arithmetic_kernel.h 2022-07-13 19:04:20.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arithmetic_kernel/include/CGAL/Arithmetic_kernel.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arithmetic_kernel/include/CGAL/Arithmetic_kernel.h $ // $Id: Arithmetic_kernel.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_accessor.h cgal-5.5/include/CGAL/Arr_accessor.h --- cgal-5.4.1/include/CGAL/Arr_accessor.h 2022-06-03 19:03:41.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_accessor.h 2022-07-13 19:04:26.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_accessor.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_accessor.h $ // $Id: Arr_accessor.h 6b64dc8 2020-11-11T09:38:55+02:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_algebraic_segment_traits_2.h cgal-5.5/include/CGAL/Arr_algebraic_segment_traits_2.h --- cgal-5.4.1/include/CGAL/Arr_algebraic_segment_traits_2.h 2022-06-03 19:03:41.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_algebraic_segment_traits_2.h 2022-07-13 19:04:26.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_algebraic_segment_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_algebraic_segment_traits_2.h $ // $Id: Arr_algebraic_segment_traits_2.h 6b64dc8 2020-11-11T09:38:55+02:00 Efi Fogel // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arrangement_2/Arrangement_2_iterators.h cgal-5.5/include/CGAL/Arrangement_2/Arrangement_2_iterators.h --- cgal-5.4.1/include/CGAL/Arrangement_2/Arrangement_2_iterators.h 2022-06-03 19:03:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Arrangement_2/Arrangement_2_iterators.h 2022-07-13 19:04:30.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arrangement_2/Arrangement_2_iterators.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arrangement_2/Arrangement_2_iterators.h $ // $Id: Arrangement_2_iterators.h 3448035 2021-03-24T08:25:29+01:00 Simon Giraudot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arrangement_2/Arrangement_on_surface_2_global.h cgal-5.5/include/CGAL/Arrangement_2/Arrangement_on_surface_2_global.h --- cgal-5.4.1/include/CGAL/Arrangement_2/Arrangement_on_surface_2_global.h 2022-06-03 19:03:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Arrangement_2/Arrangement_on_surface_2_global.h 2022-07-13 19:04:30.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arrangement_2/Arrangement_on_surface_2_global.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arrangement_2/Arrangement_on_surface_2_global.h $ // $Id: Arrangement_on_surface_2_global.h 6b64dc8 2020-11-11T09:38:55+02:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arrangement_2/Arrangement_on_surface_2_impl.h cgal-5.5/include/CGAL/Arrangement_2/Arrangement_on_surface_2_impl.h --- cgal-5.4.1/include/CGAL/Arrangement_2/Arrangement_on_surface_2_impl.h 2022-06-03 19:03:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Arrangement_2/Arrangement_on_surface_2_impl.h 2022-07-13 19:04:30.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arrangement_2/Arrangement_on_surface_2_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arrangement_2/Arrangement_on_surface_2_impl.h $ // $Id: Arrangement_on_surface_2_impl.h 30da4eb 2021-03-22T13:35:23+02:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arrangement_2/arrangement_type_traits.h cgal-5.5/include/CGAL/Arrangement_2/arrangement_type_traits.h --- cgal-5.4.1/include/CGAL/Arrangement_2/arrangement_type_traits.h 2022-06-03 19:03:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Arrangement_2/arrangement_type_traits.h 2022-07-13 19:04:30.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arrangement_2/arrangement_type_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arrangement_2/arrangement_type_traits.h $ // $Id: arrangement_type_traits.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arrangement_2/Arrangement_zone_2_impl.h cgal-5.5/include/CGAL/Arrangement_2/Arrangement_zone_2_impl.h --- cgal-5.4.1/include/CGAL/Arrangement_2/Arrangement_zone_2_impl.h 2022-06-03 19:03:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Arrangement_2/Arrangement_zone_2_impl.h 2022-07-13 19:04:30.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arrangement_2/Arrangement_zone_2_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arrangement_2/Arrangement_zone_2_impl.h $ // $Id: Arrangement_zone_2_impl.h 8d95fb8 2021-08-11T18:37:30+03:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arrangement_2/Arr_compute_zone_visitor.h cgal-5.5/include/CGAL/Arrangement_2/Arr_compute_zone_visitor.h --- cgal-5.4.1/include/CGAL/Arrangement_2/Arr_compute_zone_visitor.h 2022-06-03 19:03:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Arrangement_2/Arr_compute_zone_visitor.h 2022-07-13 19:04:29.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arrangement_2/Arr_compute_zone_visitor.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arrangement_2/Arr_compute_zone_visitor.h $ // $Id: Arr_compute_zone_visitor.h 0626eb0 2020-06-11T12:32:33+03:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arrangement_2/Arr_default_planar_topology.h cgal-5.5/include/CGAL/Arrangement_2/Arr_default_planar_topology.h --- cgal-5.4.1/include/CGAL/Arrangement_2/Arr_default_planar_topology.h 2022-06-03 19:03:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Arrangement_2/Arr_default_planar_topology.h 2022-07-13 19:04:29.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arrangement_2/Arr_default_planar_topology.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arrangement_2/Arr_default_planar_topology.h $ // $Id: Arr_default_planar_topology.h 2a3fbc0 2019-11-19T09:47:44+02:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arrangement_2/Arr_do_intersect_zone_visitor.h cgal-5.5/include/CGAL/Arrangement_2/Arr_do_intersect_zone_visitor.h --- cgal-5.4.1/include/CGAL/Arrangement_2/Arr_do_intersect_zone_visitor.h 2022-06-03 19:03:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Arrangement_2/Arr_do_intersect_zone_visitor.h 2022-07-13 19:04:29.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arrangement_2/Arr_do_intersect_zone_visitor.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arrangement_2/Arr_do_intersect_zone_visitor.h $ // $Id: Arr_do_intersect_zone_visitor.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arrangement_2/Arr_on_surface_with_history_2_impl.h cgal-5.5/include/CGAL/Arrangement_2/Arr_on_surface_with_history_2_impl.h --- cgal-5.4.1/include/CGAL/Arrangement_2/Arr_on_surface_with_history_2_impl.h 2022-06-03 19:03:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Arrangement_2/Arr_on_surface_with_history_2_impl.h 2022-07-13 19:04:30.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arrangement_2/Arr_on_surface_with_history_2_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arrangement_2/Arr_on_surface_with_history_2_impl.h $ // $Id: Arr_on_surface_with_history_2_impl.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arrangement_2/Arr_traits_adaptor_2_dispatching.h cgal-5.5/include/CGAL/Arrangement_2/Arr_traits_adaptor_2_dispatching.h --- cgal-5.4.1/include/CGAL/Arrangement_2/Arr_traits_adaptor_2_dispatching.h 2022-06-03 19:03:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Arrangement_2/Arr_traits_adaptor_2_dispatching.h 2022-07-13 19:04:30.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arrangement_2/Arr_traits_adaptor_2_dispatching.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arrangement_2/Arr_traits_adaptor_2_dispatching.h $ // $Id: Arr_traits_adaptor_2_dispatching.h 2a3fbc0 2019-11-19T09:47:44+02:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arrangement_2/Arr_traits_adaptor_2.h cgal-5.5/include/CGAL/Arrangement_2/Arr_traits_adaptor_2.h --- cgal-5.4.1/include/CGAL/Arrangement_2/Arr_traits_adaptor_2.h 2022-06-03 19:03:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Arrangement_2/Arr_traits_adaptor_2.h 2022-07-13 19:04:30.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arrangement_2/Arr_traits_adaptor_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arrangement_2/Arr_traits_adaptor_2.h $ // $Id: Arr_traits_adaptor_2.h 521c72d 2021-10-04T13:22:00+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // $Date$ diff -Nru cgal-5.4.1/include/CGAL/Arrangement_2/Arr_with_history_accessor.h cgal-5.5/include/CGAL/Arrangement_2/Arr_with_history_accessor.h --- cgal-5.4.1/include/CGAL/Arrangement_2/Arr_with_history_accessor.h 2022-06-03 19:03:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Arrangement_2/Arr_with_history_accessor.h 2022-07-13 19:04:30.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arrangement_2/Arr_with_history_accessor.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arrangement_2/Arr_with_history_accessor.h $ // $Id: Arr_with_history_accessor.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arrangement_2/graph_traits_dual.h cgal-5.5/include/CGAL/Arrangement_2/graph_traits_dual.h --- cgal-5.4.1/include/CGAL/Arrangement_2/graph_traits_dual.h 2022-06-03 19:03:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Arrangement_2/graph_traits_dual.h 2022-07-13 19:04:30.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arrangement_2/graph_traits_dual.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arrangement_2/graph_traits_dual.h $ // $Id: graph_traits_dual.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arrangement_2.h cgal-5.5/include/CGAL/Arrangement_2.h --- cgal-5.4.1/include/CGAL/Arrangement_2.h 2022-06-03 19:03:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Arrangement_2.h 2022-07-13 19:04:29.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arrangement_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arrangement_2.h $ // $Id: Arrangement_2.h d91194f 2019-12-02T21:22:25+02:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arrangement_on_surface_2.h cgal-5.5/include/CGAL/Arrangement_on_surface_2.h --- cgal-5.4.1/include/CGAL/Arrangement_on_surface_2.h 2022-06-03 19:03:45.000000000 +0000 +++ cgal-5.5/include/CGAL/Arrangement_on_surface_2.h 2022-07-13 19:04:30.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arrangement_on_surface_2.h $ -// $Id: Arrangement_on_surface_2.h 30da4eb 2021-03-22T13:35:23+02:00 Efi Fogel +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arrangement_on_surface_2.h $ +// $Id: Arrangement_on_surface_2.h 4ea5251 2022-06-10T16:44:17+02:00 Laurent Rineau // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -48,8 +48,6 @@ #include #include -#include - namespace CGAL { /*! \class Arrangement_on_surface_2 @@ -68,7 +66,7 @@ public: typedef GeomTraits_ Geometry_traits_2; typedef TopTraits_ Topology_traits; - typedef boost::fast_pool_allocator Allocator; + typedef CGAL_ALLOCATOR(int) Allocator; // first define adaptor ... typedef Arr_traits_basic_adaptor_2 Traits_adaptor_2; diff -Nru cgal-5.4.1/include/CGAL/Arrangement_on_surface_with_history_2.h cgal-5.5/include/CGAL/Arrangement_on_surface_with_history_2.h --- cgal-5.4.1/include/CGAL/Arrangement_on_surface_with_history_2.h 2022-06-03 19:03:45.000000000 +0000 +++ cgal-5.5/include/CGAL/Arrangement_on_surface_with_history_2.h 2022-07-13 19:04:30.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arrangement_on_surface_with_history_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arrangement_on_surface_with_history_2.h $ // $Id: Arrangement_on_surface_with_history_2.h ba8aec6 2021-04-21T13:24:05+03:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arrangement_with_history_2.h cgal-5.5/include/CGAL/Arrangement_with_history_2.h --- cgal-5.4.1/include/CGAL/Arrangement_with_history_2.h 2022-06-03 19:03:45.000000000 +0000 +++ cgal-5.5/include/CGAL/Arrangement_with_history_2.h 2022-07-13 19:04:30.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arrangement_with_history_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arrangement_with_history_2.h $ // $Id: Arrangement_with_history_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arrangement_zone_2.h cgal-5.5/include/CGAL/Arrangement_zone_2.h --- cgal-5.4.1/include/CGAL/Arrangement_zone_2.h 2022-06-03 19:03:45.000000000 +0000 +++ cgal-5.5/include/CGAL/Arrangement_zone_2.h 2022-07-13 19:04:30.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arrangement_zone_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arrangement_zone_2.h $ // $Id: Arrangement_zone_2.h 6b64dc8 2020-11-11T09:38:55+02:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/arrange_offset_polygons_2.h cgal-5.5/include/CGAL/arrange_offset_polygons_2.h --- cgal-5.4.1/include/CGAL/arrange_offset_polygons_2.h 2022-06-03 19:05:50.000000000 +0000 +++ cgal-5.5/include/CGAL/arrange_offset_polygons_2.h 2022-07-13 19:06:47.000000000 +0000 @@ -3,7 +3,7 @@ // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Straight_skeleton_2/include/CGAL/arrange_offset_polygons_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Straight_skeleton_2/include/CGAL/arrange_offset_polygons_2.h $ // $Id: arrange_offset_polygons_2.h 314db57 2020-11-06T12:03:15+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/array.h cgal-5.5/include/CGAL/array.h --- cgal-5.4.1/include/CGAL/array.h 2022-06-03 19:05:33.000000000 +0000 +++ cgal-5.5/include/CGAL/array.h 2022-07-13 19:06:28.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/array.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/array.h $ // $Id: array.h 160118e 2021-02-11T14:36:26+01:00 Laurent Rineau // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_batched_point_location.h cgal-5.5/include/CGAL/Arr_batched_point_location.h --- cgal-5.4.1/include/CGAL/Arr_batched_point_location.h 2022-06-03 19:03:41.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_batched_point_location.h 2022-07-13 19:04:26.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_batched_point_location.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_batched_point_location.h $ // $Id: Arr_batched_point_location.h 0626eb0 2020-06-11T12:32:33+03:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_Bezier_curve_traits_2.h cgal-5.5/include/CGAL/Arr_Bezier_curve_traits_2.h --- cgal-5.4.1/include/CGAL/Arr_Bezier_curve_traits_2.h 2022-06-03 19:03:41.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_Bezier_curve_traits_2.h 2022-07-13 19:04:26.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_Bezier_curve_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_Bezier_curve_traits_2.h $ // $Id: Arr_Bezier_curve_traits_2.h 40152a2 2020-06-13T16:43:09+03:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_bounded_planar_topology_traits_2.h cgal-5.5/include/CGAL/Arr_bounded_planar_topology_traits_2.h --- cgal-5.4.1/include/CGAL/Arr_bounded_planar_topology_traits_2.h 2022-06-03 19:03:41.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_bounded_planar_topology_traits_2.h 2022-07-13 19:04:26.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_bounded_planar_topology_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_bounded_planar_topology_traits_2.h $ // $Id: Arr_bounded_planar_topology_traits_2.h 3849f5e 2020-06-14T00:41:25+03:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_circle_segment_traits_2.h cgal-5.5/include/CGAL/Arr_circle_segment_traits_2.h --- cgal-5.4.1/include/CGAL/Arr_circle_segment_traits_2.h 2022-06-03 19:03:41.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_circle_segment_traits_2.h 2022-07-13 19:04:26.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_circle_segment_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_circle_segment_traits_2.h $ // $Id: Arr_circle_segment_traits_2.h 59a0da4 2021-05-19T17:23:53+02:00 Laurent Rineau // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_circular_arc_traits_2.h cgal-5.5/include/CGAL/Arr_circular_arc_traits_2.h --- cgal-5.4.1/include/CGAL/Arr_circular_arc_traits_2.h 2022-06-03 19:03:41.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_circular_arc_traits_2.h 2022-07-13 19:04:26.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_circular_arc_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_circular_arc_traits_2.h $ // $Id: Arr_circular_arc_traits_2.h 1b23ac2 2020-07-02T19:10:00+03:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_circular_line_arc_traits_2.h cgal-5.5/include/CGAL/Arr_circular_line_arc_traits_2.h --- cgal-5.4.1/include/CGAL/Arr_circular_line_arc_traits_2.h 2022-06-03 19:03:41.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_circular_line_arc_traits_2.h 2022-07-13 19:04:26.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_circular_line_arc_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_circular_line_arc_traits_2.h $ // $Id: Arr_circular_line_arc_traits_2.h af94033 2021-01-07T16:39:03+01:00 Dmitry Anisimov // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_conic_traits_2.h cgal-5.5/include/CGAL/Arr_conic_traits_2.h --- cgal-5.4.1/include/CGAL/Arr_conic_traits_2.h 2022-06-03 19:03:41.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_conic_traits_2.h 2022-07-13 19:04:26.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_conic_traits_2.h $ -// $Id: Arr_conic_traits_2.h 59a0da4 2021-05-19T17:23:53+02:00 Laurent Rineau +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_conic_traits_2.h $ +// $Id: Arr_conic_traits_2.h c0838c5 2021-12-16T16:33:43+02:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -723,29 +723,39 @@ return Approximate_2(); } - class Construct_x_monotone_curve_2 - { + //! Functor + class Construct_x_monotone_curve_2 { public: - - /*! - * Return an x-monotone curve connecting the two given endpoints. + /*! Return an x-monotone curve connecting the two given endpoints. * \param p The first point. * \param q The second point. * \pre p and q must not be the same. * \return A segment connecting p and q. */ - X_monotone_curve_2 operator() (const Point_2& p, - const Point_2& q) const - { - return (X_monotone_curve_2 (p, q)); - } + X_monotone_curve_2 operator()(const Point_2& p, const Point_2& q) const + { return (X_monotone_curve_2(p, q)); } }; /*! Get a Construct_x_monotone_curve_2 functor object. */ Construct_x_monotone_curve_2 construct_x_monotone_curve_2_object () const - { - return Construct_x_monotone_curve_2(); - } + { return Construct_x_monotone_curve_2(); } + + //! Functor + class Construct_curve_2 { + public: + /*! Return a curve connecting the two given endpoints. + * \param p The first point. + * \param q The second point. + * \pre p and q must not be the same. + * \return A segment connecting p and q. + */ + Curve_2 operator()(const Point_2& p, const Point_2& q) const + { return (Curve_2(p, q)); } + }; + + /*! Get a Construct_curve_2 functor object. */ + Construct_curve_2 construct_curve_2_object () const + { return Construct_curve_2(); } //@} /// \name Functor definitions for the Boolean set-operation traits. diff -Nru cgal-5.4.1/include/CGAL/Arr_consolidated_curve_data_traits_2.h cgal-5.5/include/CGAL/Arr_consolidated_curve_data_traits_2.h --- cgal-5.4.1/include/CGAL/Arr_consolidated_curve_data_traits_2.h 2022-06-03 19:03:41.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_consolidated_curve_data_traits_2.h 2022-07-13 19:04:26.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_consolidated_curve_data_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_consolidated_curve_data_traits_2.h $ // $Id: Arr_consolidated_curve_data_traits_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_counting_traits_2.h cgal-5.5/include/CGAL/Arr_counting_traits_2.h --- cgal-5.4.1/include/CGAL/Arr_counting_traits_2.h 2022-06-03 19:03:41.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_counting_traits_2.h 2022-07-13 19:04:26.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_counting_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_counting_traits_2.h $ // $Id: Arr_counting_traits_2.h 055f87d 2021-09-15T10:10:45+01:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_curve_data_traits_2.h cgal-5.5/include/CGAL/Arr_curve_data_traits_2.h --- cgal-5.4.1/include/CGAL/Arr_curve_data_traits_2.h 2022-06-03 19:03:41.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_curve_data_traits_2.h 2022-07-13 19:04:26.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_curve_data_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_curve_data_traits_2.h $ // $Id: Arr_curve_data_traits_2.h 372e838 2020-07-06T11:32:32+03:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_dcel_base.h cgal-5.5/include/CGAL/Arr_dcel_base.h --- cgal-5.4.1/include/CGAL/Arr_dcel_base.h 2022-06-03 19:03:41.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_dcel_base.h 2022-07-13 19:04:26.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_dcel_base.h $ -// $Id: Arr_dcel_base.h e683686 2021-11-18T12:31:39+01:00 Laurent Rineau +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_dcel_base.h $ +// $Id: Arr_dcel_base.h 4ea5251 2022-06-10T16:44:17+02:00 Laurent Rineau // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -34,8 +34,6 @@ #include #include -#include - namespace CGAL { inline void* _clean_pointer(const void* p) @@ -964,7 +962,7 @@ * The arrangement DCEL class. */ template > + class Allocator = CGAL_ALLOCATOR(int) > class Arr_dcel_base { public: // Define the vertex, halfedge and face types. diff -Nru cgal-5.4.1/include/CGAL/Arr_default_dcel.h cgal-5.5/include/CGAL/Arr_default_dcel.h --- cgal-5.4.1/include/CGAL/Arr_default_dcel.h 2022-06-03 19:03:41.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_default_dcel.h 2022-07-13 19:04:26.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_default_dcel.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_default_dcel.h $ // $Id: Arr_default_dcel.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_default_overlay_traits.h cgal-5.5/include/CGAL/Arr_default_overlay_traits.h --- cgal-5.4.1/include/CGAL/Arr_default_overlay_traits.h 2022-06-03 19:03:41.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_default_overlay_traits.h 2022-07-13 19:04:26.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_default_overlay_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_default_overlay_traits.h $ // $Id: Arr_default_overlay_traits.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_directional_non_caching_segment_basic_traits_2.h cgal-5.5/include/CGAL/Arr_directional_non_caching_segment_basic_traits_2.h --- cgal-5.4.1/include/CGAL/Arr_directional_non_caching_segment_basic_traits_2.h 2022-06-03 19:03:41.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_directional_non_caching_segment_basic_traits_2.h 2022-07-13 19:04:26.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_directional_non_caching_segment_basic_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_directional_non_caching_segment_basic_traits_2.h $ // $Id: Arr_directional_non_caching_segment_basic_traits_2.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_enums.h cgal-5.5/include/CGAL/Arr_enums.h --- cgal-5.4.1/include/CGAL/Arr_enums.h 2022-06-03 19:03:41.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_enums.h 2022-07-13 19:04:26.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_enums.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_enums.h $ // $Id: Arr_enums.h 4e519a3 2021-05-05T13:15:37+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_extended_dcel.h cgal-5.5/include/CGAL/Arr_extended_dcel.h --- cgal-5.4.1/include/CGAL/Arr_extended_dcel.h 2022-06-03 19:03:41.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_extended_dcel.h 2022-07-13 19:04:26.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_extended_dcel.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_extended_dcel.h $ // $Id: Arr_extended_dcel.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_face_index_map.h cgal-5.5/include/CGAL/Arr_face_index_map.h --- cgal-5.4.1/include/CGAL/Arr_face_index_map.h 2022-06-03 19:03:41.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_face_index_map.h 2022-07-13 19:04:26.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_face_index_map.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_face_index_map.h $ // $Id: Arr_face_index_map.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_face_map.h cgal-5.5/include/CGAL/Arr_face_map.h --- cgal-5.4.1/include/CGAL/Arr_face_map.h 2022-06-03 19:03:41.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_face_map.h 2022-07-13 19:04:26.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_face_map.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_face_map.h $ // $Id: Arr_face_map.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_geodesic_arc_on_sphere_partition_traits_2.h cgal-5.5/include/CGAL/Arr_geodesic_arc_on_sphere_partition_traits_2.h --- cgal-5.4.1/include/CGAL/Arr_geodesic_arc_on_sphere_partition_traits_2.h 2022-06-03 19:03:41.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_geodesic_arc_on_sphere_partition_traits_2.h 2022-07-13 19:04:26.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_geodesic_arc_on_sphere_partition_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_geodesic_arc_on_sphere_partition_traits_2.h $ // $Id: Arr_geodesic_arc_on_sphere_partition_traits_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // @@ -314,7 +314,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_geodesic_arc_on_sphere_partition_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_geodesic_arc_on_sphere_partition_traits_2.h $ // $Id: Arr_geodesic_arc_on_sphere_partition_traits_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_geodesic_arc_on_sphere_traits_2.h cgal-5.5/include/CGAL/Arr_geodesic_arc_on_sphere_traits_2.h --- cgal-5.4.1/include/CGAL/Arr_geodesic_arc_on_sphere_traits_2.h 2022-06-03 19:03:41.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_geodesic_arc_on_sphere_traits_2.h 2022-07-13 19:04:26.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_geodesic_arc_on_sphere_traits_2.h $ -// $Id: Arr_geodesic_arc_on_sphere_traits_2.h 5be3a41 2021-08-30T15:08:47+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_geodesic_arc_on_sphere_traits_2.h $ +// $Id: Arr_geodesic_arc_on_sphere_traits_2.h 7d4a8e5 2022-04-06T09:12:02+02:00 Laurent Rineau // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Efi Fogel @@ -1194,11 +1194,10 @@ */ Comparison_result operator()(const X_monotone_curve_2& xc1, const X_monotone_curve_2& xc2, - const Point_2& - CGAL_precondition_code(p)) const + const Point_2& p) const { - CGAL_precondition(!xc1.is_degenerate()); - CGAL_precondition(!xc2.is_degenerate()); + CGAL_precondition(! xc1.is_degenerate()); + CGAL_precondition(! xc2.is_degenerate()); CGAL_precondition(p == xc1.right()); CGAL_precondition(p == xc2.right()); @@ -1212,6 +1211,7 @@ // Compare the y-coord. at the x-coord of the most right left-endpoint. const Point_2& l1 = xc1.left(); const Point_2& l2 = xc2.left(); + if (!l1.is_no_boundary()) { // use l2 and xc1: Oriented_side os = m_traits.oriented_side(xc1.normal(), l2); @@ -1220,7 +1220,32 @@ ((os == ON_NEGATIVE_SIDE) ? LARGER : SMALLER) : ((os == ON_NEGATIVE_SIDE) ? SMALLER : LARGER); } - if (!l2.is_no_boundary()) { + + // if p and r1 are antipodal, compare the plane normals + const Kernel& kernel = m_traits; + auto opposite_3 = kernel.construct_opposite_direction_3_object(); + Direction_3 opposite_p = opposite_3(p); + if (kernel.equal_3_object()(opposite_p, Direction_3(l1)) || + kernel.equal_3_object()(opposite_p, Direction_3(l2))) + { + Sign xsign = Traits::x_sign(p); + Sign ysign = Traits::y_sign(p); + Project project = (xsign == ZERO) ? + ((ysign == POSITIVE) ? Traits::project_minus_xz : Traits::project_xz) : + ((xsign == POSITIVE) ? Traits::project_yz : Traits::project_minus_yz); + + Direction_2 n1 = project(xc1.normal()); + Direction_2 n2 = project(xc2.normal()); + auto opposite_2 = kernel.construct_opposite_direction_2_object(); + if (! xc1.is_directed_right()) n1 = opposite_2(n1); + if (! xc2.is_directed_right()) n2 = opposite_2(n2); + if (kernel.equal_2_object()(n1, n2)) return EQUAL; + const Direction_2 d(1, 0); + return (kernel.counterclockwise_in_between_2_object()(n1, d, n2)) ? + LARGER: SMALLER; + } + + if (! l2.is_no_boundary()) { // use l1 and xc2: Oriented_side os = m_traits.oriented_side(xc2.normal(), l1); return (os == ON_ORIENTED_BOUNDARY) ? EQUAL : @@ -1229,7 +1254,8 @@ ((os == ON_NEGATIVE_SIDE) ? LARGER : SMALLER); } - if (m_traits.compare_xy(l1, l2) == SMALLER) { + Comparison_result res = m_traits.compare_xy(l1, l2); + if (res == SMALLER) { // use l2 and xc1: Oriented_side os = m_traits.oriented_side(xc1.normal(), l2); return (os == ON_ORIENTED_BOUNDARY) ? EQUAL : @@ -1237,12 +1263,16 @@ ((os == ON_NEGATIVE_SIDE) ? LARGER : SMALLER) : ((os == ON_NEGATIVE_SIDE) ? SMALLER : LARGER); } - // use l1 and xc2: - Oriented_side os = m_traits.oriented_side(xc2.normal(), l1); - return (os == ON_ORIENTED_BOUNDARY) ? EQUAL : - (xc2.is_directed_right()) ? - ((os == ON_NEGATIVE_SIDE) ? SMALLER : LARGER) : - ((os == ON_NEGATIVE_SIDE) ? LARGER : SMALLER); + if (res == LARGER) { + // use l1 and xc2: + Oriented_side os = m_traits.oriented_side(xc2.normal(), l1); + return (os == ON_ORIENTED_BOUNDARY) ? EQUAL : + (xc2.is_directed_right()) ? + ((os == ON_NEGATIVE_SIDE) ? SMALLER : LARGER) : + ((os == ON_NEGATIVE_SIDE) ? LARGER : SMALLER); + } + // res == equal + return EQUAL; } }; @@ -1283,8 +1313,8 @@ const X_monotone_curve_2& xc2, const Point_2& p) const { - CGAL_precondition(!xc1.is_degenerate()); - CGAL_precondition(!xc2.is_degenerate()); + CGAL_precondition(! xc1.is_degenerate()); + CGAL_precondition(! xc2.is_degenerate()); // CGAL_precondition(p == xc1.left()); // CGAL_precondition(p == xc2.left()); @@ -1296,10 +1326,35 @@ // Non of the arcs is verticel. Thus, non of the endpoints coincide with // a pole. - // Compare the y-coord. at the x-coord of the most left right-endpoint. const Point_2& r1 = xc1.right(); const Point_2& r2 = xc2.right(); - if (!r1.is_no_boundary()) { + + // if p and r1 are antipodal, compare the plane normals + const Kernel& kernel = m_traits; + auto opposite_3 = kernel.construct_opposite_direction_3_object(); + Direction_3 opposite_p = opposite_3(p); + if (kernel.equal_3_object()(opposite_p, Direction_3(r1)) || + kernel.equal_3_object()(opposite_p, Direction_3(r2))) + { + Sign xsign = Traits::x_sign(p); + Sign ysign = Traits::y_sign(p); + Project project = (xsign == ZERO) ? + ((ysign == POSITIVE) ? Traits::project_minus_xz : Traits::project_xz) : + ((xsign == POSITIVE) ? Traits::project_yz : Traits::project_minus_yz); + + Direction_2 n1 = project(xc1.normal()); + Direction_2 n2 = project(xc2.normal()); + auto opposite_2 = kernel.construct_opposite_direction_2_object(); + if (! xc1.is_directed_right()) n1 = opposite_2(n1); + if (! xc2.is_directed_right()) n2 = opposite_2(n2); + if (kernel.equal_2_object()(n1, n2)) return EQUAL; + const Direction_2 d(1, 0); + return (kernel.counterclockwise_in_between_2_object()(n1, d, n2)) ? + SMALLER : LARGER; + } + + // Compare the y-coord. at the x-coord of the most left right-endpoint. + if (! r1.is_no_boundary()) { // use r2 and xc1: Oriented_side os = m_traits.oriented_side(xc1.normal(), r2); return (os == ON_ORIENTED_BOUNDARY) ? EQUAL : @@ -1307,7 +1362,7 @@ ((os == ON_NEGATIVE_SIDE) ? LARGER : SMALLER) : ((os == ON_NEGATIVE_SIDE) ? SMALLER : LARGER); } - if (!r2.is_no_boundary()) { + if (! r2.is_no_boundary()) { // use r1 and xc2: Oriented_side os = m_traits.oriented_side(xc2.normal(), r1); return (os == ON_ORIENTED_BOUNDARY) ? EQUAL : @@ -1333,32 +1388,7 @@ ((os == ON_NEGATIVE_SIDE) ? LARGER : SMALLER); } // res == equal - // if p and r1 are antipodal, compare the plane normals - const Kernel& kernel = m_traits; - typename Kernel::Construct_opposite_direction_3 opposite_3 = - kernel.construct_opposite_direction_3_object(); - // VC 10 does not like the following: - // if (!kernel.equal_3_object()(opposite_3(p), r1)) return EQUAL; - Direction_3 tmp1 = opposite_3(p); // pacify msvc 10 - if (!kernel.equal_3_object()(tmp1, Direction_3(r1))) - return EQUAL; - - Sign xsign = Traits::x_sign(p); - Sign ysign = Traits::y_sign(p); - Project project = (xsign == ZERO) ? - ((ysign == POSITIVE) ? Traits::project_minus_xz : Traits::project_xz) : - ((xsign == POSITIVE) ? Traits::project_yz : Traits::project_minus_yz); - - Direction_2 n1 = project(xc1.normal()); - Direction_2 n2 = project(xc2.normal()); - typename Kernel::Construct_opposite_direction_2 opposite_2 = - kernel.construct_opposite_direction_2_object(); - if (!xc1.is_directed_right()) n1 = opposite_2(n1); - if (!xc2.is_directed_right()) n2 = opposite_2(n2); - if (kernel.equal_2_object()(n1, n2)) return EQUAL; - const Direction_2 d(1, 0); - return (kernel.counterclockwise_in_between_2_object()(n1, d, n2)) ? - SMALLER : LARGER; + return EQUAL; } }; @@ -1397,8 +1427,7 @@ typename Kernel::Equal_3 equal_3 = kernel.equal_3_object(); if (xc1.is_full() || xc2.is_full()) { if (!xc1.is_full() || !xc2.is_full()) return false; - typename Kernel::Construct_opposite_direction_3 opposite_3 = - kernel.construct_opposite_direction_3_object(); + auto opposite_3 = kernel.construct_opposite_direction_3_object(); return (equal_3(xc1.normal(), xc2.normal()) || equal_3(opposite_3(xc1.normal()), xc2.normal())); } @@ -1663,7 +1692,8 @@ * Once we do a better dispatching of the functors (LR-ident + TB-contraction), * an implementation of this signature becomes obsolete. */ - Comparison_result operator()(const Point_2& p1, const Point_2& p2) const + Comparison_result operator()(const Point_2& /* p1 */, + const Point_2& /* p2 */) const { CGAL_error(); return EQUAL; } @@ -1763,113 +1793,118 @@ * \param ce the arc end indicator. * \return the second comparison result. * \pre the ce ends of the arcs xcv1 and xcv2 lie either on the left - * boundary or on the right boundary of the parameter space (implying - * that they cannot be vertical). + * boundary or on the right boundary of the parameter space. + * \pre the curves cannot reach a pole * There is no horizontal identification curve! */ Comparison_result operator()(const X_monotone_curve_2& xcv1, const X_monotone_curve_2& xcv2, Arr_curve_end ce) const { - CGAL_precondition(!xcv1.is_degenerate()); - CGAL_precondition(!xcv2.is_degenerate()); + CGAL_precondition(! xcv1.is_degenerate()); + CGAL_precondition(! xcv2.is_degenerate()); - const Point_2& l1 = xcv1.left(); - const Point_2& r1 = xcv1.right(); - const Point_2& l2 = xcv2.left(); - const Point_2& r2 = xcv2.right(); + CGAL_precondition((ce != ARR_MIN_END) || + (xcv1.left().is_mid_boundary() && + xcv2.left().is_mid_boundary())); + CGAL_precondition((ce != ARR_MAX_END) || + (xcv1.right().is_mid_boundary() && + xcv2.right().is_mid_boundary())); - // If xcv1 is vertical, xcv1 coincides with the discontinuity arc: - if (xcv1.is_vertical()) { - CGAL_precondition(!l1.is_no_boundary()); - CGAL_precondition(!r1.is_no_boundary()); + // If the curves lie on the same plane return EQUAL. + const Kernel& kernel = m_traits; + const Direction_3& n1 = xcv1.normal(); + const Direction_3& n2 = xcv2.normal(); + if (xcv1.is_directed_right() == xcv2.is_directed_right()) { + if (kernel.equal_3_object()(n1, n2)) return EQUAL; } - - // If xcv2 is vertical, xcv2 coincides with the discontinuity arc: - if (xcv2.is_vertical()) { - CGAL_precondition(!l2.is_no_boundary()); - CGAL_precondition(!r2.is_no_boundary()); + else { + auto opposite_3 = kernel.construct_opposite_direction_3_object(); + auto opposite_n2 = opposite_3(n2); + if (kernel.equal_3_object()(n1, opposite_n2)) return EQUAL; } - if (ce == ARR_MIN_END) { - // Handle the south pole. It has the smallest y coords: - if (l1.is_min_boundary()) - return (l2.is_min_boundary()) ? EQUAL : SMALLER; - if (l2.is_min_boundary()) return LARGER; + // The curves do not lie on the same plane! + const Point_2& l1 = xcv1.left(); + const Point_2& l2 = xcv2.left(); + const Point_2& r1 = xcv1.right(); + const Point_2& r2 = xcv2.right(); + if (ce == ARR_MIN_END) { // None of xcv1 and xcv2 endpoints coincide with a pole: Comparison_result cr = m_traits.compare_y(l1, l2); if (cr != EQUAL) return cr; // If Both arcs are vertical, they overlap: - if (xcv1.is_vertical() && xcv2.is_vertical()) return EQUAL; if (xcv1.is_vertical()) return LARGER; if (xcv2.is_vertical()) return SMALLER; - // Non of the arcs is verticel. Thus, non of the endpoints coincide - // with a pole. - // Compare the y-coord. at the x-coord of the most left right-endpoint. - CGAL_assertion(r1.is_no_boundary()); - CGAL_assertion(r2.is_no_boundary()); - - if (m_traits.compare_xy(r1, r2) == LARGER) { - // use r2 and xcv1: - Oriented_side os = - m_traits.oriented_side(xcv1.normal(), r2); - return (os == ON_ORIENTED_BOUNDARY) ? EQUAL : - (xcv1.is_directed_right()) ? - ((os == ON_NEGATIVE_SIDE) ? LARGER : SMALLER) : - ((os == ON_NEGATIVE_SIDE) ? SMALLER : LARGER); + // There are 4 cases based on the sign of the z component of the normals + // Compute the sign of the x-component of the normal cross product. + // There is no point computing the intermediate cross product: + // auto cross_prod = kernel.construct_cross_product_vector_3_object(); + // Vector_3 v = cross_prod(n1.vector(), n2.vector()); + // CGAL::Sign xsign = CGAL::sign(v.x()); + // This predicate is not yet supported; thus, compute directly: + CGAL::Sign xsign = CGAL::sign(n1.dy() * n2.dz() - n1.dz() * n2.dy()); + + // std::cout << "sign(n1.z): " << CGAL::sign(n1.dz()) << std::endl; + // std::cout << "sign(n2.z): " << CGAL::sign(n2.dz()) << std::endl; + // std::cout << "x sign: " << xsign << std::endl; + + if (CGAL::sign(n1.dz()) == POSITIVE) { + if (CGAL::sign(n2.dz()) == POSITIVE) { + // pos pos + return (xsign == POSITIVE) ? LARGER : SMALLER; + } + // pos neg + return (xsign == POSITIVE) ? SMALLER : LARGER; } - // use r1 and xcv2: - Oriented_side os = m_traits.oriented_side(xcv2.normal(), r1); - return (os == ON_ORIENTED_BOUNDARY) ? EQUAL : - (xcv2.is_directed_right()) ? - ((os == ON_NEGATIVE_SIDE) ? SMALLER : LARGER) : - ((os == ON_NEGATIVE_SIDE) ? LARGER : SMALLER); + if (CGAL::sign(n2.dz()) == POSITIVE) { + // neg pos + return (xsign == POSITIVE) ? SMALLER : LARGER; + } + // neg neg + return (xsign == POSITIVE) ? LARGER : SMALLER; } // ce == ARR_MAX_END - // Handle the north pole. It has the largest y coords: - if (r1.is_max_boundary()) return (r2.is_max_boundary()) ? EQUAL : LARGER; - if (r2.is_max_boundary()) return SMALLER; - // None of xcv1 and xcv2 endpoints coincide with a pole: - Direction_2 r1_xy = Traits::project_xy(r1); Comparison_result cr = m_traits.compare_y(r1, r2); if (cr != EQUAL) return cr; // If Both arcs are vertical, they overlap: - if (xcv1.is_vertical() && xcv2.is_vertical()) return EQUAL; if (xcv1.is_vertical()) return LARGER; if (xcv2.is_vertical()) return SMALLER; - // Compare to the left: - Direction_2 p_r1 = Traits::project_xy(r1); - cr = m_traits.compare_y(r1, r2); - if (cr != EQUAL) return cr; - - // Non of the arcs is verticel. Thus, non of the endpoints coincide with - // a pole. - // Compare the y-coord. at the x-coord of the most right left-endpoint. - CGAL_assertion(l1.is_no_boundary()); - CGAL_assertion(l2.is_no_boundary()); - - if (m_traits.compare_xy(l1, l2) == SMALLER) { - // use l2 and xcv1: - Oriented_side os = m_traits.oriented_side(xcv1.normal(), l2); - return (os == ON_ORIENTED_BOUNDARY) ? EQUAL : - (xcv1.is_directed_right()) ? - ((os == ON_NEGATIVE_SIDE) ? LARGER : SMALLER) : - ((os == ON_NEGATIVE_SIDE) ? SMALLER : LARGER); + // There are 4 cases based on the sign of the z component of the normals + // Compute the sign of the x-component of the normal cross product. + // There is no point computing the intermediate cross product: + // auto cross_prod = kernel.construct_cross_product_vector_3_object(); + // Vector_3 v = cross_prod(n1.vector(), n2.vector()); + // CGAL::Sign xsign = CGAL::sign(v.x()); + // This predicate is not yet supported; thus, compute directly: + CGAL::Sign xsign = CGAL::sign(n1.dy() * n2.dz() - n1.dz() * n2.dy()); + + // std::cout << "sign(n1.z): " << CGAL::sign(n1.dz()) << std::endl; + // std::cout << "sign(n2.z): " << CGAL::sign(n2.dz()) << std::endl; + // std::cout << "x sign: " << xsign << std::endl; + + if (CGAL::sign(n1.dz()) == POSITIVE) { + if (CGAL::sign(n2.dz()) == POSITIVE) { + // pos pos + return (xsign == POSITIVE) ? SMALLER : LARGER; + } + // pos neg + return (xsign == POSITIVE) ? LARGER: SMALLER; + } + if (CGAL::sign(n2.dz()) == POSITIVE) { + // neg pos + return (xsign == POSITIVE) ? LARGER : SMALLER; } - // use l1 and xcv2: - Oriented_side os = m_traits.oriented_side(xcv2.normal(), l1); - return (os == ON_ORIENTED_BOUNDARY) ? EQUAL : - (xcv2.is_directed_right()) ? - ((os == ON_NEGATIVE_SIDE) ? SMALLER : LARGER) : - ((os == ON_NEGATIVE_SIDE) ? LARGER : SMALLER); + // neg neg + return (xsign == POSITIVE) ? SMALLER : LARGER; } }; @@ -2317,31 +2352,22 @@ if (equal(l1, r2)) { // 1. l1 = r2 < r1 < l2 < l1 | One intersection // 2. l1 = r2 < r1 = l2 < l1 | Two intersections - // 3. l1 = r2 < l2 < r1 < l1 | One intersection and one overlap + // 3. l1 = r2 < l2 < r1 < l1 | One overlap // 4. l1 = r2 < l2 < r1 = l1 | One overlap (handled above) + // 5. l1 = r2 < r1 < l2 = l1 | One overlap (handled above) if (in_between(r1, r2, l2)) { - // If the intersection point lies on the identification curve, this - // intersection point should be ignored (see below). However, it - // cannot occur. + // Case 1. *oi++ = Intersection_result(Intersection_point(l1_3, 1)); return oi; } if (equal(r1, l2)) { - // Case 2. This can happen only if one of the intersection points - // lies on the identification curve, and this points should be - // ignored. - if (! m_traits.is_on_y_identification_2_object()(l1_3)) { - *oi++ = Intersection_result(Intersection_point(l1_3, 1)); - return oi; - } - CGAL_assertion(! m_traits.is_on_y_identification_2_object()(l2_3)); + // Case 2. + *oi++ = Intersection_result(Intersection_point(l1_3, 1)); *oi++ = Intersection_result(Intersection_point(l2_3, 1)); return oi; } CGAL_assertion(in_between(r1, l2, r2)); - // Case 3. This can happen only the intersection point lies on the - // identification curve; in this case this point should be ignored. - CGAL_assertion(m_traits.is_on_y_identification_2_object()(l1_3)); + // Case 3. X_monotone_curve_2 xc(l2_3, r1_3, normal, vertical, true); *oi++ = Intersection_result(xc); return oi; @@ -2351,19 +2377,15 @@ if (equal(r1, l2)) { // 1. l1 < r1 = l2 < r2 < l1 | One intersection // 2. l1 < r1 = l2 < r2 = l1 | Two intersections (handled above) - // 3. l1 < r2 < r1 = l2 < l1 | One intersection and one overlap + // 3. l1 < r2 < r1 = l2 < l1 | One overlap // 4. l1 < r2 = r1 = l2 < l1 | One overlap (handled above) + // 5. l1 < l1 = r1 = l2 < r2 | One overlap (handled above) if (in_between(r2, r1, l1)) { - // If the intersection point lies on the identification curve, this - // intersection point should be ignored (see below). However, it - // cannot occur. + // Case 1. *oi++ = Intersection_result(Intersection_point(l2_3, 1)); return oi; } - // Case 3. This can happen only the intersection point lies on the - // identification curve; in this case this point should be ignored. - CGAL_assertion(in_between(r2, l1, r1)); - CGAL_assertion(m_traits.is_on_y_identification_2_object()(l2_3)); + // Case 3. X_monotone_curve_2 xc(l1_3, r2_3, normal, vertical, true); *oi++ = Intersection_result(xc); return oi; @@ -2551,10 +2573,8 @@ if (equal_3(normal1, normal2) || equal_3(opposite_normal1, normal2)) { // The underlying planes are the same - Counterclockwise_in_between_2 ccib = - kernel.counterclockwise_in_between_2_object(); - typename Traits::Clockwise_in_between_2 cib = - m_traits.clockwise_in_between_2_object(); + Counterclockwise_in_between_2 ccib = kernel.counterclockwise_in_between_2_object(); + auto cib = m_traits.clockwise_in_between_2_object(); if (xc1.is_vertical()) { // Both arcs are vertical @@ -2619,23 +2639,19 @@ normal, false, ccib, Traits::project_xy, oi); } - Vector_3 v = - kernel.construct_cross_product_vector_3_object()(xc1.normal().vector(), - xc2.normal().vector()); + auto cross_prod = kernel.construct_cross_product_vector_3_object(); + Vector_3 v = cross_prod(xc1.normal().vector(), xc2.normal().vector()); - // Determine which one of the two directions: + // Observe that xc1 and xc2 may share two endpoints. Point_2 ed = m_traits.construct_point_2_object()(v.direction()); - if (is_in_between(ed, xc1) && is_in_between(ed, xc2)) { + if (is_in_between(ed, xc1) && is_in_between(ed, xc2)) *oi++ = Intersection_result(Intersection_point(ed, 1)); - return oi; - } Vector_3 vo(kernel.construct_opposite_vector_3_object()(v)); Point_2 edo = m_traits.construct_point_2_object()(vo.direction()); - if (is_in_between(edo, xc1) && is_in_between(edo, xc2)) { + if (is_in_between(edo, xc1) && is_in_between(edo, xc2)) *oi++ = Intersection_result(Intersection_point(edo, 1)); - return oi; - } + return oi; } }; @@ -3106,40 +3122,6 @@ return (*this); } - /*! Construct the minor arc from two endpoint directions. The minor arc - * is the one with the smaller angle among the two geodesic arcs with - * the given endpoints. - * 1. Find out whether the arc is x-monotone. - * 2. If it is x-monotone, - * 2.1 Find out whether it is vertical, and - * 2.2 whether the target is larger than the source (directed right). - * The arc is vertical, iff - * 1. one of its endpoint direction pierces a pole, or - * 2. the projections onto the xy-plane coincide. - * \param source the source point. - * \param target the target point. - * \pre the source and target cannot be equal. - * \pre the source and target cannot be antipodal. - */ - Arr_x_monotone_geodesic_arc_on_sphere_3 - (const Arr_extended_direction_3& source, - const Arr_extended_direction_3& target) : - m_source(source), - m_target(target), - m_is_full(false), - m_is_degenerate(false), - m_is_empty(false) - { - // MSVC 10 complains when the casting below is not present probably due - // to a bug (in MSVC 10). - CGAL_precondition_code(Kernel kernel); - CGAL_precondition(!kernel.equal_3_object() - (kernel.construct_opposite_direction_3_object()(m_source), - (const typename Kernel::Direction_3&)(m_target))); - m_normal = construct_normal_3(m_source, m_target); - init(); - } - /*! Initialize a spherical_arc given that the two endpoint directions * have been set. It is assumed that the arc is the one with the smaller * angle among the two. @@ -3530,109 +3512,6 @@ CGAL_precondition(this->has_on(trg)); } - /*! Construct a spherical_arc from two endpoint directions. It is assumed - * that the arc is the one with the smaller angle among the two. - * 1. Find out whether the arc is x-monotone. - * 2. If it is x-monotone, - * 2.1 Find out whether it is vertical, and - * 2.2 whether the target is larger than the source (directed right). - * The arc is vertical, iff - * 1. one of its endpoint direction pierces a pole, or - * 2. the projections onto the xy-plane coincide. - * \param source the source point. - * \param target the target point. - * \pre the source and target cannot be equal. - * \pre the source and target cannot be the opoosite of each other. - */ - Arr_geodesic_arc_on_sphere_3(const Arr_extended_direction_3& source, - const Arr_extended_direction_3& target) - { - this->set_source(source); - this->set_target(target); - this->set_is_full(false); - this->set_is_degenerate(false); - this->set_is_empty(false); - - typedef Arr_geodesic_arc_on_sphere_traits_2 Traits; - typedef typename Kernel::Direction_2 Direction_2; - typedef typename Kernel::Direction_3 Direction_3; - - Kernel kernel; - CGAL_precondition(!kernel.equal_3_object()(Direction_3(source), - Direction_3(target))); - CGAL_precondition(!kernel.equal_3_object() - (kernel.construct_opposite_direction_3_object()(source), - static_cast(target))); - this->m_normal = this->construct_normal_3(source, target); - - // Check whether one of the endpoints coincides with a pole: */ - if (source.is_max_boundary()) { - this->set_is_vertical(true); - this->set_is_directed_right(false); - set_is_x_monotone(true); - return; - } - if (source.is_min_boundary()) { - this->set_is_vertical(true); - this->set_is_directed_right(true); - set_is_x_monotone(true); - return; - } - if (target.is_max_boundary()) { - this->set_is_vertical(true); - this->set_is_directed_right(true); - set_is_x_monotone(true); - return; - } - if (target.is_min_boundary()) { - this->set_is_vertical(true); - this->set_is_directed_right(false); - set_is_x_monotone(true); - return; - } - - // None of the enpoints coincide with a pole: - Direction_3 normal = this->m_normal; - if (z_sign(normal) == ZERO) { - // The arc is vertical - this->set_is_vertical(true); - bool s_is_positive, t_is_positive, plane_is_positive; - CGAL::Sign xsign = x_sign(normal); - if (xsign == ZERO) { - s_is_positive = x_sign(source) == POSITIVE; - t_is_positive = x_sign(target) == POSITIVE; - plane_is_positive = y_sign(normal) == NEGATIVE; - } else { - s_is_positive = y_sign(source) == POSITIVE; - t_is_positive = y_sign(target) == POSITIVE; - plane_is_positive = xsign == POSITIVE; - } - set_is_x_monotone(s_is_positive == t_is_positive); - bool ccw = ((plane_is_positive && s_is_positive) || - (!plane_is_positive && !s_is_positive)); - this->set_is_directed_right(ccw); - return; - } - - // The arc is not vertical! - this->set_is_vertical(false); - Direction_2 s = Traits::project_xy(source); - Direction_2 t = Traits::project_xy(target); - Orientation orient = Traits::orientation(s, t); - - const Direction_2& d = Traits::identification_xy(); - if (orient == LEFT_TURN) { - this->set_is_directed_right(true); - set_is_x_monotone(!kernel.counterclockwise_in_between_2_object()(d, s, t)); - return; - } - - // (orient == RIGHT_TURN) - this->set_is_directed_right(false); - set_is_x_monotone(!kernel.counterclockwise_in_between_2_object()(d, t, s)); - return; - } - /*! Construct a spherical_arc from two endpoint directions contained * in a plane. * \param plane the containing plane. diff -Nru cgal-5.4.1/include/CGAL/Arr_geometry_traits/Arr_plane_3.h cgal-5.5/include/CGAL/Arr_geometry_traits/Arr_plane_3.h --- cgal-5.4.1/include/CGAL/Arr_geometry_traits/Arr_plane_3.h 2022-06-03 19:03:41.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_geometry_traits/Arr_plane_3.h 2022-07-13 19:04:26.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/Arr_plane_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/Arr_plane_3.h $ // $Id: Arr_plane_3.h 40152a2 2020-06-13T16:43:09+03:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_geometry_traits/Bezier_bounding_rational_traits.h cgal-5.5/include/CGAL/Arr_geometry_traits/Bezier_bounding_rational_traits.h --- cgal-5.4.1/include/CGAL/Arr_geometry_traits/Bezier_bounding_rational_traits.h 2022-06-03 19:03:41.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_geometry_traits/Bezier_bounding_rational_traits.h 2022-07-13 19:04:26.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/Bezier_bounding_rational_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/Bezier_bounding_rational_traits.h $ // $Id: Bezier_bounding_rational_traits.h 0626eb0 2020-06-11T12:32:33+03:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_geometry_traits/Bezier_cache.h cgal-5.5/include/CGAL/Arr_geometry_traits/Bezier_cache.h --- cgal-5.4.1/include/CGAL/Arr_geometry_traits/Bezier_cache.h 2022-06-03 19:03:41.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_geometry_traits/Bezier_cache.h 2022-07-13 19:04:26.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/Bezier_cache.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/Bezier_cache.h $ // $Id: Bezier_cache.h 6d949cd 2020-08-08T17:29:55+02:00 Ahmed Essam // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_geometry_traits/Bezier_curve_2.h cgal-5.5/include/CGAL/Arr_geometry_traits/Bezier_curve_2.h --- cgal-5.4.1/include/CGAL/Arr_geometry_traits/Bezier_curve_2.h 2022-06-03 19:03:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_geometry_traits/Bezier_curve_2.h 2022-07-13 19:04:26.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/Bezier_curve_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/Bezier_curve_2.h $ // $Id: Bezier_curve_2.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_geometry_traits/Bezier_point_2.h cgal-5.5/include/CGAL/Arr_geometry_traits/Bezier_point_2.h --- cgal-5.4.1/include/CGAL/Arr_geometry_traits/Bezier_point_2.h 2022-06-03 19:03:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_geometry_traits/Bezier_point_2.h 2022-07-13 19:04:26.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/Bezier_point_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/Bezier_point_2.h $ // $Id: Bezier_point_2.h 8682f9b 2020-08-24T11:45:17+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_geometry_traits/Bezier_x_monotone_2.h cgal-5.5/include/CGAL/Arr_geometry_traits/Bezier_x_monotone_2.h --- cgal-5.4.1/include/CGAL/Arr_geometry_traits/Bezier_x_monotone_2.h 2022-06-03 19:03:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_geometry_traits/Bezier_x_monotone_2.h 2022-07-13 19:04:26.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/Bezier_x_monotone_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/Bezier_x_monotone_2.h $ // $Id: Bezier_x_monotone_2.h 3dc2804 2020-08-11T13:23:08+02:00 Ahmed Essam // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_geometry_traits/Circle_segment_2.h cgal-5.5/include/CGAL/Arr_geometry_traits/Circle_segment_2.h --- cgal-5.4.1/include/CGAL/Arr_geometry_traits/Circle_segment_2.h 2022-06-03 19:03:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_geometry_traits/Circle_segment_2.h 2022-07-13 19:04:26.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/Circle_segment_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/Circle_segment_2.h $ // $Id: Circle_segment_2.h 58276ed 2020-03-31T18:34:28+03:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_geometry_traits/Conic_arc_2.h cgal-5.5/include/CGAL/Arr_geometry_traits/Conic_arc_2.h --- cgal-5.4.1/include/CGAL/Arr_geometry_traits/Conic_arc_2.h 2022-06-03 19:03:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_geometry_traits/Conic_arc_2.h 2022-07-13 19:04:26.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/Conic_arc_2.h $ -// $Id: Conic_arc_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/Conic_arc_2.h $ +// $Id: Conic_arc_2.h fe06974 2022-01-04T16:17:34+02:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -199,6 +199,35 @@ _set (rat_coeffs); } + /*! Construct a segment conic arc from two endpoints. + * \param source the source point with rational coordinates. + */ + _Conic_arc_2(const Point_2& source, const Point_2& target) : + _orient (COLLINEAR), + _info(static_cast(IS_VALID)), + _source(source), + _target(target), + _extra_data_P(nullptr) + { + CGAL_precondition(Alg_kernel().compare_xy_2_object()(_source, _target) != + EQUAL); + + // Compose the equation of the underlying line. + const Algebraic x1 = source.x(); + const Algebraic y1 = source.y(); + const Algebraic x2 = target.x(); + const Algebraic y2 = target.y(); + + // The supporting line is A*x + B*y + C = 0, where: + // A = y2 - y1, B = x1 - x2, C = x2*y1 - x1*y2 + // We use the extra data field to store the equation of this line. + _extra_data_P = new Extra_data; + _extra_data_P->a = y2 - y1; + _extra_data_P->b = x1 - x2; + _extra_data_P->c = x2*y1 - x1*y2; + _extra_data_P->side = ZERO; + } + /*! * Construct a conic arc from the given line segment. * \param seg The line segment with rational endpoints. @@ -325,7 +354,7 @@ // and it squared radius is R^2, that its equation is: // x^2 + y^2 - 2*x0*x - 2*y0*y + (x0^2 + y0^2 - R^2) = 0 // Since this equation describes a curve with a negative (clockwise) - // orientation, we multiply it by -1 if necessary to obtain a positive + // orientation, we multiply it by -1 if nece_Conic_arc_2 ssary to obtain a positive // (counterclockwise) orientation. const Rational _zero (0); Rational rat_coeffs[6]; diff -Nru cgal-5.4.1/include/CGAL/Arr_geometry_traits/Conic_intersections_2.h cgal-5.5/include/CGAL/Arr_geometry_traits/Conic_intersections_2.h --- cgal-5.4.1/include/CGAL/Arr_geometry_traits/Conic_intersections_2.h 2022-06-03 19:03:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_geometry_traits/Conic_intersections_2.h 2022-07-13 19:04:26.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/Conic_intersections_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/Conic_intersections_2.h $ // $Id: Conic_intersections_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_geometry_traits/Conic_point_2.h cgal-5.5/include/CGAL/Arr_geometry_traits/Conic_point_2.h --- cgal-5.4.1/include/CGAL/Arr_geometry_traits/Conic_point_2.h 2022-06-03 19:03:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_geometry_traits/Conic_point_2.h 2022-07-13 19:04:26.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/Conic_point_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/Conic_point_2.h $ // $Id: Conic_point_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_geometry_traits/Conic_x_monotone_arc_2.h cgal-5.5/include/CGAL/Arr_geometry_traits/Conic_x_monotone_arc_2.h --- cgal-5.4.1/include/CGAL/Arr_geometry_traits/Conic_x_monotone_arc_2.h 2022-06-03 19:03:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_geometry_traits/Conic_x_monotone_arc_2.h 2022-07-13 19:04:26.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/Conic_x_monotone_arc_2.h $ -// $Id: Conic_x_monotone_arc_2.h a2ae7d8 2021-11-10T08:22:46+00:00 Andreas Fabri +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/Conic_x_monotone_arc_2.h $ +// $Id: Conic_x_monotone_arc_2.h 1081a67 2022-01-05T19:42:15+02:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s): Ron Wein @@ -177,58 +177,27 @@ _set(); } - /*! - * Construct a special segment connecting to given endpoints (for the usage + /*! Construct a special segment connecting to given endpoints (for the usage * of the landmarks point-location strategy). * \param source The source point. * \param target The target point. */ _Conic_x_monotone_arc_2(const Point_2& source, const Point_2& target) : - Base() + Base(source, target) { - // Set the basic properties and clear the _info bits. - this->_source = source; - this->_target = target; - this->_orient = COLLINEAR; - this->_info = 0; + this->_info |= static_cast(DEGREE_1); - // Check if the arc is directed right (the target is lexicographically - // greater than the source point), or to the left. Alg_kernel ker; - Comparison_result dir_res = - ker.compare_xy_2_object()(this->_source, this->_target); - - CGAL_precondition (dir_res != EQUAL); - // Invalid arc: - if (dir_res == EQUAL) return; - - this->_info = (static_cast(Conic_arc_2::IS_VALID) | static_cast(DEGREE_1)); - if (dir_res == SMALLER) - this->_info = (this->_info | IS_DIRECTED_RIGHT); - - // Compose the equation of the underlying line. - const Algebraic x1 = source.x(), y1 = source.y(); - const Algebraic x2 = target.x(), y2 = target.y(); - - // The supporting line is A*x + B*y + C = 0, where: - // - // A = y2 - y1, B = x1 - x2, C = x2*y1 - x1*y2 - // - // We use the extra data field to store the equation of this line. - this->_extra_data_P = new typename Base::Extra_data; - this->_extra_data_P->a = y2 - y1; - this->_extra_data_P->b = x1 - x2; - this->_extra_data_P->c = x2*y1 - x1*y2; - this->_extra_data_P->side = ZERO; + auto cmp_xy = ker.compare_xy_2_object(); + Comparison_result dir_res = cmp_xy(this->_source, this->_target); + if (dir_res == SMALLER) this->_info |= IS_DIRECTED_RIGHT; // Check if the segment is vertical. - if (CGAL::sign (this->_extra_data_P->b) == ZERO) - this->_info = (this->_info | IS_VERTICAL_SEGMENT); + if (CGAL::sign(this->_extra_data_P->b) == ZERO) + this->_info |= IS_VERTICAL_SEGMENT; // Mark that this is a special segment. - this->_info = (this->_info | IS_SPECIAL_SEGMENT); - - return; + this->_info |= IS_SPECIAL_SEGMENT; } /*! @@ -608,7 +577,7 @@ if (_has_same_supporting_conic (arc)) { if ((this->_info & FACING_UP) != 0 && (arc._info & FACING_DOWN) != 0) return LARGER; - else if ((this->_info & FACING_DOWN)!= 0 && (arc._info & FACING_UP) != 0) + else if ((this->_info & FACING_DOWN) != 0 && (arc._info & FACING_UP) != 0) return SMALLER; // In this case the two arcs overlap. @@ -680,7 +649,7 @@ // comparison result is trivial. if ((this->_info & FACING_UP) != 0 && (arc._info & FACING_DOWN) != 0) return (LARGER); - else if ((this->_info & FACING_DOWN)!= 0 && (arc._info & FACING_UP)!= 0) + else if ((this->_info & FACING_DOWN) != 0 && (arc._info & FACING_UP) != 0) return SMALLER; // Compute the second-order derivative by y and act according to it. @@ -729,7 +698,7 @@ if (_has_same_supporting_conic (arc)) { if ((this->_info & FACING_UP) != 0 && (arc._info & FACING_DOWN) != 0) return LARGER; - else if ((this->_info & FACING_DOWN)!= 0 && (arc._info & FACING_UP)!= 0) + else if ((this->_info & FACING_DOWN) != 0 && (arc._info & FACING_UP) != 0) return SMALLER; // In this case the two arcs overlap. @@ -801,7 +770,7 @@ // comparison result is trivial. if ((this->_info & FACING_UP) != 0 && (arc._info & FACING_DOWN) != 0) return LARGER; - else if ((this->_info & FACING_DOWN)!= 0 && (arc._info & FACING_UP)!= 0) + else if ((this->_info & FACING_DOWN) != 0 && (arc._info & FACING_UP) != 0) return SMALLER; // Compute the second-order derivative by y and act according to it. diff -Nru cgal-5.4.1/include/CGAL/Arr_geometry_traits/Consolidated_curve_data_aux.h cgal-5.5/include/CGAL/Arr_geometry_traits/Consolidated_curve_data_aux.h --- cgal-5.4.1/include/CGAL/Arr_geometry_traits/Consolidated_curve_data_aux.h 2022-06-03 19:03:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_geometry_traits/Consolidated_curve_data_aux.h 2022-07-13 19:04:26.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/Consolidated_curve_data_aux.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/Consolidated_curve_data_aux.h $ // $Id: Consolidated_curve_data_aux.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_geometry_traits/Curve_data_aux.h cgal-5.5/include/CGAL/Arr_geometry_traits/Curve_data_aux.h --- cgal-5.4.1/include/CGAL/Arr_geometry_traits/Curve_data_aux.h 2022-06-03 19:03:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_geometry_traits/Curve_data_aux.h 2022-07-13 19:04:26.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/Curve_data_aux.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/Curve_data_aux.h $ // $Id: Curve_data_aux.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_geometry_traits/de_Casteljau_2.h cgal-5.5/include/CGAL/Arr_geometry_traits/de_Casteljau_2.h --- cgal-5.4.1/include/CGAL/Arr_geometry_traits/de_Casteljau_2.h 2022-06-03 19:03:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_geometry_traits/de_Casteljau_2.h 2022-07-13 19:04:27.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/de_Casteljau_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/de_Casteljau_2.h $ // $Id: de_Casteljau_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_geometry_traits/IO/Polycurve_2_iostream.h cgal-5.5/include/CGAL/Arr_geometry_traits/IO/Polycurve_2_iostream.h --- cgal-5.4.1/include/CGAL/Arr_geometry_traits/IO/Polycurve_2_iostream.h 2022-06-03 19:03:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_geometry_traits/IO/Polycurve_2_iostream.h 2022-07-13 19:04:26.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/IO/Polycurve_2_iostream.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/IO/Polycurve_2_iostream.h $ // $Id: Polycurve_2_iostream.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_geometry_traits/One_root_number.h cgal-5.5/include/CGAL/Arr_geometry_traits/One_root_number.h --- cgal-5.4.1/include/CGAL/Arr_geometry_traits/One_root_number.h 2022-06-03 19:03:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_geometry_traits/One_root_number.h 2022-07-13 19:04:27.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/One_root_number.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/One_root_number.h $ // $Id: One_root_number.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_geometry_traits/Polycurve_2.h cgal-5.5/include/CGAL/Arr_geometry_traits/Polycurve_2.h --- cgal-5.4.1/include/CGAL/Arr_geometry_traits/Polycurve_2.h 2022-06-03 19:03:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_geometry_traits/Polycurve_2.h 2022-07-13 19:04:27.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/Polycurve_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/Polycurve_2.h $ // $Id: Polycurve_2.h 7cd3a26 2020-09-08T17:46:08+03:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_geometry_traits/Polyline_2.h cgal-5.5/include/CGAL/Arr_geometry_traits/Polyline_2.h --- cgal-5.4.1/include/CGAL/Arr_geometry_traits/Polyline_2.h 2022-06-03 19:03:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_geometry_traits/Polyline_2.h 2022-07-13 19:04:27.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/Polyline_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/Polyline_2.h $ // $Id: Polyline_2.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_geometry_traits/Rational_arc_2.h cgal-5.5/include/CGAL/Arr_geometry_traits/Rational_arc_2.h --- cgal-5.4.1/include/CGAL/Arr_geometry_traits/Rational_arc_2.h 2022-06-03 19:03:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_geometry_traits/Rational_arc_2.h 2022-07-13 19:04:27.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/Rational_arc_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/Rational_arc_2.h $ // $Id: Rational_arc_2.h 58276ed 2020-03-31T18:34:28+03:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_geometry_traits/Segment_assertions.h cgal-5.5/include/CGAL/Arr_geometry_traits/Segment_assertions.h --- cgal-5.4.1/include/CGAL/Arr_geometry_traits/Segment_assertions.h 2022-06-03 19:03:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_geometry_traits/Segment_assertions.h 2022-07-13 19:04:27.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/Segment_assertions.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/Segment_assertions.h $ // $Id: Segment_assertions.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_landmarks_point_location.h cgal-5.5/include/CGAL/Arr_landmarks_point_location.h --- cgal-5.4.1/include/CGAL/Arr_landmarks_point_location.h 2022-06-03 19:03:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_landmarks_point_location.h 2022-07-13 19:04:27.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_landmarks_point_location.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_landmarks_point_location.h $ // $Id: Arr_landmarks_point_location.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_line_arc_traits_2.h cgal-5.5/include/CGAL/Arr_line_arc_traits_2.h --- cgal-5.4.1/include/CGAL/Arr_line_arc_traits_2.h 2022-06-03 19:03:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_line_arc_traits_2.h 2022-07-13 19:04:27.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_line_arc_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_line_arc_traits_2.h $ // $Id: Arr_line_arc_traits_2.h 5298ff1 2020-07-02T19:10:29+03:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_linear_traits_2.h cgal-5.5/include/CGAL/Arr_linear_traits_2.h --- cgal-5.4.1/include/CGAL/Arr_linear_traits_2.h 2022-06-03 19:03:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_linear_traits_2.h 2022-07-13 19:04:27.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_linear_traits_2.h $ -// $Id: Arr_linear_traits_2.h bfc5b7e 2021-08-10T10:49:11+03:00 Efi Fogel +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_linear_traits_2.h $ +// $Id: Arr_linear_traits_2.h c0838c5 2021-12-16T16:33:43+02:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -1535,6 +1535,7 @@ /*! Obtain an Approximate_2 functor object. */ Approximate_2 approximate_2_object() const { return Approximate_2(); } + //! Functor class Construct_x_monotone_curve_2 { public: /*! Obtain an x-monotone curve connecting the two given endpoints. @@ -1556,6 +1557,17 @@ Construct_x_monotone_curve_2 construct_x_monotone_curve_2_object() const { return Construct_x_monotone_curve_2(); } //@} + + /// \name Functor definitions for polylines. + //@{ + + //! Functor + typedef Construct_x_monotone_curve_2 Construct_curve_2; + + /*! Obtain a Construct_curve_2 functor object. */ + Construct_curve_2 construct_curve_2_object() const + { return Construct_x_monotone_curve_2(*this); } + //@} }; /*! diff -Nru cgal-5.4.1/include/CGAL/Arr_naive_point_location.h cgal-5.5/include/CGAL/Arr_naive_point_location.h --- cgal-5.4.1/include/CGAL/Arr_naive_point_location.h 2022-06-03 19:03:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_naive_point_location.h 2022-07-13 19:04:27.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_naive_point_location.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_naive_point_location.h $ // $Id: Arr_naive_point_location.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_non_caching_segment_basic_traits_2.h cgal-5.5/include/CGAL/Arr_non_caching_segment_basic_traits_2.h --- cgal-5.4.1/include/CGAL/Arr_non_caching_segment_basic_traits_2.h 2022-06-03 19:03:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_non_caching_segment_basic_traits_2.h 2022-07-13 19:04:27.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_non_caching_segment_basic_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_non_caching_segment_basic_traits_2.h $ // $Id: Arr_non_caching_segment_basic_traits_2.h 708469f 2020-06-12T14:06:58+03:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_non_caching_segment_traits_2.h cgal-5.5/include/CGAL/Arr_non_caching_segment_traits_2.h --- cgal-5.4.1/include/CGAL/Arr_non_caching_segment_traits_2.h 2022-06-03 19:03:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_non_caching_segment_traits_2.h 2022-07-13 19:04:27.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_non_caching_segment_traits_2.h $ -// $Id: Arr_non_caching_segment_traits_2.h 436ba5f 2020-06-30T21:23:16+03:00 Efi Fogel +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_non_caching_segment_traits_2.h $ +// $Id: Arr_non_caching_segment_traits_2.h c0838c5 2021-12-16T16:33:43+02:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s): Efi Fogel @@ -403,6 +403,18 @@ Compare_endpoints_xy_2 compare_endpoints_xy_2_object() const { return Compare_endpoints_xy_2(); } //@} + + //! \name Functor definitions for constructions. + //@{ + + //! Functor + typedef typename Kernel::Construct_segment_2 Construct_curve_2; + + /*! Obtain a Construct_curve_2 functor object. */ + Construct_curve_2 construct_curve_2_object() const + { return this->construct_segment_2_object(); } + + //@} }; } //namespace CGAL diff -Nru cgal-5.4.1/include/CGAL/Arr_observer.h cgal-5.5/include/CGAL/Arr_observer.h --- cgal-5.4.1/include/CGAL/Arr_observer.h 2022-06-03 19:03:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_observer.h 2022-07-13 19:04:27.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_observer.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_observer.h $ // $Id: Arr_observer.h 2a3fbc0 2019-11-19T09:47:44+02:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_overlay_2.h cgal-5.5/include/CGAL/Arr_overlay_2.h --- cgal-5.4.1/include/CGAL/Arr_overlay_2.h 2022-06-03 19:03:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_overlay_2.h 2022-07-13 19:04:27.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_overlay_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_overlay_2.h $ // $Id: Arr_overlay_2.h 4afc249 2021-09-09T15:58:00+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_overlay.h cgal-5.5/include/CGAL/Arr_overlay.h --- cgal-5.4.1/include/CGAL/Arr_overlay.h 2022-06-03 19:03:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_overlay.h 2022-07-13 19:04:27.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_overlay.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_overlay.h $ // $Id: Arr_overlay.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_point_location/Arr_batched_point_location_traits_2.h cgal-5.5/include/CGAL/Arr_point_location/Arr_batched_point_location_traits_2.h --- cgal-5.4.1/include/CGAL/Arr_point_location/Arr_batched_point_location_traits_2.h 2022-06-03 19:03:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_point_location/Arr_batched_point_location_traits_2.h 2022-07-13 19:04:27.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Arr_batched_point_location_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Arr_batched_point_location_traits_2.h $ // $Id: Arr_batched_point_location_traits_2.h 6b64dc8 2020-11-11T09:38:55+02:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_point_location/Arr_landmarks_pl_impl.h cgal-5.5/include/CGAL/Arr_point_location/Arr_landmarks_pl_impl.h --- cgal-5.4.1/include/CGAL/Arr_point_location/Arr_landmarks_pl_impl.h 2022-06-03 19:03:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_point_location/Arr_landmarks_pl_impl.h 2022-07-13 19:04:27.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Arr_landmarks_pl_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Arr_landmarks_pl_impl.h $ // $Id: Arr_landmarks_pl_impl.h 0626eb0 2020-06-11T12:32:33+03:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_point_location/Arr_lm_generator_base.h cgal-5.5/include/CGAL/Arr_point_location/Arr_lm_generator_base.h --- cgal-5.4.1/include/CGAL/Arr_point_location/Arr_lm_generator_base.h 2022-06-03 19:03:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_point_location/Arr_lm_generator_base.h 2022-07-13 19:04:27.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Arr_lm_generator_base.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Arr_lm_generator_base.h $ // $Id: Arr_lm_generator_base.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_point_location/Arr_lm_grid_generator.h cgal-5.5/include/CGAL/Arr_point_location/Arr_lm_grid_generator.h --- cgal-5.4.1/include/CGAL/Arr_point_location/Arr_lm_grid_generator.h 2022-06-03 19:03:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_point_location/Arr_lm_grid_generator.h 2022-07-13 19:04:27.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Arr_lm_grid_generator.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Arr_lm_grid_generator.h $ // $Id: Arr_lm_grid_generator.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_point_location/Arr_lm_halton_generator.h cgal-5.5/include/CGAL/Arr_point_location/Arr_lm_halton_generator.h --- cgal-5.4.1/include/CGAL/Arr_point_location/Arr_lm_halton_generator.h 2022-06-03 19:03:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_point_location/Arr_lm_halton_generator.h 2022-07-13 19:04:27.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Arr_lm_halton_generator.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Arr_lm_halton_generator.h $ // $Id: Arr_lm_halton_generator.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_point_location/Arr_lm_middle_edges_generator.h cgal-5.5/include/CGAL/Arr_point_location/Arr_lm_middle_edges_generator.h --- cgal-5.4.1/include/CGAL/Arr_point_location/Arr_lm_middle_edges_generator.h 2022-06-03 19:03:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_point_location/Arr_lm_middle_edges_generator.h 2022-07-13 19:04:27.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Arr_lm_middle_edges_generator.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Arr_lm_middle_edges_generator.h $ // $Id: Arr_lm_middle_edges_generator.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_point_location/Arr_lm_nearest_neighbor.h cgal-5.5/include/CGAL/Arr_point_location/Arr_lm_nearest_neighbor.h --- cgal-5.4.1/include/CGAL/Arr_point_location/Arr_lm_nearest_neighbor.h 2022-06-03 19:03:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_point_location/Arr_lm_nearest_neighbor.h 2022-07-13 19:04:27.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Arr_lm_nearest_neighbor.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Arr_lm_nearest_neighbor.h $ // $Id: Arr_lm_nearest_neighbor.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_point_location/Arr_lm_random_generator.h cgal-5.5/include/CGAL/Arr_point_location/Arr_lm_random_generator.h --- cgal-5.4.1/include/CGAL/Arr_point_location/Arr_lm_random_generator.h 2022-06-03 19:03:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_point_location/Arr_lm_random_generator.h 2022-07-13 19:04:27.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Arr_lm_random_generator.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Arr_lm_random_generator.h $ // $Id: Arr_lm_random_generator.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_point_location/Arr_lm_specified_points_generator.h cgal-5.5/include/CGAL/Arr_point_location/Arr_lm_specified_points_generator.h --- cgal-5.4.1/include/CGAL/Arr_point_location/Arr_lm_specified_points_generator.h 2022-06-03 19:03:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_point_location/Arr_lm_specified_points_generator.h 2022-07-13 19:04:27.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Arr_lm_specified_points_generator.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Arr_lm_specified_points_generator.h $ // $Id: Arr_lm_specified_points_generator.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_point_location/Arr_lm_vertices_generator.h cgal-5.5/include/CGAL/Arr_point_location/Arr_lm_vertices_generator.h --- cgal-5.4.1/include/CGAL/Arr_point_location/Arr_lm_vertices_generator.h 2022-06-03 19:03:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_point_location/Arr_lm_vertices_generator.h 2022-07-13 19:04:27.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Arr_lm_vertices_generator.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Arr_lm_vertices_generator.h $ // $Id: Arr_lm_vertices_generator.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_point_location/Arr_naive_point_location_impl.h cgal-5.5/include/CGAL/Arr_point_location/Arr_naive_point_location_impl.h --- cgal-5.4.1/include/CGAL/Arr_point_location/Arr_naive_point_location_impl.h 2022-06-03 19:03:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_point_location/Arr_naive_point_location_impl.h 2022-07-13 19:04:27.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Arr_naive_point_location_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Arr_naive_point_location_impl.h $ // $Id: Arr_naive_point_location_impl.h 8d95fb8 2021-08-11T18:37:30+03:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_point_location/Arr_simple_point_location_impl.h cgal-5.5/include/CGAL/Arr_point_location/Arr_simple_point_location_impl.h --- cgal-5.4.1/include/CGAL/Arr_point_location/Arr_simple_point_location_impl.h 2022-06-03 19:03:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_point_location/Arr_simple_point_location_impl.h 2022-07-13 19:04:27.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Arr_simple_point_location_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Arr_simple_point_location_impl.h $ // $Id: Arr_simple_point_location_impl.h 0626eb0 2020-06-11T12:32:33+03:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_point_location/Arr_trapezoid_ric_pl_impl.h cgal-5.5/include/CGAL/Arr_point_location/Arr_trapezoid_ric_pl_impl.h --- cgal-5.4.1/include/CGAL/Arr_point_location/Arr_trapezoid_ric_pl_impl.h 2022-06-03 19:03:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_point_location/Arr_trapezoid_ric_pl_impl.h 2022-07-13 19:04:27.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Arr_trapezoid_ric_pl_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Arr_trapezoid_ric_pl_impl.h $ // $Id: Arr_trapezoid_ric_pl_impl.h 6642407 2020-07-29T18:08:32+03:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_point_location/Arr_triangulation_pl_functions.h cgal-5.5/include/CGAL/Arr_point_location/Arr_triangulation_pl_functions.h --- cgal-5.4.1/include/CGAL/Arr_point_location/Arr_triangulation_pl_functions.h 2022-06-03 19:03:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_point_location/Arr_triangulation_pl_functions.h 2022-07-13 19:04:27.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Arr_triangulation_pl_functions.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Arr_triangulation_pl_functions.h $ // $Id: Arr_triangulation_pl_functions.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_point_location/Arr_triangulation_pl_impl.h cgal-5.5/include/CGAL/Arr_point_location/Arr_triangulation_pl_impl.h --- cgal-5.4.1/include/CGAL/Arr_point_location/Arr_triangulation_pl_impl.h 2022-06-03 19:03:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_point_location/Arr_triangulation_pl_impl.h 2022-07-13 19:04:27.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Arr_triangulation_pl_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Arr_triangulation_pl_impl.h $ // $Id: Arr_triangulation_pl_impl.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_point_location/Arr_walk_along_line_pl_impl.h cgal-5.5/include/CGAL/Arr_point_location/Arr_walk_along_line_pl_impl.h --- cgal-5.4.1/include/CGAL/Arr_point_location/Arr_walk_along_line_pl_impl.h 2022-06-03 19:03:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_point_location/Arr_walk_along_line_pl_impl.h 2022-07-13 19:04:27.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Arr_walk_along_line_pl_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Arr_walk_along_line_pl_impl.h $ // $Id: Arr_walk_along_line_pl_impl.h f73d067 2020-06-15T20:11:46+03:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_point_location/Td_active_edge.h cgal-5.5/include/CGAL/Arr_point_location/Td_active_edge.h --- cgal-5.4.1/include/CGAL/Arr_point_location/Td_active_edge.h 2022-06-03 19:03:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_point_location/Td_active_edge.h 2022-07-13 19:04:28.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Td_active_edge.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Td_active_edge.h $ // $Id: Td_active_edge.h 97cac65 2021-07-23T10:59:49+02:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_point_location/Td_active_fictitious_vertex.h cgal-5.5/include/CGAL/Arr_point_location/Td_active_fictitious_vertex.h --- cgal-5.4.1/include/CGAL/Arr_point_location/Td_active_fictitious_vertex.h 2022-06-03 19:03:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_point_location/Td_active_fictitious_vertex.h 2022-07-13 19:04:28.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Td_active_fictitious_vertex.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Td_active_fictitious_vertex.h $ // $Id: Td_active_fictitious_vertex.h 97cac65 2021-07-23T10:59:49+02:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_point_location/Td_active_trapezoid.h cgal-5.5/include/CGAL/Arr_point_location/Td_active_trapezoid.h --- cgal-5.4.1/include/CGAL/Arr_point_location/Td_active_trapezoid.h 2022-06-03 19:03:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_point_location/Td_active_trapezoid.h 2022-07-13 19:04:28.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Td_active_trapezoid.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Td_active_trapezoid.h $ // $Id: Td_active_trapezoid.h 97cac65 2021-07-23T10:59:49+02:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_point_location/Td_active_vertex.h cgal-5.5/include/CGAL/Arr_point_location/Td_active_vertex.h --- cgal-5.4.1/include/CGAL/Arr_point_location/Td_active_vertex.h 2022-06-03 19:03:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_point_location/Td_active_vertex.h 2022-07-13 19:04:28.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Td_active_vertex.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Td_active_vertex.h $ // $Id: Td_active_vertex.h 97cac65 2021-07-23T10:59:49+02:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_point_location/Td_dag.h cgal-5.5/include/CGAL/Arr_point_location/Td_dag.h --- cgal-5.4.1/include/CGAL/Arr_point_location/Td_dag.h 2022-06-03 19:03:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_point_location/Td_dag.h 2022-07-13 19:04:28.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Td_dag.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Td_dag.h $ // $Id: Td_dag.h 319383c 2020-05-20T09:47:58+02:00 Laurent Rineau // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_point_location/Td_dag_node.h cgal-5.5/include/CGAL/Arr_point_location/Td_dag_node.h --- cgal-5.4.1/include/CGAL/Arr_point_location/Td_dag_node.h 2022-06-03 19:03:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_point_location/Td_dag_node.h 2022-07-13 19:04:28.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Td_dag_node.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Td_dag_node.h $ // $Id: Td_dag_node.h 319383c 2020-05-20T09:47:58+02:00 Laurent Rineau // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_point_location/Td_inactive_edge.h cgal-5.5/include/CGAL/Arr_point_location/Td_inactive_edge.h --- cgal-5.4.1/include/CGAL/Arr_point_location/Td_inactive_edge.h 2022-06-03 19:03:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_point_location/Td_inactive_edge.h 2022-07-13 19:04:28.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Td_inactive_edge.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Td_inactive_edge.h $ // $Id: Td_inactive_edge.h 97cac65 2021-07-23T10:59:49+02:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_point_location/Td_inactive_fictitious_vertex.h cgal-5.5/include/CGAL/Arr_point_location/Td_inactive_fictitious_vertex.h --- cgal-5.4.1/include/CGAL/Arr_point_location/Td_inactive_fictitious_vertex.h 2022-06-03 19:03:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_point_location/Td_inactive_fictitious_vertex.h 2022-07-13 19:04:28.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Td_inactive_fictitious_vertex.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Td_inactive_fictitious_vertex.h $ // $Id: Td_inactive_fictitious_vertex.h 97cac65 2021-07-23T10:59:49+02:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_point_location/Td_inactive_trapezoid.h cgal-5.5/include/CGAL/Arr_point_location/Td_inactive_trapezoid.h --- cgal-5.4.1/include/CGAL/Arr_point_location/Td_inactive_trapezoid.h 2022-06-03 19:03:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_point_location/Td_inactive_trapezoid.h 2022-07-13 19:04:28.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Td_inactive_trapezoid.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Td_inactive_trapezoid.h $ // $Id: Td_inactive_trapezoid.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_point_location/Td_inactive_vertex.h cgal-5.5/include/CGAL/Arr_point_location/Td_inactive_vertex.h --- cgal-5.4.1/include/CGAL/Arr_point_location/Td_inactive_vertex.h 2022-06-03 19:03:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_point_location/Td_inactive_vertex.h 2022-07-13 19:04:28.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Td_inactive_vertex.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Td_inactive_vertex.h $ // $Id: Td_inactive_vertex.h 97cac65 2021-07-23T10:59:49+02:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_point_location/Td_ninetuple.h cgal-5.5/include/CGAL/Arr_point_location/Td_ninetuple.h --- cgal-5.4.1/include/CGAL/Arr_point_location/Td_ninetuple.h 2022-06-03 19:03:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_point_location/Td_ninetuple.h 2022-07-13 19:04:28.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Td_ninetuple.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Td_ninetuple.h $ // $Id: Td_ninetuple.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_point_location/Td_predicates.h cgal-5.5/include/CGAL/Arr_point_location/Td_predicates.h --- cgal-5.4.1/include/CGAL/Arr_point_location/Td_predicates.h 2022-06-03 19:03:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_point_location/Td_predicates.h 2022-07-13 19:04:28.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Td_predicates.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Td_predicates.h $ // $Id: Td_predicates.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_point_location/Td_traits.h cgal-5.5/include/CGAL/Arr_point_location/Td_traits.h --- cgal-5.4.1/include/CGAL/Arr_point_location/Td_traits.h 2022-06-03 19:03:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_point_location/Td_traits.h 2022-07-13 19:04:28.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Td_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Td_traits.h $ // $Id: Td_traits.h 6642407 2020-07-29T18:08:32+03:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_point_location/Td_X_trapezoid.h cgal-5.5/include/CGAL/Arr_point_location/Td_X_trapezoid.h --- cgal-5.4.1/include/CGAL/Arr_point_location/Td_X_trapezoid.h 2022-06-03 19:03:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_point_location/Td_X_trapezoid.h 2022-07-13 19:04:27.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Td_X_trapezoid.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Td_X_trapezoid.h $ // $Id: Td_X_trapezoid.h 97cac65 2021-07-23T10:59:49+02:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_point_location/Trapezoidal_decomposition_2.h cgal-5.5/include/CGAL/Arr_point_location/Trapezoidal_decomposition_2.h --- cgal-5.4.1/include/CGAL/Arr_point_location/Trapezoidal_decomposition_2.h 2022-06-03 19:03:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_point_location/Trapezoidal_decomposition_2.h 2022-07-13 19:04:28.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Trapezoidal_decomposition_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Trapezoidal_decomposition_2.h $ // $Id: Trapezoidal_decomposition_2.h 1faa0e2 2021-04-28T10:55:26+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_point_location/Trapezoidal_decomposition_2_impl.h cgal-5.5/include/CGAL/Arr_point_location/Trapezoidal_decomposition_2_impl.h --- cgal-5.4.1/include/CGAL/Arr_point_location/Trapezoidal_decomposition_2_impl.h 2022-06-03 19:03:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_point_location/Trapezoidal_decomposition_2_impl.h 2022-07-13 19:04:28.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Trapezoidal_decomposition_2_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Trapezoidal_decomposition_2_impl.h $ // $Id: Trapezoidal_decomposition_2_impl.h 1faa0e2 2021-04-28T10:55:26+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_point_location/Trapezoidal_decomposition_2_iostream.h cgal-5.5/include/CGAL/Arr_point_location/Trapezoidal_decomposition_2_iostream.h --- cgal-5.4.1/include/CGAL/Arr_point_location/Trapezoidal_decomposition_2_iostream.h 2022-06-03 19:03:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_point_location/Trapezoidal_decomposition_2_iostream.h 2022-07-13 19:04:28.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Trapezoidal_decomposition_2_iostream.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Trapezoidal_decomposition_2_iostream.h $ // $Id: Trapezoidal_decomposition_2_iostream.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_point_location/Trapezoidal_decomposition_2_misc.h cgal-5.5/include/CGAL/Arr_point_location/Trapezoidal_decomposition_2_misc.h --- cgal-5.4.1/include/CGAL/Arr_point_location/Trapezoidal_decomposition_2_misc.h 2022-06-03 19:03:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_point_location/Trapezoidal_decomposition_2_misc.h 2022-07-13 19:04:28.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Trapezoidal_decomposition_2_misc.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Trapezoidal_decomposition_2_misc.h $ // $Id: Trapezoidal_decomposition_2_misc.h e6c767d 2021-05-12T15:45:07+02:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_point_location_result.h cgal-5.5/include/CGAL/Arr_point_location_result.h --- cgal-5.4.1/include/CGAL/Arr_point_location_result.h 2022-06-03 19:03:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_point_location_result.h 2022-07-13 19:04:28.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_point_location_result.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_point_location_result.h $ // $Id: Arr_point_location_result.h 0626eb0 2020-06-11T12:32:33+03:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_polycurve_basic_traits_2.h cgal-5.5/include/CGAL/Arr_polycurve_basic_traits_2.h --- cgal-5.4.1/include/CGAL/Arr_polycurve_basic_traits_2.h 2022-06-03 19:03:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_polycurve_basic_traits_2.h 2022-07-13 19:04:28.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_polycurve_basic_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_polycurve_basic_traits_2.h $ // $Id: Arr_polycurve_basic_traits_2.h 5be3a41 2021-08-30T15:08:47+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_polycurve_traits_2.h cgal-5.5/include/CGAL/Arr_polycurve_traits_2.h --- cgal-5.4.1/include/CGAL/Arr_polycurve_traits_2.h 2022-06-03 19:03:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_polycurve_traits_2.h 2022-07-13 19:04:28.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_polycurve_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_polycurve_traits_2.h $ // $Id: Arr_polycurve_traits_2.h 521c72d 2021-10-04T13:22:00+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_polyline_traits_2.h cgal-5.5/include/CGAL/Arr_polyline_traits_2.h --- cgal-5.4.1/include/CGAL/Arr_polyline_traits_2.h 2022-06-03 19:03:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_polyline_traits_2.h 2022-07-13 19:04:28.000000000 +0000 @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_polyline_traits_2.h $ -// $Id: Arr_polyline_traits_2.h 0ef13b3 2021-09-23T11:10:43+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_polyline_traits_2.h $ +// $Id: Arr_polyline_traits_2.h 54b423c 2021-12-16T11:13:12+02:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s): Efi Fogel @@ -163,8 +163,7 @@ // { Base::Push_back_2::operator()(xcv, seg); } /* Append a point `p` to an existing polyline `cv` at the back. */ - void operator()(Curve_2& cv, const Point_2& p) const - { + void operator()(Curve_2& cv, const Point_2& p) const { typedef typename Curve_2::size_type size_type; size_type num_seg = cv.number_of_subcurves(); CGAL_precondition(num_seg > 0); @@ -172,8 +171,8 @@ const Segment_traits_2* seg_traits = this->m_poly_traits.subcurve_traits_2(); - typename Segment_traits_2::Compare_endpoints_xy_2 cmp_seg_endpts = - seg_traits->compare_endpoints_xy_2_object(); + auto cmp_seg_endpts = seg_traits->compare_endpoints_xy_2_object(); + auto ctr = seg_traits->construct_curve_2_object(); /* Since it is desired to maintain `cv` well-oriented, we have * to append the segment [cv[last_seg].target(),p]. The @@ -181,14 +180,12 @@ * the target, i.e. the actual end of `cv`. */ if (cmp_seg_endpts(cv[last_seg]) == SMALLER) { - typename Segment_traits_2::Construct_max_vertex_2 get_max_v = - seg_traits->construct_max_vertex_2_object(); - cv.push_back(Subcurve_2(get_max_v(cv[last_seg]), p)); + auto get_max_v = seg_traits->construct_max_vertex_2_object(); + cv.push_back(ctr(get_max_v(cv[last_seg]), p)); } else { - typename Segment_traits_2::Construct_min_vertex_2 get_min_v = - seg_traits->construct_min_vertex_2_object(); - cv.push_back(Subcurve_2(get_min_v(cv[last_seg]), p)); + auto get_min_v = seg_traits->construct_min_vertex_2_object(); + cv.push_back(ctr(get_min_v(cv[last_seg]), p)); } } @@ -276,8 +273,7 @@ // { Base::Push_front_2::operator()(xcv, seg); } /* Append a point `p` to an existing polyline `cv` at the front. */ - void operator()(Curve_2& cv, const Point_2& p) const - { + void operator()(Curve_2& cv, const Point_2& p) const { CGAL_precondition_code ( typedef typename Curve_2::size_type size_type; @@ -287,18 +283,16 @@ const Segment_traits_2* geom_traits = this->m_poly_traits.subcurve_traits_2(); - typename Segment_traits_2::Compare_endpoints_xy_2 cmp_seg_endpts = - geom_traits->compare_endpoints_xy_2_object(); + auto cmp_seg_endpts = geom_traits->compare_endpoints_xy_2_object(); + auto ctr = geom_traits->construct_curve_2_object(); if (cmp_seg_endpts(cv[0]) == SMALLER) { - typename Segment_traits_2::Construct_min_vertex_2 get_min_v = - geom_traits->construct_min_vertex_2_object(); - cv.push_front(Subcurve_2(p, get_min_v(cv[0]))); + auto get_min_v = geom_traits->construct_min_vertex_2_object(); + cv.push_front(ctr(p, get_min_v(cv[0]))); } else { - typename Segment_traits_2::Construct_max_vertex_2 get_max_v = - geom_traits->construct_max_vertex_2_object(); - cv.push_front(Subcurve_2(p, get_max_v(cv[0]))); + auto get_max_v = geom_traits->construct_max_vertex_2_object(); + cv.push_front(ctr(p, get_max_v(cv[0]))); } } @@ -369,8 +363,11 @@ /* Obtain an polyline connecting two given endpoints. */ - Curve_2 operator()(const Point_2& p, const Point_2& q) const - { return Curve_2(Subcurve_2(p, q)); } + Curve_2 operator()(const Point_2& p, const Point_2& q) const { + const Segment_traits_2* seg_traits = + this->m_poly_traits.subcurve_traits_2(); + return seg_traits->construct_curve_2_object()(p, q); + } /* Obtain a polyline consists of one given segment. */ @@ -433,7 +430,9 @@ auto point_pair_to_segment = [&](const Zip_iterator_ref& t)->Subcurve_2 { CGAL_precondition_msg(! equal(boost::get<0>(t), boost::get<1>(t)), "Cannot construct a degenerated segment"); - return Subcurve_2(boost::get<0>(t), boost::get<1>(t)); + const Segment_traits_2* seg_traits = + this->m_poly_traits.subcurve_traits_2(); + return seg_traits->construct_curve_2_object()(boost::get<0>(t), boost::get<1>(t)); }; auto begin_next = std::next(begin); auto end_prev = std::prev(end); diff -Nru cgal-5.4.1/include/CGAL/Arr_rat_arc/Algebraic_point_2.h cgal-5.5/include/CGAL/Arr_rat_arc/Algebraic_point_2.h --- cgal-5.4.1/include/CGAL/Arr_rat_arc/Algebraic_point_2.h 2022-06-03 19:03:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_rat_arc/Algebraic_point_2.h 2022-07-13 19:04:28.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_rat_arc/Algebraic_point_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_rat_arc/Algebraic_point_2.h $ // $Id: Algebraic_point_2.h 4e519a3 2021-05-05T13:15:37+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_rat_arc/Base_rational_arc_ds_1.h cgal-5.5/include/CGAL/Arr_rat_arc/Base_rational_arc_ds_1.h --- cgal-5.4.1/include/CGAL/Arr_rat_arc/Base_rational_arc_ds_1.h 2022-06-03 19:03:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_rat_arc/Base_rational_arc_ds_1.h 2022-07-13 19:04:28.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_rat_arc/Base_rational_arc_ds_1.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_rat_arc/Base_rational_arc_ds_1.h $ // $Id: Base_rational_arc_ds_1.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_rat_arc/Cache.h cgal-5.5/include/CGAL/Arr_rat_arc/Cache.h --- cgal-5.4.1/include/CGAL/Arr_rat_arc/Cache.h 2022-06-03 19:03:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_rat_arc/Cache.h 2022-07-13 19:04:28.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_rat_arc/Cache.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_rat_arc/Cache.h $ // $Id: Cache.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_rat_arc/Rational_arc_d_1.h cgal-5.5/include/CGAL/Arr_rat_arc/Rational_arc_d_1.h --- cgal-5.4.1/include/CGAL/Arr_rat_arc/Rational_arc_d_1.h 2022-06-03 19:03:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_rat_arc/Rational_arc_d_1.h 2022-07-13 19:04:28.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_rat_arc/Rational_arc_d_1.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_rat_arc/Rational_arc_d_1.h $ // $Id: Rational_arc_d_1.h 6642407 2020-07-29T18:08:32+03:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_rat_arc/Rational_function_canonicalized_pair.h cgal-5.5/include/CGAL/Arr_rat_arc/Rational_function_canonicalized_pair.h --- cgal-5.4.1/include/CGAL/Arr_rat_arc/Rational_function_canonicalized_pair.h 2022-06-03 19:03:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_rat_arc/Rational_function_canonicalized_pair.h 2022-07-13 19:04:28.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_rat_arc/Rational_function_canonicalized_pair.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_rat_arc/Rational_function_canonicalized_pair.h $ // $Id: Rational_function_canonicalized_pair.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_rat_arc/Rational_function.h cgal-5.5/include/CGAL/Arr_rat_arc/Rational_function.h --- cgal-5.4.1/include/CGAL/Arr_rat_arc/Rational_function.h 2022-06-03 19:03:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_rat_arc/Rational_function.h 2022-07-13 19:04:28.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_rat_arc/Rational_function.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_rat_arc/Rational_function.h $ // $Id: Rational_function.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_rat_arc/Rational_function_ordered_pair.h cgal-5.5/include/CGAL/Arr_rat_arc/Rational_function_ordered_pair.h --- cgal-5.4.1/include/CGAL/Arr_rat_arc/Rational_function_ordered_pair.h 2022-06-03 19:03:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_rat_arc/Rational_function_ordered_pair.h 2022-07-13 19:04:28.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_rat_arc/Rational_function_ordered_pair.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_rat_arc/Rational_function_ordered_pair.h $ // $Id: Rational_function_ordered_pair.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_rat_arc/Rational_function_pair.h cgal-5.5/include/CGAL/Arr_rat_arc/Rational_function_pair.h --- cgal-5.4.1/include/CGAL/Arr_rat_arc/Rational_function_pair.h 2022-06-03 19:03:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_rat_arc/Rational_function_pair.h 2022-07-13 19:04:28.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_rat_arc/Rational_function_pair.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_rat_arc/Rational_function_pair.h $ // $Id: Rational_function_pair.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_rat_arc/Singleton.h cgal-5.5/include/CGAL/Arr_rat_arc/Singleton.h --- cgal-5.4.1/include/CGAL/Arr_rat_arc/Singleton.h 2022-06-03 19:03:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_rat_arc/Singleton.h 2022-07-13 19:04:28.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_rat_arc/Singleton.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_rat_arc/Singleton.h $ // $Id: Singleton.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_rational_function_traits_2.h cgal-5.5/include/CGAL/Arr_rational_function_traits_2.h --- cgal-5.4.1/include/CGAL/Arr_rational_function_traits_2.h 2022-06-03 19:03:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_rational_function_traits_2.h 2022-07-13 19:04:28.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_rational_function_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_rational_function_traits_2.h $ // $Id: Arr_rational_function_traits_2.h 6b64dc8 2020-11-11T09:38:55+02:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_segment_traits_2.h cgal-5.5/include/CGAL/Arr_segment_traits_2.h --- cgal-5.4.1/include/CGAL/Arr_segment_traits_2.h 2022-06-03 19:03:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_segment_traits_2.h 2022-07-13 19:04:28.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_segment_traits_2.h $ -// $Id: Arr_segment_traits_2.h c596073 2020-11-05T10:43:47+02:00 Efi Fogel +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_segment_traits_2.h $ +// $Id: Arr_segment_traits_2.h c0838c5 2021-12-16T16:33:43+02:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s): Ron Wein @@ -900,6 +900,7 @@ /*! Obtain an Approximate_2 functor object. */ Approximate_2 approximate_2_object() const { return Approximate_2(); } + //! Functor class Construct_x_monotone_curve_2 { protected: typedef Arr_segment_traits_2 Traits; @@ -994,6 +995,17 @@ { return Construct_x_monotone_curve_2(*this); } //@} + /// \name Functor definitions for polylines. + //@{ + + //! Functor + typedef Construct_x_monotone_curve_2 Construct_curve_2; + + /*! Obtain a Construct_curve_2 functor object. */ + Construct_curve_2 construct_curve_2_object() const + { return Construct_x_monotone_curve_2(*this); } + //@} + /// \name Functor definitions for the Boolean set-operation traits. //@{ diff -Nru cgal-5.4.1/include/CGAL/Arr_simple_point_location.h cgal-5.5/include/CGAL/Arr_simple_point_location.h --- cgal-5.4.1/include/CGAL/Arr_simple_point_location.h 2022-06-03 19:03:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_simple_point_location.h 2022-07-13 19:04:28.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_simple_point_location.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_simple_point_location.h $ // $Id: Arr_simple_point_location.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_spherical_gaussian_map_3/Arr_on_sphere_transformation.h cgal-5.5/include/CGAL/Arr_spherical_gaussian_map_3/Arr_on_sphere_transformation.h --- cgal-5.4.1/include/CGAL/Arr_spherical_gaussian_map_3/Arr_on_sphere_transformation.h 2022-06-03 19:03:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_spherical_gaussian_map_3/Arr_on_sphere_transformation.h 2022-07-13 19:04:28.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_spherical_gaussian_map_3/Arr_on_sphere_transformation.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_spherical_gaussian_map_3/Arr_on_sphere_transformation.h $ // $Id: Arr_on_sphere_transformation.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm_arr_dcel.h cgal-5.5/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm_arr_dcel.h --- cgal-5.4.1/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm_arr_dcel.h 2022-06-03 19:03:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm_arr_dcel.h 2022-07-13 19:04:28.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm_arr_dcel.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm_arr_dcel.h $ // $Id: Arr_polyhedral_sgm_arr_dcel.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm.h cgal-5.5/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm.h --- cgal-5.4.1/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm.h 2022-06-03 19:03:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm.h 2022-07-13 19:04:28.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm.h $ // $Id: Arr_polyhedral_sgm.h 74a0e95 2021-03-03T11:01:18+02:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm_initializer_visitor.h cgal-5.5/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm_initializer_visitor.h --- cgal-5.4.1/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm_initializer_visitor.h 2022-06-03 19:03:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm_initializer_visitor.h 2022-07-13 19:04:28.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm_initializer_visitor.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm_initializer_visitor.h $ // $Id: Arr_polyhedral_sgm_initializer_visitor.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm_overlay.h cgal-5.5/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm_overlay.h --- cgal-5.4.1/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm_overlay.h 2022-06-03 19:03:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm_overlay.h 2022-07-13 19:04:28.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm_overlay.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm_overlay.h $ // $Id: Arr_polyhedral_sgm_overlay.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm_polyhedron_3.h cgal-5.5/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm_polyhedron_3.h --- cgal-5.4.1/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm_polyhedron_3.h 2022-06-03 19:03:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm_polyhedron_3.h 2022-07-13 19:04:29.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm_polyhedron_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm_polyhedron_3.h $ // $Id: Arr_polyhedral_sgm_polyhedron_3.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm_traits.h cgal-5.5/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm_traits.h --- cgal-5.4.1/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm_traits.h 2022-06-03 19:03:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm_traits.h 2022-07-13 19:04:29.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm_traits.h $ // $Id: Arr_polyhedral_sgm_traits.h 2a3fbc0 2019-11-19T09:47:44+02:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm_transformation.h cgal-5.5/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm_transformation.h --- cgal-5.4.1/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm_transformation.h 2022-06-03 19:03:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm_transformation.h 2022-07-13 19:04:29.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm_transformation.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm_transformation.h $ // $Id: Arr_polyhedral_sgm_transformation.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_spherical_gaussian_map_3/Arr_spherical_gaussian_map_3.h cgal-5.5/include/CGAL/Arr_spherical_gaussian_map_3/Arr_spherical_gaussian_map_3.h --- cgal-5.4.1/include/CGAL/Arr_spherical_gaussian_map_3/Arr_spherical_gaussian_map_3.h 2022-06-03 19:03:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_spherical_gaussian_map_3/Arr_spherical_gaussian_map_3.h 2022-07-13 19:04:29.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_spherical_gaussian_map_3/Arr_spherical_gaussian_map_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_spherical_gaussian_map_3/Arr_spherical_gaussian_map_3.h $ // $Id: Arr_spherical_gaussian_map_3.h 774e353 2022-01-11T11:32:50+02:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_spherical_gaussian_map_3/Arr_transform_on_sphere.h cgal-5.5/include/CGAL/Arr_spherical_gaussian_map_3/Arr_transform_on_sphere.h --- cgal-5.4.1/include/CGAL/Arr_spherical_gaussian_map_3/Arr_transform_on_sphere.h 2022-06-03 19:03:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_spherical_gaussian_map_3/Arr_transform_on_sphere.h 2022-07-13 19:04:29.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_spherical_gaussian_map_3/Arr_transform_on_sphere.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_spherical_gaussian_map_3/Arr_transform_on_sphere.h $ // $Id: Arr_transform_on_sphere.h 03a2d28 2020-06-14T10:47:45+03:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_spherical_topology_traits_2.h cgal-5.5/include/CGAL/Arr_spherical_topology_traits_2.h --- cgal-5.4.1/include/CGAL/Arr_spherical_topology_traits_2.h 2022-06-03 19:03:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_spherical_topology_traits_2.h 2022-07-13 19:04:29.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_spherical_topology_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_spherical_topology_traits_2.h $ // $Id: Arr_spherical_topology_traits_2.h 6b64dc8 2020-11-11T09:38:55+02:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_tags.h cgal-5.5/include/CGAL/Arr_tags.h --- cgal-5.4.1/include/CGAL/Arr_tags.h 2022-06-03 19:03:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_tags.h 2022-07-13 19:04:29.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_tags.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_tags.h $ // $Id: Arr_tags.h 2a3fbc0 2019-11-19T09:47:44+02:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_topology_traits/Arr_bounded_planar_batched_pl_helper.h cgal-5.5/include/CGAL/Arr_topology_traits/Arr_bounded_planar_batched_pl_helper.h --- cgal-5.4.1/include/CGAL/Arr_topology_traits/Arr_bounded_planar_batched_pl_helper.h 2022-06-03 19:03:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_topology_traits/Arr_bounded_planar_batched_pl_helper.h 2022-07-13 19:04:29.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_topology_traits/Arr_bounded_planar_batched_pl_helper.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_topology_traits/Arr_bounded_planar_batched_pl_helper.h $ // $Id: Arr_bounded_planar_batched_pl_helper.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_topology_traits/Arr_bounded_planar_construction_helper.h cgal-5.5/include/CGAL/Arr_topology_traits/Arr_bounded_planar_construction_helper.h --- cgal-5.4.1/include/CGAL/Arr_topology_traits/Arr_bounded_planar_construction_helper.h 2022-06-03 19:03:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_topology_traits/Arr_bounded_planar_construction_helper.h 2022-07-13 19:04:29.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_topology_traits/Arr_bounded_planar_construction_helper.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_topology_traits/Arr_bounded_planar_construction_helper.h $ // $Id: Arr_bounded_planar_construction_helper.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_topology_traits/Arr_bounded_planar_insertion_helper.h cgal-5.5/include/CGAL/Arr_topology_traits/Arr_bounded_planar_insertion_helper.h --- cgal-5.4.1/include/CGAL/Arr_topology_traits/Arr_bounded_planar_insertion_helper.h 2022-06-03 19:03:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_topology_traits/Arr_bounded_planar_insertion_helper.h 2022-07-13 19:04:29.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_topology_traits/Arr_bounded_planar_insertion_helper.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_topology_traits/Arr_bounded_planar_insertion_helper.h $ // $Id: Arr_bounded_planar_insertion_helper.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_topology_traits/Arr_bounded_planar_overlay_helper.h cgal-5.5/include/CGAL/Arr_topology_traits/Arr_bounded_planar_overlay_helper.h --- cgal-5.4.1/include/CGAL/Arr_topology_traits/Arr_bounded_planar_overlay_helper.h 2022-06-03 19:03:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_topology_traits/Arr_bounded_planar_overlay_helper.h 2022-07-13 19:04:29.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_topology_traits/Arr_bounded_planar_overlay_helper.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_topology_traits/Arr_bounded_planar_overlay_helper.h $ // $Id: Arr_bounded_planar_overlay_helper.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_topology_traits/Arr_bounded_planar_topology_traits_2_impl.h cgal-5.5/include/CGAL/Arr_topology_traits/Arr_bounded_planar_topology_traits_2_impl.h --- cgal-5.4.1/include/CGAL/Arr_topology_traits/Arr_bounded_planar_topology_traits_2_impl.h 2022-06-03 19:03:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_topology_traits/Arr_bounded_planar_topology_traits_2_impl.h 2022-07-13 19:04:29.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_topology_traits/Arr_bounded_planar_topology_traits_2_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_topology_traits/Arr_bounded_planar_topology_traits_2_impl.h $ // $Id: Arr_bounded_planar_topology_traits_2_impl.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_topology_traits/Arr_bounded_planar_vert_decomp_helper.h cgal-5.5/include/CGAL/Arr_topology_traits/Arr_bounded_planar_vert_decomp_helper.h --- cgal-5.4.1/include/CGAL/Arr_topology_traits/Arr_bounded_planar_vert_decomp_helper.h 2022-06-03 19:03:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_topology_traits/Arr_bounded_planar_vert_decomp_helper.h 2022-07-13 19:04:29.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_topology_traits/Arr_bounded_planar_vert_decomp_helper.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_topology_traits/Arr_bounded_planar_vert_decomp_helper.h $ // $Id: Arr_bounded_planar_vert_decomp_helper.h 436ba5f 2020-06-30T21:23:16+03:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_topology_traits/Arr_inc_insertion_zone_visitor.h cgal-5.5/include/CGAL/Arr_topology_traits/Arr_inc_insertion_zone_visitor.h --- cgal-5.4.1/include/CGAL/Arr_topology_traits/Arr_inc_insertion_zone_visitor.h 2022-06-03 19:03:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_topology_traits/Arr_inc_insertion_zone_visitor.h 2022-07-13 19:04:29.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_topology_traits/Arr_inc_insertion_zone_visitor.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_topology_traits/Arr_inc_insertion_zone_visitor.h $ // $Id: Arr_inc_insertion_zone_visitor.h 6e1fc8a 2021-09-02T16:53:07+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_topology_traits/Arr_planar_topology_traits_base_2.h cgal-5.5/include/CGAL/Arr_topology_traits/Arr_planar_topology_traits_base_2.h --- cgal-5.4.1/include/CGAL/Arr_topology_traits/Arr_planar_topology_traits_base_2.h 2022-06-03 19:03:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_topology_traits/Arr_planar_topology_traits_base_2.h 2022-07-13 19:04:29.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_topology_traits/Arr_planar_topology_traits_base_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_topology_traits/Arr_planar_topology_traits_base_2.h $ // $Id: Arr_planar_topology_traits_base_2.h 6e1fc8a 2021-09-02T16:53:07+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_topology_traits/Arr_spherical_batched_pl_helper.h cgal-5.5/include/CGAL/Arr_topology_traits/Arr_spherical_batched_pl_helper.h --- cgal-5.4.1/include/CGAL/Arr_topology_traits/Arr_spherical_batched_pl_helper.h 2022-06-03 19:03:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_topology_traits/Arr_spherical_batched_pl_helper.h 2022-07-13 19:04:29.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_topology_traits/Arr_spherical_batched_pl_helper.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_topology_traits/Arr_spherical_batched_pl_helper.h $ // $Id: Arr_spherical_batched_pl_helper.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_topology_traits/Arr_spherical_construction_helper.h cgal-5.5/include/CGAL/Arr_topology_traits/Arr_spherical_construction_helper.h --- cgal-5.4.1/include/CGAL/Arr_topology_traits/Arr_spherical_construction_helper.h 2022-06-03 19:03:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_topology_traits/Arr_spherical_construction_helper.h 2022-07-13 19:04:29.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_topology_traits/Arr_spherical_construction_helper.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_topology_traits/Arr_spherical_construction_helper.h $ // $Id: Arr_spherical_construction_helper.h 2d1e009 2021-03-25T12:53:48+02:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_topology_traits/Arr_spherical_insertion_helper.h cgal-5.5/include/CGAL/Arr_topology_traits/Arr_spherical_insertion_helper.h --- cgal-5.4.1/include/CGAL/Arr_topology_traits/Arr_spherical_insertion_helper.h 2022-06-03 19:03:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_topology_traits/Arr_spherical_insertion_helper.h 2022-07-13 19:04:29.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_topology_traits/Arr_spherical_insertion_helper.h $ -// $Id: Arr_spherical_insertion_helper.h 6e1fc8a 2021-09-02T16:53:07+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_topology_traits/Arr_spherical_insertion_helper.h $ +// $Id: Arr_spherical_insertion_helper.h 295e9b9 2022-02-02T15:44:48+02:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -143,7 +143,7 @@ */ template void Arr_spherical_insertion_helper:: -before_handle_event_imp(Event* event, Arr_all_sides_oblivious_tag) +before_handle_event_imp(Event* /* event */, Arr_all_sides_oblivious_tag) { return; } /* A notification invoked before the surface-sweep starts handling a given diff -Nru cgal-5.4.1/include/CGAL/Arr_topology_traits/Arr_spherical_overlay_helper.h cgal-5.5/include/CGAL/Arr_topology_traits/Arr_spherical_overlay_helper.h --- cgal-5.4.1/include/CGAL/Arr_topology_traits/Arr_spherical_overlay_helper.h 2022-06-03 19:03:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_topology_traits/Arr_spherical_overlay_helper.h 2022-07-13 19:04:29.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_topology_traits/Arr_spherical_overlay_helper.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_topology_traits/Arr_spherical_overlay_helper.h $ // $Id: Arr_spherical_overlay_helper.h 9e5385d 2021-03-25T15:49:58+02:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_topology_traits/Arr_spherical_topology_traits_2_impl.h cgal-5.5/include/CGAL/Arr_topology_traits/Arr_spherical_topology_traits_2_impl.h --- cgal-5.4.1/include/CGAL/Arr_topology_traits/Arr_spherical_topology_traits_2_impl.h 2022-06-03 19:03:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_topology_traits/Arr_spherical_topology_traits_2_impl.h 2022-07-13 19:04:29.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_topology_traits/Arr_spherical_topology_traits_2_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_topology_traits/Arr_spherical_topology_traits_2_impl.h $ // $Id: Arr_spherical_topology_traits_2_impl.h 12a85a9 2021-03-01T15:39:36+02:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_topology_traits/Arr_spherical_vert_decomp_helper.h cgal-5.5/include/CGAL/Arr_topology_traits/Arr_spherical_vert_decomp_helper.h --- cgal-5.4.1/include/CGAL/Arr_topology_traits/Arr_spherical_vert_decomp_helper.h 2022-06-03 19:03:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_topology_traits/Arr_spherical_vert_decomp_helper.h 2022-07-13 19:04:29.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_topology_traits/Arr_spherical_vert_decomp_helper.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_topology_traits/Arr_spherical_vert_decomp_helper.h $ // $Id: Arr_spherical_vert_decomp_helper.h 5985db1 2021-07-28T16:17:10+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_topology_traits/Arr_unb_planar_batched_pl_helper.h cgal-5.5/include/CGAL/Arr_topology_traits/Arr_unb_planar_batched_pl_helper.h --- cgal-5.4.1/include/CGAL/Arr_topology_traits/Arr_unb_planar_batched_pl_helper.h 2022-06-03 19:03:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_topology_traits/Arr_unb_planar_batched_pl_helper.h 2022-07-13 19:04:29.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_topology_traits/Arr_unb_planar_batched_pl_helper.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_topology_traits/Arr_unb_planar_batched_pl_helper.h $ // $Id: Arr_unb_planar_batched_pl_helper.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_topology_traits/Arr_unb_planar_construction_helper.h cgal-5.5/include/CGAL/Arr_topology_traits/Arr_unb_planar_construction_helper.h --- cgal-5.4.1/include/CGAL/Arr_topology_traits/Arr_unb_planar_construction_helper.h 2022-06-03 19:03:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_topology_traits/Arr_unb_planar_construction_helper.h 2022-07-13 19:04:29.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_topology_traits/Arr_unb_planar_construction_helper.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_topology_traits/Arr_unb_planar_construction_helper.h $ // $Id: Arr_unb_planar_construction_helper.h 5985db1 2021-07-28T16:17:10+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_topology_traits/Arr_unb_planar_insertion_helper.h cgal-5.5/include/CGAL/Arr_topology_traits/Arr_unb_planar_insertion_helper.h --- cgal-5.4.1/include/CGAL/Arr_topology_traits/Arr_unb_planar_insertion_helper.h 2022-06-03 19:03:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_topology_traits/Arr_unb_planar_insertion_helper.h 2022-07-13 19:04:29.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_topology_traits/Arr_unb_planar_insertion_helper.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_topology_traits/Arr_unb_planar_insertion_helper.h $ // $Id: Arr_unb_planar_insertion_helper.h 6e1fc8a 2021-09-02T16:53:07+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_topology_traits/Arr_unb_planar_overlay_helper.h cgal-5.5/include/CGAL/Arr_topology_traits/Arr_unb_planar_overlay_helper.h --- cgal-5.4.1/include/CGAL/Arr_topology_traits/Arr_unb_planar_overlay_helper.h 2022-06-03 19:03:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_topology_traits/Arr_unb_planar_overlay_helper.h 2022-07-13 19:04:29.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_topology_traits/Arr_unb_planar_overlay_helper.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_topology_traits/Arr_unb_planar_overlay_helper.h $ // $Id: Arr_unb_planar_overlay_helper.h 6e1fc8a 2021-09-02T16:53:07+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_topology_traits/Arr_unb_planar_topology_traits_2_impl.h cgal-5.5/include/CGAL/Arr_topology_traits/Arr_unb_planar_topology_traits_2_impl.h --- cgal-5.4.1/include/CGAL/Arr_topology_traits/Arr_unb_planar_topology_traits_2_impl.h 2022-06-03 19:03:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_topology_traits/Arr_unb_planar_topology_traits_2_impl.h 2022-07-13 19:04:29.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_topology_traits/Arr_unb_planar_topology_traits_2_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_topology_traits/Arr_unb_planar_topology_traits_2_impl.h $ // $Id: Arr_unb_planar_topology_traits_2_impl.h 3849f5e 2020-06-14T00:41:25+03:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_topology_traits/Arr_unb_planar_vert_decomp_helper.h cgal-5.5/include/CGAL/Arr_topology_traits/Arr_unb_planar_vert_decomp_helper.h --- cgal-5.4.1/include/CGAL/Arr_topology_traits/Arr_unb_planar_vert_decomp_helper.h 2022-06-03 19:03:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_topology_traits/Arr_unb_planar_vert_decomp_helper.h 2022-07-13 19:04:29.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_topology_traits/Arr_unb_planar_vert_decomp_helper.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_topology_traits/Arr_unb_planar_vert_decomp_helper.h $ // $Id: Arr_unb_planar_vert_decomp_helper.h 5985db1 2021-07-28T16:17:10+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_tracing_traits_2.h cgal-5.5/include/CGAL/Arr_tracing_traits_2.h --- cgal-5.4.1/include/CGAL/Arr_tracing_traits_2.h 2022-06-03 19:03:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_tracing_traits_2.h 2022-07-13 19:04:29.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_tracing_traits_2.h $ -// $Id: Arr_tracing_traits_2.h 12a85a9 2021-03-01T15:39:36+02:00 Efi Fogel +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_tracing_traits_2.h $ +// $Id: Arr_tracing_traits_2.h 97b35b7 2022-03-13T11:52:42+02:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s): Efi Fogel @@ -535,12 +535,12 @@ size_t i = 0; for (auto it = container.begin(); it != container.end(); ++it) { - if (const auto* xcv = boost::get(*it)) { + if (const auto* xcv = boost::get(&*it)) { std::cout << " result[" << i++ << "]: xcv: " << *xcv << std::endl; continue; } - if (const Point_2* p = boost::get(*it)) { + if (const auto* p = boost::get(&*it)) { std::cout << " result[" << i++ << "]: p: " << *p << std::endl; continue; } diff -Nru cgal-5.4.1/include/CGAL/Arr_trapezoid_ric_point_location.h cgal-5.5/include/CGAL/Arr_trapezoid_ric_point_location.h --- cgal-5.4.1/include/CGAL/Arr_trapezoid_ric_point_location.h 2022-06-03 19:03:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_trapezoid_ric_point_location.h 2022-07-13 19:04:29.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_trapezoid_ric_point_location.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_trapezoid_ric_point_location.h $ // $Id: Arr_trapezoid_ric_point_location.h 6642407 2020-07-29T18:08:32+03:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_triangulation_point_location.h cgal-5.5/include/CGAL/Arr_triangulation_point_location.h --- cgal-5.4.1/include/CGAL/Arr_triangulation_point_location.h 2022-06-03 19:03:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_triangulation_point_location.h 2022-07-13 19:04:29.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_triangulation_point_location.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_triangulation_point_location.h $ // $Id: Arr_triangulation_point_location.h fb6f703 2021-05-04T14:07:49+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_unb_planar_topology_traits_2.h cgal-5.5/include/CGAL/Arr_unb_planar_topology_traits_2.h --- cgal-5.4.1/include/CGAL/Arr_unb_planar_topology_traits_2.h 2022-06-03 19:03:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_unb_planar_topology_traits_2.h 2022-07-13 19:04:29.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_unb_planar_topology_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_unb_planar_topology_traits_2.h $ // $Id: Arr_unb_planar_topology_traits_2.h 3849f5e 2020-06-14T00:41:25+03:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_vertex_index_map.h cgal-5.5/include/CGAL/Arr_vertex_index_map.h --- cgal-5.4.1/include/CGAL/Arr_vertex_index_map.h 2022-06-03 19:03:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_vertex_index_map.h 2022-07-13 19:04:29.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_vertex_index_map.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_vertex_index_map.h $ // $Id: Arr_vertex_index_map.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_vertex_map.h cgal-5.5/include/CGAL/Arr_vertex_map.h --- cgal-5.4.1/include/CGAL/Arr_vertex_map.h 2022-06-03 19:03:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_vertex_map.h 2022-07-13 19:04:29.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_vertex_map.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_vertex_map.h $ // $Id: Arr_vertex_map.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_vertical_decomposition_2.h cgal-5.5/include/CGAL/Arr_vertical_decomposition_2.h --- cgal-5.4.1/include/CGAL/Arr_vertical_decomposition_2.h 2022-06-03 19:03:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_vertical_decomposition_2.h 2022-07-13 19:04:29.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_vertical_decomposition_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_vertical_decomposition_2.h $ // $Id: Arr_vertical_decomposition_2.h 3c5552b 2020-06-30T21:22:40+03:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Arr_walk_along_line_point_location.h cgal-5.5/include/CGAL/Arr_walk_along_line_point_location.h --- cgal-5.4.1/include/CGAL/Arr_walk_along_line_point_location.h 2022-06-03 19:03:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Arr_walk_along_line_point_location.h 2022-07-13 19:04:29.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Arr_walk_along_line_point_location.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Arr_walk_along_line_point_location.h $ // $Id: Arr_walk_along_line_point_location.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/assertions_behaviour.h cgal-5.5/include/CGAL/assertions_behaviour.h --- cgal-5.4.1/include/CGAL/assertions_behaviour.h 2022-06-03 19:05:33.000000000 +0000 +++ cgal-5.5/include/CGAL/assertions_behaviour.h 2022-07-13 19:06:28.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/assertions_behaviour.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/assertions_behaviour.h $ // $Id: assertions_behaviour.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/assertions.h cgal-5.5/include/CGAL/assertions.h --- cgal-5.4.1/include/CGAL/assertions.h 2022-06-03 19:05:33.000000000 +0000 +++ cgal-5.5/include/CGAL/assertions.h 2022-07-13 19:06:28.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/assertions.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/assertions.h $ // $Id: assertions.h 2d9280e 2021-10-27T16:09:32+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/assertions_impl.h cgal-5.5/include/CGAL/assertions_impl.h --- cgal-5.4.1/include/CGAL/assertions_impl.h 2022-06-03 19:05:33.000000000 +0000 +++ cgal-5.5/include/CGAL/assertions_impl.h 2022-07-13 19:06:28.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/assertions_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/assertions_impl.h $ // $Id: assertions_impl.h bca05c8 2021-09-24T11:14:01+02:00 Jane Tournois // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/atomic.h cgal-5.5/include/CGAL/atomic.h --- cgal-5.4.1/include/CGAL/atomic.h 2022-06-03 19:04:19.000000000 +0000 +++ cgal-5.5/include/CGAL/atomic.h 2022-07-13 19:05:09.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/atomic.h $ -// $Id: atomic.h 6481cb2 2021-08-13T16:44:53+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/atomic.h $ +// $Id: atomic.h 429c764 2022-06-20T09:37:10+02:00 Laurent Rineau // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial #ifndef CGAL_ATOMIC_H @@ -33,7 +33,7 @@ using std::atomic_thread_fence; } } #else -# define CGAL_NO_ATOMIC "No atomic because CGAL_NO_THREADS is defined." +# define CGAL_NO_ATOMIC "No atomic because CGAL_HAS_NO_THREADS is defined." #endif // CGAL_HAS_THREADS #endif // CGAL_ATOMIC_H diff -Nru cgal-5.4.1/include/CGAL/auto_link/auto_link.h cgal-5.5/include/CGAL/auto_link/auto_link.h --- cgal-5.4.1/include/CGAL/auto_link/auto_link.h 2022-06-03 19:04:19.000000000 +0000 +++ cgal-5.5/include/CGAL/auto_link/auto_link.h 2022-07-13 19:05:09.000000000 +0000 @@ -9,7 +9,7 @@ // (C) Copyright John Maddock 2003. // // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/auto_link/auto_link.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/auto_link/auto_link.h $ // $Id: auto_link.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: BSL-1.0 // diff -Nru cgal-5.4.1/include/CGAL/auto_link/CGAL.h cgal-5.5/include/CGAL/auto_link/CGAL.h --- cgal-5.4.1/include/CGAL/auto_link/CGAL.h 2022-06-03 19:04:19.000000000 +0000 +++ cgal-5.5/include/CGAL/auto_link/CGAL.h 2022-07-13 19:05:09.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/auto_link/CGAL.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/auto_link/CGAL.h $ // $Id: CGAL.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/auto_link/CORE.h cgal-5.5/include/CGAL/auto_link/CORE.h --- cgal-5.4.1/include/CGAL/auto_link/CORE.h 2022-06-03 19:04:19.000000000 +0000 +++ cgal-5.5/include/CGAL/auto_link/CORE.h 2022-07-13 19:05:09.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/auto_link/CORE.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/auto_link/CORE.h $ // $Id: CORE.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/auto_link/ImageIO.h cgal-5.5/include/CGAL/auto_link/ImageIO.h --- cgal-5.4.1/include/CGAL/auto_link/ImageIO.h 2022-06-03 19:04:19.000000000 +0000 +++ cgal-5.5/include/CGAL/auto_link/ImageIO.h 2022-07-13 19:05:09.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/auto_link/ImageIO.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/auto_link/ImageIO.h $ // $Id: ImageIO.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/auto_link/Qt.h cgal-5.5/include/CGAL/auto_link/Qt.h --- cgal-5.4.1/include/CGAL/auto_link/Qt.h 2022-06-03 19:04:16.000000000 +0000 +++ cgal-5.5/include/CGAL/auto_link/Qt.h 2022-07-13 19:05:05.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/auto_link/Qt.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/auto_link/Qt.h $ // $Id: Qt.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/barycenter.h cgal-5.5/include/CGAL/barycenter.h --- cgal-5.4.1/include/CGAL/barycenter.h 2022-06-03 19:05:28.000000000 +0000 +++ cgal-5.5/include/CGAL/barycenter.h 2022-07-13 19:06:23.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Principal_component_analysis_LGPL/include/CGAL/barycenter.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Principal_component_analysis_LGPL/include/CGAL/barycenter.h $ // $Id: barycenter.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Barycentric_coordinates_2/barycentric_enum_2.h cgal-5.5/include/CGAL/Barycentric_coordinates_2/barycentric_enum_2.h --- cgal-5.4.1/include/CGAL/Barycentric_coordinates_2/barycentric_enum_2.h 2022-06-03 19:03:49.000000000 +0000 +++ cgal-5.5/include/CGAL/Barycentric_coordinates_2/barycentric_enum_2.h 2022-07-13 19:04:35.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Barycentric_coordinates_2/include/CGAL/Barycentric_coordinates_2/barycentric_enum_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Barycentric_coordinates_2/include/CGAL/Barycentric_coordinates_2/barycentric_enum_2.h $ // $Id: barycentric_enum_2.h 6c7150e 2021-09-24T11:10:20+02:00 Dmitry Anisimov // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Barycentric_coordinates_2/boundary_coordinates_2.h cgal-5.5/include/CGAL/Barycentric_coordinates_2/boundary_coordinates_2.h --- cgal-5.4.1/include/CGAL/Barycentric_coordinates_2/boundary_coordinates_2.h 2022-06-03 19:03:49.000000000 +0000 +++ cgal-5.5/include/CGAL/Barycentric_coordinates_2/boundary_coordinates_2.h 2022-07-13 19:04:35.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Barycentric_coordinates_2/include/CGAL/Barycentric_coordinates_2/boundary_coordinates_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Barycentric_coordinates_2/include/CGAL/Barycentric_coordinates_2/boundary_coordinates_2.h $ // $Id: boundary_coordinates_2.h 9c56d70 2021-05-20T14:05:21+02:00 Dmitry Anisimov // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Barycentric_coordinates_2/Delaunay_domain_2.h cgal-5.5/include/CGAL/Barycentric_coordinates_2/Delaunay_domain_2.h --- cgal-5.4.1/include/CGAL/Barycentric_coordinates_2/Delaunay_domain_2.h 2022-06-03 19:03:49.000000000 +0000 +++ cgal-5.5/include/CGAL/Barycentric_coordinates_2/Delaunay_domain_2.h 2022-07-13 19:04:35.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Barycentric_coordinates_2/include/CGAL/Barycentric_coordinates_2/Delaunay_domain_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Barycentric_coordinates_2/include/CGAL/Barycentric_coordinates_2/Delaunay_domain_2.h $ // $Id: Delaunay_domain_2.h d03c669 2021-08-13T11:33:47+02:00 Dmitry Anisimov // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Barycentric_coordinates_2/Discrete_harmonic_2.h cgal-5.5/include/CGAL/Barycentric_coordinates_2/Discrete_harmonic_2.h --- cgal-5.4.1/include/CGAL/Barycentric_coordinates_2/Discrete_harmonic_2.h 2022-06-03 19:03:49.000000000 +0000 +++ cgal-5.5/include/CGAL/Barycentric_coordinates_2/Discrete_harmonic_2.h 2022-07-13 19:04:35.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Barycentric_coordinates_2/include/CGAL/Barycentric_coordinates_2/Discrete_harmonic_2.h $ -// $Id: Discrete_harmonic_2.h 92434bf 2021-09-21T17:10:58+02:00 Dmitry Anisimov +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Barycentric_coordinates_2/include/CGAL/Barycentric_coordinates_2/Discrete_harmonic_2.h $ +// $Id: Discrete_harmonic_2.h be147c5 2022-04-28T07:58:57+01:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -217,6 +217,7 @@ CGAL_precondition( A[n-2] != FT(0) && A[n-1] != FT(0) ); *output = (r[0]*A[n-2] - r[n-1]*B[n-1] + r[n-2]*A[n-1]) / (A[n-2] * A[n-1]); + ++output; // Return weights. return boost::optional(output); @@ -277,6 +278,7 @@ ++output; } *output = weight[n-1] * inverted_dh_denominator; + ++output; // Return coordinates. return boost::optional(output); @@ -333,6 +335,7 @@ ++output; } *output = weight[n-1] * inverted_dh_denominator; + ++output; // Return coordinates. return boost::optional(output); diff -Nru cgal-5.4.1/include/CGAL/Barycentric_coordinates_2/Discrete_harmonic_coordinates_2.h cgal-5.5/include/CGAL/Barycentric_coordinates_2/Discrete_harmonic_coordinates_2.h --- cgal-5.4.1/include/CGAL/Barycentric_coordinates_2/Discrete_harmonic_coordinates_2.h 2022-06-03 19:03:49.000000000 +0000 +++ cgal-5.5/include/CGAL/Barycentric_coordinates_2/Discrete_harmonic_coordinates_2.h 2022-07-13 19:04:35.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Barycentric_coordinates_2/include/CGAL/Barycentric_coordinates_2/Discrete_harmonic_coordinates_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Barycentric_coordinates_2/include/CGAL/Barycentric_coordinates_2/Discrete_harmonic_coordinates_2.h $ // $Id: Discrete_harmonic_coordinates_2.h 9832893 2021-06-28T16:19:29+02:00 Dmitry Anisimov // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Barycentric_coordinates_2/Generalized_barycentric_coordinates_2.h cgal-5.5/include/CGAL/Barycentric_coordinates_2/Generalized_barycentric_coordinates_2.h --- cgal-5.4.1/include/CGAL/Barycentric_coordinates_2/Generalized_barycentric_coordinates_2.h 2022-06-03 19:03:49.000000000 +0000 +++ cgal-5.5/include/CGAL/Barycentric_coordinates_2/Generalized_barycentric_coordinates_2.h 2022-07-13 19:04:35.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Barycentric_coordinates_2/include/CGAL/Barycentric_coordinates_2/Generalized_barycentric_coordinates_2.h $ -// $Id: Generalized_barycentric_coordinates_2.h 92434bf 2021-09-21T17:10:58+02:00 Dmitry Anisimov +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Barycentric_coordinates_2/include/CGAL/Barycentric_coordinates_2/Generalized_barycentric_coordinates_2.h $ +// $Id: Generalized_barycentric_coordinates_2.h be147c5 2022-04-28T07:58:57+01:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -489,6 +489,7 @@ ++output; } *output = coordinate[0]; + ++output; // Return computed coordinates. if(success) return boost::optional(output); diff -Nru cgal-5.4.1/include/CGAL/Barycentric_coordinates_2/Harmonic_coordinates_2.h cgal-5.5/include/CGAL/Barycentric_coordinates_2/Harmonic_coordinates_2.h --- cgal-5.4.1/include/CGAL/Barycentric_coordinates_2/Harmonic_coordinates_2.h 2022-06-03 19:03:49.000000000 +0000 +++ cgal-5.5/include/CGAL/Barycentric_coordinates_2/Harmonic_coordinates_2.h 2022-07-13 19:04:35.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Barycentric_coordinates_2/include/CGAL/Barycentric_coordinates_2/Harmonic_coordinates_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Barycentric_coordinates_2/include/CGAL/Barycentric_coordinates_2/Harmonic_coordinates_2.h $ // $Id: Harmonic_coordinates_2.h d03c669 2021-08-13T11:33:47+02:00 Dmitry Anisimov // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Barycentric_coordinates_2/internal/utils_2.h cgal-5.5/include/CGAL/Barycentric_coordinates_2/internal/utils_2.h --- cgal-5.4.1/include/CGAL/Barycentric_coordinates_2/internal/utils_2.h 2022-06-03 19:03:49.000000000 +0000 +++ cgal-5.5/include/CGAL/Barycentric_coordinates_2/internal/utils_2.h 2022-07-13 19:04:35.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Barycentric_coordinates_2/include/CGAL/Barycentric_coordinates_2/internal/utils_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Barycentric_coordinates_2/include/CGAL/Barycentric_coordinates_2/internal/utils_2.h $ // $Id: utils_2.h d03c669 2021-08-13T11:33:47+02:00 Dmitry Anisimov // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Barycentric_coordinates_2/Mean_value_2.h cgal-5.5/include/CGAL/Barycentric_coordinates_2/Mean_value_2.h --- cgal-5.4.1/include/CGAL/Barycentric_coordinates_2/Mean_value_2.h 2022-06-03 19:03:49.000000000 +0000 +++ cgal-5.5/include/CGAL/Barycentric_coordinates_2/Mean_value_2.h 2022-07-13 19:04:35.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Barycentric_coordinates_2/include/CGAL/Barycentric_coordinates_2/Mean_value_2.h $ -// $Id: Mean_value_2.h 92434bf 2021-09-21T17:10:58+02:00 Dmitry Anisimov +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Barycentric_coordinates_2/include/CGAL/Barycentric_coordinates_2/Mean_value_2.h $ +// $Id: Mean_value_2.h be147c5 2022-04-28T07:58:57+01:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -290,6 +290,7 @@ CGAL_precondition( r[n-1] != FT(0) ); *output = (t[n-2] + t[n-1]) / r[n-1]; + ++output; // Return weights. return boost::optional(output); @@ -364,6 +365,7 @@ ++output; } *output = weight[n-1] * inverted_mv_denominator; + ++output; // Return coordinates. return boost::optional(output); @@ -432,6 +434,7 @@ ++output; } *output = weight[n-1] * inverted_mv_denominator; + ++output; // Return coordinates. return boost::optional(output); diff -Nru cgal-5.4.1/include/CGAL/Barycentric_coordinates_2/Mean_value_coordinates_2.h cgal-5.5/include/CGAL/Barycentric_coordinates_2/Mean_value_coordinates_2.h --- cgal-5.4.1/include/CGAL/Barycentric_coordinates_2/Mean_value_coordinates_2.h 2022-06-03 19:03:49.000000000 +0000 +++ cgal-5.5/include/CGAL/Barycentric_coordinates_2/Mean_value_coordinates_2.h 2022-07-13 19:04:35.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Barycentric_coordinates_2/include/CGAL/Barycentric_coordinates_2/Mean_value_coordinates_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Barycentric_coordinates_2/include/CGAL/Barycentric_coordinates_2/Mean_value_coordinates_2.h $ // $Id: Mean_value_coordinates_2.h 9832893 2021-06-28T16:19:29+02:00 Dmitry Anisimov // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Barycentric_coordinates_2/segment_coordinates_2.h cgal-5.5/include/CGAL/Barycentric_coordinates_2/segment_coordinates_2.h --- cgal-5.4.1/include/CGAL/Barycentric_coordinates_2/segment_coordinates_2.h 2022-06-03 19:03:49.000000000 +0000 +++ cgal-5.5/include/CGAL/Barycentric_coordinates_2/segment_coordinates_2.h 2022-07-13 19:04:35.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Barycentric_coordinates_2/include/CGAL/Barycentric_coordinates_2/segment_coordinates_2.h $ -// $Id: segment_coordinates_2.h 92434bf 2021-09-21T17:10:58+02:00 Dmitry Anisimov +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Barycentric_coordinates_2/include/CGAL/Barycentric_coordinates_2/segment_coordinates_2.h $ +// $Id: segment_coordinates_2.h 0e84898 2022-05-13T15:50:21+02:00 Sebastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -186,9 +186,6 @@ */ template class - #ifndef DOXYGEN_RUNNING - CGAL_DEPRECATED_MSG("This part of the package is deprecated since the version 5.4 of CGAL!") - #endif Segment_coordinates_2 { @@ -219,6 +216,10 @@ /// Creates the class `Segment_coordinates_2` that implements segment coordinates with respect to an arbitrary non-degenerate segment along an arbitrary line in the plane. /// The segment is given by its two vertices. /// \pre Segment is not degenerate. + + #ifndef DOXYGEN_RUNNING + CGAL_DEPRECATED_MSG("This part of the package is deprecated since the version 5.4 of CGAL!") + #endif Segment_coordinates_2( const Point_2 &first_vertex, const Point_2 &second_vertex, @@ -337,6 +338,7 @@ *output = b_first; ++output; *output = FT(1) - b_first; + ++output; // Output both coordinates. return boost::optional(output); @@ -344,7 +346,6 @@ }; /*! - \anchor seg_coord_global * \relates Segment_coordinates_2 * This is a global function that takes both vertices of a segment and computes segment coordinates at a given query point with respect to these vertices. @@ -367,15 +368,12 @@ typename Traits::Compute_scalar_product_2 scalar_product_2 = barycentric_traits.compute_scalar_product_2_object(); typename Traits::Compute_squared_distance_2 squared_distance_2 = barycentric_traits.compute_squared_distance_2_object(); - // Number type. - typedef typename Traits::FT FT; - // Project point on the segment and compute the first coordinate. - const FT opposite_scalar_product = scalar_product_2(query_point - second_vertex, first_vertex - second_vertex); - const FT b_first = opposite_scalar_product / squared_distance_2(first_vertex, second_vertex); + const typename Traits::FT opposite_scalar_product = scalar_product_2(query_point - second_vertex, first_vertex - second_vertex); + const typename Traits::FT b_first = opposite_scalar_product / squared_distance_2(first_vertex, second_vertex); // Return the std::array type of coordinates. - return CGAL::make_array(b_first, FT(1) - b_first); + return CGAL::make_array(b_first, typename Traits::FT(1) - b_first); } #endif // CGAL_NO_DEPRECATED_CODE diff -Nru cgal-5.4.1/include/CGAL/Barycentric_coordinates_2/triangle_coordinates_2.h cgal-5.5/include/CGAL/Barycentric_coordinates_2/triangle_coordinates_2.h --- cgal-5.4.1/include/CGAL/Barycentric_coordinates_2/triangle_coordinates_2.h 2022-06-03 19:03:49.000000000 +0000 +++ cgal-5.5/include/CGAL/Barycentric_coordinates_2/triangle_coordinates_2.h 2022-07-13 19:04:35.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Barycentric_coordinates_2/include/CGAL/Barycentric_coordinates_2/triangle_coordinates_2.h $ -// $Id: triangle_coordinates_2.h 92434bf 2021-09-21T17:10:58+02:00 Dmitry Anisimov +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Barycentric_coordinates_2/include/CGAL/Barycentric_coordinates_2/triangle_coordinates_2.h $ +// $Id: triangle_coordinates_2.h 0e84898 2022-05-13T15:50:21+02:00 Sebastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -197,9 +197,6 @@ */ template class - #ifndef DOXYGEN_RUNNING - CGAL_DEPRECATED_MSG("This part of the package is deprecated since the version 5.4 of CGAL!") - #endif Triangle_coordinates_2 { @@ -230,6 +227,10 @@ /// Creates the class `Triangle_coordinates_2` that implements triangle coordinates with respect to an arbitrary non-degenerate triangle in the plane. /// The triangle is given by its three vertices. /// \pre Triangle is not degenerate. + + #ifndef DOXYGEN_RUNNING + CGAL_DEPRECATED_MSG("This part of the package is deprecated since the version 5.4 of CGAL!") + #endif Triangle_coordinates_2( const Point_2 &first_vertex, const Point_2 &second_vertex, @@ -368,6 +369,7 @@ // Compute the last = third coordinate, using the partition of unity property. *output = FT(1) - b_first - b_second; + ++output; // Output all coordinates. return boost::optional(output); @@ -397,22 +399,19 @@ // Some predefined functions. typename Traits::Compute_area_2 area_2 = barycentric_traits.compute_area_2_object(); - // Number type. - typedef typename Traits::FT FT; - // Compute some related sub-areas. - const FT area_second = area_2(second_vertex, third_vertex, query_point); - const FT area_third = area_2(third_vertex , first_vertex, query_point); + const typename Traits::FT area_second = area_2(second_vertex, third_vertex, query_point); + const typename Traits::FT area_third = area_2(third_vertex , first_vertex, query_point); // Compute the total inverted area of the triangle. - const FT inverted_total_area = FT(1) / area_2(first_vertex, second_vertex, third_vertex); + const typename Traits::FT inverted_total_area = typename Traits::FT(1) / area_2(first_vertex, second_vertex, third_vertex); // Compute the first and second coordinate functions. - const FT b_first = area_second * inverted_total_area; - const FT b_second = area_third * inverted_total_area; + const typename Traits::FT b_first = area_second * inverted_total_area; + const typename Traits::FT b_second = area_third * inverted_total_area; // Return the std::array type of coordinates. - return CGAL::make_array(b_first, b_second, FT(1) - b_first - b_second); + return CGAL::make_array(b_first, b_second, typename Traits::FT(1) - b_first - b_second); } #endif // CGAL_NO_DEPRECATED_CODE diff -Nru cgal-5.4.1/include/CGAL/Barycentric_coordinates_2/Wachspress_2.h cgal-5.5/include/CGAL/Barycentric_coordinates_2/Wachspress_2.h --- cgal-5.4.1/include/CGAL/Barycentric_coordinates_2/Wachspress_2.h 2022-06-03 19:03:49.000000000 +0000 +++ cgal-5.5/include/CGAL/Barycentric_coordinates_2/Wachspress_2.h 2022-07-13 19:04:35.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Barycentric_coordinates_2/include/CGAL/Barycentric_coordinates_2/Wachspress_2.h $ -// $Id: Wachspress_2.h 92434bf 2021-09-21T17:10:58+02:00 Dmitry Anisimov +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Barycentric_coordinates_2/include/CGAL/Barycentric_coordinates_2/Wachspress_2.h $ +// $Id: Wachspress_2.h be147c5 2022-04-28T07:58:57+01:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -211,6 +211,7 @@ CGAL_precondition( A[n-2] != FT(0) && A[n-1] != FT(0) ); *output = C[n-1] / (A[n-2] * A[n-1]); + ++output; // Return weights. return boost::optional(output); @@ -261,6 +262,7 @@ ++output; } *output = weight[n-1] * inverted_wp_denominator; + ++output; // Return coordinates. return boost::optional(output); @@ -314,6 +316,7 @@ ++output; } *output = weight[n-1] * inverted_wp_denominator; + ++output; // Return coordinates. return boost::optional(output); diff -Nru cgal-5.4.1/include/CGAL/Barycentric_coordinates_2/Wachspress_coordinates_2.h cgal-5.5/include/CGAL/Barycentric_coordinates_2/Wachspress_coordinates_2.h --- cgal-5.4.1/include/CGAL/Barycentric_coordinates_2/Wachspress_coordinates_2.h 2022-06-03 19:03:49.000000000 +0000 +++ cgal-5.5/include/CGAL/Barycentric_coordinates_2/Wachspress_coordinates_2.h 2022-07-13 19:04:35.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Barycentric_coordinates_2/include/CGAL/Barycentric_coordinates_2/Wachspress_coordinates_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Barycentric_coordinates_2/include/CGAL/Barycentric_coordinates_2/Wachspress_coordinates_2.h $ // $Id: Wachspress_coordinates_2.h 9832893 2021-06-28T16:19:29+02:00 Dmitry Anisimov // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Barycentric_coordinates_2.h cgal-5.5/include/CGAL/Barycentric_coordinates_2.h --- cgal-5.4.1/include/CGAL/Barycentric_coordinates_2.h 2022-06-03 19:03:49.000000000 +0000 +++ cgal-5.5/include/CGAL/Barycentric_coordinates_2.h 2022-07-13 19:04:35.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Barycentric_coordinates_2/include/CGAL/Barycentric_coordinates_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Barycentric_coordinates_2/include/CGAL/Barycentric_coordinates_2.h $ // $Id: Barycentric_coordinates_2.h 698a4d3 2021-06-30T12:01:04+02:00 Dmitry Anisimov // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/basic_classes.h cgal-5.5/include/CGAL/basic_classes.h --- cgal-5.4.1/include/CGAL/basic_classes.h 2022-06-03 19:04:33.000000000 +0000 +++ cgal-5.5/include/CGAL/basic_classes.h 2022-07-13 19:05:24.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/basic_classes.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/basic_classes.h $ // $Id: basic_classes.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/basic_constructions_2.h cgal-5.5/include/CGAL/basic_constructions_2.h --- cgal-5.4.1/include/CGAL/basic_constructions_2.h 2022-06-03 19:04:33.000000000 +0000 +++ cgal-5.5/include/CGAL/basic_constructions_2.h 2022-07-13 19:05:24.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/basic_constructions_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/basic_constructions_2.h $ // $Id: basic_constructions_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/basic_constructions_3.h cgal-5.5/include/CGAL/basic_constructions_3.h --- cgal-5.4.1/include/CGAL/basic_constructions_3.h 2022-06-03 19:04:33.000000000 +0000 +++ cgal-5.5/include/CGAL/basic_constructions_3.h 2022-07-13 19:05:24.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/basic_constructions_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/basic_constructions_3.h $ // $Id: basic_constructions_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/basic.h cgal-5.5/include/CGAL/basic.h --- cgal-5.4.1/include/CGAL/basic.h 2022-06-03 19:04:33.000000000 +0000 +++ cgal-5.5/include/CGAL/basic.h 2022-07-13 19:05:24.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/basic.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/basic.h $ // $Id: basic.h da0635e 2020-07-20T17:03:28+02:00 Dmitry Anisimov // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Basic_shaders.h cgal-5.5/include/CGAL/Basic_shaders.h --- cgal-5.4.1/include/CGAL/Basic_shaders.h 2022-06-03 19:04:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Basic_shaders.h 2022-07-13 19:05:03.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Basic_shaders.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Basic_shaders.h $ // $Id: Basic_shaders.h 66f92a3 2021-08-30T11:11:57+02:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Bbox_2.h cgal-5.5/include/CGAL/Bbox_2.h --- cgal-5.4.1/include/CGAL/Bbox_2.h 2022-06-03 19:04:31.000000000 +0000 +++ cgal-5.5/include/CGAL/Bbox_2.h 2022-07-13 19:05:22.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Bbox_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Bbox_2.h $ // $Id: Bbox_2.h 529add2 2021-07-07T14:37:41+02:00 Laurent Rineau // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Bbox_3.h cgal-5.5/include/CGAL/Bbox_3.h --- cgal-5.4.1/include/CGAL/Bbox_3.h 2022-06-03 19:04:31.000000000 +0000 +++ cgal-5.5/include/CGAL/Bbox_3.h 2022-07-13 19:05:22.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Bbox_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Bbox_3.h $ // $Id: Bbox_3.h 529add2 2021-07-07T14:37:41+02:00 Laurent Rineau // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Bigfloat_interval_traits.h cgal-5.5/include/CGAL/Bigfloat_interval_traits.h --- cgal-5.4.1/include/CGAL/Bigfloat_interval_traits.h 2022-06-03 19:04:28.000000000 +0000 +++ cgal-5.5/include/CGAL/Bigfloat_interval_traits.h 2022-07-13 19:05:19.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Interval_support/include/CGAL/Bigfloat_interval_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Interval_support/include/CGAL/Bigfloat_interval_traits.h $ // $Id: Bigfloat_interval_traits.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/bilateral_smooth_point_set.h cgal-5.5/include/CGAL/bilateral_smooth_point_set.h --- cgal-5.4.1/include/CGAL/bilateral_smooth_point_set.h 2022-06-03 19:05:12.000000000 +0000 +++ cgal-5.5/include/CGAL/bilateral_smooth_point_set.h 2022-07-13 19:06:06.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Point_set_processing_3/include/CGAL/bilateral_smooth_point_set.h $ -// $Id: bilateral_smooth_point_set.h 2a54687 2021-06-04T13:52:14+02:00 albert-github +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Point_set_processing_3/include/CGAL/bilateral_smooth_point_set.h $ +// $Id: bilateral_smooth_point_set.h 75b03e6 2022-01-10T15:33:04+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Shihao Wu, Clement Jamin, Pierre Alliez @@ -25,7 +25,7 @@ #include #include -#include +#include #include #include @@ -258,12 +258,12 @@ */ template + typename NamedParameters = parameters::Default_named_parameters> double bilateral_smooth_point_set( PointRange& points, unsigned int k, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { using parameters::choose_parameter; using parameters::get_parameter; @@ -271,15 +271,14 @@ // basic geometric types typedef typename PointRange::iterator iterator; typedef typename iterator::value_type value_type; - typedef typename CGAL::GetPointMap::type PointMap; - typedef typename Point_set_processing_3::GetNormalMap::type NormalMap; - typedef typename Point_set_processing_3::GetK::Kernel Kernel; + typedef Point_set_processing_3_np_helper NP_helper; + typedef typename NP_helper::Point_map PointMap; + typedef typename NP_helper::Normal_map NormalMap; + typedef typename NP_helper::Geom_traits Kernel; typedef typename Kernel::Point_3 Point_3; typedef typename Kernel::Vector_3 Vector_3; - CGAL_static_assertion_msg(!(boost::is_same::NoMap>::value), - "Error: no normal map"); + CGAL_static_assertion_msg(NP_helper::has_normal_map(), "Error: no normal map"); typedef typename Kernel::FT FT; @@ -293,8 +292,8 @@ // types for K nearest neighbors search structure typedef Point_set_processing_3::internal::Neighbor_query Neighbor_query; - PointMap point_map = choose_parameter(get_parameter(np, internal_np::point_map)); - NormalMap normal_map = choose_parameter(get_parameter(np, internal_np::normal_map)); + PointMap point_map = NP_helper::get_point_map(points, np); + NormalMap normal_map = NP_helper::get_normal_map(points, np); FT neighbor_radius = choose_parameter(get_parameter(np, internal_np::neighbor_radius), FT(0)); std::size_t nb_points = points.size(); @@ -439,22 +438,6 @@ return sum_move_error / nb_points; } -/// \cond SKIP_IN_MANUAL -// variant with default NP -template -double -bilateral_smooth_point_set( - PointRange& points, - unsigned int k) ///< size of the neighborhood for the implicit surface patch fitting. - ///< The larger the value is, the smoother the result will be. -{ - return bilateral_smooth_point_set - (points, k, CGAL::Point_set_processing_3::parameters::all_default(points)); -} -/// \endcond - - } //namespace CGAL #include diff -Nru cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Bso_internal_functions.h cgal-5.5/include/CGAL/Boolean_set_operations_2/Bso_internal_functions.h --- cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Bso_internal_functions.h 2022-06-03 19:03:51.000000000 +0000 +++ cgal-5.5/include/CGAL/Boolean_set_operations_2/Bso_internal_functions.h 2022-07-13 19:04:37.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Bso_internal_functions.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Bso_internal_functions.h $ // $Id: Bso_internal_functions.h d968a9e 2021-09-28T16:39:10+01:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Ccb_curve_iterator.h cgal-5.5/include/CGAL/Boolean_set_operations_2/Ccb_curve_iterator.h --- cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Ccb_curve_iterator.h 2022-06-03 19:03:51.000000000 +0000 +++ cgal-5.5/include/CGAL/Boolean_set_operations_2/Ccb_curve_iterator.h 2022-07-13 19:04:37.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Ccb_curve_iterator.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Ccb_curve_iterator.h $ // $Id: Ccb_curve_iterator.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Boolean_set_operations_2/complement.h cgal-5.5/include/CGAL/Boolean_set_operations_2/complement.h --- cgal-5.4.1/include/CGAL/Boolean_set_operations_2/complement.h 2022-06-03 19:03:52.000000000 +0000 +++ cgal-5.5/include/CGAL/Boolean_set_operations_2/complement.h 2022-07-13 19:04:38.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/complement.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/complement.h $ // $Id: complement.h 4151fcb 2021-09-23T11:59:29+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Curve_with_halfedge.h cgal-5.5/include/CGAL/Boolean_set_operations_2/Curve_with_halfedge.h --- cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Curve_with_halfedge.h 2022-06-03 19:03:51.000000000 +0000 +++ cgal-5.5/include/CGAL/Boolean_set_operations_2/Curve_with_halfedge.h 2022-07-13 19:04:37.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Curve_with_halfedge.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Curve_with_halfedge.h $ // $Id: Curve_with_halfedge.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Boolean_set_operations_2/difference.h cgal-5.5/include/CGAL/Boolean_set_operations_2/difference.h --- cgal-5.4.1/include/CGAL/Boolean_set_operations_2/difference.h 2022-06-03 19:03:52.000000000 +0000 +++ cgal-5.5/include/CGAL/Boolean_set_operations_2/difference.h 2022-07-13 19:04:38.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/difference.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/difference.h $ // $Id: difference.h 4151fcb 2021-09-23T11:59:29+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Boolean_set_operations_2/do_intersect.h cgal-5.5/include/CGAL/Boolean_set_operations_2/do_intersect.h --- cgal-5.4.1/include/CGAL/Boolean_set_operations_2/do_intersect.h 2022-06-03 19:03:52.000000000 +0000 +++ cgal-5.5/include/CGAL/Boolean_set_operations_2/do_intersect.h 2022-07-13 19:04:38.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/do_intersect.h $ -// $Id: do_intersect.h 420f37a 2021-09-23T16:28:23+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/do_intersect.h $ +// $Id: do_intersect.h 7ba4fbc 2022-06-07T20:57:57+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -237,7 +237,8 @@ // With Traits template inline bool do_intersect(InputIterator begin, InputIterator end, Traits& traits, - unsigned int k=5) + unsigned int k=5, + std::enable_if_t::value>* = 0) { return r_do_intersect(begin, end, traits, k); } // Without Traits @@ -245,6 +246,7 @@ template inline bool do_intersect(InputIterator begin, InputIterator end, Tag_true = Tag_true(), unsigned int k=5, + std::enable_if_t::value>* = 0, Enable_if_Polygon_2_iterator* = 0) { return r_do_intersect(begin, end, k); } @@ -252,6 +254,7 @@ template inline bool do_intersect(InputIterator begin, InputIterator end, Tag_false, unsigned int k=5, + std::enable_if_t::value>* = 0, Enable_if_Polygon_2_iterator* = 0) { typename Iterator_to_gps_traits::Traits traits; @@ -262,6 +265,7 @@ template inline bool do_intersect(InputIterator begin, InputIterator end, unsigned int k=5, + std::enable_if_t::value>* = 0, Disable_if_Polygon_2_iterator* = 0) { typename Iterator_to_gps_traits::Traits traits; diff -Nru cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Gps_agg_meta_traits.h cgal-5.5/include/CGAL/Boolean_set_operations_2/Gps_agg_meta_traits.h --- cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Gps_agg_meta_traits.h 2022-06-03 19:03:51.000000000 +0000 +++ cgal-5.5/include/CGAL/Boolean_set_operations_2/Gps_agg_meta_traits.h 2022-07-13 19:04:37.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Gps_agg_meta_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Gps_agg_meta_traits.h $ // $Id: Gps_agg_meta_traits.h 7436c14 2020-04-06T01:23:45+03:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Gps_agg_op.h cgal-5.5/include/CGAL/Boolean_set_operations_2/Gps_agg_op.h --- cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Gps_agg_op.h 2022-06-03 19:03:51.000000000 +0000 +++ cgal-5.5/include/CGAL/Boolean_set_operations_2/Gps_agg_op.h 2022-07-13 19:04:37.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Gps_agg_op.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Gps_agg_op.h $ // $Id: Gps_agg_op.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Gps_agg_op_surface_sweep_2.h cgal-5.5/include/CGAL/Boolean_set_operations_2/Gps_agg_op_surface_sweep_2.h --- cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Gps_agg_op_surface_sweep_2.h 2022-06-03 19:03:51.000000000 +0000 +++ cgal-5.5/include/CGAL/Boolean_set_operations_2/Gps_agg_op_surface_sweep_2.h 2022-07-13 19:04:37.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Gps_agg_op_surface_sweep_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Gps_agg_op_surface_sweep_2.h $ // $Id: Gps_agg_op_surface_sweep_2.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Gps_agg_op_visitor.h cgal-5.5/include/CGAL/Boolean_set_operations_2/Gps_agg_op_visitor.h --- cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Gps_agg_op_visitor.h 2022-06-03 19:03:51.000000000 +0000 +++ cgal-5.5/include/CGAL/Boolean_set_operations_2/Gps_agg_op_visitor.h 2022-07-13 19:04:37.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Gps_agg_op_visitor.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Gps_agg_op_visitor.h $ // $Id: Gps_agg_op_visitor.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Gps_base_functor.h cgal-5.5/include/CGAL/Boolean_set_operations_2/Gps_base_functor.h --- cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Gps_base_functor.h 2022-06-03 19:03:51.000000000 +0000 +++ cgal-5.5/include/CGAL/Boolean_set_operations_2/Gps_base_functor.h 2022-07-13 19:04:37.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Gps_base_functor.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Gps_base_functor.h $ // $Id: Gps_base_functor.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Gps_bfs_base_visitor.h cgal-5.5/include/CGAL/Boolean_set_operations_2/Gps_bfs_base_visitor.h --- cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Gps_bfs_base_visitor.h 2022-06-03 19:03:51.000000000 +0000 +++ cgal-5.5/include/CGAL/Boolean_set_operations_2/Gps_bfs_base_visitor.h 2022-07-13 19:04:37.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Gps_bfs_base_visitor.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Gps_bfs_base_visitor.h $ // $Id: Gps_bfs_base_visitor.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Gps_bfs_intersection_visitor.h cgal-5.5/include/CGAL/Boolean_set_operations_2/Gps_bfs_intersection_visitor.h --- cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Gps_bfs_intersection_visitor.h 2022-06-03 19:03:51.000000000 +0000 +++ cgal-5.5/include/CGAL/Boolean_set_operations_2/Gps_bfs_intersection_visitor.h 2022-07-13 19:04:37.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Gps_bfs_intersection_visitor.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Gps_bfs_intersection_visitor.h $ // $Id: Gps_bfs_intersection_visitor.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Gps_bfs_join_visitor.h cgal-5.5/include/CGAL/Boolean_set_operations_2/Gps_bfs_join_visitor.h --- cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Gps_bfs_join_visitor.h 2022-06-03 19:03:51.000000000 +0000 +++ cgal-5.5/include/CGAL/Boolean_set_operations_2/Gps_bfs_join_visitor.h 2022-07-13 19:04:37.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Gps_bfs_join_visitor.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Gps_bfs_join_visitor.h $ // $Id: Gps_bfs_join_visitor.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Gps_bfs_scanner.h cgal-5.5/include/CGAL/Boolean_set_operations_2/Gps_bfs_scanner.h --- cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Gps_bfs_scanner.h 2022-06-03 19:03:51.000000000 +0000 +++ cgal-5.5/include/CGAL/Boolean_set_operations_2/Gps_bfs_scanner.h 2022-07-13 19:04:37.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Gps_bfs_scanner.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Gps_bfs_scanner.h $ // $Id: Gps_bfs_scanner.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Gps_bfs_xor_visitor.h cgal-5.5/include/CGAL/Boolean_set_operations_2/Gps_bfs_xor_visitor.h --- cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Gps_bfs_xor_visitor.h 2022-06-03 19:03:51.000000000 +0000 +++ cgal-5.5/include/CGAL/Boolean_set_operations_2/Gps_bfs_xor_visitor.h 2022-07-13 19:04:37.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Gps_bfs_xor_visitor.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Gps_bfs_xor_visitor.h $ // $Id: Gps_bfs_xor_visitor.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Gps_default_dcel.h cgal-5.5/include/CGAL/Boolean_set_operations_2/Gps_default_dcel.h --- cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Gps_default_dcel.h 2022-06-03 19:03:51.000000000 +0000 +++ cgal-5.5/include/CGAL/Boolean_set_operations_2/Gps_default_dcel.h 2022-07-13 19:04:37.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Gps_default_dcel.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Gps_default_dcel.h $ // $Id: Gps_default_dcel.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Gps_default_traits.h cgal-5.5/include/CGAL/Boolean_set_operations_2/Gps_default_traits.h --- cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Gps_default_traits.h 2022-06-03 19:03:51.000000000 +0000 +++ cgal-5.5/include/CGAL/Boolean_set_operations_2/Gps_default_traits.h 2022-07-13 19:04:37.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Gps_default_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Gps_default_traits.h $ // $Id: Gps_default_traits.h fcd1289 2020-11-30T10:03:43+02:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Gps_difference_functor.h cgal-5.5/include/CGAL/Boolean_set_operations_2/Gps_difference_functor.h --- cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Gps_difference_functor.h 2022-06-03 19:03:51.000000000 +0000 +++ cgal-5.5/include/CGAL/Boolean_set_operations_2/Gps_difference_functor.h 2022-07-13 19:04:37.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Gps_difference_functor.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Gps_difference_functor.h $ // $Id: Gps_difference_functor.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Gps_do_intersect_functor.h cgal-5.5/include/CGAL/Boolean_set_operations_2/Gps_do_intersect_functor.h --- cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Gps_do_intersect_functor.h 2022-06-03 19:03:51.000000000 +0000 +++ cgal-5.5/include/CGAL/Boolean_set_operations_2/Gps_do_intersect_functor.h 2022-07-13 19:04:37.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Gps_do_intersect_functor.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Gps_do_intersect_functor.h $ // $Id: Gps_do_intersect_functor.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Gps_insertion_meta_traits.h cgal-5.5/include/CGAL/Boolean_set_operations_2/Gps_insertion_meta_traits.h --- cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Gps_insertion_meta_traits.h 2022-06-03 19:03:51.000000000 +0000 +++ cgal-5.5/include/CGAL/Boolean_set_operations_2/Gps_insertion_meta_traits.h 2022-07-13 19:04:37.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Gps_insertion_meta_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Gps_insertion_meta_traits.h $ // $Id: Gps_insertion_meta_traits.h 7436c14 2020-04-06T01:23:45+03:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Gps_intersection_functor.h cgal-5.5/include/CGAL/Boolean_set_operations_2/Gps_intersection_functor.h --- cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Gps_intersection_functor.h 2022-06-03 19:03:51.000000000 +0000 +++ cgal-5.5/include/CGAL/Boolean_set_operations_2/Gps_intersection_functor.h 2022-07-13 19:04:37.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Gps_intersection_functor.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Gps_intersection_functor.h $ // $Id: Gps_intersection_functor.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Gps_join_functor.h cgal-5.5/include/CGAL/Boolean_set_operations_2/Gps_join_functor.h --- cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Gps_join_functor.h 2022-06-03 19:03:51.000000000 +0000 +++ cgal-5.5/include/CGAL/Boolean_set_operations_2/Gps_join_functor.h 2022-07-13 19:04:37.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Gps_join_functor.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Gps_join_functor.h $ // $Id: Gps_join_functor.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Gps_merge.h cgal-5.5/include/CGAL/Boolean_set_operations_2/Gps_merge.h --- cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Gps_merge.h 2022-06-03 19:03:51.000000000 +0000 +++ cgal-5.5/include/CGAL/Boolean_set_operations_2/Gps_merge.h 2022-07-13 19:04:37.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Gps_merge.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Gps_merge.h $ // $Id: Gps_merge.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Gps_on_surface_base_2.h cgal-5.5/include/CGAL/Boolean_set_operations_2/Gps_on_surface_base_2.h --- cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Gps_on_surface_base_2.h 2022-06-03 19:03:51.000000000 +0000 +++ cgal-5.5/include/CGAL/Boolean_set_operations_2/Gps_on_surface_base_2.h 2022-07-13 19:04:37.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Gps_on_surface_base_2.h $ -// $Id: Gps_on_surface_base_2.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Gps_on_surface_base_2.h $ +// $Id: Gps_on_surface_base_2.h 4dbf509 2021-11-03T16:47:12+02:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Baruch Zukerman @@ -1467,7 +1467,7 @@ bool _is_plane(const Polygon_with_holes_2& pgn) const { //typedef typename Traits_2::Is_unbounded Is_unbounded; - bool unbounded = m_traits->construct_is_unbounded_object()(pgn); + bool unbounded = m_traits->is_unbounded_object()(pgn); std::pair pair = m_traits->construct_holes_object()(pgn); diff -Nru cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Gps_on_surface_base_2_impl.h cgal-5.5/include/CGAL/Boolean_set_operations_2/Gps_on_surface_base_2_impl.h --- cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Gps_on_surface_base_2_impl.h 2022-06-03 19:03:51.000000000 +0000 +++ cgal-5.5/include/CGAL/Boolean_set_operations_2/Gps_on_surface_base_2_impl.h 2022-07-13 19:04:37.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Gps_on_surface_base_2_impl.h $ -// $Id: Gps_on_surface_base_2_impl.h 521c72d 2021-10-04T13:22:00+02:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Gps_on_surface_base_2_impl.h $ +// $Id: Gps_on_surface_base_2_impl.h 4dbf509 2021-11-03T16:47:12+02:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -469,7 +469,7 @@ for( ; pwh_begin != pwh_end; ++pwh_begin) { ValidationPolicy::is_valid(*pwh_begin, *m_traits); - is_unbounded = (is_unbounded || m_traits->construct_is_unbounded_object()(*pwh_begin)); + is_unbounded = (is_unbounded || m_traits->is_unbounded_object()(*pwh_begin)); // is_unbounded = (is_unbounded || pwh_begin->is_unbounded()); _construct_curves(*pwh_begin, std::back_inserter(xcurve_list)); } @@ -517,7 +517,7 @@ for( ; p_begin != p_end; ++p_begin) { // is_unbounded = (is_unbounded || p_begin->is_unbounded()); - is_unbounded = (is_unbounded || m_traits->construct_is_unbounded_object()(*p_begin)); + is_unbounded = (is_unbounded || m_traits->is_unbounded_object()(*p_begin)); _construct_curves(*p_begin, std::back_inserter(xcurve_list)); } @@ -557,7 +557,7 @@ insert_non_intersecting_curves(arr, xcurve_list.begin(), xcurve_list.end()); //if (pgn.is_unbounded()) - if (m_traits->construct_is_unbounded_object()(pgn)) + if (m_traits->is_unbounded_object()(pgn)) { for (Face_iterator fit = arr.faces_begin(); fit != arr.faces_end(); ++fit) @@ -590,7 +590,7 @@ _construct_curves(const Polygon_with_holes_2 & pgn, OutputIterator oi) { //if (!pgn.is_unbounded()) - if (!m_traits->construct_is_unbounded_object()(pgn)) + if (!m_traits->is_unbounded_object()(pgn)) { const Polygon_2& pgn_boundary = m_traits->construct_outer_boundary_object()(pgn); diff -Nru cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Gps_polygon_simplifier.h cgal-5.5/include/CGAL/Boolean_set_operations_2/Gps_polygon_simplifier.h --- cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Gps_polygon_simplifier.h 2022-06-03 19:03:51.000000000 +0000 +++ cgal-5.5/include/CGAL/Boolean_set_operations_2/Gps_polygon_simplifier.h 2022-07-13 19:04:37.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Gps_polygon_simplifier.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Gps_polygon_simplifier.h $ // $Id: Gps_polygon_simplifier.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Gps_polygon_validation.h cgal-5.5/include/CGAL/Boolean_set_operations_2/Gps_polygon_validation.h --- cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Gps_polygon_validation.h 2022-06-03 19:03:51.000000000 +0000 +++ cgal-5.5/include/CGAL/Boolean_set_operations_2/Gps_polygon_validation.h 2022-07-13 19:04:37.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Gps_polygon_validation.h $ -// $Id: Gps_polygon_validation.h e599bd4 2021-07-08T13:50:18+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Gps_polygon_validation.h $ +// $Id: Gps_polygon_validation.h 6fd9388 2021-11-03T18:32:40+02:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -631,7 +631,7 @@ typedef std::pair Cci_pair; typedef typename Traits_2::Construct_curves_2 Construct_curves_2; - typedef typename Traits_2::Construct_general_polygon_with_holes_2 + typedef typename Traits_2::Construct_polygon_with_holes_2 Construct_polygon_with_holes_2; typedef Gps_polygon_validation_visitor Visitor; @@ -698,7 +698,7 @@ * whose performance is better than the join(pgn) */ Polygon_with_holes_2 empty_pwh = construct_pwh_functor(hole); - // traits.Construct_general_polygon_with_holes_2 (hole); + // traits.Construct_polygon_with_holes_2 (hole); // Polygon_with_holes_2 empty_pwh(hole); gps.insert(empty_pwh); num_of_holes++; diff -Nru cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Gps_simplifier_traits.h cgal-5.5/include/CGAL/Boolean_set_operations_2/Gps_simplifier_traits.h --- cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Gps_simplifier_traits.h 2022-06-03 19:03:51.000000000 +0000 +++ cgal-5.5/include/CGAL/Boolean_set_operations_2/Gps_simplifier_traits.h 2022-07-13 19:04:37.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Gps_simplifier_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Gps_simplifier_traits.h $ // $Id: Gps_simplifier_traits.h 6fcbee1 2020-04-21T17:12:21+03:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Gps_sym_diff_functor.h cgal-5.5/include/CGAL/Boolean_set_operations_2/Gps_sym_diff_functor.h --- cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Gps_sym_diff_functor.h 2022-06-03 19:03:51.000000000 +0000 +++ cgal-5.5/include/CGAL/Boolean_set_operations_2/Gps_sym_diff_functor.h 2022-07-13 19:04:37.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Gps_sym_diff_functor.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Gps_sym_diff_functor.h $ // $Id: Gps_sym_diff_functor.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Gps_traits_adaptor.h cgal-5.5/include/CGAL/Boolean_set_operations_2/Gps_traits_adaptor.h --- cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Gps_traits_adaptor.h 2022-06-03 19:03:52.000000000 +0000 +++ cgal-5.5/include/CGAL/Boolean_set_operations_2/Gps_traits_adaptor.h 2022-07-13 19:04:37.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Gps_traits_adaptor.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Gps_traits_adaptor.h $ // $Id: Gps_traits_adaptor.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Gps_traits_decorator.h cgal-5.5/include/CGAL/Boolean_set_operations_2/Gps_traits_decorator.h --- cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Gps_traits_decorator.h 2022-06-03 19:03:52.000000000 +0000 +++ cgal-5.5/include/CGAL/Boolean_set_operations_2/Gps_traits_decorator.h 2022-07-13 19:04:37.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Gps_traits_decorator.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Gps_traits_decorator.h $ // $Id: Gps_traits_decorator.h 7436c14 2020-04-06T01:23:45+03:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Indexed_event.h cgal-5.5/include/CGAL/Boolean_set_operations_2/Indexed_event.h --- cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Indexed_event.h 2022-06-03 19:03:52.000000000 +0000 +++ cgal-5.5/include/CGAL/Boolean_set_operations_2/Indexed_event.h 2022-07-13 19:04:38.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Indexed_event.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Indexed_event.h $ // $Id: Indexed_event.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Boolean_set_operations_2/intersection.h cgal-5.5/include/CGAL/Boolean_set_operations_2/intersection.h --- cgal-5.4.1/include/CGAL/Boolean_set_operations_2/intersection.h 2022-06-03 19:03:52.000000000 +0000 +++ cgal-5.5/include/CGAL/Boolean_set_operations_2/intersection.h 2022-07-13 19:04:38.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/intersection.h $ -// $Id: intersection.h 420f37a 2021-09-23T16:28:23+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/intersection.h $ +// $Id: intersection.h 7ba4fbc 2022-06-07T20:57:57+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -288,8 +288,7 @@ intersection(InputIterator begin, InputIterator end, OutputIterator oi, unsigned int k=5, // workaround to avoid ambiguous calls with kernel functions - typename boost::enable_if - >::type* = 0, + std::enable_if_t::value>* = 0, Disable_if_Polygon_2_iterator* = 0) { typename Iterator_to_gps_traits::Traits traits; diff -Nru cgal-5.4.1/include/CGAL/Boolean_set_operations_2/join.h cgal-5.5/include/CGAL/Boolean_set_operations_2/join.h --- cgal-5.4.1/include/CGAL/Boolean_set_operations_2/join.h 2022-06-03 19:03:52.000000000 +0000 +++ cgal-5.5/include/CGAL/Boolean_set_operations_2/join.h 2022-07-13 19:04:38.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/join.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/join.h $ // $Id: join.h 420f37a 2021-09-23T16:28:23+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Boolean_set_operations_2/oriented_side.h cgal-5.5/include/CGAL/Boolean_set_operations_2/oriented_side.h --- cgal-5.4.1/include/CGAL/Boolean_set_operations_2/oriented_side.h 2022-06-03 19:03:52.000000000 +0000 +++ cgal-5.5/include/CGAL/Boolean_set_operations_2/oriented_side.h 2022-07-13 19:04:38.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/oriented_side.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/oriented_side.h $ // $Id: oriented_side.h 4151fcb 2021-09-23T11:59:29+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Point_with_vertex.h cgal-5.5/include/CGAL/Boolean_set_operations_2/Point_with_vertex.h --- cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Point_with_vertex.h 2022-06-03 19:03:52.000000000 +0000 +++ cgal-5.5/include/CGAL/Boolean_set_operations_2/Point_with_vertex.h 2022-07-13 19:04:38.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Point_with_vertex.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Point_with_vertex.h $ // $Id: Point_with_vertex.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Polygon_2_curve_iterator.h cgal-5.5/include/CGAL/Boolean_set_operations_2/Polygon_2_curve_iterator.h --- cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Polygon_2_curve_iterator.h 2022-06-03 19:03:52.000000000 +0000 +++ cgal-5.5/include/CGAL/Boolean_set_operations_2/Polygon_2_curve_iterator.h 2022-07-13 19:04:38.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Polygon_2_curve_iterator.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Polygon_2_curve_iterator.h $ // $Id: Polygon_2_curve_iterator.h 0b70318 2020-10-20T09:01:29+02:00 Simon Giraudot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Polygon_conversions.h cgal-5.5/include/CGAL/Boolean_set_operations_2/Polygon_conversions.h --- cgal-5.4.1/include/CGAL/Boolean_set_operations_2/Polygon_conversions.h 2022-06-03 19:03:52.000000000 +0000 +++ cgal-5.5/include/CGAL/Boolean_set_operations_2/Polygon_conversions.h 2022-07-13 19:04:38.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Polygon_conversions.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Polygon_conversions.h $ // $Id: Polygon_conversions.h 420f37a 2021-09-23T16:28:23+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Boolean_set_operations_2/symmetric_difference.h cgal-5.5/include/CGAL/Boolean_set_operations_2/symmetric_difference.h --- cgal-5.4.1/include/CGAL/Boolean_set_operations_2/symmetric_difference.h 2022-06-03 19:03:52.000000000 +0000 +++ cgal-5.5/include/CGAL/Boolean_set_operations_2/symmetric_difference.h 2022-07-13 19:04:38.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/symmetric_difference.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/symmetric_difference.h $ // $Id: symmetric_difference.h 420f37a 2021-09-23T16:28:23+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Boolean_set_operations_2.h cgal-5.5/include/CGAL/Boolean_set_operations_2.h --- cgal-5.4.1/include/CGAL/Boolean_set_operations_2.h 2022-06-03 19:03:51.000000000 +0000 +++ cgal-5.5/include/CGAL/Boolean_set_operations_2.h 2022-07-13 19:04:37.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2.h $ // $Id: Boolean_set_operations_2.h 4151fcb 2021-09-23T11:59:29+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/boost/bimap/multiset_of.hpp cgal-5.5/include/CGAL/boost/bimap/multiset_of.hpp --- cgal-5.4.1/include/CGAL/boost/bimap/multiset_of.hpp 2022-06-03 19:04:20.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/bimap/multiset_of.hpp 2022-07-13 19:05:09.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/boost/bimap/multiset_of.hpp $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/boost/bimap/multiset_of.hpp $ // $Id: multiset_of.hpp 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/boost/bimap.hpp cgal-5.5/include/CGAL/boost/bimap.hpp --- cgal-5.4.1/include/CGAL/boost/bimap.hpp 2022-06-03 19:04:20.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/bimap.hpp 2022-07-13 19:05:09.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/boost/bimap.hpp $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/boost/bimap.hpp $ // $Id: bimap.hpp 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/boost/graph/alpha_expansion_graphcut.h cgal-5.5/include/CGAL/boost/graph/alpha_expansion_graphcut.h --- cgal-5.4.1/include/CGAL/boost/graph/alpha_expansion_graphcut.h 2022-06-03 19:03:48.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/alpha_expansion_graphcut.h 2022-07-13 19:04:34.000000000 +0000 @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/BGL/include/CGAL/boost/graph/alpha_expansion_graphcut.h $ -// $Id: alpha_expansion_graphcut.h 20cdd62 2022-01-12T11:41:26+01:00 Laurent Rineau +// $URL: https://github.com/CGAL/cgal/blob/v5.5/BGL/include/CGAL/boost/graph/alpha_expansion_graphcut.h $ +// $Id: alpha_expansion_graphcut.h e713291 2022-05-04T16:35:21+01:00 Andreas Fabri // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // @@ -20,17 +20,26 @@ #endif #include -#include +#include #include #include #include #include + +#if defined(BOOST_MSVC) +# pragma warning(push) +# pragma warning(disable:4172) // Address boost_1_67_0\boost\graph\named_function_params.hpp(240): warning C4172: returning address of local variable or temporary +#endif + #include -#include +#if defined(BOOST_MSVC) +# pragma warning(pop) +#endif +#include @@ -508,12 +517,12 @@ typename EdgeCostMap, typename VertexLabelCostMap, typename VertexLabelMap, - typename NamedParameters> + typename NamedParameters = parameters::Default_named_parameters> double alpha_expansion_graphcut (const InputGraph& input_graph, EdgeCostMap edge_cost_map, VertexLabelCostMap vertex_label_cost_map, VertexLabelMap vertex_label_map, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { using parameters::choose_parameter; using parameters::get_parameter; @@ -662,22 +671,6 @@ /// \cond SKIP_IN_MANUAL -/// \cond SKIP_IN_MANUAL -// variant with default NP -template -double alpha_expansion_graphcut (const InputGraph& input_graph, - EdgeCostMap edge_cost_map, - VertexLabelCostMap vertex_label_cost_map, - VertexLabelMap vertex_label_map) -{ - return alpha_expansion_graphcut (input_graph, edge_cost_map, - vertex_label_cost_map, vertex_label_map, - CGAL::parameters::all_default()); -} - // Old API inline double alpha_expansion_graphcut (const std::vector >& edges, const std::vector& edge_costs, diff -Nru cgal-5.4.1/include/CGAL/boost/graph/Alpha_expansion_MaxFlow_tag.h cgal-5.5/include/CGAL/boost/graph/Alpha_expansion_MaxFlow_tag.h --- cgal-5.4.1/include/CGAL/boost/graph/Alpha_expansion_MaxFlow_tag.h 2022-06-03 19:05:55.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/Alpha_expansion_MaxFlow_tag.h 2022-07-13 19:06:52.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_segmentation/include/CGAL/boost/graph/Alpha_expansion_MaxFlow_tag.h $ -// $Id: Alpha_expansion_MaxFlow_tag.h 5945e48 2021-09-17T08:14:06+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_segmentation/include/CGAL/boost/graph/Alpha_expansion_MaxFlow_tag.h $ +// $Id: Alpha_expansion_MaxFlow_tag.h b45e788 2022-06-23T16:25:21+01:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Ilker O. Yaz, Simon Giraudot @@ -47,7 +47,7 @@ void clear_graph() { - graph = MaxFlow::Graph(); + graph.clear(); } Vertex_descriptor add_vertex() diff -Nru cgal-5.4.1/include/CGAL/boost/graph/backward_compatibility_functions.h cgal-5.5/include/CGAL/boost/graph/backward_compatibility_functions.h --- cgal-5.4.1/include/CGAL/boost/graph/backward_compatibility_functions.h 2022-06-03 19:03:48.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/backward_compatibility_functions.h 2022-07-13 19:04:34.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/BGL/include/CGAL/boost/graph/backward_compatibility_functions.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/BGL/include/CGAL/boost/graph/backward_compatibility_functions.h $ // $Id: backward_compatibility_functions.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/boost/graph/breadth_first_search.h cgal-5.5/include/CGAL/boost/graph/breadth_first_search.h --- cgal-5.4.1/include/CGAL/boost/graph/breadth_first_search.h 1970-01-01 00:00:00.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/breadth_first_search.h 2022-07-13 19:04:34.000000000 +0000 @@ -0,0 +1,29 @@ +// Copyright (c) 2021 GeometryFactory (France). All rights reserved. +// +// This file is part of CGAL (www.cgal.org) +// +// $URL: https://github.com/CGAL/cgal/blob/v5.5/BGL/include/CGAL/boost/graph/breadth_first_search.h $ +// $Id: breadth_first_search.h 5f3e3b2 2022-05-05T08:46:11+01:00 Andreas Fabri +// SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial +// +// +// Author(s) : Sebastien Loriot + +#ifndef CGAL_BOOST_GRAPH_BREADTH_FIRST_SEARCH_H +#define CGAL_BOOST_GRAPH_BREADTH_FIRST_SEARCH_H + +// This will push/pop a VC++ warning +#include + +#if defined(BOOST_MSVC) +# pragma warning(push) +# pragma warning(disable:4172) // Address warning inside boost named parameters +#endif + +#include + +#if defined(BOOST_MSVC) +# pragma warning(pop) +#endif + +#endif // CGAL_BOOST_GRAPH_BREADTH_FIRST_SEARCH_H diff -Nru cgal-5.4.1/include/CGAL/boost/graph/convert_nef_polyhedron_to_polygon_mesh.h cgal-5.5/include/CGAL/boost/graph/convert_nef_polyhedron_to_polygon_mesh.h --- cgal-5.4.1/include/CGAL/boost/graph/convert_nef_polyhedron_to_polygon_mesh.h 2022-06-03 19:04:56.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/convert_nef_polyhedron_to_polygon_mesh.h 2022-07-13 19:05:49.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_3/include/CGAL/boost/graph/convert_nef_polyhedron_to_polygon_mesh.h $ -// $Id: convert_nef_polyhedron_to_polygon_mesh.h 3795c52 2021-05-18T10:16:24+02:00 Maxime Gimeno +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_3/include/CGAL/boost/graph/convert_nef_polyhedron_to_polygon_mesh.h $ +// $Id: convert_nef_polyhedron_to_polygon_mesh.h 4ffc949 2022-02-03T17:11:20+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -20,13 +20,13 @@ #include #include #include -#include #include #include #include #include #include +#include namespace CGAL{ @@ -36,7 +36,7 @@ template struct Shell_vertex_index_visitor { - typedef boost::unordered_map< + typedef std::unordered_map< typename Nef_polyhedron::Vertex_const_handle, std::size_t> Vertex_index_map; typedef typename PointRange::value_type Point_3; PointRange& points; @@ -76,7 +76,7 @@ template struct Shell_polygons_visitor { - typedef boost::unordered_map Vertex_index_map; + typedef std::unordered_map Vertex_index_map; typedef typename PolygonRange::value_type Polygon; Vertex_index_map& vertex_indices; PolygonRange& polygons; diff -Nru cgal-5.4.1/include/CGAL/boost/graph/copy_face_graph.h cgal-5.5/include/CGAL/boost/graph/copy_face_graph.h --- cgal-5.4.1/include/CGAL/boost/graph/copy_face_graph.h 2022-06-03 19:03:48.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/copy_face_graph.h 2022-07-13 19:04:34.000000000 +0000 @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/BGL/include/CGAL/boost/graph/copy_face_graph.h $ -// $Id: copy_face_graph.h 026abdb 2021-01-27T10:17:42+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/BGL/include/CGAL/boost/graph/copy_face_graph.h $ +// $Id: copy_face_graph.h 4ffc949 2022-02-03T17:11:20+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // @@ -20,13 +20,14 @@ #include #include #include -#include +#include #include #include -#include #include #include +#include + namespace CGAL { namespace internal { @@ -351,21 +352,12 @@ Other properties are not copied. */ template void copy_face_graph(const SourceMesh& sm, TargetMesh& tm, - #ifndef DOXYGEN_RUNNING - const CGAL::Named_function_parameters& np1, - const CGAL::Named_function_parameters& np2 - #else - const NamedParameters1& np1, - const NamedParameters2& np2 - #endif + const NamedParameters1& np1 = parameters::default_values(), + const NamedParameters2& np2 = parameters::default_values() ) { using parameters::choose_parameter; @@ -384,55 +376,6 @@ get(vertex_point, tm))); } -template -void copy_face_graph(const SourceMesh& sm, TargetMesh& tm) -{ - copy_face_graph(sm, tm, parameters::all_default(), parameters::all_default()); -} - -template -void copy_face_graph(const SourceMesh& sm, TargetMesh& tm, - const CGAL::Named_function_parameters& np) -{ - copy_face_graph(sm, tm, np, parameters::all_default()); -} - -#if !defined(DOXYGEN_RUNNING) && !defined(CGAL_NO_DEPRECATED_CODE) -template -void copy_face_graph(const SourceMesh& sm, TargetMesh& tm, - V2V v2v, H2H h2h, F2F f2f, - Src_vpm sm_vpm, Tgt_vpm tm_vpm ) -{ - internal::copy_face_graph_impl(sm, tm, - v2v, h2h, f2f, - sm_vpm, tm_vpm); -} - - -template -void copy_face_graph(const SourceMesh& sm, TargetMesh& tm, V2V v2v) -{ copy_face_graph(sm, tm, v2v, Emptyset_iterator(), Emptyset_iterator(), - get(vertex_point, sm), get(vertex_point, tm)); } - -template -void copy_face_graph(const SourceMesh& sm, TargetMesh& tm, V2V v2v, H2H h2h) -{ copy_face_graph(sm, tm, v2v, h2h, Emptyset_iterator(), - get(vertex_point, sm), get(vertex_point, tm)); } - -template -void copy_face_graph(const SourceMesh& sm, TargetMesh& tm, V2V v2v, H2H h2h, F2F f2f) -{ copy_face_graph(sm, tm, v2v, h2h, f2f, - get(vertex_point, sm), get(vertex_point, tm)); } - -template -void copy_face_graph(const SourceMesh& sm, TargetMesh& tm, V2V v2v, H2H h2h, F2F f2f, Src_vpm sm_vpm) -{ copy_face_graph(sm, tm, v2v, h2h, f2f, - sm_vpm, get(vertex_point, tm)); } -#endif - } // namespace CGAL #endif // CGAL_BOOST_GRAPH_COPY_FACE_GRAPH_H diff -Nru cgal-5.4.1/include/CGAL/boost/graph/dijkstra_shortest_paths.h cgal-5.5/include/CGAL/boost/graph/dijkstra_shortest_paths.h --- cgal-5.4.1/include/CGAL/boost/graph/dijkstra_shortest_paths.h 2022-06-03 19:03:48.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/dijkstra_shortest_paths.h 2022-07-13 19:04:34.000000000 +0000 @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/BGL/include/CGAL/boost/graph/dijkstra_shortest_paths.h $ -// $Id: dijkstra_shortest_paths.h 0243e4d 2020-08-18T10:08:59+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/BGL/include/CGAL/boost/graph/dijkstra_shortest_paths.h $ +// $Id: dijkstra_shortest_paths.h 5f3e3b2 2022-05-05T08:46:11+01:00 Andreas Fabri // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // @@ -13,8 +13,18 @@ #ifndef CGAL_BOOST_GRAPH_DIJKSTRA_SHORTEST_PATHS_H #define CGAL_BOOST_GRAPH_DIJKSTRA_SHORTEST_PATHS_H -// This will push/pop a VC15 warning -#include +// This will push/pop a VC++ warning +#include + +#if defined(BOOST_MSVC) +# pragma warning(push) +# pragma warning(disable:4172) // Address warning inside boost named parameters +#endif + #include +#if defined(BOOST_MSVC) +# pragma warning(pop) +#endif + #endif // CGAL_BOOST_GRAPH_DIJKSTRA_SHORTEST_PATHS_H diff -Nru cgal-5.4.1/include/CGAL/boost/graph/Dual.h cgal-5.5/include/CGAL/boost/graph/Dual.h --- cgal-5.4.1/include/CGAL/boost/graph/Dual.h 2022-06-03 19:03:48.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/Dual.h 2022-07-13 19:04:34.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/BGL/include/CGAL/boost/graph/Dual.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/BGL/include/CGAL/boost/graph/Dual.h $ // $Id: Dual.h 590ddf8 2021-10-08T15:38:47+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/boost/graph/Euler_operations.h cgal-5.5/include/CGAL/boost/graph/Euler_operations.h --- cgal-5.4.1/include/CGAL/boost/graph/Euler_operations.h 2022-06-03 19:03:48.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/Euler_operations.h 2022-07-13 19:04:34.000000000 +0000 @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/BGL/include/CGAL/boost/graph/Euler_operations.h $ -// $Id: Euler_operations.h e25669c 2021-11-25T17:28:07+01:00 Laurent Rineau +// $URL: https://github.com/CGAL/cgal/blob/v5.5/BGL/include/CGAL/boost/graph/Euler_operations.h $ +// $Id: Euler_operations.h 29b3fb1 2022-06-20T18:03:15+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // @@ -265,10 +265,7 @@ /** * splits the face incident to `h1` and `h2`. Creates the opposite * halfedges `h3` and `h4`, such that `next(h1,g) == h3` and `next(h2,g) == h4`. - * Performs the inverse operation to `join_face()`. - * - * If `Graph` is a model of `MutableFaceGraph` and if the update of faces is not disabled - * a new face incident to `h4` is added. + * Performs the inverse operation to `join_face()`. The new face is incident to `h4`. * * \image html split_face.svg * diff -Nru cgal-5.4.1/include/CGAL/boost/graph/Face_filtered_graph.h cgal-5.5/include/CGAL/boost/graph/Face_filtered_graph.h --- cgal-5.4.1/include/CGAL/boost/graph/Face_filtered_graph.h 2022-06-03 19:03:48.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/Face_filtered_graph.h 2022-07-13 19:04:34.000000000 +0000 @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/BGL/include/CGAL/boost/graph/Face_filtered_graph.h $ -// $Id: Face_filtered_graph.h 2599d8e 2021-07-27T15:55:11+02:00 Laurent Rineau +// $URL: https://github.com/CGAL/cgal/blob/v5.5/BGL/include/CGAL/boost/graph/Face_filtered_graph.h $ +// $Id: Face_filtered_graph.h c1c7f4a 2022-02-24T19:57:20+01:00 Laurent Rineau // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // @@ -15,7 +15,7 @@ #include #include #include -#include +#include #include #include #include @@ -26,17 +26,12 @@ #include #include #include -#include +#include #include #include #include -#ifdef DOXYGEN_RUNNING -#define CGAL_BGL_NP_TEMPLATE_PARAMETERS NamedParameters -#define CGAL_BGL_NP_CLASS NamedParameters -#endif - namespace CGAL { /*! @@ -152,9 +147,9 @@ * \cgalParamNEnd * \cgalNamedParamsEnd */ - template + template Face_filtered_graph(const Graph& graph, - const CGAL_BGL_NP_CLASS& np) + const CGAL_NP_CLASS& np = parameters::default_values()) : _graph(const_cast(graph)) , fimap(CGAL::get_initialized_face_index_map(graph, np)) , vimap(CGAL::get_initialized_vertex_index_map(graph, np)) @@ -164,10 +159,6 @@ , selected_halfedges(num_halfedges(graph), 0) {} - Face_filtered_graph(const Graph& graph) - :Face_filtered_graph(graph, parameters::all_default()) - {} - /*! * \brief Constructor where the set of selected faces is specified as a range of patch ids. * @@ -217,11 +208,11 @@ * \cgalParamNEnd * \cgalNamedParamsEnd */ - template + template Face_filtered_graph(const Graph& graph, const FacePatchIndexRange& selected_face_patch_indices, FacePatchIndexMap face_patch_index_map, - const CGAL_BGL_NP_CLASS& np + const CGAL_NP_CLASS& np #ifndef DOXYGEN_RUNNING , typename boost::enable_if< typename boost::has_range_const_iterator::type @@ -299,11 +290,11 @@ * \cgalParamNEnd * \cgalNamedParamsEnd */ - template + template Face_filtered_graph(const Graph& graph, typename boost::property_traits::value_type selected_face_patch_index, FacePatchIndexMap face_patch_index_map, - const CGAL_BGL_NP_CLASS& np) + const CGAL_NP_CLASS& np) : _graph(const_cast(graph)), fimap(CGAL::get_initialized_face_index_map(graph, np)), vimap(CGAL::get_initialized_vertex_index_map(graph, np)), @@ -369,10 +360,10 @@ * \cgalParamNEnd * \cgalNamedParamsEnd */ - template + template Face_filtered_graph(const Graph& graph, const FaceRange& selected_faces, - const CGAL_BGL_NP_CLASS& np) + const CGAL_NP_CLASS& np) : _graph(const_cast(graph)), fimap(CGAL::get_initialized_face_index_map(graph, np)), vimap(CGAL::get_initialized_vertex_index_map(graph, np)), @@ -446,7 +437,7 @@ initialize_halfedge_indices(); } - ///change the set of selected faces using a patch id + /// changes the set of selected faces using a patch id. template void set_selected_faces(typename boost::property_traits::value_type face_patch_id, FacePatchIndexMap face_patch_index_map) @@ -475,7 +466,7 @@ reset_indices(); } - /// change the set of selected faces using a range of patch ids + /// changes the set of selected faces using a range of patch ids template void set_selected_faces(const FacePatchIndexRange& selected_face_patch_indices, FacePatchIndexMap face_patch_index_map @@ -495,8 +486,8 @@ selected_halfedges.reset(); typedef typename boost::property_traits::value_type Patch_index; - boost::unordered_set pids(boost::begin(selected_face_patch_indices), - boost::end(selected_face_patch_indices)); + std::unordered_set pids(boost::begin(selected_face_patch_indices), + boost::end(selected_face_patch_indices)); for(face_descriptor fd : faces(_graph) ) { @@ -515,7 +506,7 @@ reset_indices(); } - /// change the set of selected faces using a range of face descriptors + /// changes the set of selected faces using a range of face descriptors. template void set_selected_faces(const FaceRange& selection) { @@ -578,18 +569,21 @@ { return selected_halfedges[get(himap, halfedge(e,_graph))]; } - ///returns the number of selected faces - size_type number_of_faces()const + + /// returns the number of selected faces. + size_type number_of_faces() const { return selected_faces.count(); } -///returns the number of selected vertices. - size_type number_of_vertices()const + + /// returns the number of selected vertices. + size_type number_of_vertices() const { return selected_vertices.count(); } -///returns the number of selected halfedges. - size_type number_of_halfedges()const + + /// returns the number of selected halfedges. + size_type number_of_halfedges() const { return selected_halfedges.count(); } @@ -621,21 +615,18 @@ return bind_property_maps(himap, make_property_map(halfedge_indices) ); } - /// returns `true` if around any vertex of a selected face, - /// there is at most one connected set of selected faces. + /// returns `true` if around any vertex of a selected face there is at most a single umbrella bool is_selection_valid() const { typedef typename boost::graph_traits::vertex_descriptor vertex_descriptor; typedef typename boost::graph_traits::halfedge_descriptor halfedge_descriptor; - // Non-manifoldness can appear either: - // - if 'pm' is pinched at a vertex. While traversing the incoming halfedges at this vertex, - // we will meet strictly more than one border halfedge. - // - if there are multiple umbrellas around a vertex. In that case, we will find a non-visited - // halfedge that has for target a vertex that is already visited. + // Non-manifoldness can appear if there are multiple umbrellas around a vertex. + // In that case, we will find a non-visited halfedge that has for target a vertex + // that is already visited. - boost::unordered_set vertices_visited; - boost::unordered_set halfedges_handled; + std::unordered_set vertices_visited; + std::unordered_set halfedges_handled; for(halfedge_descriptor hd : halfedges(*this)) { @@ -652,15 +643,11 @@ if(!vertices_visited.insert(vd).second) return false; - std::size_t border_halfedge_counter = 0; - - // Can't simply call halfedges_around_target(vd, *this) because 'halfedge(vd)' is not necessarily 'hd' + // Can't call halfedges_around_target(vd, *this) because 'halfedge(vd)' is not necessarily 'hd' halfedge_descriptor ihd = hd; do { halfedges_handled.insert(ihd); - if(is_border(ihd, *this)) - ++border_halfedge_counter; do { @@ -669,14 +656,32 @@ while(!is_in_cc(ihd) && ihd != hd); } while(ihd != hd); - - if(border_halfedge_counter > 1) - return false; } return true; } + /// inverts the selected status of faces. + void invert_selection() + { + selected_faces=~selected_faces; + selected_halfedges.reset(); + selected_vertices.reset(); + + for(face_descriptor fd : faces(_graph)) + { + if (!selected_faces.test(get(fimap, fd))) continue; + for(halfedge_descriptor hd : halfedges_around_face(halfedge(fd, _graph), _graph)) + { + selected_halfedges.set(get(himap, hd)); + selected_halfedges.set(get(himap, opposite(hd, _graph))); + selected_vertices.set(get(vimap, target(hd, _graph))); + } + } + + reset_indices(); + } + private: Graph& _graph; FIM fimap; @@ -1059,7 +1064,8 @@ next(typename boost::graph_traits< Face_filtered_graph >::halfedge_descriptor h, const Face_filtered_graph & w) { - CGAL_assertion(w.is_in_cc(h)); + CGAL_precondition(w.is_in_cc(h)); + if(w.is_in_cc(next(h, w.graph()))) return next(h, w.graph()); @@ -1083,8 +1089,8 @@ prev(typename boost::graph_traits< Face_filtered_graph >::halfedge_descriptor h, const Face_filtered_graph & w) { + CGAL_precondition(w.is_in_cc(h)); - CGAL_assertion(w.is_in_cc(h)); if(w.is_in_cc(prev(h, w.graph()))) return prev(h, w.graph()); diff -Nru cgal-5.4.1/include/CGAL/boost/graph/generators.h cgal-5.5/include/CGAL/boost/graph/generators.h --- cgal-5.4.1/include/CGAL/boost/graph/generators.h 2022-06-03 19:03:48.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/generators.h 2022-07-13 19:04:34.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/BGL/include/CGAL/boost/graph/generators.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/BGL/include/CGAL/boost/graph/generators.h $ // $Id: generators.h 0994eed 2022-03-02T11:23:49+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/boost/graph/graph_concepts.h cgal-5.5/include/CGAL/boost/graph/graph_concepts.h --- cgal-5.4.1/include/CGAL/boost/graph/graph_concepts.h 2022-06-03 19:03:48.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/graph_concepts.h 2022-07-13 19:04:34.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/BGL/include/CGAL/boost/graph/graph_concepts.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/BGL/include/CGAL/boost/graph/graph_concepts.h $ // $Id: graph_concepts.h c9af7a1 2020-10-14T10:59:46+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/boost/graph/graph_traits_Arrangement_2.h cgal-5.5/include/CGAL/boost/graph/graph_traits_Arrangement_2.h --- cgal-5.4.1/include/CGAL/boost/graph/graph_traits_Arrangement_2.h 2022-06-03 19:03:46.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/graph_traits_Arrangement_2.h 2022-07-13 19:04:31.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/boost/graph/graph_traits_Arrangement_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/boost/graph/graph_traits_Arrangement_2.h $ // $Id: graph_traits_Arrangement_2.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/boost/graph/graph_traits_Constrained_Delaunay_triangulation_2.h cgal-5.5/include/CGAL/boost/graph/graph_traits_Constrained_Delaunay_triangulation_2.h --- cgal-5.4.1/include/CGAL/boost/graph/graph_traits_Constrained_Delaunay_triangulation_2.h 2022-06-03 19:06:07.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/graph_traits_Constrained_Delaunay_triangulation_2.h 2022-07-13 19:07:06.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_2/include/CGAL/boost/graph/graph_traits_Constrained_Delaunay_triangulation_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_2/include/CGAL/boost/graph/graph_traits_Constrained_Delaunay_triangulation_2.h $ // $Id: graph_traits_Constrained_Delaunay_triangulation_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/boost/graph/graph_traits_Constrained_triangulation_2.h cgal-5.5/include/CGAL/boost/graph/graph_traits_Constrained_triangulation_2.h --- cgal-5.4.1/include/CGAL/boost/graph/graph_traits_Constrained_triangulation_2.h 2022-06-03 19:06:07.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/graph_traits_Constrained_triangulation_2.h 2022-07-13 19:07:06.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_2/include/CGAL/boost/graph/graph_traits_Constrained_triangulation_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_2/include/CGAL/boost/graph/graph_traits_Constrained_triangulation_2.h $ // $Id: graph_traits_Constrained_triangulation_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/boost/graph/graph_traits_Constrained_triangulation_plus_2.h cgal-5.5/include/CGAL/boost/graph/graph_traits_Constrained_triangulation_plus_2.h --- cgal-5.4.1/include/CGAL/boost/graph/graph_traits_Constrained_triangulation_plus_2.h 2022-06-03 19:06:08.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/graph_traits_Constrained_triangulation_plus_2.h 2022-07-13 19:07:06.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_2/include/CGAL/boost/graph/graph_traits_Constrained_triangulation_plus_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_2/include/CGAL/boost/graph/graph_traits_Constrained_triangulation_plus_2.h $ // $Id: graph_traits_Constrained_triangulation_plus_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/boost/graph/graph_traits_Delaunay_triangulation_2.h cgal-5.5/include/CGAL/boost/graph/graph_traits_Delaunay_triangulation_2.h --- cgal-5.4.1/include/CGAL/boost/graph/graph_traits_Delaunay_triangulation_2.h 2022-06-03 19:06:08.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/graph_traits_Delaunay_triangulation_2.h 2022-07-13 19:07:06.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_2/include/CGAL/boost/graph/graph_traits_Delaunay_triangulation_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_2/include/CGAL/boost/graph/graph_traits_Delaunay_triangulation_2.h $ // $Id: graph_traits_Delaunay_triangulation_2.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/boost/graph/graph_traits_Dual_Arrangement_2.h cgal-5.5/include/CGAL/boost/graph/graph_traits_Dual_Arrangement_2.h --- cgal-5.4.1/include/CGAL/boost/graph/graph_traits_Dual_Arrangement_2.h 2022-06-03 19:03:46.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/graph_traits_Dual_Arrangement_2.h 2022-07-13 19:04:31.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/boost/graph/graph_traits_Dual_Arrangement_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/boost/graph/graph_traits_Dual_Arrangement_2.h $ // $Id: graph_traits_Dual_Arrangement_2.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/boost/graph/graph_traits_HalfedgeDS_default.h cgal-5.5/include/CGAL/boost/graph/graph_traits_HalfedgeDS_default.h --- cgal-5.4.1/include/CGAL/boost/graph/graph_traits_HalfedgeDS_default.h 2022-06-03 19:04:17.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/graph_traits_HalfedgeDS_default.h 2022-07-13 19:05:06.000000000 +0000 @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/HalfedgeDS/include/CGAL/boost/graph/graph_traits_HalfedgeDS_default.h $ -// $Id: graph_traits_HalfedgeDS_default.h 620dfa4 2020-03-27T08:37:32+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/HalfedgeDS/include/CGAL/boost/graph/graph_traits_HalfedgeDS_default.h $ +// $Id: graph_traits_HalfedgeDS_default.h fd20bee 2022-05-03T15:09:05+01:00 Andreas Fabri // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // @@ -172,6 +172,14 @@ return make_range(Iter(halfedge(u,p),p), Iter(halfedge(u,p),p,1)); } +template +inline Iterator_range const>::adjacency_iterator> +adjacent_vertices( typename boost::graph_traits< HalfedgeDS_default const>::vertex_descriptor u + , const HalfedgeDS_default& p) +{ + return CGAL::vertices_around_target(u,p); +} + // // MutableHalfedgeGraph // diff -Nru cgal-5.4.1/include/CGAL/boost/graph/graph_traits_HalfedgeDS.h cgal-5.5/include/CGAL/boost/graph/graph_traits_HalfedgeDS.h --- cgal-5.4.1/include/CGAL/boost/graph/graph_traits_HalfedgeDS.h 2022-06-03 19:04:17.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/graph_traits_HalfedgeDS.h 2022-07-13 19:05:06.000000000 +0000 @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/HalfedgeDS/include/CGAL/boost/graph/graph_traits_HalfedgeDS.h $ -// $Id: graph_traits_HalfedgeDS.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/HalfedgeDS/include/CGAL/boost/graph/graph_traits_HalfedgeDS.h $ +// $Id: graph_traits_HalfedgeDS.h fd20bee 2022-05-03T15:09:05+01:00 Andreas Fabri // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // @@ -15,7 +15,7 @@ #include // include this to avoid a VC15 warning -#include +#include #include #include @@ -155,7 +155,8 @@ private: struct HDS_graph_traversal_category : public virtual boost::bidirectional_graph_tag, public virtual boost::vertex_list_graph_tag, - public virtual boost::edge_list_graph_tag + public virtual boost::edge_list_graph_tag, + public virtual boost::adjacency_graph_tag {}; public: @@ -179,6 +180,8 @@ typedef In_edge_iterator in_edge_iterator; + typedef Vertex_around_target_iterator adjacency_iterator; + typedef boost::undirected_tag directed_category; typedef boost::disallow_parallel_edge_tag edge_parallel_category; typedef HDS_graph_traversal_category traversal_category; diff -Nru cgal-5.4.1/include/CGAL/boost/graph/graph_traits_inheritance_macros.h cgal-5.5/include/CGAL/boost/graph/graph_traits_inheritance_macros.h --- cgal-5.4.1/include/CGAL/boost/graph/graph_traits_inheritance_macros.h 2022-06-03 19:03:49.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/graph_traits_inheritance_macros.h 2022-07-13 19:04:34.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/BGL/include/CGAL/boost/graph/graph_traits_inheritance_macros.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/BGL/include/CGAL/boost/graph/graph_traits_inheritance_macros.h $ // $Id: graph_traits_inheritance_macros.h e2733dd 2020-08-28T08:10:04+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/boost/graph/graph_traits_Linear_cell_complex_for_combinatorial_map.h cgal-5.5/include/CGAL/boost/graph/graph_traits_Linear_cell_complex_for_combinatorial_map.h --- cgal-5.4.1/include/CGAL/boost/graph/graph_traits_Linear_cell_complex_for_combinatorial_map.h 2022-06-03 19:04:42.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/graph_traits_Linear_cell_complex_for_combinatorial_map.h 2022-07-13 19:05:34.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Linear_cell_complex/include/CGAL/boost/graph/graph_traits_Linear_cell_complex_for_combinatorial_map.h $ -// $Id: graph_traits_Linear_cell_complex_for_combinatorial_map.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Linear_cell_complex/include/CGAL/boost/graph/graph_traits_Linear_cell_complex_for_combinatorial_map.h $ +// $Id: graph_traits_Linear_cell_complex_for_combinatorial_map.h 238a2e1 2022-05-03T17:01:00+01:00 Andreas Fabri // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Guillaume Damiand @@ -29,6 +29,7 @@ #include #include +#include #define CGAL_LCC_TEMPLATE_ARGS templateget_f(2); } @@ -177,7 +178,8 @@ public : struct CMap_graph_traversal_category : public virtual boost::bidirectional_graph_tag, public virtual boost::vertex_list_graph_tag, - public virtual boost::edge_list_graph_tag + public virtual boost::edge_list_graph_tag, + public virtual boost::adjacency_graph_tag {}; // Expose types required by the boost::Graph concept. @@ -205,6 +207,8 @@ typedef CGAL::In_edge_iterator in_edge_iterator; typedef CGAL::Out_edge_iterator out_edge_iterator; + typedef CGAL::Vertex_around_target_iterator adjacency_iterator; + // nulls static vertex_descriptor null_vertex() { return nullptr; } static face_descriptor null_face() { return nullptr; } @@ -390,6 +394,14 @@ return make_range(Iter(halfedge(v, lcc), lcc), Iter(halfedge(v, lcc), lcc, 1)); } +CGAL_LCC_TEMPLATE_ARGS +CGAL::Iterator_range::adjacency_iterator> +adjacent_vertices(typename boost::graph_traits::vertex_descriptor v, + const CGAL_LCC_TYPE& lcc) +{ + return CGAL::vertices_around_target(v,lcc); +} + // // 2) HalfedgeGraph // @@ -605,6 +617,31 @@ } // namespace CGAL +namespace std { + +#if defined(BOOST_MSVC) +# pragma warning(push) +# pragma warning(disable:4099) // For VC10 it is class hash +#endif + +#ifndef CGAL_CFG_NO_STD_HASH + +template +struct hash> +{ + std::size_t operator()(const CGAL::internal::EdgeHandle& edge) const + { + return hash_value(edge); + } +}; +#endif // CGAL_CFG_NO_STD_HASH + +#if defined(BOOST_MSVC) +# pragma warning(pop) +#endif + +} // std namespace + #undef CGAL_LCC_TEMPLATE_ARGS #undef CGAL_LCC_TYPE diff -Nru cgal-5.4.1/include/CGAL/boost/graph/graph_traits_OpenMesh.h cgal-5.5/include/CGAL/boost/graph/graph_traits_OpenMesh.h --- cgal-5.4.1/include/CGAL/boost/graph/graph_traits_OpenMesh.h 2022-06-03 19:03:49.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/graph_traits_OpenMesh.h 2022-07-13 19:04:34.000000000 +0000 @@ -2,15 +2,15 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/BGL/include/CGAL/boost/graph/graph_traits_OpenMesh.h $ -// $Id: graph_traits_OpenMesh.h 40a3eee 2020-06-16T16:40:16+02:00 Maxime Gimeno +// $URL: https://github.com/CGAL/cgal/blob/v5.5/BGL/include/CGAL/boost/graph/graph_traits_OpenMesh.h $ +// $Id: graph_traits_OpenMesh.h 7360250 2022-05-10T11:00:47+01:00 Andreas Fabri // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // // Author(s) : Andreas Fabri, Philipp Moeller // include this to avoid a VC15 warning -#include +#include #include #include @@ -81,7 +81,8 @@ struct SM_graph_traversal_category : public virtual boost::bidirectional_graph_tag, public virtual boost::vertex_list_graph_tag, - public virtual boost::edge_list_graph_tag + public virtual boost::edge_list_graph_tag, + public virtual boost::adjacency_graph_tag {}; public: @@ -124,10 +125,12 @@ typedef CGAL::Out_edge_iterator out_edge_iterator; + typedef CGAL::Vertex_around_target_iterator adjacency_iterator; + // nulls static vertex_descriptor null_vertex() { return vertex_descriptor(); } static face_descriptor null_face() { return face_descriptor(); } - static halfedge_descriptor null_halfedge() { return halfedge_descriptor(); } + static halfedge_descriptor null_halfedge() { return halfedge_descriptor(); } }; template @@ -264,6 +267,17 @@ } +template +CGAL::Iterator_range::adjacency_iterator> +adjacent_vertices(typename boost::graph_traits::vertex_descriptor v, + const OPEN_MESH_CLASS& sm) +{ + return CGAL::vertices_around_target(v,sm); +} + + + + template std::pair::edge_descriptor, bool> diff -Nru cgal-5.4.1/include/CGAL/boost/graph/graph_traits_Polyhedron_3.h cgal-5.5/include/CGAL/boost/graph/graph_traits_Polyhedron_3.h --- cgal-5.4.1/include/CGAL/boost/graph/graph_traits_Polyhedron_3.h 2022-06-03 19:05:22.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/graph_traits_Polyhedron_3.h 2022-07-13 19:06:16.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polyhedron/include/CGAL/boost/graph/graph_traits_Polyhedron_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polyhedron/include/CGAL/boost/graph/graph_traits_Polyhedron_3.h $ // $Id: graph_traits_Polyhedron_3.h 10834e4 2020-06-30T16:37:59+02:00 Laurent Rineau // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/boost/graph/graph_traits_PolyMesh_ArrayKernelT.h cgal-5.5/include/CGAL/boost/graph/graph_traits_PolyMesh_ArrayKernelT.h --- cgal-5.4.1/include/CGAL/boost/graph/graph_traits_PolyMesh_ArrayKernelT.h 2022-06-03 19:03:49.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/graph_traits_PolyMesh_ArrayKernelT.h 2022-07-13 19:04:34.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/BGL/include/CGAL/boost/graph/graph_traits_PolyMesh_ArrayKernelT.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/BGL/include/CGAL/boost/graph/graph_traits_PolyMesh_ArrayKernelT.h $ // $Id: graph_traits_PolyMesh_ArrayKernelT.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/boost/graph/graph_traits_Regular_triangulation_2.h cgal-5.5/include/CGAL/boost/graph/graph_traits_Regular_triangulation_2.h --- cgal-5.4.1/include/CGAL/boost/graph/graph_traits_Regular_triangulation_2.h 2022-06-03 19:06:08.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/graph_traits_Regular_triangulation_2.h 2022-07-13 19:07:06.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_2/include/CGAL/boost/graph/graph_traits_Regular_triangulation_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_2/include/CGAL/boost/graph/graph_traits_Regular_triangulation_2.h $ // $Id: graph_traits_Regular_triangulation_2.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/boost/graph/graph_traits_Seam_mesh.h cgal-5.5/include/CGAL/boost/graph/graph_traits_Seam_mesh.h --- cgal-5.4.1/include/CGAL/boost/graph/graph_traits_Seam_mesh.h 2022-06-03 19:03:49.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/graph_traits_Seam_mesh.h 2022-07-13 19:04:34.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/BGL/include/CGAL/boost/graph/graph_traits_Seam_mesh.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/BGL/include/CGAL/boost/graph/graph_traits_Seam_mesh.h $ // $Id: graph_traits_Seam_mesh.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/boost/graph/graph_traits_Surface_mesh.h cgal-5.5/include/CGAL/boost/graph/graph_traits_Surface_mesh.h --- cgal-5.4.1/include/CGAL/boost/graph/graph_traits_Surface_mesh.h 2022-06-03 19:05:53.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/graph_traits_Surface_mesh.h 2022-07-13 19:06:50.000000000 +0000 @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh/include/CGAL/boost/graph/graph_traits_Surface_mesh.h $ -// $Id: graph_traits_Surface_mesh.h 863ab75 2021-10-05T11:43:39+02:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh/include/CGAL/boost/graph/graph_traits_Surface_mesh.h $ +// $Id: graph_traits_Surface_mesh.h fd20bee 2022-05-03T15:09:05+01:00 Andreas Fabri // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // @@ -17,7 +17,7 @@ #include // include this to avoid a VC15 warning -#include +#include #include #include @@ -41,7 +41,8 @@ struct SM_graph_traversal_category : public virtual boost::bidirectional_graph_tag, public virtual boost::vertex_list_graph_tag, - public virtual boost::edge_list_graph_tag + public virtual boost::edge_list_graph_tag, + public virtual boost::adjacency_graph_tag {}; public: @@ -77,14 +78,18 @@ typedef typename SM::size_type degree_size_type; + + typedef CGAL::In_edge_iterator in_edge_iterator; typedef CGAL::Out_edge_iterator out_edge_iterator; + typedef CGAL::Vertex_around_target_iterator adjacency_iterator; + // nulls static vertex_descriptor null_vertex() { return vertex_descriptor(); } static face_descriptor null_face() { return face_descriptor(); } - static halfedge_descriptor null_halfedge() { return halfedge_descriptor(); } + static halfedge_descriptor null_halfedge() { return halfedge_descriptor(); } }; template @@ -217,6 +222,13 @@ return make_range(Iter(halfedge(v,sm),sm), Iter(halfedge(v,sm),sm,1)); } +template +Iterator_range >::adjacency_iterator> +adjacent_vertices(typename boost::graph_traits >::vertex_descriptor v, + const CGAL::Surface_mesh

& sm) +{ + return CGAL::vertices_around_target(v,sm); +} template std::pair >::edge_descriptor, diff -Nru cgal-5.4.1/include/CGAL/boost/graph/graph_traits_Triangulation_2.h cgal-5.5/include/CGAL/boost/graph/graph_traits_Triangulation_2.h --- cgal-5.4.1/include/CGAL/boost/graph/graph_traits_Triangulation_2.h 2022-06-03 19:06:08.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/graph_traits_Triangulation_2.h 2022-07-13 19:07:06.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_2/include/CGAL/boost/graph/graph_traits_Triangulation_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_2/include/CGAL/boost/graph/graph_traits_Triangulation_2.h $ // $Id: graph_traits_Triangulation_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/boost/graph/graph_traits_Triangulation_data_structure_2.h cgal-5.5/include/CGAL/boost/graph/graph_traits_Triangulation_data_structure_2.h --- cgal-5.4.1/include/CGAL/boost/graph/graph_traits_Triangulation_data_structure_2.h 2022-06-03 19:06:02.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/graph_traits_Triangulation_data_structure_2.h 2022-07-13 19:07:00.000000000 +0000 @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/TDS_2/include/CGAL/boost/graph/graph_traits_Triangulation_data_structure_2.h $ -// $Id: graph_traits_Triangulation_data_structure_2.h 129f427 2021-12-16T13:48:01+01:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/TDS_2/include/CGAL/boost/graph/graph_traits_Triangulation_data_structure_2.h $ +// $Id: graph_traits_Triangulation_data_structure_2.h 6d3176e 2022-01-07T14:42:25+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // @@ -13,7 +13,7 @@ #define CGAL_GRAPH_TRAITS_TRIANGULATION_DATA_STRUCTURE_2_H // include this to avoid a VC15 warning -#include +#include #include #include diff -Nru cgal-5.4.1/include/CGAL/boost/graph/graph_traits_Triangulation_hierarchy_2.h cgal-5.5/include/CGAL/boost/graph/graph_traits_Triangulation_hierarchy_2.h --- cgal-5.4.1/include/CGAL/boost/graph/graph_traits_Triangulation_hierarchy_2.h 2022-06-03 19:06:08.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/graph_traits_Triangulation_hierarchy_2.h 2022-07-13 19:07:06.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_2/include/CGAL/boost/graph/graph_traits_Triangulation_hierarchy_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_2/include/CGAL/boost/graph/graph_traits_Triangulation_hierarchy_2.h $ // $Id: graph_traits_Triangulation_hierarchy_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/boost/graph/graph_traits_TriMesh_ArrayKernelT.h cgal-5.5/include/CGAL/boost/graph/graph_traits_TriMesh_ArrayKernelT.h --- cgal-5.4.1/include/CGAL/boost/graph/graph_traits_TriMesh_ArrayKernelT.h 2022-06-03 19:03:49.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/graph_traits_TriMesh_ArrayKernelT.h 2022-07-13 19:04:34.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/BGL/include/CGAL/boost/graph/graph_traits_TriMesh_ArrayKernelT.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/BGL/include/CGAL/boost/graph/graph_traits_TriMesh_ArrayKernelT.h $ // $Id: graph_traits_TriMesh_ArrayKernelT.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/boost/graph/Graph_with_descriptor_with_graph_fwd.h cgal-5.5/include/CGAL/boost/graph/Graph_with_descriptor_with_graph_fwd.h --- cgal-5.4.1/include/CGAL/boost/graph/Graph_with_descriptor_with_graph_fwd.h 2022-06-03 19:03:48.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/Graph_with_descriptor_with_graph_fwd.h 2022-07-13 19:04:34.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/BGL/include/CGAL/boost/graph/Graph_with_descriptor_with_graph_fwd.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/BGL/include/CGAL/boost/graph/Graph_with_descriptor_with_graph_fwd.h $ // $Id: Graph_with_descriptor_with_graph_fwd.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/boost/graph/Graph_with_descriptor_with_graph.h cgal-5.5/include/CGAL/boost/graph/Graph_with_descriptor_with_graph.h --- cgal-5.4.1/include/CGAL/boost/graph/Graph_with_descriptor_with_graph.h 2022-06-03 19:03:48.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/Graph_with_descriptor_with_graph.h 2022-07-13 19:04:34.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/BGL/include/CGAL/boost/graph/Graph_with_descriptor_with_graph.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/BGL/include/CGAL/boost/graph/Graph_with_descriptor_with_graph.h $ // $Id: Graph_with_descriptor_with_graph.h 590ddf8 2021-10-08T15:38:47+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/boost/graph/halfedge_graph_traits.h cgal-5.5/include/CGAL/boost/graph/halfedge_graph_traits.h --- cgal-5.4.1/include/CGAL/boost/graph/halfedge_graph_traits.h 2022-06-03 19:03:49.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/halfedge_graph_traits.h 2022-07-13 19:04:34.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/BGL/include/CGAL/boost/graph/halfedge_graph_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/BGL/include/CGAL/boost/graph/halfedge_graph_traits.h $ // $Id: halfedge_graph_traits.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/boost/graph/halfedge_graph_traits_HalfedgeDS.h cgal-5.5/include/CGAL/boost/graph/halfedge_graph_traits_HalfedgeDS.h --- cgal-5.4.1/include/CGAL/boost/graph/halfedge_graph_traits_HalfedgeDS.h 2022-06-03 19:04:17.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/halfedge_graph_traits_HalfedgeDS.h 2022-07-13 19:05:06.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/HalfedgeDS/include/CGAL/boost/graph/halfedge_graph_traits_HalfedgeDS.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/HalfedgeDS/include/CGAL/boost/graph/halfedge_graph_traits_HalfedgeDS.h $ // $Id: halfedge_graph_traits_HalfedgeDS.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/boost/graph/halfedge_graph_traits_Polyhedron_3.h cgal-5.5/include/CGAL/boost/graph/halfedge_graph_traits_Polyhedron_3.h --- cgal-5.4.1/include/CGAL/boost/graph/halfedge_graph_traits_Polyhedron_3.h 2022-06-03 19:05:22.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/halfedge_graph_traits_Polyhedron_3.h 2022-07-13 19:06:17.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polyhedron/include/CGAL/boost/graph/halfedge_graph_traits_Polyhedron_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polyhedron/include/CGAL/boost/graph/halfedge_graph_traits_Polyhedron_3.h $ // $Id: halfedge_graph_traits_Polyhedron_3.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/boost/graph/helpers.h cgal-5.5/include/CGAL/boost/graph/helpers.h --- cgal-5.4.1/include/CGAL/boost/graph/helpers.h 2022-06-03 19:03:49.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/helpers.h 2022-07-13 19:04:34.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/BGL/include/CGAL/boost/graph/helpers.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/BGL/include/CGAL/boost/graph/helpers.h $ // $Id: helpers.h 5bd28b4 2020-07-29T10:24:02+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/boost/graph/internal/graph_traits_2D_TDS_helper.h cgal-5.5/include/CGAL/boost/graph/internal/graph_traits_2D_TDS_helper.h --- cgal-5.4.1/include/CGAL/boost/graph/internal/graph_traits_2D_TDS_helper.h 2022-06-03 19:06:02.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/internal/graph_traits_2D_TDS_helper.h 2022-07-13 19:07:00.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/TDS_2/include/CGAL/boost/graph/internal/graph_traits_2D_TDS_helper.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/TDS_2/include/CGAL/boost/graph/internal/graph_traits_2D_TDS_helper.h $ // $Id: graph_traits_2D_TDS_helper.h 129f427 2021-12-16T13:48:01+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/boost/graph/internal/graph_traits_2D_triangulation.h cgal-5.5/include/CGAL/boost/graph/internal/graph_traits_2D_triangulation.h --- cgal-5.4.1/include/CGAL/boost/graph/internal/graph_traits_2D_triangulation.h 2022-06-03 19:06:08.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/internal/graph_traits_2D_triangulation.h 2022-07-13 19:07:06.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_2/include/CGAL/boost/graph/internal/graph_traits_2D_triangulation.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_2/include/CGAL/boost/graph/internal/graph_traits_2D_triangulation.h $ // $Id: graph_traits_2D_triangulation.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/boost/graph/internal/graph_traits_2D_triangulation_helper.h cgal-5.5/include/CGAL/boost/graph/internal/graph_traits_2D_triangulation_helper.h --- cgal-5.4.1/include/CGAL/boost/graph/internal/graph_traits_2D_triangulation_helper.h 2022-06-03 19:06:08.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/internal/graph_traits_2D_triangulation_helper.h 2022-07-13 19:07:06.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_2/include/CGAL/boost/graph/internal/graph_traits_2D_triangulation_helper.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_2/include/CGAL/boost/graph/internal/graph_traits_2D_triangulation_helper.h $ // $Id: graph_traits_2D_triangulation_helper.h 129f427 2021-12-16T13:48:01+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/boost/graph/internal/Has_member_clear.h cgal-5.5/include/CGAL/boost/graph/internal/Has_member_clear.h --- cgal-5.4.1/include/CGAL/boost/graph/internal/Has_member_clear.h 2022-06-03 19:03:49.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/internal/Has_member_clear.h 2022-07-13 19:04:34.000000000 +0000 @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/BGL/include/CGAL/boost/graph/internal/Has_member_clear.h $ -// $Id: Has_member_clear.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/BGL/include/CGAL/boost/graph/internal/Has_member_clear.h $ +// $Id: Has_member_clear.h e5862bd 2022-04-21T13:59:43+02:00 Laurent Rineau // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Philipp Moeller @@ -19,11 +19,8 @@ class Has_member_clear { private: - template - class check {}; - - template - static char f(check*); + template + static auto f(int) -> decltype(std::declval().clear(), char()); template static int f(...); diff -Nru cgal-5.4.1/include/CGAL/boost/graph/internal/Has_member_id.h cgal-5.5/include/CGAL/boost/graph/internal/Has_member_id.h --- cgal-5.4.1/include/CGAL/boost/graph/internal/Has_member_id.h 2022-06-03 19:03:49.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/internal/Has_member_id.h 2022-07-13 19:04:34.000000000 +0000 @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/BGL/include/CGAL/boost/graph/internal/Has_member_id.h $ -// $Id: Has_member_id.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/BGL/include/CGAL/boost/graph/internal/Has_member_id.h $ +// $Id: Has_member_id.h e5862bd 2022-04-21T13:59:43+02:00 Laurent Rineau // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Jane Tournois @@ -18,25 +18,14 @@ template class Has_member_id { - typedef char yes[1]; - typedef char no[2]; - - struct BaseWithId - { - void id(){} - }; - struct Base : public Type, public BaseWithId {}; - - template - class Helper{}; - template - static no &check(U*, Helper* = 0); + static auto check(int) -> decltype(std::declval().id(), char()); - static yes &check(...); + template + static int check(...); public: - static const bool value = (sizeof(yes) == sizeof(check((Base*)(0)))); + static const bool value = (sizeof(char) == sizeof(check(0))); }; } // internal diff -Nru cgal-5.4.1/include/CGAL/boost/graph/internal/helpers.h cgal-5.5/include/CGAL/boost/graph/internal/helpers.h --- cgal-5.4.1/include/CGAL/boost/graph/internal/helpers.h 2022-06-03 19:03:49.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/internal/helpers.h 2022-07-13 19:04:35.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/BGL/include/CGAL/boost/graph/internal/helpers.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/BGL/include/CGAL/boost/graph/internal/helpers.h $ // $Id: helpers.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/boost/graph/internal/initialized_index_maps_helpers.h cgal-5.5/include/CGAL/boost/graph/internal/initialized_index_maps_helpers.h --- cgal-5.4.1/include/CGAL/boost/graph/internal/initialized_index_maps_helpers.h 2022-06-03 19:03:49.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/internal/initialized_index_maps_helpers.h 2022-07-13 19:04:35.000000000 +0000 @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/BGL/include/CGAL/boost/graph/internal/initialized_index_maps_helpers.h $ -// $Id: initialized_index_maps_helpers.h 87bb4d1 2020-07-07T16:04:09+02:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/BGL/include/CGAL/boost/graph/internal/initialized_index_maps_helpers.h $ +// $Id: initialized_index_maps_helpers.h 6d3176e 2022-01-07T14:42:25+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Mael Rouxel-Labbé @@ -13,7 +13,7 @@ #define CGAL_BOOST_GRAPH_INITIALIZED_INTERNAL_INDEX_MAPS_HELPERS #include -#include +#include #include #include #include @@ -271,7 +271,7 @@ template > + typename NamedParameters = parameters::Default_named_parameters > class GetInitializedIndexMap { public: diff -Nru cgal-5.4.1/include/CGAL/boost/graph/internal/OM_iterator_from_circulator.h cgal-5.5/include/CGAL/boost/graph/internal/OM_iterator_from_circulator.h --- cgal-5.4.1/include/CGAL/boost/graph/internal/OM_iterator_from_circulator.h 2022-06-03 19:03:49.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/internal/OM_iterator_from_circulator.h 2022-07-13 19:04:34.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/BGL/include/CGAL/boost/graph/internal/OM_iterator_from_circulator.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/BGL/include/CGAL/boost/graph/internal/OM_iterator_from_circulator.h $ // $Id: OM_iterator_from_circulator.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/boost/graph/internal/properties_2D_triangulation.h cgal-5.5/include/CGAL/boost/graph/internal/properties_2D_triangulation.h --- cgal-5.4.1/include/CGAL/boost/graph/internal/properties_2D_triangulation.h 2022-06-03 19:06:08.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/internal/properties_2D_triangulation.h 2022-07-13 19:07:06.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_2/include/CGAL/boost/graph/internal/properties_2D_triangulation.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_2/include/CGAL/boost/graph/internal/properties_2D_triangulation.h $ // $Id: properties_2D_triangulation.h 129f427 2021-12-16T13:48:01+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/boost/graph/IO/3MF.h cgal-5.5/include/CGAL/boost/graph/IO/3MF.h --- cgal-5.4.1/include/CGAL/boost/graph/IO/3MF.h 2022-06-03 19:03:48.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/IO/3MF.h 2022-07-13 19:04:34.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/BGL/include/CGAL/boost/graph/IO/3MF.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/BGL/include/CGAL/boost/graph/IO/3MF.h $ // $Id: 3MF.h fb6f703 2021-05-04T14:07:49+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/boost/graph/IO/Generic_facegraph_builder.h cgal-5.5/include/CGAL/boost/graph/IO/Generic_facegraph_builder.h --- cgal-5.4.1/include/CGAL/boost/graph/IO/Generic_facegraph_builder.h 2022-06-03 19:03:48.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/IO/Generic_facegraph_builder.h 2022-07-13 19:04:34.000000000 +0000 @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org); // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/BGL/include/CGAL/boost/graph/IO/Generic_facegraph_builder.h $ -// $Id: Generic_facegraph_builder.h fb6f703 2021-05-04T14:07:49+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/BGL/include/CGAL/boost/graph/IO/Generic_facegraph_builder.h $ +// $Id: Generic_facegraph_builder.h 477353d 2022-04-20T15:55:50+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Maxime Gimeno @@ -38,8 +38,8 @@ public: Generic_facegraph_builder(std::istream& in_) : m_is(in_) { } - template - bool operator()(Graph& g, const NamedParameters& np) + template + bool operator()(Graph& g, const NamedParameters& np = parameters::default_values()) { typedef typename GetK::Kernel Kernel; typedef typename Kernel::Vector_3 Vector; @@ -76,10 +76,10 @@ using parameters::is_default_parameter; using parameters::get_parameter; - const bool is_vnm_requested = !(is_default_parameter(get_parameter(np, internal_np::vertex_normal_map))); - const bool is_vcm_requested = !(is_default_parameter(get_parameter(np, internal_np::vertex_color_map))); - const bool is_vtm_requested = !(is_default_parameter(get_parameter(np, internal_np::vertex_texture_map))); - const bool is_fcm_requested = !(is_default_parameter(get_parameter(np, internal_np::face_color_map))); + const bool is_vnm_requested = !(is_default_parameter::value); + const bool is_vcm_requested = !(is_default_parameter::value); + const bool is_vtm_requested = !(is_default_parameter::value); + const bool is_fcm_requested = !(is_default_parameter::value); std::vector vertex_normals; std::vector vertex_colors; @@ -154,8 +154,6 @@ return is_valid(g); } - bool operator()(Graph& g) { return operator()(g, parameters::all_default()); } - protected: std::istream& m_is; diff -Nru cgal-5.4.1/include/CGAL/boost/graph/IO/Generic_facegraph_printer.h cgal-5.5/include/CGAL/boost/graph/IO/Generic_facegraph_printer.h --- cgal-5.4.1/include/CGAL/boost/graph/IO/Generic_facegraph_printer.h 2022-06-03 19:03:48.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/IO/Generic_facegraph_printer.h 2022-07-13 19:04:34.000000000 +0000 @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org); // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/BGL/include/CGAL/boost/graph/IO/Generic_facegraph_printer.h $ -// $Id: Generic_facegraph_printer.h fb6f703 2021-05-04T14:07:49+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/BGL/include/CGAL/boost/graph/IO/Generic_facegraph_printer.h $ +// $Id: Generic_facegraph_printer.h 477353d 2022-04-20T15:55:50+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Mael Rouxel-Labbé @@ -13,7 +13,7 @@ #include #include -#include +#include #include #include @@ -88,9 +88,9 @@ Generic_facegraph_printer(Stream& os) : m_os(os) { } Generic_facegraph_printer(Stream& os, FileWriter writer) : m_os(os), m_writer(writer) { } - template + template bool operator()(const Graph& g, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { typedef typename GetVertexPointMap::const_type VPM; typedef typename boost::property_traits::reference Point_ref; @@ -122,10 +122,10 @@ VPM vpm = choose_parameter(get_parameter(np, internal_np::vertex_point), get_const_property_map(CGAL::vertex_point, g)); - const bool has_vertex_normals = !(is_default_parameter(get_parameter(np, internal_np::vertex_normal_map))); - const bool has_vertex_colors = !(is_default_parameter(get_parameter(np, internal_np::vertex_color_map))); - const bool has_vertex_textures = !(is_default_parameter(get_parameter(np, internal_np::vertex_texture_map))); - const bool has_face_colors = !(is_default_parameter(get_parameter(np, internal_np::face_color_map))); + const bool has_vertex_normals = !(is_default_parameter::value); + const bool has_vertex_colors = !(is_default_parameter::value); + const bool has_vertex_textures = !(is_default_parameter::value); + const bool has_face_colors = !(is_default_parameter::value); VNM vnm = get_parameter(np, internal_np::vertex_normal_map); VTM vtm = get_parameter(np, internal_np::vertex_texture_map); @@ -193,8 +193,6 @@ return m_os.good(); } - bool operator()(const Graph& g) { return operator()(g, parameters::all_default()); } - protected: Stream& m_os; FileWriter m_writer; diff -Nru cgal-5.4.1/include/CGAL/boost/graph/IO/GOCAD.h cgal-5.5/include/CGAL/boost/graph/IO/GOCAD.h --- cgal-5.4.1/include/CGAL/boost/graph/IO/GOCAD.h 2022-06-03 19:03:48.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/IO/GOCAD.h 2022-07-13 19:04:34.000000000 +0000 @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/BGL/include/CGAL/boost/graph/IO/GOCAD.h $ -// $Id: GOCAD.h a34debc 2021-06-23T22:56:35+02:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/BGL/include/CGAL/boost/graph/IO/GOCAD.h $ +// $Id: GOCAD.h 10b0af3 2022-01-13T14:43:34+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Andreas Fabri @@ -17,7 +17,7 @@ #include #include #include -#include +#include #include #include @@ -25,11 +25,6 @@ #include #include -#ifdef DOXYGEN_RUNNING -#define CGAL_BGL_NP_TEMPLATE_PARAMETERS NamedParameters -#define CGAL_BGL_NP_CLASS NamedParameters -#endif - namespace CGAL { //////////////////////////////////////////////////////////////////////////////////////////////////// @@ -113,17 +108,17 @@ /// \returns `true` if reading was successful and the resulting mesh is valid, `false` otherwise. /// template + typename CGAL_NP_TEMPLATE_PARAMETERS> bool read_GOCAD(std::istream& is, std::pair& name_and_color, Graph& g, - const CGAL_BGL_NP_CLASS& np + const CGAL_NP_CLASS& np = parameters::default_values() #ifndef DOXYGEN_RUNNING , typename boost::disable_if >::type* = nullptr #endif ) { - typedef typename CGAL::GetVertexPointMap::type VPM; + typedef typename CGAL::GetVertexPointMap::type VPM; typedef typename boost::property_traits::value_type Point; internal::GOCAD_builder builder(is); @@ -138,27 +133,14 @@ /// \cond SKIP_IN_MANUAL -template -bool read_GOCAD(std::istream& is, std::pair& name_and_color, Graph& g, - typename boost::disable_if >::type* = nullptr) -{ - return read_GOCAD(is, name_and_color, g, parameters::all_default()); -} - -template -bool read_GOCAD(std::istream& is, Graph& g, const CGAL_BGL_NP_CLASS& np, +template +bool read_GOCAD(std::istream& is, Graph& g, const CGAL_NP_CLASS& np = parameters::default_values(), typename boost::disable_if >::type* = nullptr) { std::pair dummy; return read_GOCAD(is, dummy, g, np); } -template -bool read_GOCAD(std::istream& is, Graph& g, - typename boost::disable_if >::type* = nullptr) -{ - return read_GOCAD(is, g, parameters::all_default()); -} /// \endcond @@ -200,11 +182,11 @@ /// \returns `true` if reading was successful and the resulting mesh is valid, `false` otherwise. /// template + typename CGAL_NP_TEMPLATE_PARAMETERS> bool read_GOCAD(const std::string& fname, std::pair& name_and_color, Graph& g, - const CGAL_BGL_NP_CLASS& np + const CGAL_NP_CLASS& np = parameters::default_values() #ifndef DOXYGEN_RUNNING , typename boost::disable_if >::type* = nullptr #endif @@ -217,28 +199,14 @@ /// \cond SKIP_IN_MANUAL -template -bool read_GOCAD(const std::string& fname, std::pair& name_and_color, Graph& g, - typename boost::disable_if >::type* = nullptr) -{ - return read_GOCAD(fname, name_and_color, g, parameters::all_default()); -} - -template -bool read_GOCAD(const std::string& fname, Graph& g, const CGAL_BGL_NP_CLASS& np, +template +bool read_GOCAD(const std::string& fname, Graph& g, const CGAL_NP_CLASS& np = parameters::default_values(), typename boost::disable_if >::type* = nullptr) { std::pair dummy; return read_GOCAD(fname, dummy, g, np); } -template -bool read_GOCAD(const std::string& fname, Graph& g, - typename boost::disable_if >::type* = nullptr) -{ - return read_GOCAD(fname, g, parameters::all_default()); -} - /// \endcond //////////////////////////////////////////////////////////////////////////////////////////////////// @@ -277,11 +245,11 @@ /// \returns `true` if writing was successful, `false` otherwise. /// template + typename CGAL_NP_TEMPLATE_PARAMETERS> bool write_GOCAD(std::ostream& os, const char* name, const Graph& g, - const CGAL_BGL_NP_CLASS& np + const CGAL_NP_CLASS& np = parameters::default_values() #ifndef DOXYGEN_RUNNING , typename boost::disable_if >::type* = nullptr #endif @@ -295,7 +263,7 @@ using parameters::choose_parameter; using parameters::get_parameter; - typename CGAL::GetVertexPointMap::const_type + typename CGAL::GetVertexPointMap::const_type vpm = choose_parameter(get_parameter(np, internal_np::vertex_point), get_const_property_map(CGAL::vertex_point, g)); @@ -341,17 +309,6 @@ return os.good(); } -/// \cond SKIP_IN_MANUAL - -template -bool write_GOCAD(std::ostream& os, const char* name, const Graph& g, - typename boost::disable_if >::type* = nullptr) -{ - return write_GOCAD(os, name, g, parameters::all_default()); -} - -/// \endcond - /// \ingroup PkgBGLIoFuncsGOCAD /// /// \brief writes the graph `g` in the \ref IOStreamGocad into `os`. @@ -385,10 +342,10 @@ /// \returns `true` if writing was successful, `false` otherwise. /// template + typename CGAL_NP_TEMPLATE_PARAMETERS> bool write_GOCAD(std::ostream& os, const Graph& g, - const CGAL_BGL_NP_CLASS& np + const CGAL_NP_CLASS& np = parameters::default_values() #ifndef DOXYGEN_RUNNING , typename boost::disable_if >::type* = nullptr #endif @@ -397,17 +354,6 @@ return write_GOCAD(os, "anonymous", g, np); } -/// \cond SKIP_IN_MANUAL - -template -bool write_GOCAD(std::ostream& os, const Graph& g, - typename boost::disable_if >::type* = nullptr) -{ - return write_GOCAD(os, g, parameters::all_default()); -} - -/// \endcond - /// \ingroup PkgBGLIoFuncsGOCAD /// /// \brief writes the graph `g` into a file named `fname`, using the \ref IOStreamGocad. @@ -441,10 +387,10 @@ /// \sa Overloads of this function for specific models of the concept `FaceGraph`. /// template + typename CGAL_NP_TEMPLATE_PARAMETERS> bool write_GOCAD(const std::string& fname, const Graph& g, - const CGAL_BGL_NP_CLASS& np + const CGAL_NP_CLASS& np = parameters::default_values() #ifndef DOXYGEN_RUNNING , typename boost::disable_if >::type* = nullptr #endif @@ -456,17 +402,6 @@ return write_GOCAD(os, fname.c_str(), g, np); } -/// \cond SKIP_IN_MANUAL - -template -bool write_GOCAD(const std::string& fname, const Graph& g, - typename boost::disable_if >::type* = nullptr) -{ - return write_GOCAD(fname, g, parameters::all_default()); -} - -/// \endcond - }} // namespace CGAL::IO #endif // CGAL_BGL_IO_GOCAD_H diff -Nru cgal-5.4.1/include/CGAL/boost/graph/IO/INP.h cgal-5.5/include/CGAL/boost/graph/IO/INP.h --- cgal-5.4.1/include/CGAL/boost/graph/IO/INP.h 2022-06-03 19:03:48.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/IO/INP.h 2022-07-13 19:04:34.000000000 +0000 @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/BGL/include/CGAL/boost/graph/IO/INP.h $ -// $Id: INP.h d6b2c8d 2021-05-18T18:13:38+02:00 Laurent Rineau +// $URL: https://github.com/CGAL/cgal/blob/v5.5/BGL/include/CGAL/boost/graph/IO/INP.h $ +// $Id: INP.h 10b0af3 2022-01-13T14:43:34+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Andreas Fabri @@ -13,7 +13,7 @@ #define CGAL_BGL_IO_INP_H #include -#include +#include #include #include @@ -27,18 +27,18 @@ /// \cond SKIP_IN_MANUAL -template +template bool write_INP(std::ostream& os, const std::string& name, const std::string& type, const Graph& g, - const CGAL_BGL_NP_CLASS& np) + const CGAL_NP_CLASS& np = parameters::default_values()) { typedef typename boost::graph_traits::vertex_descriptor vertex_descriptor; typedef typename boost::graph_traits::face_descriptor face_descriptor; typedef typename boost::graph_traits::vertices_size_type vertices_size_type; - typedef typename CGAL::GetVertexPointMap::const_type VPM; + typedef typename CGAL::GetVertexPointMap::const_type VPM; typedef typename boost::property_traits::reference Point_ref; using parameters::choose_parameter; @@ -76,46 +76,26 @@ return os.good(); } -template +template bool write_INP(const std::string& fname, const std::string& type, const Graph& g, - const CGAL_BGL_NP_CLASS& np) + const CGAL_NP_CLASS& np = parameters::default_values() ) { std::ofstream os(fname); return write_INP(os, fname, type, g, np); } -template -bool write_INP(std::ostream& os, const std::string& name, const std::string& type, const Graph& g) -{ - return write_INP(os, name, type, g, parameters::all_default()); -} - -template -bool write_INP(const std::string& fname, const std::string& type, const Graph& g) -{ - return write_INP(fname, type, g, parameters::all_default()); -} - #ifndef CGAL_NO_DEPRECATED_CODE -template +template CGAL_DEPRECATED bool write_inp(std::ostream& os, const FaceGraph& g, std::string name, std::string type, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { return write_INP(os, name, type, g, np); } -template -CGAL_DEPRECATED bool write_inp(std::ostream& os, - const FaceGraph& g, - std::string name, - std::string type) -{ - return write_INP(os, name, type, g, parameters::all_default()); -} #endif /// \endcond diff -Nru cgal-5.4.1/include/CGAL/boost/graph/IO/OBJ.h cgal-5.5/include/CGAL/boost/graph/IO/OBJ.h --- cgal-5.4.1/include/CGAL/boost/graph/IO/OBJ.h 2022-06-03 19:03:48.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/IO/OBJ.h 2022-07-13 19:04:34.000000000 +0000 @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/BGL/include/CGAL/boost/graph/IO/OBJ.h $ -// $Id: OBJ.h a34debc 2021-06-23T22:56:35+02:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/BGL/include/CGAL/boost/graph/IO/OBJ.h $ +// $Id: OBJ.h 10b0af3 2022-01-13T14:43:34+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Andreas Fabri @@ -18,7 +18,7 @@ #include #include -#include +#include #include #include @@ -28,11 +28,6 @@ #include #include -#ifdef DOXYGEN_RUNNING -#define CGAL_BGL_NP_TEMPLATE_PARAMETERS NamedParameters -#define CGAL_BGL_NP_CLASS NamedParameters -#endif - namespace CGAL { //////////////////////////////////////////////////////////////////////////////////////////////////// @@ -109,33 +104,22 @@ \sa Overloads of this function for specific models of the concept `FaceGraph`. */ template + typename CGAL_NP_TEMPLATE_PARAMETERS> bool read_OBJ(std::istream& is, Graph& g, - const CGAL_BGL_NP_CLASS& np + const CGAL_NP_CLASS& np = parameters::default_values() #ifndef DOXYGEN_RUNNING , typename boost::disable_if >::type* = nullptr #endif ) { - typedef typename CGAL::GetVertexPointMap::type VPM; + typedef typename CGAL::GetVertexPointMap::type VPM; typedef typename boost::property_traits::value_type Point; internal::OBJ_builder builder(is); return builder(g, np); } -/// \cond SKIP_IN_MANUAL - -template -bool read_OBJ(std::istream& is, Graph& g, - typename boost::disable_if >::type* = nullptr) -{ - return read_OBJ(is, g, parameters::all_default()); -} - -/// \endcond - /*! \ingroup PkgBGLIoFuncsOBJ @@ -176,10 +160,10 @@ \sa Overloads of this function for specific models of the concept `FaceGraph`. */ template + typename CGAL_NP_TEMPLATE_PARAMETERS> bool read_OBJ(const std::string& fname, Graph& g, - const CGAL_BGL_NP_CLASS& np + const CGAL_NP_CLASS& np = parameters::default_values() #ifndef DOXYGEN_RUNNING , typename boost::disable_if >::type* = nullptr #endif @@ -190,17 +174,6 @@ return read_OBJ(is, g, np); } -/// \cond SKIP_IN_MANUAL - -template -bool read_OBJ(const std::string& fname, Graph& g, - typename boost::disable_if >::type* = nullptr) -{ - return read_OBJ(fname, g, parameters::all_default()); -} - -/// \endcond - //////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////// // Write @@ -239,10 +212,10 @@ \sa Overloads of this function for specific models of the concept `FaceGraph`. */ template + typename CGAL_NP_TEMPLATE_PARAMETERS> bool write_OBJ(std::ostream& os, const Graph& g, - const CGAL_BGL_NP_CLASS& np + const CGAL_NP_CLASS& np = parameters::default_values() #ifndef DOXYGEN_RUNNING , typename boost::disable_if >::type* = nullptr #endif @@ -252,17 +225,6 @@ return printer(g, np); } -/// \cond SKIP_IN_MANUAL - -template -bool write_OBJ(std::ostream& os, const Graph& g, - typename boost::disable_if >::type* = nullptr) -{ - return write_OBJ(os, g, parameters::all_default()); -} - -/// \endcond - /*! \ingroup PkgBGLIoFuncsOBJ @@ -296,10 +258,10 @@ \sa Overloads of this function for specific models of the concept `FaceGraph`. */ template + typename CGAL_NP_TEMPLATE_PARAMETERS> bool write_OBJ(const std::string& fname, const Graph& g, - const CGAL_BGL_NP_CLASS& np + const CGAL_NP_CLASS& np = parameters::default_values() #ifndef DOXYGEN_RUNNING , typename boost::disable_if >::type* = nullptr #endif @@ -310,17 +272,6 @@ return write_OBJ(os, g, np); } -/// \cond SKIP_IN_MANUAL - -template -bool write_OBJ(const std::string& fname, const Graph& g, - typename boost::disable_if >::type* = nullptr) -{ - return write_OBJ(fname, g, parameters::all_default()); -} - -/// \endcond - }} // namespace CGAL::IO #endif // CGAL_BGL_IO_OBJ_H diff -Nru cgal-5.4.1/include/CGAL/boost/graph/IO/OFF.h cgal-5.5/include/CGAL/boost/graph/IO/OFF.h --- cgal-5.4.1/include/CGAL/boost/graph/IO/OFF.h 2022-06-03 19:03:48.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/IO/OFF.h 2022-07-13 19:04:34.000000000 +0000 @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/BGL/include/CGAL/boost/graph/IO/OFF.h $ -// $Id: OFF.h a34debc 2021-06-23T22:56:35+02:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/BGL/include/CGAL/boost/graph/IO/OFF.h $ +// $Id: OFF.h 10b0af3 2022-01-13T14:43:34+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Andreas Fabri @@ -19,7 +19,7 @@ #include #include -#include +#include #include #include @@ -28,12 +28,6 @@ #include #include -#ifdef DOXYGEN_RUNNING -#define CGAL_BGL_NP_TEMPLATE_PARAMETERS NamedParameters -#define CGAL_BGL_NP_CLASS NamedParameters -#define CGAL_DEPRECATED -#endif - namespace CGAL { //////////////////////////////////////////////////////////////////////////////////////////////////// @@ -70,12 +64,12 @@ // Because some packages can provide overloads with the same signature to automatically initialize // property maps (see Surface_mesh/IO/ for example) -template +template bool read_OFF_BGL(std::istream& is, Graph& g, - const CGAL_BGL_NP_CLASS& np) + const CGAL_NP_CLASS& np) { - typedef typename CGAL::GetVertexPointMap::type VPM; + typedef typename CGAL::GetVertexPointMap::type VPM; typedef typename boost::property_traits::value_type Point; internal::OFF_builder builder(is); @@ -156,10 +150,10 @@ \sa Overloads of this function for specific models of the concept `FaceGraph`. */ template + typename CGAL_NP_TEMPLATE_PARAMETERS> bool read_OFF(std::istream& is, Graph& g, - const CGAL_BGL_NP_CLASS& np + const CGAL_NP_CLASS& np = parameters::default_values() #ifndef DOXYGEN_RUNNING , typename boost::disable_if >::type* = nullptr #endif @@ -168,17 +162,6 @@ return internal::read_OFF_BGL(is, g, np); } -/// \cond SKIP_IN_MANUAL - -template -bool read_OFF(std::istream& is, Graph& g, - typename boost::disable_if >::type* = nullptr) -{ - return read_OFF(is, g, parameters::all_default()); -} - -/// \endcond - /*! \ingroup PkgBGLIoFuncsOFF @@ -251,10 +234,10 @@ \sa Overloads of this function for specific models of the concept `FaceGraph`. */ template + typename CGAL_NP_TEMPLATE_PARAMETERS> bool read_OFF(const std::string& fname, Graph& g, - const CGAL_BGL_NP_CLASS& np + const CGAL_NP_CLASS& np = parameters::default_values() #ifndef DOXYGEN_RUNNING , typename boost::disable_if >::type* = nullptr #endif @@ -264,17 +247,6 @@ return read_OFF(is, g, np); } -/// \cond SKIP_IN_MANUAL - -template -bool read_OFF(const std::string& fname, Graph& g, - typename boost::disable_if >::type* = nullptr) -{ - return read_OFF(fname, g, parameters::all_default()); -} - -/// \endcond - } // namespace IO #ifndef CGAL_NO_DEPRECATED_CODE @@ -284,8 +256,8 @@ \deprecated This function is deprecated since \cgal 5.3, `CGAL::IO::read_OFF()` should be used instead. */ -template -CGAL_DEPRECATED bool read_off(std::istream& is, Graph& g, const CGAL_BGL_NP_CLASS& np) +template +CGAL_DEPRECATED bool read_off(std::istream& is, Graph& g, const CGAL_NP_CLASS& np = parameters::default_values()) { return IO::read_OFF(is, g, np); } @@ -295,28 +267,15 @@ \deprecated This function is deprecated since \cgal 5.3, `CGAL::IO::read_OFF()` should be used instead. */ -template -CGAL_DEPRECATED bool read_off(const char* fname, Graph& g, const CGAL_BGL_NP_CLASS& np) +template +CGAL_DEPRECATED bool read_off(const char* fname, Graph& g, const CGAL_NP_CLASS& np = parameters::default_values()) { return IO::read_OFF(fname, g, np); } - -template -CGAL_DEPRECATED bool read_off(std::istream& is, Graph& g) -{ - return read_off(is, g, parameters::all_default()); -} - -template -CGAL_DEPRECATED bool read_off(const char* fname, Graph& g) -{ - return read_off(fname, g, parameters::all_default()); -} - template CGAL_DEPRECATED bool read_off(const std::string& fname, Graph& g) { - return read_off(fname.c_str(), g, parameters::all_default()); + return read_off(fname.c_str(), g, parameters::default_values()); } #endif // CGAL_NO_DEPRECATED_CODE @@ -328,10 +287,10 @@ namespace IO { namespace internal { -template +template bool write_OFF_BGL(std::ostream& os, const Graph& g, - const CGAL_BGL_NP_CLASS& np) + const CGAL_NP_CLASS& np) { internal::Generic_facegraph_printer printer(os); return printer(g, np); @@ -401,10 +360,10 @@ \sa Overloads of this function for specific models of the concept `FaceGraph`. */ template + typename CGAL_NP_TEMPLATE_PARAMETERS> bool write_OFF(std::ostream& os, const Graph& g, - const CGAL_BGL_NP_CLASS& np + const CGAL_NP_CLASS& np = parameters::default_values() #ifndef DOXYGEN_RUNNING , typename boost::disable_if >::type* = nullptr #endif @@ -413,17 +372,6 @@ return internal::write_OFF_BGL(os, g, np); } -/// \cond SKIP_IN_MANUAL - -template -bool write_OFF(std::ostream& os, const Graph& g, - typename boost::disable_if >::type* = nullptr) -{ - return write_OFF(os, g, parameters::all_default()); -} - -/// \endcond - /*! \ingroup PkgBGLIoFuncsOFF @@ -486,10 +434,10 @@ \sa Overloads of this function for specific models of the concept `FaceGraph`. */ template + typename CGAL_NP_TEMPLATE_PARAMETERS> bool write_OFF(const std::string& fname, const Graph& g, - const CGAL_BGL_NP_CLASS& np + const CGAL_NP_CLASS& np = parameters::default_values() #ifndef DOXYGEN_RUNNING , typename boost::disable_if >::type* = nullptr #endif @@ -505,17 +453,6 @@ return write_OFF(os, g, np); } -/// \cond SKIP_IN_MANUAL - -template -bool write_OFF(const std::string& fname, const Graph& g, - typename boost::disable_if >::type* = nullptr) -{ - return write_OFF(fname, g, parameters::all_default()); -} - -/// \endcond - } // namespace IO #ifndef CGAL_NO_DEPRECATED_CODE @@ -525,33 +462,23 @@ \deprecated This function is deprecated since \cgal 5.3, `CGAL::IO::write_OFF()` should be used instead. */ -template -CGAL_DEPRECATED bool write_off(std::ostream& os, const Graph& g, const CGAL_BGL_NP_CLASS& np) +template +CGAL_DEPRECATED bool write_off(std::ostream& os, const Graph& g, const CGAL_NP_CLASS& np = parameters::default_values()) { return IO::write_OFF(os, g, np); } -template -CGAL_DEPRECATED bool write_off(std::ostream& os, const Graph& g) -{ - return write_off(os, g, CGAL::parameters::all_default()); -} /*! \ingroup PkgBGLIOFctDeprecated \deprecated This function is deprecated since \cgal 5.3, `CGAL::IO::write_OFF()` should be used instead. */ -template -CGAL_DEPRECATED bool write_off(const char* fname, const Graph& g, const CGAL_BGL_NP_CLASS& np) +template +CGAL_DEPRECATED bool write_off(const char* fname, const Graph& g, const CGAL_NP_CLASS& np = parameters::default_values()) { return IO::write_OFF(fname, g, np); } -template -CGAL_DEPRECATED bool write_off(const char* fname, const Graph& g) -{ - return write_off(fname, g, parameters::all_default()); -} #endif // CGAL_NO_DEPRECATED_CODE } // namespace CGAL diff -Nru cgal-5.4.1/include/CGAL/boost/graph/IO/PLY.h cgal-5.5/include/CGAL/boost/graph/IO/PLY.h --- cgal-5.4.1/include/CGAL/boost/graph/IO/PLY.h 2022-06-03 19:03:48.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/IO/PLY.h 2022-07-13 19:04:34.000000000 +0000 @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/BGL/include/CGAL/boost/graph/IO/PLY.h $ -// $Id: PLY.h 4eb1464 2021-11-09T11:21:24+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/BGL/include/CGAL/boost/graph/IO/PLY.h $ +// $Id: PLY.h 477353d 2022-04-20T15:55:50+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Andreas Fabri @@ -16,7 +16,7 @@ #include #include -#include +#include #include #include @@ -24,11 +24,6 @@ #include #include -#ifdef DOXYGEN_RUNNING -#define CGAL_BGL_NP_TEMPLATE_PARAMETERS NamedParameters -#define CGAL_BGL_NP_CLASS NamedParameters -#endif - namespace CGAL { //////////////////////////////////////////////////////////////////////////////////////////////////// @@ -63,12 +58,12 @@ } }; -template +template bool read_PLY_BGL(std::istream& is, Graph& g, - const CGAL_BGL_NP_CLASS& np) + const CGAL_NP_CLASS& np = parameters::default_values()) { - typedef typename CGAL::GetVertexPointMap::type VPM; + typedef typename CGAL::GetVertexPointMap::type VPM; typedef typename boost::property_traits::value_type Point; internal::PLY_builder builder(is); @@ -136,10 +131,10 @@ \sa Overloads of this function for specific models of the concept `FaceGraph`. */ template + typename CGAL_NP_TEMPLATE_PARAMETERS> bool read_PLY(std::istream& is, Graph& g, - const CGAL_BGL_NP_CLASS& np + const CGAL_NP_CLASS& np = parameters::default_values() #ifndef DOXYGEN_RUNNING , typename boost::disable_if >::type* = nullptr #endif @@ -148,17 +143,6 @@ return internal::read_PLY_BGL(is, g, np); } -/// \cond SKIP_IN_MANUAL - -template -bool read_PLY(std::istream& is, Graph& g, - typename boost::disable_if >::type* = nullptr) -{ - return internal::read_PLY_BGL(is, g, parameters::all_default()); -} - -/// \endcond - /*! \ingroup PkgBGLIoFuncsPLY @@ -222,10 +206,10 @@ \sa Overloads of this function for specific models of the concept `FaceGraph`. */ template + typename CGAL_NP_TEMPLATE_PARAMETERS> bool read_PLY(const std::string& fname, Graph& g, - const CGAL_BGL_NP_CLASS& np + const CGAL_NP_CLASS& np = parameters::default_values() #ifndef DOXYGEN_RUNNING , typename boost::disable_if >::type* = nullptr #endif @@ -246,17 +230,6 @@ } } -/// \cond SKIP_IN_MANUAL - -template -bool read_PLY(const std::string& fname, Graph& g, - typename boost::disable_if >::type* = nullptr) -{ - return read_PLY(fname, g, parameters::all_default()); -} - -/// \endcond - //////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////// // Write @@ -319,11 +292,11 @@ \returns `true` if writing was successful, `false` otherwise. */ -template +template bool write_PLY(std::ostream& os, const Graph& g, const std::string& comments, - const CGAL_BGL_NP_CLASS& np + const CGAL_NP_CLASS& np = parameters::default_values() #ifndef DOXYGEN_RUNNING , typename boost::disable_if >::type* = nullptr #endif @@ -333,17 +306,17 @@ typedef typename boost::graph_traits::halfedge_descriptor halfedge_descriptor; typedef typename boost::graph_traits::face_descriptor face_descriptor; - typedef typename CGAL::GetInitializedVertexIndexMap::const_type VIMap; - typedef typename GetVertexPointMap::const_type Vpm; + typedef typename CGAL::GetInitializedVertexIndexMap::const_type VIMap; + typedef typename GetVertexPointMap::const_type Vpm; typedef typename boost::property_traits::value_type Point_3; typedef CGAL::IO::Color Color; typedef typename internal_np::Lookup_named_param_def< internal_np::vertex_color_map_t, - CGAL_BGL_NP_CLASS, + CGAL_NP_CLASS, Constant_property_map >::type VCM; typedef typename internal_np::Lookup_named_param_def< internal_np::face_color_map_t, - CGAL_BGL_NP_CLASS, + CGAL_NP_CLASS, Constant_property_map >::type FCM; using parameters::choose_parameter; @@ -353,8 +326,8 @@ VCM vcm = choose_parameter(get_parameter(np, internal_np::vertex_color_map), VCM()); FCM fcm = choose_parameter(get_parameter(np, internal_np::face_color_map), FCM()); - bool has_vcolor = !is_default_parameter(get_parameter(np, internal_np::vertex_color_map)); - bool has_fcolor = !is_default_parameter(get_parameter(np, internal_np::face_color_map)); + bool has_vcolor = !is_default_parameter::value; + bool has_fcolor = !is_default_parameter::value; VIMap vim = CGAL::get_initialized_vertex_index_map(g, np); Vpm vpm = choose_parameter(get_parameter(np, internal_np::vertex_point), get_const_property_map(boost::vertex_point, g)); @@ -446,27 +419,13 @@ /// \cond SKIP_IN_MANUAL -template -bool write_PLY(std::ostream& os, const Graph& g, const std::string& comments, - typename boost::disable_if >::type* = nullptr) -{ - return write_PLY(os, g, comments, parameters::all_default()); -} - -template -bool write_PLY(std::ostream& os, const Graph& g, const CGAL_BGL_NP_CLASS& np, +template +bool write_PLY(std::ostream& os, const Graph& g, const CGAL_NP_CLASS& np = parameters::default_values(), typename boost::disable_if >::type* = nullptr) { return write_PLY(os, g, std::string(), np); } -template -bool write_PLY(std::ostream& os, const Graph& g, - typename boost::disable_if >::type* = nullptr) -{ - return write_PLY(os, g, std::string(), parameters::all_default()); -} - /// \endcond /*! @@ -529,11 +488,11 @@ \returns `true` if writing was successful, `false` otherwise. */ -template +template bool write_PLY(const std::string& fname, const Graph& g, const std::string& comments, - const CGAL_BGL_NP_CLASS& np + const CGAL_NP_CLASS& np = parameters::default_values() #ifndef DOXYGEN_RUNNING , typename boost::disable_if >::type* = nullptr #endif @@ -557,27 +516,13 @@ /// \cond SKIP_IN_MANUAL -template -bool write_PLY(const std::string& fname, const Graph& g, const std::string comments, - typename boost::disable_if >::type* = nullptr) -{ - return write_PLY(fname, g, comments, parameters::all_default()); -} - -template -bool write_PLY(const std::string& fname, const Graph& g, const CGAL_BGL_NP_CLASS& np, +template +bool write_PLY(const std::string& fname, const Graph& g, const CGAL_NP_CLASS& np = parameters::default_values(), typename boost::disable_if >::type* = nullptr) { return write_PLY(fname, g, std::string(), np); } -template -bool write_PLY(const std::string& fname, const Graph& g, - typename boost::disable_if >::type* = nullptr) -{ - return write_PLY(fname, g, std::string(), parameters::all_default()); -} - /// \endcond } } // namespace CGAL::IO diff -Nru cgal-5.4.1/include/CGAL/boost/graph/IO/polygon_mesh_io.h cgal-5.5/include/CGAL/boost/graph/IO/polygon_mesh_io.h --- cgal-5.4.1/include/CGAL/boost/graph/IO/polygon_mesh_io.h 2022-06-03 19:03:48.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/IO/polygon_mesh_io.h 2022-07-13 19:04:34.000000000 +0000 @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/BGL/include/CGAL/boost/graph/IO/polygon_mesh_io.h $ -// $Id: polygon_mesh_io.h 78ff918 2021-06-23T23:34:14+02:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/BGL/include/CGAL/boost/graph/IO/polygon_mesh_io.h $ +// $Id: polygon_mesh_io.h 75b03e6 2022-01-10T15:33:04+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Maxime Gimeno @@ -36,10 +36,10 @@ //not for now : some readers will return "ok" despite not managing to read anything /* -template +template bool read_polygon_mesh(std::istream& is, Graph& g, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { bool ok = false; ok = read_OFF(is, g, np, false); @@ -70,12 +70,6 @@ return ok; } -template -bool read_polygon_mesh(std::istream& is, - Graph& g) -{ - return read_polygon_mesh(is, g, parameters::all_default()); -} */ /*! @@ -125,10 +119,10 @@ * * \sa \link PMP_IO_grp `CGAL::Polygon_mesh_processing::IO::read_polygon_mesh()`\endlink if the data is not 2-manifold */ -template +template bool read_polygon_mesh(const std::string& fname, Graph& g, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { const bool verbose = parameters::choose_parameter(parameters::get_parameter(np, internal_np::verbose), false); @@ -164,16 +158,6 @@ return false; } -/// \cond SKIP_IN_MANUAL - -template -bool read_polygon_mesh(const std::string& fname, Graph& g) -{ - return read_polygon_mesh(fname, g, parameters::all_default()); -} - -/// \endcond - //////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////// // Write @@ -228,10 +212,10 @@ * * \return `true` if writing was successful, `false` otherwise. */ -template +template bool write_polygon_mesh(const std::string& fname, Graph& g, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { const bool verbose = parameters::choose_parameter(parameters::get_parameter(np, internal_np::verbose), false); @@ -267,16 +251,6 @@ return false; } -/// \cond SKIP_IN_MANUAL - -template -bool write_polygon_mesh(const std::string& fname, Graph& g) -{ - return write_polygon_mesh(fname, g, parameters::all_default()); -} - -/// \endcond - }} // namespace CGAL::IO #endif // CGAL_BOOST_GRAPH_POLYGON_MESH_IO_H diff -Nru cgal-5.4.1/include/CGAL/boost/graph/IO/STL.h cgal-5.5/include/CGAL/boost/graph/IO/STL.h --- cgal-5.4.1/include/CGAL/boost/graph/IO/STL.h 2022-06-03 19:03:48.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/IO/STL.h 2022-07-13 19:04:34.000000000 +0000 @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/BGL/include/CGAL/boost/graph/IO/STL.h $ -// $Id: STL.h ad79d37 2021-09-29T11:46:30+02:00 Laurent Rineau +// $URL: https://github.com/CGAL/cgal/blob/v5.5/BGL/include/CGAL/boost/graph/IO/STL.h $ +// $Id: STL.h 1d4a0b9 2022-03-25T08:29:36+01:00 Andreas Fabri // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Andreas Fabri @@ -23,11 +23,6 @@ #include #include -#ifdef DOXYGEN_RUNNING -#define CGAL_BGL_NP_TEMPLATE_PARAMETERS NamedParameters -#define CGAL_BGL_NP_CLASS NamedParameters -#endif - namespace CGAL { //////////////////////////////////////////////////////////////////////////////////////////////////// @@ -103,12 +98,12 @@ \sa Overloads of this function for specific models of the concept `FaceGraph`. */ -template +template bool read_STL(std::istream& is, Graph& g, - const CGAL_BGL_NP_CLASS& np) + const CGAL_NP_CLASS& np) { - typedef typename CGAL::GetVertexPointMap::type VPM; + typedef typename CGAL::GetVertexPointMap::type VPM; typedef typename boost::property_traits::value_type Point; if(!is.good()) return false; @@ -160,10 +155,10 @@ \sa Overloads of this function for specific models of the concept `FaceGraph`. */ -template +template bool read_STL(const std::string& fname, Graph& g, const - CGAL_BGL_NP_CLASS& np) + CGAL_NP_CLASS& np = parameters::default_values()) { using parameters::choose_parameter; using parameters::get_parameter; @@ -182,7 +177,7 @@ std::ifstream is(fname); CGAL::IO::set_mode(is, CGAL::IO::ASCII); - typedef typename CGAL::GetVertexPointMap::type VPM; + typedef typename CGAL::GetVertexPointMap::type VPM; VPM vpm = choose_parameter(get_parameter(np, internal_np::vertex_point), get_property_map(CGAL::vertex_point, g)); bool v = choose_parameter(get_parameter(np, internal_np::verbose), @@ -193,9 +188,7 @@ /// \cond SKIP_IN_MANUAL template -bool read_STL(std::istream& is, Graph& g) { return read_STL(is, g, parameters::all_default()); } -template -bool read_STL(const std::string& fname, Graph& g) { return read_STL(fname, g, parameters::all_default()); } +bool read_STL(std::istream& is, Graph& g) { return read_STL(is, g, parameters::default_values()); } /// \endcond @@ -241,18 +234,19 @@ \returns `true` if writing was successful, `false` otherwise. */ -template +template bool write_STL(std::ostream& os, const Graph& g, - const CGAL_BGL_NP_CLASS& np) + const CGAL_NP_CLASS& np = parameters::default_values()) { typedef typename boost::graph_traits::halfedge_descriptor halfedge_descriptor; typedef typename boost::graph_traits::face_descriptor face_descriptor; - typedef typename CGAL::GetVertexPointMap::const_type VPM; + typedef typename CGAL::GetVertexPointMap::const_type VPM; typedef typename boost::property_traits::reference Point_ref; - typedef typename boost::property_traits::value_type Point; - typedef typename Kernel_traits::Kernel::Vector_3 Vector; + + typedef typename GetGeomTraits::type Kernel; + typedef typename Kernel::Vector_3 Vector; using parameters::choose_parameter; using parameters::get_parameter; @@ -260,6 +254,8 @@ VPM vpm = choose_parameter(get_parameter(np, internal_np::vertex_point), get_const_property_map(CGAL::vertex_point, g)); + Kernel k = choose_parameter(get_parameter(np, internal_np::geom_traits)); + if(!os.good()) return false; @@ -278,7 +274,7 @@ Point_ref q = get(vpm, target(next(h, g), g)); Point_ref r = get(vpm, source(h, g)); - Vector n = collinear(p, q, r) ? Vector(1, 0, 0) : unit_normal(p, q, r); + const Vector n = internal::construct_normal_of_STL_face(p, q, r, k); const float coords[12] = { @@ -298,11 +294,11 @@ os << "solid" << std::endl; for(const face_descriptor f : faces(g)) { - halfedge_descriptor h = halfedge(f, g); + const halfedge_descriptor h = halfedge(f, g); Point_ref p = get(vpm, target(h, g)); Point_ref q = get(vpm, target(next(h, g), g)); Point_ref r = get(vpm, source(h, g)); - Vector n = collinear(p, q, r) ? Vector(1, 0, 0) : unit_normal(p, q, r); + const Vector n = internal::construct_normal_of_STL_face(p, q, r, k); os << "facet normal " << n << "\nouter loop"<< "\n"; os << "vertex " << p << "\n"; @@ -358,8 +354,8 @@ \sa Overloads of this function for specific models of the concept `FaceGraph`. */ -template -bool write_STL(const std::string& fname, const Graph& g, const CGAL_BGL_NP_CLASS& np) +template +bool write_STL(const std::string& fname, const Graph& g, const CGAL_NP_CLASS& np = parameters::default_values()) { const bool binary = CGAL::parameters::choose_parameter(CGAL::parameters::get_parameter(np, internal_np::use_binary_mode), true); if(binary) @@ -377,15 +373,6 @@ } } -/// \cond SKIP_IN_MANUAL - -template -bool write_STL(std::ostream& os, const Graph& g) { return write_STL(os, g, parameters::all_default()); } -template -bool write_STL(const std::string& fname, const Graph& g) { return write_STL(fname, g, parameters::all_default()); } - -/// \endcond - }} // namespace CGAL::IO #endif // CGAL_BGL_IO_STL_H diff -Nru cgal-5.4.1/include/CGAL/boost/graph/IO/Tds_2_off.h cgal-5.5/include/CGAL/boost/graph/IO/Tds_2_off.h --- cgal-5.4.1/include/CGAL/boost/graph/IO/Tds_2_off.h 2022-06-03 19:03:48.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/IO/Tds_2_off.h 2022-07-13 19:04:34.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/BGL/include/CGAL/boost/graph/IO/Tds_2_off.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/BGL/include/CGAL/boost/graph/IO/Tds_2_off.h $ // $Id: Tds_2_off.h 5948bc8 2021-01-11T13:12:18+01:00 Maxime Gimeno // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/boost/graph/IO/VTK.h cgal-5.5/include/CGAL/boost/graph/IO/VTK.h --- cgal-5.4.1/include/CGAL/boost/graph/IO/VTK.h 2022-06-03 19:03:48.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/IO/VTK.h 2022-07-13 19:04:34.000000000 +0000 @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/BGL/include/CGAL/boost/graph/IO/VTK.h $ -// $Id: VTK.h 78ff918 2021-06-23T23:34:14+02:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/BGL/include/CGAL/boost/graph/IO/VTK.h $ +// $Id: VTK.h 10b0af3 2022-01-13T14:43:34+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Andreas Fabri @@ -16,7 +16,7 @@ #include #include -#include +#include #include #include @@ -32,12 +32,6 @@ #if defined(CGAL_USE_VTK) || defined(DOXYGEN_RUNNING) -#ifdef DOXYGEN_RUNNING -#define CGAL_BGL_NP_TEMPLATE_PARAMETERS NamedParameters -#define CGAL_BGL_NP_CLASS NamedParameters -#define CGAL_DEPRECATED -#endif - namespace CGAL { //////////////////////////////////////////////////////////////////////////////////////////////////// @@ -146,10 +140,10 @@ * \returns `true` if reading was successful, `false` otherwise. */ template + typename CGAL_NP_TEMPLATE_PARAMETERS> bool read_VTP(const std::string& fname, Graph& g, - const CGAL_BGL_NP_CLASS& np) + const CGAL_NP_CLASS& np = parameters::default_values()) { std::ifstream test(fname); if(!test.good()) @@ -168,13 +162,6 @@ return internal::vtkPointSet_to_polygon_mesh(data, g, np); } -/// \cond SKIP_IN_MANUAL - -template -bool read_VTP(const std::string& fname, Graph& g) { return read_VTP(fname, g, parameters::all_default()); } - -/// \endcond - //////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////// // Write @@ -425,10 +412,10 @@ * * \returns `true` if writing was successful, `false` otherwise. */ -template +template bool write_VTP(std::ostream& os, const Graph& g, - const CGAL_BGL_NP_CLASS& np) + const CGAL_NP_CLASS& np = parameters::default_values()) { using parameters::get_parameter; using parameters::choose_parameter; @@ -524,8 +511,8 @@ * * \returns `true` if writing was successful, `false` otherwise. */ -template -bool write_VTP(const std::string& fname, const Graph& g, const CGAL_BGL_NP_CLASS& np) +template +bool write_VTP(const std::string& fname, const Graph& g, const CGAL_NP_CLASS& np = parameters::default_values()) { const bool binary = CGAL::parameters::choose_parameter(CGAL::parameters::get_parameter(np, internal_np::use_binary_mode), true); std::ofstream os; @@ -539,14 +526,6 @@ return write_VTP(os, g, np); } -/// \cond SKIP_IN_MANUAL - -template -bool write_VTP(std::ostream& os, const Graph& g) { return write_VTP(os, g, CGAL::parameters::all_default()); } -template -bool write_VTP(const std::string& fname, const Graph& g) { return write_VTP(fname, g, parameters::all_default()); } - -/// \endcond } // namespace IO @@ -557,18 +536,12 @@ \deprecated This function is deprecated since \cgal 5.3, `CGAL::IO::write_VTP()` should be used instead. */ -template -CGAL_DEPRECATED bool write_vtp(std::ostream& os, const Graph& g, const CGAL_BGL_NP_CLASS& np) +template +CGAL_DEPRECATED bool write_vtp(std::ostream& os, const Graph& g, const CGAL_NP_CLASS& np = parameters::default_values()) { return IO::write_VTP(os, g, np); } -template -CGAL_DEPRECATED bool write_vtp(std::ostream& os, const Graph& g) -{ - return write_vtp(os, g, parameters::all_default()); -} - #endif // CGAL_NO_DEPRECATED_CODE } // namespace CGAL diff -Nru cgal-5.4.1/include/CGAL/boost/graph/IO/WRL.h cgal-5.5/include/CGAL/boost/graph/IO/WRL.h --- cgal-5.4.1/include/CGAL/boost/graph/IO/WRL.h 2022-06-03 19:03:48.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/IO/WRL.h 2022-07-13 19:04:34.000000000 +0000 @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/BGL/include/CGAL/boost/graph/IO/WRL.h $ -// $Id: WRL.h a34debc 2021-06-23T22:56:35+02:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/BGL/include/CGAL/boost/graph/IO/WRL.h $ +// $Id: WRL.h 10b0af3 2022-01-13T14:43:34+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Andreas Fabri @@ -16,18 +16,12 @@ #include -#include +#include #include #include #include -#ifdef DOXYGEN_RUNNING -#define CGAL_BGL_NP_TEMPLATE_PARAMETERS NamedParameters -#define CGAL_BGL_NP_CLASS NamedParameters -#define CGAL_DEPRECATED -#endif - namespace CGAL { namespace IO { @@ -67,10 +61,10 @@ \returns `true` if writing was successful, `false` otherwise. */ -template +template bool write_WRL(std::ostream& os, const Graph& g, - const CGAL_BGL_NP_CLASS& np) + const CGAL_NP_CLASS& np = parameters::default_values()) { CGAL::VRML_2_ostream vos(os); internal::Generic_facegraph_printer printer(vos); @@ -108,18 +102,13 @@ \returns `true` if writing was successful, `false` otherwise. */ -template -bool write_WRL(const std::string& fname, const Graph& g, const CGAL_BGL_NP_CLASS& np) +template +bool write_WRL(const std::string& fname, const Graph& g, const CGAL_NP_CLASS& np = parameters::default_values()) { std::ofstream os(fname); return write_WRL(os, g, np); } -template -bool write_WRL(std::ostream& os, const Graph& g) { return write_WRL(os, g, parameters::all_default()); } -template -bool write_WRL(const std::string& fname, const Graph& g) { return write_WRL(fname, g, parameters::all_default()); } - } // namespace IO #ifndef CGAL_NO_DEPRECATED_CODE @@ -129,18 +118,12 @@ \deprecated This function is deprecated since \cgal 5.3, `CGAL::IO::write_WRL()` should be used instead. */ -template -CGAL_DEPRECATED bool write_wrl(std::ostream& os, const Graph& g, const CGAL_BGL_NP_CLASS& np) +template +CGAL_DEPRECATED bool write_wrl(std::ostream& os, const Graph& g, const CGAL_NP_CLASS& np = parameters::default_values()) { return IO::write_WRL(os, g, np); } -template -CGAL_DEPRECATED bool write_wrl(std::ostream& os, const Graph& g) -{ - return write_wrl(os, g, parameters::all_default()); -} - #endif // CGAL_NO_DEPRECATED_CODE } // namespace CGAL diff -Nru cgal-5.4.1/include/CGAL/boost/graph/io.h cgal-5.5/include/CGAL/boost/graph/io.h --- cgal-5.4.1/include/CGAL/boost/graph/io.h 2022-06-03 19:03:49.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/io.h 2022-07-13 19:04:35.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/BGL/include/CGAL/boost/graph/io.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/BGL/include/CGAL/boost/graph/io.h $ // $Id: io.h f55ef7d 2020-10-09T18:36:17+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/boost/graph/iterator.h cgal-5.5/include/CGAL/boost/graph/iterator.h --- cgal-5.4.1/include/CGAL/boost/graph/iterator.h 2022-06-03 19:03:49.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/iterator.h 2022-07-13 19:04:35.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/BGL/include/CGAL/boost/graph/iterator.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/BGL/include/CGAL/boost/graph/iterator.h $ // $Id: iterator.h 320da5e 2020-11-18T07:43:12+00:00 Giles Bathgate // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/boost/graph/kruskal_min_spanning_tree.h cgal-5.5/include/CGAL/boost/graph/kruskal_min_spanning_tree.h --- cgal-5.4.1/include/CGAL/boost/graph/kruskal_min_spanning_tree.h 1970-01-01 00:00:00.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/kruskal_min_spanning_tree.h 2022-07-13 19:04:35.000000000 +0000 @@ -0,0 +1,29 @@ +// Copyright (c) 2021 GeometryFactory (France). All rights reserved. +// +// This file is part of CGAL (www.cgal.org) +// +// $URL: https://github.com/CGAL/cgal/blob/v5.5/BGL/include/CGAL/boost/graph/kruskal_min_spanning_tree.h $ +// $Id: kruskal_min_spanning_tree.h 5f3e3b2 2022-05-05T08:46:11+01:00 Andreas Fabri +// SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial +// +// +// Author(s) : Sebastien Loriot + +#ifndef CGAL_BOOST_GRAPH_KRUSKAL_MIN_SPANNING_TREE_H +#define CGAL_BOOST_GRAPH_KRUSKAL_MIN_SPANNING_TREE_H + +// This will push/pop a VC++ warning +#include + +#if defined(BOOST_MSVC) +# pragma warning(push) +# pragma warning(disable:4172) // Address warning inside boost named parameters +#endif + +#include + +#if defined(BOOST_MSVC) +# pragma warning(pop) +#endif + +#endif // CGAL_BOOST_GRAPH_KRUSKAL_MIN_SPANNING_TREE_H diff -Nru cgal-5.4.1/include/CGAL/boost/graph/METIS/partition_dual_graph.h cgal-5.5/include/CGAL/boost/graph/METIS/partition_dual_graph.h --- cgal-5.4.1/include/CGAL/boost/graph/METIS/partition_dual_graph.h 2022-06-03 19:03:48.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/METIS/partition_dual_graph.h 2022-07-13 19:04:34.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/BGL/include/CGAL/boost/graph/METIS/partition_dual_graph.h $ -// $Id: partition_dual_graph.h 4f02dd2 2021-11-22T13:06:46+01:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/BGL/include/CGAL/boost/graph/METIS/partition_dual_graph.h $ +// $Id: partition_dual_graph.h 75b03e6 2022-01-10T15:33:04+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Mael Rouxel-Labbé @@ -17,7 +17,7 @@ #include #include #include -#include +#include #include #include @@ -184,20 +184,14 @@ /// /// \pre `tm` is a pure triangular surface mesh: there are no edges /// without at least one incident face -template -void partition_dual_graph(const TriangleMesh& tm, int nparts, const NamedParameters& np) +template +void partition_dual_graph(const TriangleMesh& tm, int nparts, const NamedParameters& np = parameters::default_values()) { using parameters::get_parameter; return partition_dual_graph(tm, nparts, get_parameter(np, internal_np::METIS_options), np); } -template -void partition_dual_graph(const TriangleMesh& tm, const int nparts) -{ - return partition_dual_graph(tm, nparts, CGAL::parameters::all_default()); -} - } // end namespace METIS } // end namespace CGAL diff -Nru cgal-5.4.1/include/CGAL/boost/graph/METIS/partition_graph.h cgal-5.5/include/CGAL/boost/graph/METIS/partition_graph.h --- cgal-5.4.1/include/CGAL/boost/graph/METIS/partition_graph.h 2022-06-03 19:03:48.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/METIS/partition_graph.h 2022-07-13 19:04:34.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/BGL/include/CGAL/boost/graph/METIS/partition_graph.h $ -// $Id: partition_graph.h 4f02dd2 2021-11-22T13:06:46+01:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/BGL/include/CGAL/boost/graph/METIS/partition_graph.h $ +// $Id: partition_graph.h 75b03e6 2022-01-10T15:33:04+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Mael Rouxel-Labbé @@ -15,7 +15,7 @@ #include #include #include -#include +#include #include #include @@ -217,20 +217,14 @@ /// /// \pre `tm` is a pure triangular surface mesh: there are no edges /// without at least one incident face -template -void partition_graph(const TriangleMesh& tm, int nparts, const NamedParameters& np) +template +void partition_graph(const TriangleMesh& tm, int nparts, const NamedParameters& np = parameters::default_values()) { using parameters::get_parameter; return partition_graph(tm, nparts, get_parameter(np, internal_np::METIS_options), np); } -template -void partition_graph(const TriangleMesh& tm, const int nparts) -{ - return partition_graph(tm, nparts, CGAL::parameters::all_default()); -} - } // end namespace METIS } // end namespace CGAL diff -Nru cgal-5.4.1/include/CGAL/boost/graph/Named_function_parameters.h cgal-5.5/include/CGAL/boost/graph/Named_function_parameters.h --- cgal-5.4.1/include/CGAL/boost/graph/Named_function_parameters.h 2022-06-03 19:03:48.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/Named_function_parameters.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,379 +0,0 @@ -// Copyright (c) 2019 GeometryFactory (France). All rights reserved. -// -// This file is part of CGAL (www.cgal.org) -// -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/BGL/include/CGAL/boost/graph/Named_function_parameters.h $ -// $Id: Named_function_parameters.h d33d8d7 2021-11-02T12:06:22+01:00 Sébastien Loriot -// SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial -// -// -// Author(s) : Sebastien Loriot - -#ifndef CGAL_BOOST_GRAPH_NAMED_FUNCTION_PARAMS_H -#define CGAL_BOOST_GRAPH_NAMED_FUNCTION_PARAMS_H - -#ifndef CGAL_NO_STATIC_ASSERTION_TESTS -#include -#endif - -#include -#include -#include -#include - -#define CGAL_BGL_NP_TEMPLATE_PARAMETERS T, typename Tag, typename Base -#define CGAL_BGL_NP_CLASS CGAL::Named_function_parameters - - -namespace CGAL { -namespace internal_np{ - -struct No_property {}; -struct Param_not_found {}; - -enum all_default_t { all_default }; - -// define enum types and values for new named parameters -#define CGAL_add_named_parameter(X, Y, Z) \ - enum X { Y }; -#include -#undef CGAL_add_named_parameter - -template -struct Named_params_impl : Base -{ - typename std::conditional::value, - T, std::reference_wrapper >::type v; // copy of the parameter if copyable - Named_params_impl(const T& v, const Base& b) - : Base(b) - , v(v) - {} -}; - -// partial specialization for base class of the recursive nesting -template -struct Named_params_impl -{ - typename std::conditional::value, - T, std::reference_wrapper >::type v; // copy of the parameter if copyable - Named_params_impl(const T& v) - : v(v) - {} -}; - -// Helper class to get the type of a named parameter pack given a query tag -template -struct Get_param; - -template< typename T, typename Tag, typename Query_tag> -struct Get_param< Named_params_impl, Query_tag > -{ - typedef Param_not_found type; - typedef Param_not_found reference; -}; - -template< typename T, typename Tag, typename Base> -struct Get_param< Named_params_impl, Tag > -{ - typedef typename std::conditional::value, - T, std::reference_wrapper >::type type; - typedef typename std::conditional::value, - T, const T&>::type reference; -}; - -template< typename T, typename Tag> -struct Get_param< Named_params_impl, Tag > -{ - typedef typename std::conditional::value, - T, std::reference_wrapper >::type type; - typedef typename std::conditional::value, - T, const T&>::type reference; -}; - -template< typename T, typename Tag, typename Base> -struct Get_param< Named_params_impl, Tag, Base>, Tag > -{ - typedef std::reference_wrapper type; - typedef T& reference; -}; - -template< typename T, typename Tag> -struct Get_param< Named_params_impl, Tag, No_property>, Tag > -{ - typedef std::reference_wrapper type; - typedef T& reference; -}; - - -template< typename T, typename Tag, typename Base, typename Query_tag> -struct Get_param< Named_params_impl, Query_tag> -{ - typedef typename Get_param::type type; - typedef typename Get_param::reference reference; -}; - -// helper to choose the default -template -struct Lookup_named_param_def -{ - typedef typename internal_np::Get_param::type NP_type; - typedef typename internal_np::Get_param::reference NP_reference; - - typedef typename boost::mpl::if_< - boost::is_same, - D, NP_type>::type - type; - - typedef typename boost::mpl::if_< - boost::is_same, - D&, NP_reference>::type - reference; -}; - -// helper function to extract the value from a named parameter pack given a query tag -template -typename std::conditional::value, - T, std::reference_wrapper >::type -get_parameter_impl(const Named_params_impl& np, Tag) -{ - return np.v; -} - -template< typename T, typename Tag, typename Query_tag> -Param_not_found get_parameter_impl(const Named_params_impl&, Query_tag) -{ - return Param_not_found(); -} - -template< typename T, typename Tag> -typename std::conditional::value, - T, std::reference_wrapper >::type -get_parameter_impl(const Named_params_impl& np, Tag) -{ - return np.v; -}; - -template -typename Get_param, Query_tag>::type -get_parameter_impl(const Named_params_impl& np, Query_tag tag) -{ -#ifndef CGAL_NO_STATIC_ASSERTION_TEST - CGAL_static_assertion( (!boost::is_same::value) ); -#endif - return get_parameter_impl(static_cast(np), tag); -} - - -// helper for getting references -template -const T& get_reference(const T& t) -{ - return t; -} - -template -T& get_reference(const std::reference_wrapper& r) -{ - return r.get(); -} - -// helper function to extract the reference from a named parameter pack given a query tag -template -typename std::conditional::value, - T, const T& >::type -get_parameter_reference_impl(const Named_params_impl& np, Tag) -{ - return get_reference(np.v); -} - -template< typename T, typename Tag, typename Query_tag> -Param_not_found -get_parameter_reference_impl(const Named_params_impl&, Query_tag) -{ - return Param_not_found(); -} - -template< typename T, typename Tag> -typename std::conditional::value, - T, const T& >::type -get_parameter_reference_impl(const Named_params_impl& np, Tag) -{ - return get_reference(np.v); -}; - -template -T& -get_parameter_reference_impl(const Named_params_impl, Tag, Base>& np, Tag) -{ - return np.v.get(); -} - -template< typename T, typename Tag> -T& -get_parameter_reference_impl(const Named_params_impl, Tag, No_property>& np, Tag) -{ - return np.v.get(); -}; - -template -typename Get_param, Query_tag>::reference -get_parameter_reference_impl(const Named_params_impl& np, Query_tag tag) -{ - CGAL_static_assertion( (!boost::is_same::value) ); - return get_parameter_reference_impl(static_cast(np), tag); -} - - -} // end of internal_np namespace - - -template -struct Named_function_parameters - : internal_np::Named_params_impl -{ - typedef internal_np::Named_params_impl base; - typedef Named_function_parameters self; - - Named_function_parameters() : base(T()) {} - Named_function_parameters(const T& v) : base(v) {} - Named_function_parameters(const T& v, const Base& b) : base(v, b) {} - - Named_function_parameters - all_default() const - { - typedef Named_function_parameters Params; - return Params(*this); - } - -// create the functions for new named parameters and the one imported boost -// used to concatenate several parameters -#define CGAL_add_named_parameter(X, Y, Z) \ - template \ - Named_function_parameters \ - Z(const K& k) const \ - { \ - typedef Named_function_parameters Params;\ - return Params(k, *this); \ - } -#include -#undef CGAL_add_named_parameter -}; - -namespace parameters { - -Named_function_parameters -inline all_default() -{ - typedef Named_function_parameters Params; - return Params(); -} - -template -Named_function_parameters -inline no_parameters(Named_function_parameters) -{ - typedef Named_function_parameters Params; - return Params(); -} - -// define free functions for named parameters -#define CGAL_add_named_parameter(X, Y, Z) \ - template \ - Named_function_parameters \ - Z(const K& p) \ - { \ - typedef Named_function_parameters Params;\ - return Params(p); \ - } -#include -#undef CGAL_add_named_parameter - -// function to extract a parameter -template -typename internal_np::Get_param, Query_tag>::type -get_parameter(const Named_function_parameters& np, Query_tag tag) -{ - return internal_np::get_parameter_impl(static_cast&>(np), tag); -} - -template -typename internal_np::Get_param, Query_tag>::reference -get_parameter_reference(const Named_function_parameters& np, Query_tag tag) -{ - return internal_np::get_parameter_reference_impl( - static_cast&>(np), - tag); -} - -// Two parameters, non-trivial default value -template -D& choose_parameter(const internal_np::Param_not_found&, D& d) -{ - return d; -} - -template -const D& choose_parameter(const internal_np::Param_not_found&, const D& d) -{ - return d; -} - -template -D choose_parameter(const internal_np::Param_not_found&, D&& d) -{ - return std::forward(d); -} - -template -T& choose_parameter(T& t, D&) -{ - return t; -} - -template -const T& choose_parameter(const T& t, const D&) -{ - return t; -} - -// single parameter so that we can avoid a default construction -template -D choose_parameter(const internal_np::Param_not_found&) -{ - return D(); -} - -template -const T& choose_parameter(const T& t) -{ - return t; -} - -bool inline is_default_parameter(const internal_np::Param_not_found&) -{ - return true; -} - -template -bool is_default_parameter(const T&) -{ - return false; -} - -} // end of parameters namespace - -} //namespace CGAL - -#ifndef CGAL_NO_STATIC_ASSERTION_TESTS -// code added to avoid silent runtime issues in non-updated code -namespace boost -{ - template - void get_param(CGAL::Named_function_parameters, Tag2) - { - CGAL_static_assertion(B && "You must use CGAL::parameters::get_parameter instead of boost::get_param"); - } -} -#endif - -#endif // CGAL_BOOST_GRAPH_NAMED_FUNCTION_PARAMS_HPP diff -Nru cgal-5.4.1/include/CGAL/boost/graph/named_params_helper.h cgal-5.5/include/CGAL/boost/graph/named_params_helper.h --- cgal-5.4.1/include/CGAL/boost/graph/named_params_helper.h 2022-06-03 19:03:49.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/named_params_helper.h 2022-07-13 19:04:35.000000000 +0000 @@ -1,7 +1,7 @@ // Copyright (c) 2007-2015 GeometryFactory (France). All rights reserved. // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/BGL/include/CGAL/boost/graph/named_params_helper.h $ -// $Id: named_params_helper.h 4eb1464 2021-11-09T11:21:24+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/BGL/include/CGAL/boost/graph/named_params_helper.h $ +// $Id: named_params_helper.h 477353d 2022-04-20T15:55:50+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Andreas Fabri, Fernando Cacciola, Jane Tournois @@ -10,175 +10,156 @@ #define CGAL_BOOST_GRAPH_NAMED_PARAMETERS_HELPERS_H #include -#include #include #include +#include #include #include -#include - +#include #include #include #include #include +#include +#include #include namespace CGAL { - namespace parameters +// forward declarations to avoid dependency to Solver_interface +template +class Default_diagonalize_traits; +class Eigen_svd; +class Lapack_svd; +struct Alpha_expansion_boost_adjacency_list_tag; +// + +//helper classes +template +class property_map_selector +{ +public: + typedef typename graph_has_property::type Has_internal_pmap; + typedef typename boost::mpl::if_c::type, + typename boost::cgal_no_property::type + >::type type; + typedef typename boost::mpl::if_c::const_type, + typename boost::cgal_no_property::const_type + >::type const_type; + + type get_pmap(const PropertyTag& p, PolygonMesh& pmesh) { - template - struct Is_default - { - typedef typename internal_np::Lookup_named_param_def < - Parameter, - NamedParameters, - internal_np::Param_not_found > ::type NP_type; - static const bool value = boost::is_same::value; - typedef CGAL::Boolean_tag type; - }; - } // end of parameters namespace - - // forward declarations to avoid dependency to Solver_interface - template - class Default_diagonalize_traits; - class Eigen_svd; - class Lapack_svd; - struct Alpha_expansion_boost_adjacency_list_tag; - // - - - //helper classes - template - class property_map_selector - { - public: - typedef typename graph_has_property::type Has_internal_pmap; - typedef typename boost::mpl::if_c< Has_internal_pmap::value - , typename boost::property_map::type - , typename boost::cgal_no_property::type - >::type type; - typedef typename boost::mpl::if_c< Has_internal_pmap::value - , typename boost::property_map::const_type - , typename boost::cgal_no_property::const_type - >::type const_type; - - type get_pmap(const PropertyTag& p, PolygonMesh& pmesh) - { - return get_impl(p, pmesh, Has_internal_pmap()); - } - - const_type get_const_pmap(const PropertyTag& p, const PolygonMesh& pmesh) - { - return get_const_pmap_impl(p, pmesh, Has_internal_pmap()); - } - - private: - type get_impl(const PropertyTag&, PolygonMesh&, CGAL::Tag_false) - { - return type(); //boost::cgal_no_property::type - } - type get_impl(const PropertyTag& p, PolygonMesh& pmesh, CGAL::Tag_true) - { - return get(p, pmesh); - } - - const_type get_const_pmap_impl(const PropertyTag& - , const PolygonMesh&, CGAL::Tag_false) - { - return const_type(); //boost::cgal_no_property::type - } - const_type get_const_pmap_impl(const PropertyTag& p - , const PolygonMesh& pmesh, CGAL::Tag_true) - { - return get(p, pmesh); - } - }; + return get_impl(p, pmesh, Has_internal_pmap()); + } - template - typename property_map_selector::type - get_property_map(const PropertyTag& p, PolygonMesh& pmesh) + const_type get_const_pmap(const PropertyTag& p, const PolygonMesh& pmesh) { - property_map_selector pms; - return pms.get_pmap(p, pmesh); + return get_const_pmap_impl(p, pmesh, Has_internal_pmap()); } - template - typename property_map_selector::const_type - get_const_property_map(const PropertyTag& p, const PolygonMesh& pmesh) +private: + type get_impl(const PropertyTag&, PolygonMesh&, CGAL::Tag_false) { - property_map_selector pms; - return pms.get_const_pmap(p, pmesh); + return type(); //boost::cgal_no_property::type + } + type get_impl(const PropertyTag& p, PolygonMesh& pmesh, CGAL::Tag_true) + { + return get(p, pmesh); } - // Shortcut for accessing the value type of the property map - template - class property_map_value { - typedef typename boost::property_map::const_type PMap; - public: - typedef typename boost::property_traits::value_type type; - }; + const_type get_const_pmap_impl(const PropertyTag& + , const PolygonMesh&, CGAL::Tag_false) + { + return const_type(); //boost::cgal_no_property::type + } + const_type get_const_pmap_impl(const PropertyTag& p + , const PolygonMesh& pmesh, CGAL::Tag_true) + { + return get(p, pmesh); + } +}; - template > - class GetVertexPointMap - { - typedef typename property_map_selector::const_type - DefaultVPMap_const; - typedef typename property_map_selector::type - DefaultVPMap; - public: - typedef typename internal_np::Lookup_named_param_def< - internal_np::vertex_point_t, - NamedParameters, - DefaultVPMap - > ::type type; - typedef typename internal_np::Lookup_named_param_def< - internal_np::vertex_point_t, - NamedParameters, - DefaultVPMap_const - > ::type const_type; - }; +template +typename property_map_selector::type +get_property_map(const PropertyTag& p, PolygonMesh& pmesh) +{ + property_map_selector pms; + return pms.get_pmap(p, pmesh); +} - template - class GetK - { - typedef typename boost::property_traits< - typename GetVertexPointMap::type - >::value_type Point; - public: - typedef typename CGAL::Kernel_traits::Kernel Kernel; - }; +template +typename property_map_selector::const_type +get_const_property_map(const PropertyTag& p, const PolygonMesh& pmesh) +{ + property_map_selector pms; + return pms.get_const_pmap(p, pmesh); +} - template, - typename NamedParametersVPM = NamedParametersGT > - class GetGeomTraits - { - typedef typename CGAL::graph_has_property::type - Has_internal_pmap; - - typedef typename internal_np::Lookup_named_param_def < - internal_np::vertex_point_t, - NamedParametersVPM, - internal_np::Param_not_found - > ::type NP_vpm; - - struct Fake_GT {};//to be used if there is no internal vertex_point_map in PolygonMesh - - typedef typename boost::mpl::if_c::value, - typename GetK::Kernel, - Fake_GT>::type DefaultKernel; - - public: - typedef typename internal_np::Lookup_named_param_def < - internal_np::geom_traits_t, - NamedParametersGT, - DefaultKernel - > ::type type; - }; +// Shortcut for accessing the value type of the property map +template +class property_map_value +{ + typedef typename boost::property_map::const_type PMap; + +public: + typedef typename boost::property_traits::value_type type; +}; + +template +class GetVertexPointMap +{ + typedef typename property_map_selector::const_type + DefaultVPMap_const; + typedef typename property_map_selector::type + DefaultVPMap; + +public: + typedef typename internal_np::Lookup_named_param_def::type type; + typedef typename internal_np::Lookup_named_param_def::type const_type; +}; + +template +class GetK +{ + typedef typename boost::property_traits< + typename GetVertexPointMap::type>::value_type Point; + +public: + typedef typename CGAL::Kernel_traits::Kernel Kernel; +}; + +template +class GetGeomTraits +{ + typedef typename CGAL::graph_has_property::type Has_internal_pmap; + + typedef typename internal_np::Lookup_named_param_def::type NP_vpm; + + struct Fake_GT {}; // to be used if there is no internal vertex_point_map in PolygonMesh + + typedef typename boost::mpl::if_c::value, + typename GetK::Kernel, + Fake_GT>::type DefaultKernel; + +public: + typedef typename internal_np::Lookup_named_param_def::type type; +}; // Define the following structs: // @@ -189,8 +170,7 @@ #define CGAL_DEF_GET_INDEX_TYPE(CTYPE, DTYPE, STYPE) \ template > \ + typename NamedParameters = parameters::Default_named_parameters> \ struct GetInitialized##CTYPE##IndexMap \ : public BGL::internal::GetInitializedIndexMap \ + typename NamedParameters = parameters::Default_named_parameters> \ typename BGL::internal::GetInitializedIndexMap, \ Graph, NamedParameters>::const_type \ get_initialized_##DTYPE##_index_map(const Graph& g, \ - const NamedParameters& np) \ + const NamedParameters& np = parameters::default_values()) \ { \ typedef BGL::internal::GetInitializedIndexMap Index_map_getter; \ return Index_map_getter::get_const(CGAL::internal_np::DTYPE##_index_t{}, g, np); \ } \ -template \ -typename BGL::internal::GetInitializedIndexMap, \ - Graph>::const_type \ -get_initialized_##DTYPE##_index_map(const Graph& g) \ -{ \ - return get_initialized_##DTYPE##_index_map(g, CGAL::parameters::all_default()); \ -} \ /* same as above, non-const version*/ \ template ::type>::value, int> = 0> \ @@ -253,7 +224,7 @@ CGAL::dynamic_##DTYPE##_property_t, \ Graph, NamedParameters>::type \ get_initialized_##DTYPE##_index_map(Graph& g, \ - const NamedParameters& np) \ + const NamedParameters& np = parameters::default_values()) \ { \ typedef BGL::internal::GetInitializedIndexMap Index_map_getter; \ return Index_map_getter::get(CGAL::internal_np::DTYPE##_index_t{}, g, np); \ } \ -template ::type>::value, int> = 0> \ -typename BGL::internal::GetInitializedIndexMap, \ - Graph>::type \ -get_initialized_##DTYPE##_index_map(Graph& g) \ -{ \ - return get_initialized_##DTYPE##_index_map(g, CGAL::parameters::all_default()); \ -} CGAL_DEF_GET_INITIALIZED_INDEX_MAP(vertex, typename boost::graph_traits::vertices_size_type) CGAL_DEF_GET_INITIALIZED_INDEX_MAP(halfedge, typename boost::graph_traits::halfedges_size_type) @@ -280,300 +240,244 @@ #undef CGAL_DEF_GET_INITIALIZED_INDEX_MAP - template - class GetFaceNormalMap +namespace internal { + +BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(Has_nested_type_iterator, iterator, false) + +} // namespace internal + +template::value, + typename NP_TAG = internal_np::point_t> +class GetPointMap +{ + typedef typename std::iterator_traits::value_type Point; + typedef typename CGAL::Identity_property_map DefaultPMap; + typedef typename CGAL::Identity_property_map DefaultConstPMap; + +public: + typedef typename internal_np::Lookup_named_param_def::type type; + + typedef typename internal_np::Lookup_named_param_def::type const_type; +}; + +// to please compiler instantiating non valid overloads +template +class GetPointMap +{ + struct Dummy_point{}; + +public: + typedef typename CGAL::Identity_property_map type; + typedef typename CGAL::Identity_property_map const_type; +}; + +template +struct Point_set_processing_3_np_helper +{ + typedef typename std::iterator_traits::value_type Value_type; + typedef CGAL::Identity_property_map DefaultPMap; + typedef CGAL::Identity_property_map DefaultConstPMap; + + typedef typename internal_np::Lookup_named_param_def::type Point_map; + typedef typename internal_np::Lookup_named_param_def::type Const_point_map; + + typedef typename boost::property_traits::value_type Point; + typedef typename Kernel_traits::Kernel Default_geom_traits; + + typedef typename internal_np::Lookup_named_param_def::type Geom_traits; + + typedef typename Geom_traits::FT FT; + + typedef Constant_property_map DummyNormalMap; + + typedef typename internal_np::Lookup_named_param_def::type Normal_map; + + static Point_map get_point_map(PointRange&, const NamedParameters& np) { - struct DummyNormalPmap - { - typedef typename boost::graph_traits::face_descriptor key_type; - typedef typename GetGeomTraits::type::Vector_3 value_type; - typedef value_type reference; - typedef boost::readable_property_map_tag category; - - typedef DummyNormalPmap Self; - friend value_type get(const Self&, const key_type&) { return CGAL::NULL_VECTOR; } - }; - - public: - typedef DummyNormalPmap NoMap; - typedef typename internal_np::Lookup_named_param_def < - internal_np::face_normal_t, - NamedParameters, - DummyNormalPmap//default - > ::type type; - }; + return parameters::choose_parameter(parameters::get_parameter(np, internal_np::point_map)); + } - namespace internal { - BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(Has_nested_type_iterator, iterator, false) + static Point_map get_point_map(const NamedParameters& np) + { + return parameters::choose_parameter(parameters::get_parameter(np, internal_np::point_map)); } - template, - bool has_nested_iterator = internal::Has_nested_type_iterator::value, - typename NP_TAG = internal_np::point_t - > - class GetPointMap - { - typedef typename std::iterator_traits::value_type Point; - typedef typename CGAL::Identity_property_map DefaultPMap; - typedef typename CGAL::Identity_property_map DefaultConstPMap; - - public: - typedef typename internal_np::Lookup_named_param_def< - NP_TAG, - NamedParameters, - DefaultPMap - > ::type type; - - typedef typename internal_np::Lookup_named_param_def< - NP_TAG, - NamedParameters, - DefaultConstPMap - > ::type const_type; - }; + static Const_point_map get_const_point_map(const PointRange&, const NamedParameters& np) + { + return parameters::choose_parameter(parameters::get_parameter(np, internal_np::point_map)); + } - // to please compiler instantiating non valid overloads - template - class GetPointMap - { - struct Dummy_point{}; - public: - typedef typename CGAL::Identity_property_map type; - typedef typename CGAL::Identity_property_map const_type; - }; + static Normal_map get_normal_map(const PointRange&, const NamedParameters& np) + { + return parameters::choose_parameter(parameters::get_parameter(np, internal_np::normal_map)); + } - namespace Point_set_processing_3 { + static Normal_map get_normal_map(const NamedParameters& np) + { + return parameters::choose_parameter(parameters::get_parameter(np, internal_np::normal_map)); + } - template - struct Fake_point_range - { - struct iterator - { - typedef ValueType value_type; - typedef std::ptrdiff_t difference_type; - typedef ValueType* pointer; - typedef ValueType reference; - typedef std::random_access_iterator_tag iterator_category; - }; - }; - - namespace parameters - { - template - Named_function_parameters - inline all_default(const PointRange&) - { - return CGAL::parameters::all_default(); - } - } - - template - class GetFT - { - public: - typedef typename Kernel_traits< - typename std::iterator_traits< - typename PointRange::iterator - >::value_type - >::Kernel::FT type; - }; - - template - class GetK - { - typedef typename GetPointMap::type Vpm; - typedef typename Kernel_traits< - typename boost::property_traits::value_type - >::Kernel Default_kernel; - - public: - typedef typename internal_np::Lookup_named_param_def < - internal_np::geom_traits_t, - NamedParameters, - Default_kernel - > ::type Kernel; - }; - - template - class GetNormalMap - { - struct DummyNormalMap - { - typedef typename std::iterator_traits::value_type key_type; - typedef typename GetK::Kernel::Vector_3 value_type; - typedef value_type reference; - typedef boost::read_write_property_map_tag category; - - typedef DummyNormalMap Self; - friend value_type get(const Self&, const key_type&) { return CGAL::NULL_VECTOR; } - friend void put(const Self&, const key_type&, const value_type&) { } - }; - - public: - typedef DummyNormalMap NoMap; - typedef typename internal_np::Lookup_named_param_def < - internal_np::normal_t, - NamedParameters, - DummyNormalMap//default - > ::type type; - }; - - template - class GetPlaneMap - { - typedef typename PlaneRange::iterator::value_type Plane; - typedef typename CGAL::Identity_property_map DefaultPMap; - typedef typename CGAL::Identity_property_map DefaultConstPMap; - - public: - typedef typename internal_np::Lookup_named_param_def< - internal_np::plane_t, - NamedParameters, - DefaultPMap - > ::type type; - - typedef typename internal_np::Lookup_named_param_def< - internal_np::plane_t, - NamedParameters, - DefaultConstPMap - > ::type const_type; - }; - - template - class GetPlaneIndexMap - { - struct DummyPlaneIndexMap - { - typedef std::size_t key_type; - typedef int value_type; - typedef value_type reference; - typedef boost::readable_property_map_tag category; - - typedef DummyPlaneIndexMap Self; - friend value_type get(const Self&, const key_type&) { return -1; } - }; - - public: - typedef DummyPlaneIndexMap NoMap; - typedef typename internal_np::Lookup_named_param_def < - internal_np::plane_index_t, - NamedParameters, - DummyPlaneIndexMap//default - > ::type type; - }; - - template - class GetIsConstrainedMap - { - struct DummyConstrainedMap - { - typedef typename std::iterator_traits::value_type key_type; - typedef bool value_type; - typedef value_type reference; - typedef boost::readable_property_map_tag category; - - typedef DummyConstrainedMap Self; - friend value_type get(const Self&, const key_type&) { return false; } - }; - - public: - typedef DummyConstrainedMap NoMap; - typedef typename internal_np::Lookup_named_param_def < - internal_np::point_is_constrained_t, - NamedParameters, - DummyConstrainedMap //default - > ::type type; - }; - - template - class GetAdjacencies - { - public: - typedef Emptyset_iterator Empty; - typedef typename internal_np::Lookup_named_param_def < - internal_np::adjacencies_t, - NamedParameters, - Empty//default - > ::type type; - }; - - } // namespace Point_set_processing_3 - - template - class GetSolver - { - public: - typedef typename internal_np::Lookup_named_param_def < - internal_np::sparse_linear_solver_t, - NamedParameters, - DefaultSolver - > ::type type; - }; + static Geom_traits get_geom_traits(const PointRange&, const NamedParameters& np) + { + return parameters::choose_parameter(parameters::get_parameter(np, internal_np::geom_traits)); + } - template - class GetDiagonalizeTraits + static constexpr bool has_normal_map() { - public: - typedef typename internal_np::Lookup_named_param_def < - internal_np::diagonalize_traits_t, - NamedParameters, - Default_diagonalize_traits - > ::type type; + return !boost::is_same< typename internal_np::Get_param::type, + internal_np::Param_not_found> ::value; + } +}; + +namespace Point_set_processing_3 { + +template +struct Fake_point_range +{ + struct iterator + { + typedef ValueType value_type; + typedef std::ptrdiff_t difference_type; + typedef ValueType* pointer; + typedef ValueType reference; + typedef std::random_access_iterator_tag iterator_category; + }; +}; + +template +class GetPlaneMap +{ + typedef typename PlaneRange::iterator::value_type Plane; + typedef typename CGAL::Identity_property_map DefaultPMap; + typedef typename CGAL::Identity_property_map DefaultConstPMap; + +public: + typedef typename internal_np::Lookup_named_param_def::type type; + + typedef typename internal_np::Lookup_named_param_def::type const_type; +}; + +template +class GetPlaneIndexMap +{ + typedef Constant_property_map DummyPlaneIndexMap; + +public: + typedef typename internal_np::Lookup_named_param_def::type type; +}; + +template +class GetIsConstrainedMap +{ + typedef Static_boolean_property_map< + typename std::iterator_traits::value_type, false> Default_map; + +public: + typedef typename internal_np::Lookup_named_param_def::type type; +}; + +template +class GetAdjacencies +{ +public: + typedef Emptyset_iterator Empty; + typedef typename internal_np::Lookup_named_param_def::type type; +}; + +} // namespace Point_set_processing_3 + +template +class GetSolver +{ +public: + typedef typename internal_np::Lookup_named_param_def::type type; +}; + +template +class GetDiagonalizeTraits +{ +public: + typedef typename internal_np::Lookup_named_param_def >::type type; +}; + +template +class GetSvdTraits +{ + struct DummySvdTraits + { + typedef double FT; + typedef int Vector; + typedef int Matrix; + static FT solve (const Matrix&, Vector&) { return 0.; } }; - template - class GetSvdTraits - { - struct DummySvdTraits - { - typedef double FT; - typedef int Vector; - typedef int Matrix; - static FT solve (const Matrix&, Vector&) { return 0.; } - }; - - public: - typedef DummySvdTraits NoTraits; - - typedef typename internal_np::Lookup_named_param_def < - internal_np::svd_traits_t, - NamedParameters, +public: + typedef DummySvdTraits NoTraits; + + typedef typename internal_np::Lookup_named_param_def ::type type; - }; + >::type type; +}; - template - class GetImplementationTag - { - public: - typedef typename internal_np::Lookup_named_param_def < - internal_np::implementation_tag_t, - NamedParameters, - Alpha_expansion_boost_adjacency_list_tag - >::type type; - }; - - template - void set_stream_precision_from_NP(std::ostream& os, const NP& np) - { - using parameters::get_parameter; - using parameters::choose_parameter; - using parameters::is_default_parameter; - - if(!is_default_parameter(get_parameter(np, internal_np::stream_precision))) - { - const int precision = choose_parameter(get_parameter(np, - internal_np::stream_precision)); - os.precision(precision); - } +template +class GetImplementationTag +{ +public: + typedef typename internal_np::Lookup_named_param_def::type type; +}; + +template +void set_stream_precision_from_NP(std::ostream& os, const NP& np) +{ + using parameters::get_parameter; + using parameters::choose_parameter; + using parameters::is_default_parameter; + + if(!is_default_parameter::value) + { + const int precision = choose_parameter(get_parameter(np, + internal_np::stream_precision)); + os.precision(precision); } -} //namespace CGAL +} +} // namespace CGAL #endif // CGAL_BOOST_GRAPH_NAMED_PARAMETERS_HELPERS_H diff -Nru cgal-5.4.1/include/CGAL/boost/graph/parameters_interface.h cgal-5.5/include/CGAL/boost/graph/parameters_interface.h --- cgal-5.4.1/include/CGAL/boost/graph/parameters_interface.h 2022-06-03 19:03:49.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/parameters_interface.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,231 +0,0 @@ -// Copyright (c) 2017 GeometryFactory (France). All rights reserved. -// -// This file is part of CGAL (www.cgal.org) -// -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/BGL/include/CGAL/boost/graph/parameters_interface.h $ -// $Id: parameters_interface.h 0f498e9 2021-10-29T16:58:27+02:00 Laurent Rineau -// SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial -// -// -// Author(s) : Maxime Gimeno - -// List of named parameters that we use in CGAL -CGAL_add_named_parameter(vertex_point_t, vertex_point, vertex_point_map) -CGAL_add_named_parameter(halfedge_index_t, halfedge_index, halfedge_index_map) -CGAL_add_named_parameter(edge_index_t, edge_index, edge_index_map) -CGAL_add_named_parameter(face_index_t, face_index, face_index_map) -CGAL_add_named_parameter(vertex_index_t, vertex_index, vertex_index_map) -CGAL_add_named_parameter(visitor_t, visitor, visitor) - -CGAL_add_named_parameter(point_t, point_map, point_map) - -CGAL_add_named_parameter(edge_is_constrained_t, edge_is_constrained, edge_is_constrained_map) -CGAL_add_named_parameter(first_index_t, first_index, first_index) -CGAL_add_named_parameter(number_of_iterations_t, number_of_iterations, number_of_iterations) -CGAL_add_named_parameter(verbosity_level_t, verbosity_level, verbosity_level) -CGAL_add_named_parameter(use_binary_mode_t, use_binary_mode, use_binary_mode) - -CGAL_add_named_parameter(metis_options_t, METIS_options, METIS_options) -CGAL_add_named_parameter(vertex_partition_id_t, vertex_partition_id, vertex_partition_id_map) -CGAL_add_named_parameter(face_partition_id_t, face_partition_id, face_partition_id_map) - -CGAL_add_named_parameter(vertex_to_vertex_output_iterator_t, vertex_to_vertex_output_iterator, vertex_to_vertex_output_iterator) -CGAL_add_named_parameter(halfedge_to_halfedge_output_iterator_t, halfedge_to_halfedge_output_iterator, halfedge_to_halfedge_output_iterator) -CGAL_add_named_parameter(face_to_face_output_iterator_t, face_to_face_output_iterator, face_to_face_output_iterator) - -CGAL_add_named_parameter(vertex_to_vertex_map_t, vertex_to_vertex_map, vertex_to_vertex_map) -CGAL_add_named_parameter(halfedge_to_halfedge_map_t, halfedge_to_halfedge_map, halfedge_to_halfedge_map) -CGAL_add_named_parameter(face_to_face_map_t, face_to_face_map, face_to_face_map) -CGAL_add_named_parameter(implementation_tag_t, implementation_tag, implementation_tag) -CGAL_add_named_parameter(prevent_unselection_t, prevent_unselection, prevent_unselection) - -CGAL_add_named_parameter(verbose_t, verbose, verbose) - -// List of named parameters used for IO -CGAL_add_named_parameter(vertex_normal_output_iterator_t, vertex_normal_output_iterator, vertex_normal_output_iterator) -CGAL_add_named_parameter(vertex_color_output_iterator_t, vertex_color_output_iterator, vertex_color_output_iterator) -CGAL_add_named_parameter(vertex_texture_output_iterator_t, vertex_texture_output_iterator, vertex_texture_output_iterator) -CGAL_add_named_parameter(face_color_output_iterator_t, face_color_output_iterator, face_color_output_iterator) -CGAL_add_named_parameter(vertex_normal_map_t, vertex_normal_map, vertex_normal_map) -CGAL_add_named_parameter(vertex_color_map_t, vertex_color_map, vertex_color_map) -CGAL_add_named_parameter(vertex_texture_map_t, vertex_texture_map, vertex_texture_map) -CGAL_add_named_parameter(face_color_map_t, face_color_map, face_color_map) -CGAL_add_named_parameter(repair_polygon_soup_t, repair_polygon_soup, repair_polygon_soup) -CGAL_add_named_parameter(output_color_t, output_color, output_color) -CGAL_add_named_parameter(stream_precision_t, stream_precision, stream_precision) - -// List of named parameters that we use in the package 'Mesh_3' -CGAL_add_named_parameter(vertex_feature_degree_t, vertex_feature_degree, vertex_feature_degree_map) - -// List of named parameters used in the package 'Polygon Mesh Processing' -CGAL_add_named_parameter(geom_traits_t, geom_traits, geom_traits) -CGAL_add_named_parameter(vertex_incident_patches_t, vertex_incident_patches, vertex_incident_patches_map) -CGAL_add_named_parameter(density_control_factor_t, density_control_factor, density_control_factor) -CGAL_add_named_parameter(use_delaunay_triangulation_t, use_delaunay_triangulation, use_delaunay_triangulation) -CGAL_add_named_parameter(use_2d_constrained_delaunay_triangulation_t, use_2d_constrained_delaunay_triangulation, use_2d_constrained_delaunay_triangulation) -CGAL_add_named_parameter(fairing_continuity_t, fairing_continuity, fairing_continuity) -CGAL_add_named_parameter(sparse_linear_solver_t, sparse_linear_solver, sparse_linear_solver) -CGAL_add_named_parameter(number_of_relaxation_steps_t, number_of_relaxation_steps, number_of_relaxation_steps) -CGAL_add_named_parameter(protect_constraints_t, protect_constraints, protect_constraints) -CGAL_add_named_parameter(relax_constraints_t, relax_constraints, relax_constraints) -CGAL_add_named_parameter(collapse_constraints_t, collapse_constraints, collapse_constraints) -CGAL_add_named_parameter(vertex_is_constrained_t, vertex_is_constrained, vertex_is_constrained_map) -CGAL_add_named_parameter(face_patch_t, face_patch, face_patch_map) -CGAL_add_named_parameter(random_uniform_sampling_t, random_uniform_sampling, use_random_uniform_sampling) -CGAL_add_named_parameter(grid_sampling_t, grid_sampling, use_grid_sampling) -CGAL_add_named_parameter(monte_carlo_sampling_t, monte_carlo_sampling, use_monte_carlo_sampling) -CGAL_add_named_parameter(do_sample_edges_t, do_sample_edges, do_sample_edges) -CGAL_add_named_parameter(do_sample_vertices_t, do_sample_vertices, do_sample_vertices) -CGAL_add_named_parameter(do_sample_faces_t, do_sample_faces, do_sample_faces) -CGAL_add_named_parameter(number_of_points_on_faces_t, number_of_points_on_faces, number_of_points_on_faces) -CGAL_add_named_parameter(number_of_points_per_face_t, number_of_points_per_face, number_of_points_per_face) -CGAL_add_named_parameter(grid_spacing_t, grid_spacing, grid_spacing) -CGAL_add_named_parameter(number_of_points_per_edge_t, number_of_points_per_edge, number_of_points_per_edge) -CGAL_add_named_parameter(number_of_points_on_edges_t, number_of_points_on_edges, number_of_points_on_edges) -CGAL_add_named_parameter(nb_points_per_area_unit_t, nb_points_per_area_unit, number_of_points_per_area_unit) -CGAL_add_named_parameter(nb_points_per_distance_unit_t, nb_points_per_distance_unit, number_of_points_per_distance_unit) -CGAL_add_named_parameter(outward_orientation_t, outward_orientation, outward_orientation) -CGAL_add_named_parameter(overlap_test_t, overlap_test, do_overlap_test_of_bounded_sides) -CGAL_add_named_parameter(preserve_genus_t, preserve_genus, preserve_genus) -CGAL_add_named_parameter(apply_per_connected_component_t, apply_per_connected_component, apply_per_connected_component) -CGAL_add_named_parameter(projection_functor_t, projection_functor, projection_functor) -CGAL_add_named_parameter(throw_on_self_intersection_t, throw_on_self_intersection, throw_on_self_intersection) -CGAL_add_named_parameter(clip_volume_t, clip_volume, clip_volume) -CGAL_add_named_parameter(use_compact_clipper_t, use_compact_clipper, use_compact_clipper) -CGAL_add_named_parameter(output_iterator_t, output_iterator, output_iterator) -CGAL_add_named_parameter(erase_all_duplicates_t, erase_all_duplicates, erase_all_duplicates) -CGAL_add_named_parameter(require_same_orientation_t, require_same_orientation, require_same_orientation) -CGAL_add_named_parameter(face_size_map_t, face_size_map, face_size_map) -CGAL_add_named_parameter(snapping_tolerance_t, snapping_tolerance, snapping_tolerance) -CGAL_add_named_parameter(use_safety_constraints_t, use_safety_constraints, use_safety_constraints) -CGAL_add_named_parameter(use_angle_smoothing_t, use_angle_smoothing, use_angle_smoothing) -CGAL_add_named_parameter(use_area_smoothing_t, use_area_smoothing, use_area_smoothing) -CGAL_add_named_parameter(use_Delaunay_flips_t, use_Delaunay_flips, use_Delaunay_flips) -CGAL_add_named_parameter(do_project_t, do_project, do_project) -CGAL_add_named_parameter(do_split_t, do_split, do_split) -CGAL_add_named_parameter(do_collapse_t, do_collapse, do_collapse) -CGAL_add_named_parameter(do_flip_t, do_flip, do_flip) -CGAL_add_named_parameter(do_orientation_tests_t, do_orientation_tests, do_orientation_tests) -CGAL_add_named_parameter(do_self_intersection_tests_t, do_self_intersection_tests, do_self_intersection_tests) -CGAL_add_named_parameter(error_codes_t, error_codes, error_codes) -CGAL_add_named_parameter(volume_inclusions_t, volume_inclusions, volume_inclusions) -CGAL_add_named_parameter(face_cc_map_t, face_connected_component_map, face_connected_component_map) -CGAL_add_named_parameter(ccid_to_vid_vector_t, connected_component_id_to_volume_id, connected_component_id_to_volume_id) -CGAL_add_named_parameter(is_cc_outward_oriented_bs_t, is_cc_outward_oriented, is_cc_outward_oriented); -CGAL_add_named_parameter(intersecting_volume_pairs_t, intersecting_volume_pairs_output_iterator, intersecting_volume_pairs_output_iterator); -CGAL_add_named_parameter(i_used_as_a_predicate_t, i_used_as_a_predicate, i_used_as_a_predicate); -CGAL_add_named_parameter(nesting_levels_t, nesting_levels, nesting_levels); -CGAL_add_named_parameter(i_used_for_volume_orientation_t, i_used_for_volume_orientation, i_used_for_volume_orientation); -CGAL_add_named_parameter(area_threshold_t, area_threshold, area_threshold) -CGAL_add_named_parameter(halfedges_keeper_t, halfedges_keeper, halfedges_keeper) -CGAL_add_named_parameter(volume_threshold_t, volume_threshold, volume_threshold) -CGAL_add_named_parameter(dry_run_t, dry_run, dry_run) -CGAL_add_named_parameter(do_not_modify_t, do_not_modify, do_not_modify) -CGAL_add_named_parameter(allow_self_intersections_t, allow_self_intersections, allow_self_intersections) -CGAL_add_named_parameter(non_manifold_feature_map_t, non_manifold_feature_map, non_manifold_feature_map) -CGAL_add_named_parameter(polyhedral_envelope_epsilon_t, polyhedral_envelope_epsilon, polyhedral_envelope_epsilon) -CGAL_add_named_parameter(match_faces_t, match_faces, match_faces) -CGAL_add_named_parameter(face_epsilon_map_t, face_epsilon_map, face_epsilon_map) -CGAL_add_named_parameter(maximum_number_t, maximum_number, maximum_number) -CGAL_add_named_parameter(use_one_sided_hausdorff_t, use_one_sided_hausdorff, use_one_sided_hausdorff) - -// List of named parameters that we use in the package 'Surface Mesh Simplification' -CGAL_add_named_parameter(get_cost_policy_t, get_cost_policy, get_cost) -CGAL_add_named_parameter(get_placement_policy_t, get_placement_policy, get_placement) -CGAL_add_named_parameter(filter_t, filter, filter) - -//to be documented -CGAL_add_named_parameter(face_normal_t, face_normal, face_normal_map) -CGAL_add_named_parameter(random_seed_t, random_seed, random_seed) -CGAL_add_named_parameter(do_lock_mesh_t, do_lock_mesh, do_lock_mesh) -CGAL_add_named_parameter(do_simplify_border_t, do_simplify_border, do_simplify_border) -CGAL_add_named_parameter(algorithm_t, algorithm, algorithm) - -//internal -CGAL_add_named_parameter(weight_calculator_t, weight_calculator, weight_calculator) -CGAL_add_named_parameter(use_bool_op_to_clip_surface_t, use_bool_op_to_clip_surface, use_bool_op_to_clip_surface) - -// List of named parameters used in the Point Set Processing package -CGAL_add_named_parameter(query_point_t, query_point_map, query_point_map) -CGAL_add_named_parameter(normal_t, normal_map, normal_map) -CGAL_add_named_parameter(diagonalize_traits_t, diagonalize_traits, diagonalize_traits) -CGAL_add_named_parameter(svd_traits_t, svd_traits, svd_traits) -CGAL_add_named_parameter(callback_t, callback, callback) -CGAL_add_named_parameter(sharpness_angle_t, sharpness_angle, sharpness_angle) -CGAL_add_named_parameter(edge_sensitivity_t, edge_sensitivity, edge_sensitivity) -CGAL_add_named_parameter(neighbor_radius_t, neighbor_radius, neighbor_radius) -CGAL_add_named_parameter(number_of_output_points_t, number_of_output_points, number_of_output_points) -CGAL_add_named_parameter(size_t, size, size) -CGAL_add_named_parameter(maximum_variation_t, maximum_variation, maximum_variation) -CGAL_add_named_parameter(degree_fitting_t, degree_fitting, degree_fitting) -CGAL_add_named_parameter(degree_monge_t, degree_monge, degree_monge) -CGAL_add_named_parameter(threshold_percent_t, threshold_percent, threshold_percent) -CGAL_add_named_parameter(threshold_distance_t, threshold_distance, threshold_distance) -CGAL_add_named_parameter(attraction_factor_t, attraction_factor, attraction_factor) -CGAL_add_named_parameter(plane_t, plane_map, plane_map) -CGAL_add_named_parameter(plane_index_t, plane_index_map, plane_index_map) -CGAL_add_named_parameter(select_percentage_t, select_percentage, select_percentage) -CGAL_add_named_parameter(require_uniform_sampling_t, require_uniform_sampling, require_uniform_sampling) -CGAL_add_named_parameter(point_is_constrained_t, point_is_constrained, point_is_constrained_map) -CGAL_add_named_parameter(maximum_number_of_faces_t, maximum_number_of_faces, maximum_number_of_faces) -CGAL_add_named_parameter(transformation_t, transformation, transformation) -CGAL_add_named_parameter(point_set_filters_t, point_set_filters, point_set_filters) -CGAL_add_named_parameter(matcher_t, matcher, matcher) -CGAL_add_named_parameter(outlier_filters_t, outlier_filters, outlier_filters) -CGAL_add_named_parameter(error_minimizer_t, error_minimizer, error_minimizer) -CGAL_add_named_parameter(transformation_checkers_t, transformation_checkers, transformation_checkers) -CGAL_add_named_parameter(inspector_t, inspector, inspector) -CGAL_add_named_parameter(logger_t, logger, logger) -CGAL_add_named_parameter(pointmatcher_config_t, pointmatcher_config, pointmatcher_config) -CGAL_add_named_parameter(adjacencies_t, adjacencies, adjacencies) -CGAL_add_named_parameter(scan_angle_t, scan_angle_map, scan_angle_map) -CGAL_add_named_parameter(scanline_id_t, scanline_id_map, scanline_id_map) -CGAL_add_named_parameter(scalar_t, scalar_map, scalar_map) - -// List of named parameters used in Surface_mesh_approximation package -CGAL_add_named_parameter(verbose_level_t, verbose_level, verbose_level) -CGAL_add_named_parameter(seeding_method_t, seeding_method, seeding_method) -CGAL_add_named_parameter(max_number_of_proxies_t, max_number_of_proxies, max_number_of_proxies) -CGAL_add_named_parameter(min_error_drop_t, min_error_drop, min_error_drop) -CGAL_add_named_parameter(number_of_relaxations_t, number_of_relaxations, number_of_relaxations) - -// List of named parameters used in Optimal_bounding_box package -CGAL_add_named_parameter(use_convex_hull_t, use_convex_hull, use_convex_hull) - -// meshing parameters -CGAL_add_named_parameter(subdivision_ratio_t, subdivision_ratio, subdivision_ratio) -CGAL_add_named_parameter(relative_to_chord_t, relative_to_chord, relative_to_chord) -CGAL_add_named_parameter(with_dihedral_angle_t, with_dihedral_angle, with_dihedral_angle) -CGAL_add_named_parameter(optimize_anchor_location_t, optimize_anchor_location, optimize_anchor_location) -CGAL_add_named_parameter(pca_plane_t, pca_plane, pca_plane) - -// tetrahedral remeshing parameters -CGAL_add_named_parameter(remesh_boundaries_t, remesh_boundaries, remesh_boundaries) -CGAL_add_named_parameter(cell_selector_t, cell_selector, cell_is_selected_map) -CGAL_add_named_parameter(facet_is_constrained_t, facet_is_constrained, facet_is_constrained_map) -CGAL_add_named_parameter(smooth_constrained_edges_t, smooth_constrained_edges, smooth_constrained_edges) - -// output parameters -CGAL_add_named_parameter(face_proxy_map_t, face_proxy_map, face_proxy_map) -CGAL_add_named_parameter(proxies_t, proxies, proxies) -CGAL_add_named_parameter(anchors_t, anchors, anchors) -CGAL_add_named_parameter(triangles_t, triangles, triangles) - -CGAL_add_named_parameter(number_of_samples_t, number_of_samples, number_of_samples) -CGAL_add_named_parameter(accuracy_t, accuracy, accuracy) -CGAL_add_named_parameter(maximum_running_time_t, maximum_running_time, maximum_running_time) -CGAL_add_named_parameter(overlap_t, overlap, overlap) -CGAL_add_named_parameter(maximum_normal_deviation_t, maximum_normal_deviation, maximum_normal_deviation) - -// List of named parameters used in Shape_regularization package -CGAL_add_named_parameter(minimum_length_t, minimum_length, minimum_length) -CGAL_add_named_parameter(maximum_angle_t, maximum_angle, maximum_angle) -CGAL_add_named_parameter(maximum_offset_t, maximum_offset, maximum_offset) -CGAL_add_named_parameter(regularize_parallelism_t, regularize_parallelism, regularize_parallelism) -CGAL_add_named_parameter(regularize_orthogonality_t, regularize_orthogonality, regularize_orthogonality) -CGAL_add_named_parameter(regularize_coplanarity_t, regularize_coplanarity, regularize_coplanarity) -CGAL_add_named_parameter(regularize_axis_symmetry_t, regularize_axis_symmetry, regularize_axis_symmetry) -CGAL_add_named_parameter(symmetry_direction_t, symmetry_direction, symmetry_direction) -CGAL_add_named_parameter(preserve_order_t, preserve_order, preserve_order) -CGAL_add_named_parameter(adjust_directions_t, adjust_directions, adjust_directions) -CGAL_add_named_parameter(segment_t, segment_map, segment_map) diff -Nru cgal-5.4.1/include/CGAL/boost/graph/partition.h cgal-5.5/include/CGAL/boost/graph/partition.h --- cgal-5.4.1/include/CGAL/boost/graph/partition.h 2022-06-03 19:03:49.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/partition.h 2022-07-13 19:04:35.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/BGL/include/CGAL/boost/graph/partition.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/BGL/include/CGAL/boost/graph/partition.h $ // $Id: partition.h 48c997a 2020-07-17T17:00:18+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/boost/graph/prim_minimum_spanning_tree.h cgal-5.5/include/CGAL/boost/graph/prim_minimum_spanning_tree.h --- cgal-5.4.1/include/CGAL/boost/graph/prim_minimum_spanning_tree.h 1970-01-01 00:00:00.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/prim_minimum_spanning_tree.h 2022-07-13 19:04:35.000000000 +0000 @@ -0,0 +1,29 @@ +// Copyright (c) 2021 GeometryFactory (France). All rights reserved. +// +// This file is part of CGAL (www.cgal.org) +// +// $URL: https://github.com/CGAL/cgal/blob/v5.5/BGL/include/CGAL/boost/graph/prim_minimum_spanning_tree.h $ +// $Id: prim_minimum_spanning_tree.h 5f3e3b2 2022-05-05T08:46:11+01:00 Andreas Fabri +// SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial +// +// +// Author(s) : Sebastien Loriot + +#ifndef CGAL_BOOST_GRAPH_PRIM_MINIMUM_SPANNING_TREE_H +#define CGAL_BOOST_GRAPH_PRIM_MINIMUM_SPANNING_TREE_H + +// This will push/pop a VC++ warning +#include + +#if defined(BOOST_MSVC) +# pragma warning(push) +# pragma warning(disable:4172) // Address warning inside boost named parameters +#endif + +#include + +#if defined(BOOST_MSVC) +# pragma warning(pop) +#endif + +#endif // CGAL_BOOST_GRAPH_PRIM_MINIMUM_SPANNING_TREE_H diff -Nru cgal-5.4.1/include/CGAL/boost/graph/properties_Constrained_Delaunay_triangulation_2.h cgal-5.5/include/CGAL/boost/graph/properties_Constrained_Delaunay_triangulation_2.h --- cgal-5.4.1/include/CGAL/boost/graph/properties_Constrained_Delaunay_triangulation_2.h 2022-06-03 19:06:08.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/properties_Constrained_Delaunay_triangulation_2.h 2022-07-13 19:07:06.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_2/include/CGAL/boost/graph/properties_Constrained_Delaunay_triangulation_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_2/include/CGAL/boost/graph/properties_Constrained_Delaunay_triangulation_2.h $ // $Id: properties_Constrained_Delaunay_triangulation_2.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/boost/graph/properties_Constrained_triangulation_2.h cgal-5.5/include/CGAL/boost/graph/properties_Constrained_triangulation_2.h --- cgal-5.4.1/include/CGAL/boost/graph/properties_Constrained_triangulation_2.h 2022-06-03 19:06:08.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/properties_Constrained_triangulation_2.h 2022-07-13 19:07:06.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_2/include/CGAL/boost/graph/properties_Constrained_triangulation_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_2/include/CGAL/boost/graph/properties_Constrained_triangulation_2.h $ // $Id: properties_Constrained_triangulation_2.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/boost/graph/properties_Constrained_triangulation_plus_2.h cgal-5.5/include/CGAL/boost/graph/properties_Constrained_triangulation_plus_2.h --- cgal-5.4.1/include/CGAL/boost/graph/properties_Constrained_triangulation_plus_2.h 2022-06-03 19:06:08.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/properties_Constrained_triangulation_plus_2.h 2022-07-13 19:07:06.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_2/include/CGAL/boost/graph/properties_Constrained_triangulation_plus_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_2/include/CGAL/boost/graph/properties_Constrained_triangulation_plus_2.h $ // $Id: properties_Constrained_triangulation_plus_2.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/boost/graph/properties_Delaunay_triangulation_2.h cgal-5.5/include/CGAL/boost/graph/properties_Delaunay_triangulation_2.h --- cgal-5.4.1/include/CGAL/boost/graph/properties_Delaunay_triangulation_2.h 2022-06-03 19:06:08.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/properties_Delaunay_triangulation_2.h 2022-07-13 19:07:06.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_2/include/CGAL/boost/graph/properties_Delaunay_triangulation_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_2/include/CGAL/boost/graph/properties_Delaunay_triangulation_2.h $ // $Id: properties_Delaunay_triangulation_2.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/boost/graph/properties.h cgal-5.5/include/CGAL/boost/graph/properties.h --- cgal-5.4.1/include/CGAL/boost/graph/properties.h 2022-06-03 19:03:49.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/properties.h 2022-07-13 19:04:35.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/BGL/include/CGAL/boost/graph/properties.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/BGL/include/CGAL/boost/graph/properties.h $ // $Id: properties.h 8166579 2021-10-11T19:58:07+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/boost/graph/properties_Linear_cell_complex_for_combinatorial_map.h cgal-5.5/include/CGAL/boost/graph/properties_Linear_cell_complex_for_combinatorial_map.h --- cgal-5.4.1/include/CGAL/boost/graph/properties_Linear_cell_complex_for_combinatorial_map.h 2022-06-03 19:04:42.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/properties_Linear_cell_complex_for_combinatorial_map.h 2022-07-13 19:05:34.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Linear_cell_complex/include/CGAL/boost/graph/properties_Linear_cell_complex_for_combinatorial_map.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Linear_cell_complex/include/CGAL/boost/graph/properties_Linear_cell_complex_for_combinatorial_map.h $ // $Id: properties_Linear_cell_complex_for_combinatorial_map.h f3db661 2022-03-09T14:13:31+00:00 Andreas Fabri // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/boost/graph/properties_OpenMesh.h cgal-5.5/include/CGAL/boost/graph/properties_OpenMesh.h --- cgal-5.4.1/include/CGAL/boost/graph/properties_OpenMesh.h 2022-06-03 19:03:49.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/properties_OpenMesh.h 2022-07-13 19:04:35.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/BGL/include/CGAL/boost/graph/properties_OpenMesh.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/BGL/include/CGAL/boost/graph/properties_OpenMesh.h $ // $Id: properties_OpenMesh.h 590ddf8 2021-10-08T15:38:47+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/boost/graph/properties_Polyhedron_3_features.h cgal-5.5/include/CGAL/boost/graph/properties_Polyhedron_3_features.h --- cgal-5.4.1/include/CGAL/boost/graph/properties_Polyhedron_3_features.h 2022-06-03 19:05:22.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/properties_Polyhedron_3_features.h 2022-07-13 19:06:17.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polyhedron/include/CGAL/boost/graph/properties_Polyhedron_3_features.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polyhedron/include/CGAL/boost/graph/properties_Polyhedron_3_features.h $ // $Id: properties_Polyhedron_3_features.h 590ddf8 2021-10-08T15:38:47+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/boost/graph/properties_Polyhedron_3.h cgal-5.5/include/CGAL/boost/graph/properties_Polyhedron_3.h --- cgal-5.4.1/include/CGAL/boost/graph/properties_Polyhedron_3.h 2022-06-03 19:05:22.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/properties_Polyhedron_3.h 2022-07-13 19:06:17.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polyhedron/include/CGAL/boost/graph/properties_Polyhedron_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polyhedron/include/CGAL/boost/graph/properties_Polyhedron_3.h $ // $Id: properties_Polyhedron_3.h 8166579 2021-10-11T19:58:07+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/boost/graph/properties_Polyhedron_3_time_stamp.h cgal-5.5/include/CGAL/boost/graph/properties_Polyhedron_3_time_stamp.h --- cgal-5.4.1/include/CGAL/boost/graph/properties_Polyhedron_3_time_stamp.h 2022-06-03 19:05:22.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/properties_Polyhedron_3_time_stamp.h 2022-07-13 19:06:17.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polyhedron/include/CGAL/boost/graph/properties_Polyhedron_3_time_stamp.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polyhedron/include/CGAL/boost/graph/properties_Polyhedron_3_time_stamp.h $ // $Id: properties_Polyhedron_3_time_stamp.h df56098 2021-10-08T12:13:43+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/boost/graph/properties_PolyMesh_ArrayKernelT.h cgal-5.5/include/CGAL/boost/graph/properties_PolyMesh_ArrayKernelT.h --- cgal-5.4.1/include/CGAL/boost/graph/properties_PolyMesh_ArrayKernelT.h 2022-06-03 19:03:49.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/properties_PolyMesh_ArrayKernelT.h 2022-07-13 19:04:35.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/BGL/include/CGAL/boost/graph/properties_PolyMesh_ArrayKernelT.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/BGL/include/CGAL/boost/graph/properties_PolyMesh_ArrayKernelT.h $ // $Id: properties_PolyMesh_ArrayKernelT.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/boost/graph/properties_Regular_triangulation_2.h cgal-5.5/include/CGAL/boost/graph/properties_Regular_triangulation_2.h --- cgal-5.4.1/include/CGAL/boost/graph/properties_Regular_triangulation_2.h 2022-06-03 19:06:08.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/properties_Regular_triangulation_2.h 2022-07-13 19:07:07.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_2/include/CGAL/boost/graph/properties_Regular_triangulation_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_2/include/CGAL/boost/graph/properties_Regular_triangulation_2.h $ // $Id: properties_Regular_triangulation_2.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/boost/graph/properties_Seam_mesh.h cgal-5.5/include/CGAL/boost/graph/properties_Seam_mesh.h --- cgal-5.4.1/include/CGAL/boost/graph/properties_Seam_mesh.h 2022-06-03 19:03:49.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/properties_Seam_mesh.h 2022-07-13 19:04:35.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/BGL/include/CGAL/boost/graph/properties_Seam_mesh.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/BGL/include/CGAL/boost/graph/properties_Seam_mesh.h $ // $Id: properties_Seam_mesh.h c999ce1 2020-02-19T10:07:53+01:00 Maxime Gimeno // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/boost/graph/properties_Surface_mesh_features.h cgal-5.5/include/CGAL/boost/graph/properties_Surface_mesh_features.h --- cgal-5.4.1/include/CGAL/boost/graph/properties_Surface_mesh_features.h 2022-06-03 19:05:53.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/properties_Surface_mesh_features.h 2022-07-13 19:06:50.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh/include/CGAL/boost/graph/properties_Surface_mesh_features.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh/include/CGAL/boost/graph/properties_Surface_mesh_features.h $ // $Id: properties_Surface_mesh_features.h fbd9628 2020-05-15T18:27:33+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/boost/graph/properties_Surface_mesh.h cgal-5.5/include/CGAL/boost/graph/properties_Surface_mesh.h --- cgal-5.4.1/include/CGAL/boost/graph/properties_Surface_mesh.h 2022-06-03 19:05:53.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/properties_Surface_mesh.h 2022-07-13 19:06:50.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh/include/CGAL/boost/graph/properties_Surface_mesh.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh/include/CGAL/boost/graph/properties_Surface_mesh.h $ // $Id: properties_Surface_mesh.h 590ddf8 2021-10-08T15:38:47+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/boost/graph/properties_Surface_mesh_time_stamp.h cgal-5.5/include/CGAL/boost/graph/properties_Surface_mesh_time_stamp.h --- cgal-5.4.1/include/CGAL/boost/graph/properties_Surface_mesh_time_stamp.h 2022-06-03 19:05:53.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/properties_Surface_mesh_time_stamp.h 2022-07-13 19:06:50.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh/include/CGAL/boost/graph/properties_Surface_mesh_time_stamp.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh/include/CGAL/boost/graph/properties_Surface_mesh_time_stamp.h $ // $Id: properties_Surface_mesh_time_stamp.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/boost/graph/properties_Triangulation_2.h cgal-5.5/include/CGAL/boost/graph/properties_Triangulation_2.h --- cgal-5.4.1/include/CGAL/boost/graph/properties_Triangulation_2.h 2022-06-03 19:06:08.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/properties_Triangulation_2.h 2022-07-13 19:07:07.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_2/include/CGAL/boost/graph/properties_Triangulation_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_2/include/CGAL/boost/graph/properties_Triangulation_2.h $ // $Id: properties_Triangulation_2.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/boost/graph/properties_Triangulation_data_structure_2.h cgal-5.5/include/CGAL/boost/graph/properties_Triangulation_data_structure_2.h --- cgal-5.4.1/include/CGAL/boost/graph/properties_Triangulation_data_structure_2.h 2022-06-03 19:06:02.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/properties_Triangulation_data_structure_2.h 2022-07-13 19:07:00.000000000 +0000 @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/TDS_2/include/CGAL/boost/graph/properties_Triangulation_data_structure_2.h $ -// $Id: properties_Triangulation_data_structure_2.h 129f427 2021-12-16T13:48:01+01:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/TDS_2/include/CGAL/boost/graph/properties_Triangulation_data_structure_2.h $ +// $Id: properties_Triangulation_data_structure_2.h 6d3176e 2022-01-07T14:42:25+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Mael Rouxel-Labbé @@ -15,7 +15,7 @@ #include #include -#include +#include #include diff -Nru cgal-5.4.1/include/CGAL/boost/graph/properties_Triangulation_hierarchy_2.h cgal-5.5/include/CGAL/boost/graph/properties_Triangulation_hierarchy_2.h --- cgal-5.4.1/include/CGAL/boost/graph/properties_Triangulation_hierarchy_2.h 2022-06-03 19:06:08.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/properties_Triangulation_hierarchy_2.h 2022-07-13 19:07:07.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_2/include/CGAL/boost/graph/properties_Triangulation_hierarchy_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_2/include/CGAL/boost/graph/properties_Triangulation_hierarchy_2.h $ // $Id: properties_Triangulation_hierarchy_2.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/boost/graph/properties_TriMesh_ArrayKernelT.h cgal-5.5/include/CGAL/boost/graph/properties_TriMesh_ArrayKernelT.h --- cgal-5.4.1/include/CGAL/boost/graph/properties_TriMesh_ArrayKernelT.h 2022-06-03 19:03:49.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/properties_TriMesh_ArrayKernelT.h 2022-07-13 19:04:35.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/BGL/include/CGAL/boost/graph/properties_TriMesh_ArrayKernelT.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/BGL/include/CGAL/boost/graph/properties_TriMesh_ArrayKernelT.h $ // $Id: properties_TriMesh_ArrayKernelT.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/boost/graph/property_maps.h cgal-5.5/include/CGAL/boost/graph/property_maps.h --- cgal-5.4.1/include/CGAL/boost/graph/property_maps.h 2022-06-03 19:03:49.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/property_maps.h 2022-07-13 19:04:35.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/BGL/include/CGAL/boost/graph/property_maps.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/BGL/include/CGAL/boost/graph/property_maps.h $ // $Id: property_maps.h 590ddf8 2021-10-08T15:38:47+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/boost/graph/Seam_mesh.h cgal-5.5/include/CGAL/boost/graph/Seam_mesh.h --- cgal-5.4.1/include/CGAL/boost/graph/Seam_mesh.h 2022-06-03 19:03:48.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/Seam_mesh.h 2022-07-13 19:04:34.000000000 +0000 @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/BGL/include/CGAL/boost/graph/Seam_mesh.h $ -// $Id: Seam_mesh.h 5d41446 2020-09-22T11:53:27+02:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/BGL/include/CGAL/boost/graph/Seam_mesh.h $ +// $Id: Seam_mesh.h 258d704 2022-02-24T19:57:17+01:00 Laurent Rineau // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // @@ -19,10 +19,11 @@ #include #include +#include #include -#include +#include #include #include #include @@ -934,7 +935,7 @@ void build_TM_vertices_vector(std::vector& tm_vds) const { - assert(tm_vds.empty()); + CGAL_precondition(tm_vds.empty()); // If the input is a list of integers, we need to build a correspondence // between vertices and integers. @@ -1008,7 +1009,7 @@ TM_halfedge_descriptor add_seams(InputIterator first, InputIterator last) { // must have an even number of input vertices - assert(std::distance(first, last) % 2 == 0); + CGAL_precondition(std::distance(first, last) % 2 == 0); TM_halfedge_descriptor tmhd = boost::graph_traits::null_halfedge(); InputIterator it = first; diff -Nru cgal-5.4.1/include/CGAL/boost/graph/selection.h cgal-5.5/include/CGAL/boost/graph/selection.h --- cgal-5.4.1/include/CGAL/boost/graph/selection.h 2022-06-03 19:03:49.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/selection.h 2022-07-13 19:04:35.000000000 +0000 @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/BGL/include/CGAL/boost/graph/selection.h $ -// $Id: selection.h 8166579 2021-10-11T19:58:07+02:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/BGL/include/CGAL/boost/graph/selection.h $ +// $Id: selection.h 258d704 2022-02-24T19:57:17+01:00 Laurent Rineau // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Sebastien Loriot @@ -14,7 +14,6 @@ #include #include -#include #include #include @@ -22,6 +21,9 @@ #include #include +#include + +#include namespace CGAL { @@ -498,13 +500,13 @@ \cgalParamNEnd \cgalNamedParamsEnd */ -template +template void regularize_face_selection_borders( TriangleMesh& mesh, IsSelectedMap is_selected, double weight, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { using parameters::choose_parameter; using parameters::get_parameter; @@ -547,20 +549,6 @@ } /// \cond SKIP_IN_MANUAL -// variant with default np -template -void -regularize_face_selection_borders( - TriangleMesh& fg, - IsSelectedMap is_selected, - double weight) -{ - regularize_face_selection_borders (fg, is_selected, weight, - CGAL::parameters::all_default()); -} -/// \endcond - -/// \cond SKIP_IN_MANUAL namespace experimental { @@ -1051,7 +1039,7 @@ typedef typename boost::graph_traits::face_descriptor face_descriptor; typedef typename boost::graph_traits::halfedge_descriptor halfedge_descriptor; - boost::unordered_set vertices_queue; + std::unordered_set vertices_queue; // collect vertices belonging to at least a triangle that will be removed for(face_descriptor fd : faces_to_be_deleted) @@ -1126,7 +1114,7 @@ for(halfedge_descriptor f_hd : faces_traversed) { - assert(target(f_hd, tm) == vd); + CGAL_assertion(target(f_hd, tm) == vd); put(is_selected, face(f_hd, tm), true); vertices_queue.insert( target( next(f_hd, tm), tm) ); vertices_queue.insert( source(f_hd, tm) ); @@ -1144,8 +1132,8 @@ typedef typename boost::graph_traits::face_descriptor face_descriptor; typedef typename boost::graph_traits::halfedge_descriptor halfedge_descriptor; typedef typename boost::graph_traits::edge_descriptor edge_descriptor; - boost::unordered_set sel_vertices; - boost::unordered_set sel_edges; + std::unordered_set sel_vertices; + std::unordered_set sel_edges; for(face_descriptor f : face_selection) { for(halfedge_descriptor h : halfedges_around_face(halfedge(f, pm), pm)) diff -Nru cgal-5.4.1/include/CGAL/boost/graph/split_graph_into_polylines.h cgal-5.5/include/CGAL/boost/graph/split_graph_into_polylines.h --- cgal-5.4.1/include/CGAL/boost/graph/split_graph_into_polylines.h 2022-06-03 19:03:49.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/split_graph_into_polylines.h 2022-07-13 19:04:35.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/BGL/include/CGAL/boost/graph/split_graph_into_polylines.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/BGL/include/CGAL/boost/graph/split_graph_into_polylines.h $ // $Id: split_graph_into_polylines.h 4138477 2021-09-30T16:49:40+02:00 Laurent Rineau // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/boost/graph/visitor.h cgal-5.5/include/CGAL/boost/graph/visitor.h --- cgal-5.4.1/include/CGAL/boost/graph/visitor.h 2022-06-03 19:03:49.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/graph/visitor.h 2022-07-13 19:04:35.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/BGL/include/CGAL/boost/graph/visitor.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/BGL/include/CGAL/boost/graph/visitor.h $ // $Id: visitor.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/boost/iterator/counting_iterator.hpp cgal-5.5/include/CGAL/boost/iterator/counting_iterator.hpp --- cgal-5.4.1/include/CGAL/boost/iterator/counting_iterator.hpp 2022-06-03 19:04:20.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/iterator/counting_iterator.hpp 2022-07-13 19:05:09.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/boost/iterator/counting_iterator.hpp $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/boost/iterator/counting_iterator.hpp $ // $Id: counting_iterator.hpp 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/boost/iterator/transform_iterator.hpp cgal-5.5/include/CGAL/boost/iterator/transform_iterator.hpp --- cgal-5.4.1/include/CGAL/boost/iterator/transform_iterator.hpp 2022-06-03 19:04:20.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/iterator/transform_iterator.hpp 2022-07-13 19:05:09.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/boost/iterator/transform_iterator.hpp $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/boost/iterator/transform_iterator.hpp $ // $Id: transform_iterator.hpp 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/boost/parameter.h cgal-5.5/include/CGAL/boost/parameter.h --- cgal-5.4.1/include/CGAL/boost/parameter.h 2022-06-03 19:03:49.000000000 +0000 +++ cgal-5.5/include/CGAL/boost/parameter.h 2022-07-13 19:04:35.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/BGL/include/CGAL/boost/parameter.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/BGL/include/CGAL/boost/parameter.h $ // $Id: parameter.h 4b3fee8 2021-09-23T11:37:35+02:00 Jane Tournois // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/BOOST_MP_arithmetic_kernel.h cgal-5.5/include/CGAL/BOOST_MP_arithmetic_kernel.h --- cgal-5.4.1/include/CGAL/BOOST_MP_arithmetic_kernel.h 2022-06-03 19:03:36.000000000 +0000 +++ cgal-5.5/include/CGAL/BOOST_MP_arithmetic_kernel.h 2022-07-13 19:04:20.000000000 +0000 @@ -3,14 +3,14 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arithmetic_kernel/include/CGAL/BOOST_MP_arithmetic_kernel.h $ -// $Id: BOOST_MP_arithmetic_kernel.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arithmetic_kernel/include/CGAL/BOOST_MP_arithmetic_kernel.h $ +// $Id: BOOST_MP_arithmetic_kernel.h ed79fea 2021-09-23T13:02:58+02:00 Dmitry Anisimov // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // Author: Marc Glisse -#ifndef CGAL_GMPXX_ARITHMETIC_KERNEL_H -#define CGAL_GMPXX_ARITHMETIC_KERNEL_H +#ifndef CGAL_BOOST_MP_ARITHMETIC_KERNEL_H +#define CGAL_BOOST_MP_ARITHMETIC_KERNEL_H #include #include diff -Nru cgal-5.4.1/include/CGAL/boost_mp.h cgal-5.5/include/CGAL/boost_mp.h --- cgal-5.4.1/include/CGAL/boost_mp.h 2022-06-03 19:05:01.000000000 +0000 +++ cgal-5.5/include/CGAL/boost_mp.h 2022-07-13 19:05:55.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/boost_mp.h $ -// $Id: boost_mp.h 393ae7d 2021-05-12T15:03:53+02:00 Maxime Gimeno +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/boost_mp.h $ +// $Id: boost_mp.h 6486844 2022-05-10T11:30:39+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Marc Glisse @@ -13,6 +13,7 @@ #define CGAL_BOOST_MP_H #include +#include // It is easier to disable this number type completely for old versions. // Before 1.63, I/O is broken. Again, disabling the whole file is just the @@ -23,6 +24,7 @@ (!defined _MSC_VER || BOOST_VERSION >= 107000) #define CGAL_USE_BOOST_MP 1 +#include #include // *ary_function #include #include @@ -139,6 +141,236 @@ // Real_embeddable_traits +namespace Boost_MP_internal { + + // here we know that `intv` contains int64 numbers such that their msb is std::numeric_limits::digits-1 + // TODO: possibly return denormals sometimes... + inline + std::pair shift_positive_interval( const std::pair& intv, const int e ) { + CGAL_assertion(intv.first > 0.0); + CGAL_assertion(intv.second > 0.0); + +#ifdef CGAL_LITTLE_ENDIAN + CGAL_assertion_code( + union { + struct { uint64_t man:52; uint64_t exp:11; uint64_t sig:1; } s; + double d; + } conv; + + conv.d = intv.first; + ) +#else + //WARNING: untested! + CGAL_assertion_code( + union { + + struct { uint64_t sig:1; uint64_t exp:11; uint64_t man:52; } s; + double d; + } conv; + + conv.d = intv.first; + ) +#endif + // Check that the exponent of intv.inf is 52, which corresponds to a 53 bit integer + CGAL_assertion(conv.s.exp - ((1 << (11 - 1)) - 1) == std::numeric_limits::digits - 1); + + typedef std::numeric_limits limits; + + // warning: min_exponent and max_exponent are 1 more than what the name suggests + if (e < limits::min_exponent - limits::digits) + return {0, (limits::min)()}; + if (e > limits::max_exponent - limits::digits) + return {(limits::max)(), limits::infinity()}; // intv is positive + + const double scale = std::ldexp(1.0, e); // ldexp call is exact + return { scale * intv.first, scale * intv.second }; // cases that would require a rounding mode have been handled above + } + + // This function checks if the computed interval is correct and if it is tight. + template + bool are_bounds_correct( const double l, const double u, const Type& x ) { + typedef std::numeric_limits limits; + + const double inf = std::numeric_limits::infinity(); + if ( u!=l && (l==-inf || u==inf + || (u==0 && l >= -(limits::min)()) + || (l==0 && u <= (limits::min)())) ) + { + return x > Type((limits::max)()) || + x < Type(-(limits::max)()) || + (x > Type(-(limits::min)()) && x < Type((limits::min)())); + } + + if (!(u == l || u == std::nextafter(l, +inf))) return false; + //TODO: Type(nextafter(l,inf))>x && Type(nextafter(u,-inf)) get_0ulp_interval( const int shift, const uint64_t p ) { + + const double pp_dbl = static_cast(p); + const std::pair intv(pp_dbl, pp_dbl); + + return shift_positive_interval(intv, -shift); + } + + // This one returns 1 unit length interval. + inline + std::pair get_1ulp_interval( const int shift, const uint64_t p ) { + + const double pp_dbl = static_cast(p); + const double qq_dbl = pp_dbl+1; + const std::pair intv(pp_dbl, qq_dbl); + return shift_positive_interval(intv, -shift); + } + + template + std::pair to_interval( ET x, int extra_shift = 0 ); + + // This is a version of to_interval that converts a rational type into a + // double tight interval. + template + std::pair to_interval( ET xnum, ET xden ) { + + CGAL_assertion(!CGAL::is_zero(xden)); + CGAL_assertion_code(const Type input(xnum, xden)); + double l = 0.0, u = 0.0; + if (CGAL::is_zero(xnum)) { // return [0.0, 0.0] + CGAL_assertion(are_bounds_correct(l, u, input)); + return std::make_pair(l, u); + } + CGAL_assertion(!CGAL::is_zero(xnum)); + + // Handle signs. + bool change_sign = false; + const bool is_num_pos = CGAL::is_positive(xnum); + const bool is_den_pos = CGAL::is_positive(xden); + if (!is_num_pos && !is_den_pos) { + xnum = -xnum; + xden = -xden; + } else if (!is_num_pos && is_den_pos) { + change_sign = true; + xnum = -xnum; + } else if (is_num_pos && !is_den_pos) { + change_sign = true; + xden = -xden; + } + CGAL_assertion(CGAL::is_positive(xnum) && CGAL::is_positive(xden)); + + const int64_t num_dbl_digits = std::numeric_limits::digits - 1; + const int64_t msb_num = static_cast(boost::multiprecision::msb(xnum)); + const int64_t msb_den = static_cast(boost::multiprecision::msb(xden)); + +#if 0 // Optimisation for the case of input that are double + // An alternative strategy would be to convert numerator and denominator to + // intervals, then divide. However, this would require setting the rounding + // mode (and dividing intervals is not completely free). An important + // special case is when the rational is exactly equal to a double + // (fit_in_double). Then the denominator is a power of 2, so we can skip + // the division and it becomes unnecessary to set the rounding mode, we + // just need to modify the exponent correction for the denominator. + if(msb_den == static_cast(lsb(xden))) { + std::tie(l,u)=to_interval(xnum, msb_den); + if (change_sign) { + CGAL_assertion(are_bounds_correct(-u, -l, input)); + return {-u, -l}; + } + CGAL_assertion(are_bounds_correct(l, u, input)); + return {u, l}; + } +#endif + + const int64_t msb_diff = msb_num - msb_den; + // Shift so the division result has at least 53 (and at most 54) bits + int shift = static_cast(num_dbl_digits - msb_diff + 1); + CGAL_assertion(shift == num_dbl_digits - msb_diff + 1); + + if (shift > 0) { + xnum <<= +shift; + } else if (shift < 0) { + xden <<= -shift; + } + CGAL_assertion(num_dbl_digits + 1 == + static_cast(boost::multiprecision::msb(xnum)) - + static_cast(boost::multiprecision::msb(xden))); + + ET p, r; + boost::multiprecision::divide_qr(xnum, xden, p, r); + uint64_t uip = static_cast(p); + const int64_t p_bits = static_cast(boost::multiprecision::msb(p)); + bool exact = r.is_zero(); + + if (p_bits > num_dbl_digits) { // case 54 bits + exact &= ((uip & 1) == 0); + uip>>=1; + --shift; + } + std::tie(l, u) = exact ? get_0ulp_interval(shift, uip) : get_1ulp_interval(shift, uip); + + if (change_sign) { + const double t = l; + l = -u; + u = -t; + } + + CGAL_assertion(are_bounds_correct(l, u, input)); + return std::make_pair(l, u); + } + + // This is a version of to_interval that converts an integer type into a + // double tight interval. + template + std::pair to_interval( ET x, int extra_shift) { + + CGAL_assertion_code(const ET input = x); + double l = 0.0, u = 0.0; + if (CGAL::is_zero(x)) { // return [0.0, 0.0] + CGAL_assertion(are_bounds_correct(l, u, input)); + return std::make_pair(l, u); + } + CGAL_assertion(!CGAL::is_zero(x)); + + bool change_sign = false; + const bool is_pos = CGAL::is_positive(x); + if (!is_pos) { + change_sign = true; + x = -x; + } + CGAL_assertion(CGAL::is_positive(x)); + + const int64_t n = static_cast(boost::multiprecision::msb(x)) + 1; + const int64_t num_dbl_digits = std::numeric_limits::digits; + + if (n > num_dbl_digits) { + const int64_t mindig = static_cast(boost::multiprecision::lsb(x)); + int e = static_cast(n - num_dbl_digits); + x >>= e; + if (n - mindig > num_dbl_digits) + std::tie(l, u) = get_1ulp_interval(-e+extra_shift, static_cast(x)); + else + std::tie(l, u) = get_0ulp_interval(-e+extra_shift, static_cast(x)); + } else { + l = u = extra_shift==0 ? static_cast(static_cast(x)) + : std::ldexp(static_cast(static_cast(x)),-extra_shift); + } + + if (change_sign) { + const double t = l; + l = -u; + u = -t; + } + + CGAL_assertion(extra_shift != 0 || are_bounds_correct(l, u, input)); + return std::make_pair(l, u); + } + +} // Boost_MP_internal + template struct RET_boost_mp_base : public INTERN_RET::Real_embeddable_traits_base< NT , CGAL::Tag_true > { @@ -192,24 +424,41 @@ struct To_interval : public CGAL::cpp98::unary_function< Type, std::pair< double, double > > { + std::pair operator()(const Type& x) const { - // See if https://github.com/boostorg/multiprecision/issues/108 suggests anything better - // assume the conversion is within 1 ulp - // adding IA::smallest() doesn't work because inf-e=inf, even rounded down. - double i = x.template convert_to(); - double s = i; - double inf = std::numeric_limits::infinity(); - int cmp = x.compare(i); - if (cmp > 0) { - s = nextafter(s, +inf); - CGAL_assertion(x.compare(s) < 0); - } - else if (cmp < 0) { - i = nextafter(i, -inf); - CGAL_assertion(x.compare(i) > 0); + + // See if https://github.com/boostorg/multiprecision/issues/108 suggests anything better + // assume the conversion is within 1 ulp + // adding IA::smallest() doesn't work because inf-e=inf, even rounded down. + + // We must use to_nearest here. + double i; + const double inf = std::numeric_limits::infinity(); + { + Protect_FPU_rounding P(CGAL_FE_TONEAREST); + i = static_cast(x); + if (i == +inf) { + return std::make_pair((std::numeric_limits::max)(), i); + } else if (i == -inf) { + return std::make_pair(i, std::numeric_limits::lowest()); } - return std::pair (i, s); + } + double s = i; + CGAL_assertion(CGAL::abs(i) != inf && CGAL::abs(s) != inf); + + // Throws uncaught exception: Cannot convert a non-finite number to an integer. + // We can catch it earlier by using the CGAL_assertion() one line above. + const int cmp = x.compare(i); + if (cmp > 0) { + s = nextafter(s, +inf); + CGAL_assertion(x.compare(s) < 0); + } + else if (cmp < 0) { + i = nextafter(i, -inf); + CGAL_assertion(x.compare(i) > 0); + } + return std::pair(i, s); } }; }; @@ -219,11 +468,30 @@ template struct RET_boost_mp > - : RET_boost_mp_base {}; + : RET_boost_mp_base { + typedef NT Type; + struct To_interval + : public CGAL::cpp98::unary_function< Type, std::pair< double, double > > { + + std::pair operator()( const Type& x ) const { + return Boost_MP_internal::to_interval(x); + } + }; +}; template struct RET_boost_mp > - : RET_boost_mp_base {}; + : RET_boost_mp_base { + typedef NT Type; + struct To_interval + : public CGAL::cpp98::unary_function< Type, std::pair< double, double > > { + + std::pair operator()( const Type& x ) const { + return Boost_MP_internal::to_interval( + boost::multiprecision::numerator(x), boost::multiprecision::denominator(x)); + } + }; +}; #ifdef CGAL_USE_MPFR // Because of these full specializations, things get instantiated more eagerly. Make them artificially partial if necessary. @@ -438,7 +706,7 @@ // Coercions -namespace internal { namespace boost_mp { BOOST_MPL_HAS_XXX_TRAIT_DEF(type); } } +namespace internal { namespace boost_mp { BOOST_MPL_HAS_XXX_TRAIT_DEF(type) } } template struct Coercion_traits, boost::multiprecision::number > @@ -607,6 +875,25 @@ #endif } // namespace internal +#ifdef CGAL_USE_BOOST_MP + +template< > class Real_embeddable_traits< Quotient > + : public INTERN_QUOTIENT::Real_embeddable_traits_quotient_base< Quotient > { + + public: + typedef Quotient Type; + + class To_interval + : public CGAL::cpp98::unary_function< Type, std::pair< double, double > > { + public: + std::pair operator()( const Type& x ) const { + return Boost_MP_internal::to_interval(x.num, x.den); + } + }; +}; + +#endif // CGAL_USE_BOOST_MP + } //namespace CGAL #include diff -Nru cgal-5.4.1/include/CGAL/Bounded_kernel.h cgal-5.5/include/CGAL/Bounded_kernel.h --- cgal-5.4.1/include/CGAL/Bounded_kernel.h 2022-06-03 19:04:53.000000000 +0000 +++ cgal-5.5/include/CGAL/Bounded_kernel.h 2022-07-13 19:05:46.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_2/include/CGAL/Bounded_kernel.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_2/include/CGAL/Bounded_kernel.h $ // $Id: Bounded_kernel.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/bounding_box.h cgal-5.5/include/CGAL/bounding_box.h --- cgal-5.4.1/include/CGAL/bounding_box.h 2022-06-03 19:05:28.000000000 +0000 +++ cgal-5.5/include/CGAL/bounding_box.h 2022-07-13 19:06:23.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Principal_component_analysis_LGPL/include/CGAL/bounding_box.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Principal_component_analysis_LGPL/include/CGAL/bounding_box.h $ // $Id: bounding_box.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Box_intersection_d/Box_d.h cgal-5.5/include/CGAL/Box_intersection_d/Box_d.h --- cgal-5.4.1/include/CGAL/Box_intersection_d/Box_d.h 2022-06-03 19:03:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Box_intersection_d/Box_d.h 2022-07-13 19:04:40.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Box_intersection_d/include/CGAL/Box_intersection_d/Box_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Box_intersection_d/include/CGAL/Box_intersection_d/Box_d.h $ // $Id: Box_d.h 3e03d50 2021-05-05T15:32:22+02:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Box_intersection_d/box_limits.h cgal-5.5/include/CGAL/Box_intersection_d/box_limits.h --- cgal-5.4.1/include/CGAL/Box_intersection_d/box_limits.h 2022-06-03 19:03:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Box_intersection_d/box_limits.h 2022-07-13 19:04:41.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Box_intersection_d/include/CGAL/Box_intersection_d/box_limits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Box_intersection_d/include/CGAL/Box_intersection_d/box_limits.h $ // $Id: box_limits.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Box_intersection_d/Box_traits_d.h cgal-5.5/include/CGAL/Box_intersection_d/Box_traits_d.h --- cgal-5.4.1/include/CGAL/Box_intersection_d/Box_traits_d.h 2022-06-03 19:03:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Box_intersection_d/Box_traits_d.h 2022-07-13 19:04:41.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Box_intersection_d/include/CGAL/Box_intersection_d/Box_traits_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Box_intersection_d/include/CGAL/Box_intersection_d/Box_traits_d.h $ // $Id: Box_traits_d.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Box_intersection_d/Box_with_handle_d.h cgal-5.5/include/CGAL/Box_intersection_d/Box_with_handle_d.h --- cgal-5.4.1/include/CGAL/Box_intersection_d/Box_with_handle_d.h 2022-06-03 19:03:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Box_intersection_d/Box_with_handle_d.h 2022-07-13 19:04:41.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Box_intersection_d/include/CGAL/Box_intersection_d/Box_with_handle_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Box_intersection_d/include/CGAL/Box_intersection_d/Box_with_handle_d.h $ // $Id: Box_with_handle_d.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Box_intersection_d/Box_with_info_d.h cgal-5.5/include/CGAL/Box_intersection_d/Box_with_info_d.h --- cgal-5.4.1/include/CGAL/Box_intersection_d/Box_with_info_d.h 2022-06-03 19:03:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Box_intersection_d/Box_with_info_d.h 2022-07-13 19:04:41.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Box_intersection_d/include/CGAL/Box_intersection_d/Box_with_info_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Box_intersection_d/include/CGAL/Box_intersection_d/Box_with_info_d.h $ // $Id: Box_with_info_d.h 8bb22d5 2020-03-26T14:23:37+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Box_intersection_d/segment_tree.h cgal-5.5/include/CGAL/Box_intersection_d/segment_tree.h --- cgal-5.4.1/include/CGAL/Box_intersection_d/segment_tree.h 2022-06-03 19:03:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Box_intersection_d/segment_tree.h 2022-07-13 19:04:41.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Box_intersection_d/include/CGAL/Box_intersection_d/segment_tree.h $ -// $Id: segment_tree.h 8bb22d5 2020-03-26T14:23:37+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Box_intersection_d/include/CGAL/Box_intersection_d/segment_tree.h $ +// $Id: segment_tree.h 79f9d82 2022-05-06T14:52:32+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -207,24 +207,19 @@ } -template< class RandomAccessIter, class Predicate_traits > +template< class RandomAccessIter, class Predicate_traits, class Generator> class Iterative_radon { RandomAccessIter begin; - std::ptrdiff_t size; Predicate_traits traits; int dim; - - boost::rand48 rng; - boost::uniform_int dist; - boost::variate_generator > generator; + Generator& generator; public: -Iterative_radon( RandomAccessIter begin, RandomAccessIter end, - Predicate_traits traits, int dim, int /*num_levels*/ ) - : begin(begin), size(end-begin), traits(traits), dim(dim), - rng(), dist(0,size-1), generator(rng,dist) + Iterative_radon( const RandomAccessIter& begin_, const Predicate_traits& traits_, + int dim_, Generator& generator_) + : begin(begin_), traits(traits_), dim(dim_), generator(generator_) {} RandomAccessIter @@ -247,7 +242,10 @@ iterative_radon( RandomAccessIter begin, RandomAccessIter end, Predicate_traits traits, int dim, int num_levels ) { - Iterative_radon IR(begin,end,traits,dim,num_levels); + typedef typename boost::variate_generator > Generator; + boost::rand48 rng; + Generator generator(rng, boost::uniform_int(0, (end-begin)-1)); + Iterative_radon IR(begin, traits, dim, generator); return IR(num_levels); } @@ -310,6 +308,59 @@ std::cout << std::endl; } + +template +class Has_member_report +{ +private: + template + class check {}; + + template + static auto f(int) -> decltype(std::declval().report(0) == true, char()); + + template + static int f(...); +public: + static const bool value = (sizeof(f(0)) == sizeof(char)); +}; + +template +CGAL_CPP17_INLINE constexpr bool Has_member_report_v = Has_member_report::value; + +template +inline +std::enable_if_t, bool> +report_impl(Callback callback, int dim) +{ + return callback.report(dim); +} + +template +inline +std::enable_if_t, bool> +report_impl(const Callback&, int) +{ + return false; +} + +template +inline +std::enable_if_t, void> +progress_impl(Callback callback, double d) +{ + callback.progress(d); +} + +template +inline +std::enable_if_t, void> +progress_impl(const Callback&, double) +{} + + + + template< class T > struct Counter { T& value; @@ -332,9 +383,11 @@ const T inf = box_limits< T >::inf(); const T sup = box_limits< T >::sup(); -#if CGAL_BOX_INTERSECTION_DEBUG - CGAL_STATIC_THREAD_LOCAL_VARIABLE(int, level, -1); + + CGAL_STATIC_THREAD_LOCAL_VARIABLE(int, level, -1); Counter bla( level ); + + #if CGAL_BOX_INTERSECTION_DEBUG CGAL_BOX_INTERSECTION_DUMP("range: [" << lo << "," << hi << ") dim " << dim << std::endl ) CGAL_BOX_INTERSECTION_DUMP("intervals: " ) @@ -358,13 +411,20 @@ } #endif - if( p_begin == p_end || i_begin == i_end || lo >= hi ) + if( p_begin == p_end || i_begin == i_end || lo >= hi ){ + if(report_impl(callback, dim)){ + progress_impl(callback, 1.0 / (1 << level)); + } return; + } if( dim == 0 ) { CGAL_BOX_INTERSECTION_DUMP( "dim = 0. scanning ... " << std::endl ) one_way_scan( p_begin, p_end, i_begin, i_end, callback, traits, dim, in_order ); + if(report_impl(callback,dim)){ + progress_impl(callback, 1.0 / (1 << level)); + } return; } @@ -374,6 +434,9 @@ CGAL_BOX_INTERSECTION_DUMP( "scanning ... " << std::endl ) modified_two_way_scan( p_begin, p_end, i_begin, i_end, callback, traits, dim, in_order ); + if(report_impl(callback,dim)){ + progress_impl(callback, 1.0 / (1 << level)); + } return; } @@ -400,6 +463,9 @@ << std::endl ) modified_two_way_scan( p_begin, p_end, i_span_end, i_end, callback, traits, dim, in_order ); + if(report_impl(callback,dim)){ + progress_impl(callback, 1.0 / (1 << level)); + } return; } diff -Nru cgal-5.4.1/include/CGAL/box_intersection_d.h cgal-5.5/include/CGAL/box_intersection_d.h --- cgal-5.4.1/include/CGAL/box_intersection_d.h 2022-06-03 19:03:54.000000000 +0000 +++ cgal-5.5/include/CGAL/box_intersection_d.h 2022-07-13 19:04:41.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Box_intersection_d/include/CGAL/box_intersection_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Box_intersection_d/include/CGAL/box_intersection_d.h $ // $Id: box_intersection_d.h 8773cee 2020-02-05T10:54:11+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Buffer_for_vao.h cgal-5.5/include/CGAL/Buffer_for_vao.h --- cgal-5.4.1/include/CGAL/Buffer_for_vao.h 2022-06-03 19:04:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Buffer_for_vao.h 2022-07-13 19:05:03.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Buffer_for_vao.h $ -// $Id: Buffer_for_vao.h 2cbc381 2021-09-23T16:13:57+02:00 Laurent Rineau +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Buffer_for_vao.h $ +// $Id: Buffer_for_vao.h 440a8df 2022-02-03T08:41:04+00:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -22,6 +22,7 @@ #include #include #include +#include #include #include @@ -58,7 +59,7 @@ ++nb; } - assert(nb>0); + CGAL_assertion(nb>0); return (typename Kernel_traits::Kernel::Construct_scaled_vector_3() (normal, 1.0/nb)); } diff -Nru cgal-5.4.1/include/CGAL/Cache.h cgal-5.5/include/CGAL/Cache.h --- cgal-5.4.1/include/CGAL/Cache.h 2022-06-03 19:05:31.000000000 +0000 +++ cgal-5.5/include/CGAL/Cache.h 2022-07-13 19:06:27.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/Cache.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/Cache.h $ // $Id: Cache.h f55ef7d 2020-10-09T18:36:17+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Cartesian/Aff_transformation_2.h cgal-5.5/include/CGAL/Cartesian/Aff_transformation_2.h --- cgal-5.4.1/include/CGAL/Cartesian/Aff_transformation_2.h 2022-06-03 19:03:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Cartesian/Aff_transformation_2.h 2022-07-13 19:04:43.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cartesian_kernel/include/CGAL/Cartesian/Aff_transformation_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cartesian_kernel/include/CGAL/Cartesian/Aff_transformation_2.h $ // $Id: Aff_transformation_2.h e73b8de 2021-04-22T21:17:24+01:00 Andreas Fabri // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Cartesian/Aff_transformation_3.h cgal-5.5/include/CGAL/Cartesian/Aff_transformation_3.h --- cgal-5.4.1/include/CGAL/Cartesian/Aff_transformation_3.h 2022-06-03 19:03:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Cartesian/Aff_transformation_3.h 2022-07-13 19:04:43.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cartesian_kernel/include/CGAL/Cartesian/Aff_transformation_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cartesian_kernel/include/CGAL/Cartesian/Aff_transformation_3.h $ // $Id: Aff_transformation_3.h 153413e 2021-04-15T13:58:33+01:00 Andreas Fabri // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Cartesian/Aff_transformation_rep_2.h cgal-5.5/include/CGAL/Cartesian/Aff_transformation_rep_2.h --- cgal-5.4.1/include/CGAL/Cartesian/Aff_transformation_rep_2.h 2022-06-03 19:03:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Cartesian/Aff_transformation_rep_2.h 2022-07-13 19:04:43.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cartesian_kernel/include/CGAL/Cartesian/Aff_transformation_rep_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cartesian_kernel/include/CGAL/Cartesian/Aff_transformation_rep_2.h $ // $Id: Aff_transformation_rep_2.h e73b8de 2021-04-22T21:17:24+01:00 Andreas Fabri // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Cartesian/Aff_transformation_rep_3.h cgal-5.5/include/CGAL/Cartesian/Aff_transformation_rep_3.h --- cgal-5.4.1/include/CGAL/Cartesian/Aff_transformation_rep_3.h 2022-06-03 19:03:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Cartesian/Aff_transformation_rep_3.h 2022-07-13 19:04:43.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cartesian_kernel/include/CGAL/Cartesian/Aff_transformation_rep_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cartesian_kernel/include/CGAL/Cartesian/Aff_transformation_rep_3.h $ // $Id: Aff_transformation_rep_3.h e73b8de 2021-04-22T21:17:24+01:00 Andreas Fabri // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Cartesian/basic_constructions_2.h cgal-5.5/include/CGAL/Cartesian/basic_constructions_2.h --- cgal-5.4.1/include/CGAL/Cartesian/basic_constructions_2.h 2022-06-03 19:03:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Cartesian/basic_constructions_2.h 2022-07-13 19:04:44.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cartesian_kernel/include/CGAL/Cartesian/basic_constructions_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cartesian_kernel/include/CGAL/Cartesian/basic_constructions_2.h $ // $Id: basic_constructions_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Cartesian/basic_constructions_3.h cgal-5.5/include/CGAL/Cartesian/basic_constructions_3.h --- cgal-5.4.1/include/CGAL/Cartesian/basic_constructions_3.h 2022-06-03 19:03:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Cartesian/basic_constructions_3.h 2022-07-13 19:04:44.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cartesian_kernel/include/CGAL/Cartesian/basic_constructions_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cartesian_kernel/include/CGAL/Cartesian/basic_constructions_3.h $ // $Id: basic_constructions_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Cartesian/Cartesian_base.h cgal-5.5/include/CGAL/Cartesian/Cartesian_base.h --- cgal-5.4.1/include/CGAL/Cartesian/Cartesian_base.h 2022-06-03 19:03:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Cartesian/Cartesian_base.h 2022-07-13 19:04:43.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cartesian_kernel/include/CGAL/Cartesian/Cartesian_base.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cartesian_kernel/include/CGAL/Cartesian/Cartesian_base.h $ // $Id: Cartesian_base.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Cartesian/Circle_2.h cgal-5.5/include/CGAL/Cartesian/Circle_2.h --- cgal-5.4.1/include/CGAL/Cartesian/Circle_2.h 2022-06-03 19:03:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Cartesian/Circle_2.h 2022-07-13 19:04:43.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cartesian_kernel/include/CGAL/Cartesian/Circle_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cartesian_kernel/include/CGAL/Cartesian/Circle_2.h $ // $Id: Circle_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Cartesian/Circle_3.h cgal-5.5/include/CGAL/Cartesian/Circle_3.h --- cgal-5.4.1/include/CGAL/Cartesian/Circle_3.h 2022-06-03 19:03:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Cartesian/Circle_3.h 2022-07-13 19:04:43.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cartesian_kernel/include/CGAL/Cartesian/Circle_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cartesian_kernel/include/CGAL/Cartesian/Circle_3.h $ // $Id: Circle_3.h 4a30144 2021-06-23T17:37:47+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Cartesian/ConicCPA2.h cgal-5.5/include/CGAL/Cartesian/ConicCPA2.h --- cgal-5.4.1/include/CGAL/Cartesian/ConicCPA2.h 2022-06-03 19:03:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Cartesian/ConicCPA2.h 2022-07-13 19:04:43.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cartesian_kernel/include/CGAL/Cartesian/ConicCPA2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cartesian_kernel/include/CGAL/Cartesian/ConicCPA2.h $ // $Id: ConicCPA2.h fdb17cb 2020-03-26T19:26:10+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Cartesian/Data_accessor_2.h cgal-5.5/include/CGAL/Cartesian/Data_accessor_2.h --- cgal-5.4.1/include/CGAL/Cartesian/Data_accessor_2.h 2022-06-03 19:03:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Cartesian/Data_accessor_2.h 2022-07-13 19:04:43.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cartesian_kernel/include/CGAL/Cartesian/Data_accessor_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cartesian_kernel/include/CGAL/Cartesian/Data_accessor_2.h $ // $Id: Data_accessor_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Cartesian/Direction_2.h cgal-5.5/include/CGAL/Cartesian/Direction_2.h --- cgal-5.4.1/include/CGAL/Cartesian/Direction_2.h 2022-06-03 19:03:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Cartesian/Direction_2.h 2022-07-13 19:04:44.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cartesian_kernel/include/CGAL/Cartesian/Direction_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cartesian_kernel/include/CGAL/Cartesian/Direction_2.h $ // $Id: Direction_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Cartesian/Direction_3.h cgal-5.5/include/CGAL/Cartesian/Direction_3.h --- cgal-5.4.1/include/CGAL/Cartesian/Direction_3.h 2022-06-03 19:03:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Cartesian/Direction_3.h 2022-07-13 19:04:44.000000000 +0000 @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cartesian_kernel/include/CGAL/Cartesian/Direction_3.h $ -// $Id: Direction_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cartesian_kernel/include/CGAL/Cartesian/Direction_3.h $ +// $Id: Direction_3.h d39c774 2022-03-17T12:14:43+01:00 Andreas Fabri // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // @@ -52,10 +52,10 @@ { *this = l.rep().direction(); } explicit DirectionC3(const Ray_3 &r) - { *this = r.direction(); } + { *this = r.rep().direction(); } explicit DirectionC3(const Segment_3 &s) - { *this = s.direction(); } + { *this = s.rep().direction(); } DirectionC3(const FT &x, const FT &y, const FT &z) : base(CGAL::make_array(x, y, z)) {} diff -Nru cgal-5.4.1/include/CGAL/Cartesian/ft_constructions_2.h cgal-5.5/include/CGAL/Cartesian/ft_constructions_2.h --- cgal-5.4.1/include/CGAL/Cartesian/ft_constructions_2.h 2022-06-03 19:03:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Cartesian/ft_constructions_2.h 2022-07-13 19:04:44.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cartesian_kernel/include/CGAL/Cartesian/ft_constructions_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cartesian_kernel/include/CGAL/Cartesian/ft_constructions_2.h $ // $Id: ft_constructions_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Cartesian/ft_constructions_3.h cgal-5.5/include/CGAL/Cartesian/ft_constructions_3.h --- cgal-5.4.1/include/CGAL/Cartesian/ft_constructions_3.h 2022-06-03 19:03:58.000000000 +0000 +++ cgal-5.5/include/CGAL/Cartesian/ft_constructions_3.h 2022-07-13 19:04:44.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cartesian_kernel/include/CGAL/Cartesian/ft_constructions_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cartesian_kernel/include/CGAL/Cartesian/ft_constructions_3.h $ // $Id: ft_constructions_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Cartesian/function_objects.h cgal-5.5/include/CGAL/Cartesian/function_objects.h --- cgal-5.4.1/include/CGAL/Cartesian/function_objects.h 2022-06-03 19:03:58.000000000 +0000 +++ cgal-5.5/include/CGAL/Cartesian/function_objects.h 2022-07-13 19:04:44.000000000 +0000 @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cartesian_kernel/include/CGAL/Cartesian/function_objects.h $ -// $Id: function_objects.h 9a2d782 2022-03-15T12:42:56+01:00 Andreas Fabri +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cartesian_kernel/include/CGAL/Cartesian/function_objects.h $ +// $Id: function_objects.h 1916290 2022-03-21T18:04:03+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // @@ -2257,50 +2257,13 @@ Point_3 operator()(const Point_3& p, const Point_3& q, const Point_3& s) const { - typename K::Construct_point_3 construct_point_3; - // Translate s to origin to simplify the expression. - FT psx = p.x()-s.x(); - FT psy = p.y()-s.y(); - FT psz = p.z()-s.z(); - FT ps2 = CGAL_NTS square(psx) + CGAL_NTS square(psy) + CGAL_NTS square(psz); - FT qsx = q.x()-s.x(); - FT qsy = q.y()-s.y(); - FT qsz = q.z()-s.z(); - FT qs2 = CGAL_NTS square(qsx) + CGAL_NTS square(qsy) + CGAL_NTS square(qsz); - FT rsx = psy*qsz-psz*qsy; - FT rsy = psz*qsx-psx*qsz; - FT rsz = psx*qsy-psy*qsx; - - // The following determinants can be developped and simplified. - // - // FT num_x = determinant(psy,psz,ps2, - // qsy,qsz,qs2, - // rsy,rsz,0); - // FT num_y = determinant(psx,psz,ps2, - // qsx,qsz,qs2, - // rsx,rsz,0); - // FT num_z = determinant(psx,psy,ps2, - // qsx,qsy,qs2, - // rsx,rsy,0); - - FT num_x = ps2 * determinant(qsy,qsz,rsy,rsz) - - qs2 * determinant(psy,psz,rsy,rsz); - FT num_y = ps2 * determinant(qsx,qsz,rsx,rsz) - - qs2 * determinant(psx,psz,rsx,rsz); - FT num_z = ps2 * determinant(qsx,qsy,rsx,rsy) - - qs2 * determinant(psx,psy,rsx,rsy); - - FT den = determinant(psx,psy,psz, - qsx,qsy,qsz, - rsx,rsy,rsz); - - CGAL_kernel_assertion( den != 0 ); - FT inv = 1 / (2 * den); + FT x, y, z; + circumcenterC3(p.x(), p.y(), p.z(), + q.x(), q.y(), q.z(), + s.x(), s.y(), s.z(), + x, y, z); - FT x = s.x() + num_x*inv; - FT y = s.y() - num_y*inv; - FT z = s.z() + num_z*inv; - return construct_point_3(x, y, z); + return Point_3(x, y, z); } Point_3 @@ -2313,40 +2276,14 @@ operator()(const Point_3& p, const Point_3& q, const Point_3& r, const Point_3& s) const { - typename K::Construct_point_3 construct_point_3; - // Translate p to origin to simplify the expression. - FT qpx = q.x()-p.x(); - FT qpy = q.y()-p.y(); - FT qpz = q.z()-p.z(); - FT qp2 = CGAL_NTS square(qpx) + CGAL_NTS square(qpy) + CGAL_NTS square(qpz); - FT rpx = r.x()-p.x(); - FT rpy = r.y()-p.y(); - FT rpz = r.z()-p.z(); - FT rp2 = CGAL_NTS square(rpx) + CGAL_NTS square(rpy) + CGAL_NTS square(rpz); - FT spx = s.x()-p.x(); - FT spy = s.y()-p.y(); - FT spz = s.z()-p.z(); - FT sp2 = CGAL_NTS square(spx) + CGAL_NTS square(spy) + CGAL_NTS square(spz); - - FT num_x = determinant(qpy,qpz,qp2, - rpy,rpz,rp2, - spy,spz,sp2); - FT num_y = determinant(qpx,qpz,qp2, - rpx,rpz,rp2, - spx,spz,sp2); - FT num_z = determinant(qpx,qpy,qp2, - rpx,rpy,rp2, - spx,spy,sp2); - FT den = determinant(qpx,qpy,qpz, - rpx,rpy,rpz, - spx,spy,spz); - CGAL_kernel_assertion( ! CGAL_NTS is_zero(den) ); - FT inv = 1 / (2 * den); + FT x, y, z; + circumcenterC3(p.x(), p.y(), p.z(), + q.x(), q.y(), q.z(), + r.x(), r.y(), r.z(), + s.x(), s.y(), s.z(), + x, y, z); - FT x = p.x() + num_x*inv; - FT y = p.y() - num_y*inv; - FT z = p.z() + num_z*inv; - return construct_point_3(x, y, z); + return Point_3(x, y, z); } Point_3 @@ -2357,9 +2294,6 @@ } }; - - - template class Construct_cross_product_vector_3 { @@ -4000,7 +3934,7 @@ result_type operator()( const Segment_3& s, const Point_3& p) const - { return s.has_on(p); } + { return s.rep().has_on(p); } result_type operator()( const Plane_3& pl, const Point_3& p) const diff -Nru cgal-5.4.1/include/CGAL/Cartesian/Iso_cuboid_3.h cgal-5.5/include/CGAL/Cartesian/Iso_cuboid_3.h --- cgal-5.4.1/include/CGAL/Cartesian/Iso_cuboid_3.h 2022-06-03 19:03:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Cartesian/Iso_cuboid_3.h 2022-07-13 19:04:44.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cartesian_kernel/include/CGAL/Cartesian/Iso_cuboid_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cartesian_kernel/include/CGAL/Cartesian/Iso_cuboid_3.h $ // $Id: Iso_cuboid_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Cartesian/Iso_rectangle_2.h cgal-5.5/include/CGAL/Cartesian/Iso_rectangle_2.h --- cgal-5.4.1/include/CGAL/Cartesian/Iso_rectangle_2.h 2022-06-03 19:03:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Cartesian/Iso_rectangle_2.h 2022-07-13 19:04:44.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cartesian_kernel/include/CGAL/Cartesian/Iso_rectangle_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cartesian_kernel/include/CGAL/Cartesian/Iso_rectangle_2.h $ // $Id: Iso_rectangle_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Cartesian/Line_2.h cgal-5.5/include/CGAL/Cartesian/Line_2.h --- cgal-5.4.1/include/CGAL/Cartesian/Line_2.h 2022-06-03 19:03:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Cartesian/Line_2.h 2022-07-13 19:04:44.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cartesian_kernel/include/CGAL/Cartesian/Line_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cartesian_kernel/include/CGAL/Cartesian/Line_2.h $ // $Id: Line_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Cartesian/Line_3.h cgal-5.5/include/CGAL/Cartesian/Line_3.h --- cgal-5.4.1/include/CGAL/Cartesian/Line_3.h 2022-06-03 19:03:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Cartesian/Line_3.h 2022-07-13 19:04:44.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cartesian_kernel/include/CGAL/Cartesian/Line_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cartesian_kernel/include/CGAL/Cartesian/Line_3.h $ // $Id: Line_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Cartesian/line_constructions_2.h cgal-5.5/include/CGAL/Cartesian/line_constructions_2.h --- cgal-5.4.1/include/CGAL/Cartesian/line_constructions_2.h 2022-06-03 19:03:58.000000000 +0000 +++ cgal-5.5/include/CGAL/Cartesian/line_constructions_2.h 2022-07-13 19:04:44.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cartesian_kernel/include/CGAL/Cartesian/line_constructions_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cartesian_kernel/include/CGAL/Cartesian/line_constructions_2.h $ // $Id: line_constructions_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Cartesian/MatrixC33.h cgal-5.5/include/CGAL/Cartesian/MatrixC33.h --- cgal-5.4.1/include/CGAL/Cartesian/MatrixC33.h 2022-06-03 19:05:56.000000000 +0000 +++ cgal-5.5/include/CGAL/Cartesian/MatrixC33.h 2022-07-13 19:06:53.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_simplification/include/CGAL/Cartesian/MatrixC33.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_simplification/include/CGAL/Cartesian/MatrixC33.h $ // $Id: MatrixC33.h ff09c5d 2019-10-25T16:35:53+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Cartesian/Plane_3.h cgal-5.5/include/CGAL/Cartesian/Plane_3.h --- cgal-5.4.1/include/CGAL/Cartesian/Plane_3.h 2022-06-03 19:03:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Cartesian/Plane_3.h 2022-07-13 19:04:44.000000000 +0000 @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cartesian_kernel/include/CGAL/Cartesian/Plane_3.h $ -// $Id: Plane_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cartesian_kernel/include/CGAL/Cartesian/Plane_3.h $ +// $Id: Plane_3.h 71bba3e 2022-03-17T22:35:09+01:00 Andreas Fabri // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // @@ -60,6 +60,9 @@ PlaneC3(const Point_3 &p, const Vector_3 &v) { *this = plane_from_point_direction(p, v.direction()); } + PlaneC3(Origin o, const Vector_3 &v) + { *this = plane_from_point_direction(o, v.direction()); } + PlaneC3(const FT &a, const FT &b, const FT &c, const FT &d) : base(CGAL::make_array(a, b, c, d)) {} diff -Nru cgal-5.4.1/include/CGAL/Cartesian/plane_constructions_3.h cgal-5.5/include/CGAL/Cartesian/plane_constructions_3.h --- cgal-5.4.1/include/CGAL/Cartesian/plane_constructions_3.h 2022-06-03 19:03:58.000000000 +0000 +++ cgal-5.5/include/CGAL/Cartesian/plane_constructions_3.h 2022-07-13 19:04:44.000000000 +0000 @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cartesian_kernel/include/CGAL/Cartesian/plane_constructions_3.h $ -// $Id: plane_constructions_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cartesian_kernel/include/CGAL/Cartesian/plane_constructions_3.h $ +// $Id: plane_constructions_3.h a7fc2c9 2022-03-22T08:01:30+01:00 Andreas Fabri // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // @@ -53,6 +53,15 @@ return PlaneC3(A, B, C, D); } + template +CGAL_KERNEL_LARGE_INLINE +PlaneC3 +plane_from_point_direction(Origin, + const typename R::Direction_3 &d) +{ + return PlaneC3(d.dx(), d.dy(), d.dz(), 0); +} + } //namespace CGAL #endif // CGAL_CARTESIAN_PLANE_CONSTRUCTIONS_3_H diff -Nru cgal-5.4.1/include/CGAL/Cartesian/Point_2.h cgal-5.5/include/CGAL/Cartesian/Point_2.h --- cgal-5.4.1/include/CGAL/Cartesian/Point_2.h 2022-06-03 19:03:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Cartesian/Point_2.h 2022-07-13 19:04:44.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cartesian_kernel/include/CGAL/Cartesian/Point_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cartesian_kernel/include/CGAL/Cartesian/Point_2.h $ // $Id: Point_2.h cca0a19 2022-04-12T16:14:39+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Cartesian/Point_3.h cgal-5.5/include/CGAL/Cartesian/Point_3.h --- cgal-5.4.1/include/CGAL/Cartesian/Point_3.h 2022-06-03 19:03:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Cartesian/Point_3.h 2022-07-13 19:04:44.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cartesian_kernel/include/CGAL/Cartesian/Point_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cartesian_kernel/include/CGAL/Cartesian/Point_3.h $ // $Id: Point_3.h cca0a19 2022-04-12T16:14:39+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Cartesian/point_constructions_2.h cgal-5.5/include/CGAL/Cartesian/point_constructions_2.h --- cgal-5.4.1/include/CGAL/Cartesian/point_constructions_2.h 2022-06-03 19:03:58.000000000 +0000 +++ cgal-5.5/include/CGAL/Cartesian/point_constructions_2.h 2022-07-13 19:04:44.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cartesian_kernel/include/CGAL/Cartesian/point_constructions_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cartesian_kernel/include/CGAL/Cartesian/point_constructions_2.h $ // $Id: point_constructions_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Cartesian/point_constructions_3.h cgal-5.5/include/CGAL/Cartesian/point_constructions_3.h --- cgal-5.4.1/include/CGAL/Cartesian/point_constructions_3.h 2022-06-03 19:03:58.000000000 +0000 +++ cgal-5.5/include/CGAL/Cartesian/point_constructions_3.h 2022-07-13 19:04:44.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cartesian_kernel/include/CGAL/Cartesian/point_constructions_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cartesian_kernel/include/CGAL/Cartesian/point_constructions_3.h $ // $Id: point_constructions_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Cartesian/predicates_on_directions_2.h cgal-5.5/include/CGAL/Cartesian/predicates_on_directions_2.h --- cgal-5.4.1/include/CGAL/Cartesian/predicates_on_directions_2.h 2022-06-03 19:03:58.000000000 +0000 +++ cgal-5.5/include/CGAL/Cartesian/predicates_on_directions_2.h 2022-07-13 19:04:44.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cartesian_kernel/include/CGAL/Cartesian/predicates_on_directions_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cartesian_kernel/include/CGAL/Cartesian/predicates_on_directions_2.h $ // $Id: predicates_on_directions_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Cartesian/predicates_on_planes_3.h cgal-5.5/include/CGAL/Cartesian/predicates_on_planes_3.h --- cgal-5.4.1/include/CGAL/Cartesian/predicates_on_planes_3.h 2022-06-03 19:03:58.000000000 +0000 +++ cgal-5.5/include/CGAL/Cartesian/predicates_on_planes_3.h 2022-07-13 19:04:44.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cartesian_kernel/include/CGAL/Cartesian/predicates_on_planes_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cartesian_kernel/include/CGAL/Cartesian/predicates_on_planes_3.h $ // $Id: predicates_on_planes_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Cartesian/predicates_on_points_2.h cgal-5.5/include/CGAL/Cartesian/predicates_on_points_2.h --- cgal-5.4.1/include/CGAL/Cartesian/predicates_on_points_2.h 2022-06-03 19:03:58.000000000 +0000 +++ cgal-5.5/include/CGAL/Cartesian/predicates_on_points_2.h 2022-07-13 19:04:45.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cartesian_kernel/include/CGAL/Cartesian/predicates_on_points_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cartesian_kernel/include/CGAL/Cartesian/predicates_on_points_2.h $ // $Id: predicates_on_points_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Cartesian/predicates_on_points_3.h cgal-5.5/include/CGAL/Cartesian/predicates_on_points_3.h --- cgal-5.4.1/include/CGAL/Cartesian/predicates_on_points_3.h 2022-06-03 19:03:58.000000000 +0000 +++ cgal-5.5/include/CGAL/Cartesian/predicates_on_points_3.h 2022-07-13 19:04:45.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cartesian_kernel/include/CGAL/Cartesian/predicates_on_points_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cartesian_kernel/include/CGAL/Cartesian/predicates_on_points_3.h $ // $Id: predicates_on_points_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Cartesian/Ray_2.h cgal-5.5/include/CGAL/Cartesian/Ray_2.h --- cgal-5.4.1/include/CGAL/Cartesian/Ray_2.h 2022-06-03 19:03:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Cartesian/Ray_2.h 2022-07-13 19:04:44.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cartesian_kernel/include/CGAL/Cartesian/Ray_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cartesian_kernel/include/CGAL/Cartesian/Ray_2.h $ // $Id: Ray_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Cartesian/Ray_3.h cgal-5.5/include/CGAL/Cartesian/Ray_3.h --- cgal-5.4.1/include/CGAL/Cartesian/Ray_3.h 2022-06-03 19:03:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Cartesian/Ray_3.h 2022-07-13 19:04:44.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cartesian_kernel/include/CGAL/Cartesian/Ray_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cartesian_kernel/include/CGAL/Cartesian/Ray_3.h $ // $Id: Ray_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Cartesian/Reflection_rep_2.h cgal-5.5/include/CGAL/Cartesian/Reflection_rep_2.h --- cgal-5.4.1/include/CGAL/Cartesian/Reflection_rep_2.h 2022-06-03 19:03:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Cartesian/Reflection_rep_2.h 2022-07-13 19:04:44.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cartesian_kernel/include/CGAL/Cartesian/Reflection_rep_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cartesian_kernel/include/CGAL/Cartesian/Reflection_rep_2.h $ // $Id: Reflection_rep_2.h e73b8de 2021-04-22T21:17:24+01:00 Andreas Fabri // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Cartesian/Rotation_rep_2.h cgal-5.5/include/CGAL/Cartesian/Rotation_rep_2.h --- cgal-5.4.1/include/CGAL/Cartesian/Rotation_rep_2.h 2022-06-03 19:03:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Cartesian/Rotation_rep_2.h 2022-07-13 19:04:44.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cartesian_kernel/include/CGAL/Cartesian/Rotation_rep_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cartesian_kernel/include/CGAL/Cartesian/Rotation_rep_2.h $ // $Id: Rotation_rep_2.h e73b8de 2021-04-22T21:17:24+01:00 Andreas Fabri // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Cartesian/Scaling_rep_2.h cgal-5.5/include/CGAL/Cartesian/Scaling_rep_2.h --- cgal-5.4.1/include/CGAL/Cartesian/Scaling_rep_2.h 2022-06-03 19:03:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Cartesian/Scaling_rep_2.h 2022-07-13 19:04:44.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cartesian_kernel/include/CGAL/Cartesian/Scaling_rep_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cartesian_kernel/include/CGAL/Cartesian/Scaling_rep_2.h $ // $Id: Scaling_rep_2.h e73b8de 2021-04-22T21:17:24+01:00 Andreas Fabri // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Cartesian/Scaling_rep_3.h cgal-5.5/include/CGAL/Cartesian/Scaling_rep_3.h --- cgal-5.4.1/include/CGAL/Cartesian/Scaling_rep_3.h 2022-06-03 19:03:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Cartesian/Scaling_rep_3.h 2022-07-13 19:04:44.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cartesian_kernel/include/CGAL/Cartesian/Scaling_rep_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cartesian_kernel/include/CGAL/Cartesian/Scaling_rep_3.h $ // $Id: Scaling_rep_3.h e73b8de 2021-04-22T21:17:24+01:00 Andreas Fabri // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Cartesian/Segment_2.h cgal-5.5/include/CGAL/Cartesian/Segment_2.h --- cgal-5.4.1/include/CGAL/Cartesian/Segment_2.h 2022-06-03 19:03:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Cartesian/Segment_2.h 2022-07-13 19:04:44.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cartesian_kernel/include/CGAL/Cartesian/Segment_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cartesian_kernel/include/CGAL/Cartesian/Segment_2.h $ // $Id: Segment_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Cartesian/Segment_3.h cgal-5.5/include/CGAL/Cartesian/Segment_3.h --- cgal-5.4.1/include/CGAL/Cartesian/Segment_3.h 2022-06-03 19:03:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Cartesian/Segment_3.h 2022-07-13 19:04:44.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cartesian_kernel/include/CGAL/Cartesian/Segment_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cartesian_kernel/include/CGAL/Cartesian/Segment_3.h $ // $Id: Segment_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Cartesian/solve_3.h cgal-5.5/include/CGAL/Cartesian/solve_3.h --- cgal-5.4.1/include/CGAL/Cartesian/solve_3.h 2022-06-03 19:03:58.000000000 +0000 +++ cgal-5.5/include/CGAL/Cartesian/solve_3.h 2022-07-13 19:04:45.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cartesian_kernel/include/CGAL/Cartesian/solve_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cartesian_kernel/include/CGAL/Cartesian/solve_3.h $ // $Id: solve_3.h a4c57e6 2021-03-21T19:35:41+01:00 Andreas Fabri // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Cartesian/Sphere_3.h cgal-5.5/include/CGAL/Cartesian/Sphere_3.h --- cgal-5.4.1/include/CGAL/Cartesian/Sphere_3.h 2022-06-03 19:03:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Cartesian/Sphere_3.h 2022-07-13 19:04:44.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cartesian_kernel/include/CGAL/Cartesian/Sphere_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cartesian_kernel/include/CGAL/Cartesian/Sphere_3.h $ // $Id: Sphere_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Cartesian/Tetrahedron_3.h cgal-5.5/include/CGAL/Cartesian/Tetrahedron_3.h --- cgal-5.4.1/include/CGAL/Cartesian/Tetrahedron_3.h 2022-06-03 19:03:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Cartesian/Tetrahedron_3.h 2022-07-13 19:04:44.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cartesian_kernel/include/CGAL/Cartesian/Tetrahedron_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cartesian_kernel/include/CGAL/Cartesian/Tetrahedron_3.h $ // $Id: Tetrahedron_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Cartesian/Translation_rep_2.h cgal-5.5/include/CGAL/Cartesian/Translation_rep_2.h --- cgal-5.4.1/include/CGAL/Cartesian/Translation_rep_2.h 2022-06-03 19:03:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Cartesian/Translation_rep_2.h 2022-07-13 19:04:44.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cartesian_kernel/include/CGAL/Cartesian/Translation_rep_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cartesian_kernel/include/CGAL/Cartesian/Translation_rep_2.h $ // $Id: Translation_rep_2.h e73b8de 2021-04-22T21:17:24+01:00 Andreas Fabri // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Cartesian/Translation_rep_3.h cgal-5.5/include/CGAL/Cartesian/Translation_rep_3.h --- cgal-5.4.1/include/CGAL/Cartesian/Translation_rep_3.h 2022-06-03 19:03:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Cartesian/Translation_rep_3.h 2022-07-13 19:04:44.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cartesian_kernel/include/CGAL/Cartesian/Translation_rep_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cartesian_kernel/include/CGAL/Cartesian/Translation_rep_3.h $ // $Id: Translation_rep_3.h e73b8de 2021-04-22T21:17:24+01:00 Andreas Fabri // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Cartesian/Triangle_2.h cgal-5.5/include/CGAL/Cartesian/Triangle_2.h --- cgal-5.4.1/include/CGAL/Cartesian/Triangle_2.h 2022-06-03 19:03:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Cartesian/Triangle_2.h 2022-07-13 19:04:44.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cartesian_kernel/include/CGAL/Cartesian/Triangle_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cartesian_kernel/include/CGAL/Cartesian/Triangle_2.h $ // $Id: Triangle_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Cartesian/Triangle_3.h cgal-5.5/include/CGAL/Cartesian/Triangle_3.h --- cgal-5.4.1/include/CGAL/Cartesian/Triangle_3.h 2022-06-03 19:03:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Cartesian/Triangle_3.h 2022-07-13 19:04:44.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cartesian_kernel/include/CGAL/Cartesian/Triangle_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cartesian_kernel/include/CGAL/Cartesian/Triangle_3.h $ // $Id: Triangle_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Cartesian/Vector_2.h cgal-5.5/include/CGAL/Cartesian/Vector_2.h --- cgal-5.4.1/include/CGAL/Cartesian/Vector_2.h 2022-06-03 19:03:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Cartesian/Vector_2.h 2022-07-13 19:04:44.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cartesian_kernel/include/CGAL/Cartesian/Vector_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cartesian_kernel/include/CGAL/Cartesian/Vector_2.h $ // $Id: Vector_2.h cca0a19 2022-04-12T16:14:39+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Cartesian/Vector_3.h cgal-5.5/include/CGAL/Cartesian/Vector_3.h --- cgal-5.4.1/include/CGAL/Cartesian/Vector_3.h 2022-06-03 19:03:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Cartesian/Vector_3.h 2022-07-13 19:04:44.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cartesian_kernel/include/CGAL/Cartesian/Vector_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cartesian_kernel/include/CGAL/Cartesian/Vector_3.h $ // $Id: Vector_3.h cca0a19 2022-04-12T16:14:39+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Cartesian/Weighted_point_2.h cgal-5.5/include/CGAL/Cartesian/Weighted_point_2.h --- cgal-5.4.1/include/CGAL/Cartesian/Weighted_point_2.h 2022-06-03 19:03:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Cartesian/Weighted_point_2.h 2022-07-13 19:04:44.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cartesian_kernel/include/CGAL/Cartesian/Weighted_point_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cartesian_kernel/include/CGAL/Cartesian/Weighted_point_2.h $ // $Id: Weighted_point_2.h 4e519a3 2021-05-05T13:15:37+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Cartesian/Weighted_point_3.h cgal-5.5/include/CGAL/Cartesian/Weighted_point_3.h --- cgal-5.4.1/include/CGAL/Cartesian/Weighted_point_3.h 2022-06-03 19:03:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Cartesian/Weighted_point_3.h 2022-07-13 19:04:44.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cartesian_kernel/include/CGAL/Cartesian/Weighted_point_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cartesian_kernel/include/CGAL/Cartesian/Weighted_point_3.h $ // $Id: Weighted_point_3.h 4e519a3 2021-05-05T13:15:37+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Cartesian_converter_fwd.h cgal-5.5/include/CGAL/Cartesian_converter_fwd.h --- cgal-5.4.1/include/CGAL/Cartesian_converter_fwd.h 2022-06-03 19:04:19.000000000 +0000 +++ cgal-5.5/include/CGAL/Cartesian_converter_fwd.h 2022-07-13 19:05:08.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/Cartesian_converter_fwd.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/Cartesian_converter_fwd.h $ // $Id: Cartesian_converter_fwd.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Cartesian_converter.h cgal-5.5/include/CGAL/Cartesian_converter.h --- cgal-5.4.1/include/CGAL/Cartesian_converter.h 2022-06-03 19:03:58.000000000 +0000 +++ cgal-5.5/include/CGAL/Cartesian_converter.h 2022-07-13 19:04:45.000000000 +0000 @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cartesian_kernel/include/CGAL/Cartesian_converter.h $ -// $Id: Cartesian_converter.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cartesian_kernel/include/CGAL/Cartesian_converter.h $ +// $Id: Cartesian_converter.h 3a0a4a6 2021-12-17T12:22:40+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // @@ -39,6 +39,8 @@ #include #include +#include + namespace CGAL { // Guess which compiler needs this work around ? @@ -82,8 +84,7 @@ } // namespace internal template < class K1, class K2, -// class Converter = NT_converter > - class Converter> + class Converter /*= typename internal::Default_converter::Type*/> class Cartesian_converter : public Enum_converter { typedef Enum_converter Base; @@ -96,24 +97,24 @@ using Base::operator(); Origin - operator()(const Origin& o) const + operator()(Origin o) const { return o; } Null_vector - operator()(const Null_vector& n) const + operator()(Null_vector n) const { return n; } - Bbox_2 + const Bbox_2& operator()(const Bbox_2& b) const { return b; } - Bbox_3 + const Bbox_3& operator()(const Bbox_3& b) const { return b; @@ -125,6 +126,14 @@ return c(a); } + template + T + operator()(const T t, + typename std::enable_if::value>::type* = nullptr) const + { + return t; + } + // drop the boost::detail::variant::void_ generated by the macros // from the sequence, transform with the type mapper and throw the // new list into a variant @@ -384,24 +393,25 @@ return std::make_pair(operator()(pp.first), operator()(pp.second)); } + typename K2::Aff_transformation_2 + operator()(const typename K1::Aff_transformation_2& a) const + { + typedef typename K2::Aff_transformation_2 Aff_transformation_2; + return Aff_transformation_2(c(a.m(0,0)), c(a.m(0,1)), c(a.m(0,2)), + c(a.m(1,0)), c(a.m(1,1)), c(a.m(1,2)), + c(a.m(2,2))); + } + typename K2::Aff_transformation_3 - operator()(const typename K1::Aff_transformation_3 &a) const + operator()(const typename K1::Aff_transformation_3& a) const { - typedef typename K2::Aff_transformation_3 Aff_transformation_3; - typename K2::FT t[12]; - for(int i=0; i< 3; ++i) - { - for(int j=0; j<4; ++j) - { - t[i*4+j] = a.m(i,j); - } - } - return Aff_transformation_3( - t[0],t[1],t[2],t[3], - t[4],t[5],t[6],t[7], - t[8],t[9],t[10],t[11], - a.m(3,3)); + typedef typename K2::Aff_transformation_3 Aff_transformation_3; + return Aff_transformation_3(c(a.m(0,0)), c(a.m(0,1)), c(a.m(0,2)), c(a.m(0,3)), + c(a.m(1,0)), c(a.m(1,1)), c(a.m(1,2)), c(a.m(1,3)), + c(a.m(2,0)), c(a.m(2,1)), c(a.m(2,2)), c(a.m(2,3)), + c(a.m(3,3))); } + private: Converter c; K2 k; diff -Nru cgal-5.4.1/include/CGAL/Cartesian_d.h cgal-5.5/include/CGAL/Cartesian_d.h --- cgal-5.4.1/include/CGAL/Cartesian_d.h 2022-06-03 19:04:38.000000000 +0000 +++ cgal-5.5/include/CGAL/Cartesian_d.h 2022-07-13 19:05:29.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_d/include/CGAL/Cartesian_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_d/include/CGAL/Cartesian_d.h $ // $Id: Cartesian_d.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Cartesian.h cgal-5.5/include/CGAL/Cartesian.h --- cgal-5.4.1/include/CGAL/Cartesian.h 2022-06-03 19:03:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Cartesian.h 2022-07-13 19:04:43.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cartesian_kernel/include/CGAL/Cartesian.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cartesian_kernel/include/CGAL/Cartesian.h $ // $Id: Cartesian.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/cartesian_homogeneous_conversion.h cgal-5.5/include/CGAL/cartesian_homogeneous_conversion.h --- cgal-5.4.1/include/CGAL/cartesian_homogeneous_conversion.h 2022-06-03 19:04:33.000000000 +0000 +++ cgal-5.5/include/CGAL/cartesian_homogeneous_conversion.h 2022-07-13 19:05:24.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/cartesian_homogeneous_conversion.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/cartesian_homogeneous_conversion.h $ // $Id: cartesian_homogeneous_conversion.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Cartesian_matrix.h cgal-5.5/include/CGAL/Cartesian_matrix.h --- cgal-5.4.1/include/CGAL/Cartesian_matrix.h 2022-06-03 19:04:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Cartesian_matrix.h 2022-07-13 19:05:34.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Matrix_search/include/CGAL/Cartesian_matrix.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Matrix_search/include/CGAL/Cartesian_matrix.h $ // $Id: Cartesian_matrix.h 557cf7f 2021-01-29T10:36:59+00:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/CC_safe_handle.h cgal-5.5/include/CGAL/CC_safe_handle.h --- cgal-5.4.1/include/CGAL/CC_safe_handle.h 2022-06-03 19:05:31.000000000 +0000 +++ cgal-5.5/include/CGAL/CC_safe_handle.h 2022-07-13 19:06:27.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/CC_safe_handle.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/CC_safe_handle.h $ // $Id: CC_safe_handle.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Cell_attribute.h cgal-5.5/include/CGAL/Cell_attribute.h --- cgal-5.4.1/include/CGAL/Cell_attribute.h 2022-06-03 19:04:06.000000000 +0000 +++ cgal-5.5/include/CGAL/Cell_attribute.h 2022-07-13 19:04:54.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Combinatorial_map/include/CGAL/Cell_attribute.h $ -// $Id: Cell_attribute.h d6306be 2020-10-22T10:30:38+02:00 Guillaume Damiand +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Combinatorial_map/include/CGAL/Cell_attribute.h $ +// $Id: Cell_attribute.h 84ca88f 2021-10-19T20:16:43+02:00 Guillaume Damiand // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Guillaume Damiand @@ -14,6 +14,7 @@ #include #include +#include namespace CGAL { @@ -88,8 +89,7 @@ { m_id=id; } protected: - /// id of the cell - std::size_t m_id; + std::size_t m_id; ///< id of the cell }; /// If the tag WithId is false, we do not add id to cells. diff -Nru cgal-5.4.1/include/CGAL/Cell_attribute_with_id.h cgal-5.5/include/CGAL/Cell_attribute_with_id.h --- cgal-5.4.1/include/CGAL/Cell_attribute_with_id.h 2022-06-03 19:04:06.000000000 +0000 +++ cgal-5.5/include/CGAL/Cell_attribute_with_id.h 2022-07-13 19:04:54.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Combinatorial_map/include/CGAL/Cell_attribute_with_id.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Combinatorial_map/include/CGAL/Cell_attribute_with_id.h $ // $Id: Cell_attribute_with_id.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Cell_attribute_with_point_and_id.h cgal-5.5/include/CGAL/Cell_attribute_with_point_and_id.h --- cgal-5.4.1/include/CGAL/Cell_attribute_with_point_and_id.h 2022-06-03 19:04:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Cell_attribute_with_point_and_id.h 2022-07-13 19:05:34.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Linear_cell_complex/include/CGAL/Cell_attribute_with_point_and_id.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Linear_cell_complex/include/CGAL/Cell_attribute_with_point_and_id.h $ // $Id: Cell_attribute_with_point_and_id.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Cell_attribute_with_point.h cgal-5.5/include/CGAL/Cell_attribute_with_point.h --- cgal-5.4.1/include/CGAL/Cell_attribute_with_point.h 2022-06-03 19:04:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Cell_attribute_with_point.h 2022-07-13 19:05:33.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Linear_cell_complex/include/CGAL/Cell_attribute_with_point.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Linear_cell_complex/include/CGAL/Cell_attribute_with_point.h $ // $Id: Cell_attribute_with_point.h 9e250c0 2020-02-12T10:33:57+01:00 Guillaume Damiand // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Cell_const_iterators.h cgal-5.5/include/CGAL/Cell_const_iterators.h --- cgal-5.4.1/include/CGAL/Cell_const_iterators.h 2022-06-03 19:04:06.000000000 +0000 +++ cgal-5.5/include/CGAL/Cell_const_iterators.h 2022-07-13 19:04:54.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Combinatorial_map/include/CGAL/Cell_const_iterators.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Combinatorial_map/include/CGAL/Cell_const_iterators.h $ // $Id: Cell_const_iterators.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Cell_iterators.h cgal-5.5/include/CGAL/Cell_iterators.h --- cgal-5.4.1/include/CGAL/Cell_iterators.h 2022-06-03 19:04:06.000000000 +0000 +++ cgal-5.5/include/CGAL/Cell_iterators.h 2022-07-13 19:04:54.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Combinatorial_map/include/CGAL/Cell_iterators.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Combinatorial_map/include/CGAL/Cell_iterators.h $ // $Id: Cell_iterators.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/centroid.h cgal-5.5/include/CGAL/centroid.h --- cgal-5.4.1/include/CGAL/centroid.h 2022-06-03 19:05:28.000000000 +0000 +++ cgal-5.5/include/CGAL/centroid.h 2022-07-13 19:06:23.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Principal_component_analysis_LGPL/include/CGAL/centroid.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Principal_component_analysis_LGPL/include/CGAL/centroid.h $ // $Id: centroid.h 5e72746 2020-10-29T14:15:38+01:00 Simon Giraudot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/certified_numeric_predicates.h cgal-5.5/include/CGAL/certified_numeric_predicates.h --- cgal-5.4.1/include/CGAL/certified_numeric_predicates.h 2022-06-03 19:05:50.000000000 +0000 +++ cgal-5.5/include/CGAL/certified_numeric_predicates.h 2022-07-13 19:06:47.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Straight_skeleton_2/include/CGAL/certified_numeric_predicates.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Straight_skeleton_2/include/CGAL/certified_numeric_predicates.h $ // $Id: certified_numeric_predicates.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/certified_quotient_predicates.h cgal-5.5/include/CGAL/certified_quotient_predicates.h --- cgal-5.4.1/include/CGAL/certified_quotient_predicates.h 2022-06-03 19:05:50.000000000 +0000 +++ cgal-5.5/include/CGAL/certified_quotient_predicates.h 2022-07-13 19:06:47.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Straight_skeleton_2/include/CGAL/certified_quotient_predicates.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Straight_skeleton_2/include/CGAL/certified_quotient_predicates.h $ // $Id: certified_quotient_predicates.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/CGAL_Ipelet_base.h cgal-5.5/include/CGAL/CGAL_Ipelet_base.h --- cgal-5.4.1/include/CGAL/CGAL_Ipelet_base.h 2022-06-03 19:03:56.000000000 +0000 +++ cgal-5.5/include/CGAL/CGAL_Ipelet_base.h 2022-07-13 19:04:43.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_ipelets/include/CGAL/CGAL_Ipelet_base.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_ipelets/include/CGAL/CGAL_Ipelet_base.h $ // $Id: CGAL_Ipelet_base.h 01374de 2021-01-25T13:39:36+01:00 Maxime Gimeno // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/CGAL_Ipelet_base_v6.h cgal-5.5/include/CGAL/CGAL_Ipelet_base_v6.h --- cgal-5.4.1/include/CGAL/CGAL_Ipelet_base_v6.h 2022-06-03 19:03:57.000000000 +0000 +++ cgal-5.5/include/CGAL/CGAL_Ipelet_base_v6.h 2022-07-13 19:04:43.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_ipelets/include/CGAL/CGAL_Ipelet_base_v6.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_ipelets/include/CGAL/CGAL_Ipelet_base_v6.h $ // $Id: CGAL_Ipelet_base_v6.h 9bf61b7 2020-04-22T11:02:16+02:00 Maxime Gimeno // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/CGAL_Ipelet_base_v7.h cgal-5.5/include/CGAL/CGAL_Ipelet_base_v7.h --- cgal-5.4.1/include/CGAL/CGAL_Ipelet_base_v7.h 2022-06-03 19:03:57.000000000 +0000 +++ cgal-5.5/include/CGAL/CGAL_Ipelet_base_v7.h 2022-07-13 19:04:43.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_ipelets/include/CGAL/CGAL_Ipelet_base_v7.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_ipelets/include/CGAL/CGAL_Ipelet_base_v7.h $ // $Id: CGAL_Ipelet_base_v7.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/ch_akl_toussaint.h cgal-5.5/include/CGAL/ch_akl_toussaint.h --- cgal-5.4.1/include/CGAL/ch_akl_toussaint.h 2022-06-03 19:04:08.000000000 +0000 +++ cgal-5.5/include/CGAL/ch_akl_toussaint.h 2022-07-13 19:04:56.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Convex_hull_2/include/CGAL/ch_akl_toussaint.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Convex_hull_2/include/CGAL/ch_akl_toussaint.h $ // $Id: ch_akl_toussaint.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/ch_bykat.h cgal-5.5/include/CGAL/ch_bykat.h --- cgal-5.4.1/include/CGAL/ch_bykat.h 2022-06-03 19:04:08.000000000 +0000 +++ cgal-5.5/include/CGAL/ch_bykat.h 2022-07-13 19:04:56.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Convex_hull_2/include/CGAL/ch_bykat.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Convex_hull_2/include/CGAL/ch_bykat.h $ // $Id: ch_bykat.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/ch_eddy.h cgal-5.5/include/CGAL/ch_eddy.h --- cgal-5.4.1/include/CGAL/ch_eddy.h 2022-06-03 19:04:08.000000000 +0000 +++ cgal-5.5/include/CGAL/ch_eddy.h 2022-07-13 19:04:56.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Convex_hull_2/include/CGAL/ch_eddy.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Convex_hull_2/include/CGAL/ch_eddy.h $ // $Id: ch_eddy.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/ch_function_objects_2.h cgal-5.5/include/CGAL/ch_function_objects_2.h --- cgal-5.4.1/include/CGAL/ch_function_objects_2.h 2022-06-03 19:04:08.000000000 +0000 +++ cgal-5.5/include/CGAL/ch_function_objects_2.h 2022-07-13 19:04:56.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Convex_hull_2/include/CGAL/ch_function_objects_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Convex_hull_2/include/CGAL/ch_function_objects_2.h $ // $Id: ch_function_objects_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/ch_graham_andrew.h cgal-5.5/include/CGAL/ch_graham_andrew.h --- cgal-5.4.1/include/CGAL/ch_graham_andrew.h 2022-06-03 19:04:08.000000000 +0000 +++ cgal-5.5/include/CGAL/ch_graham_andrew.h 2022-07-13 19:04:56.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Convex_hull_2/include/CGAL/ch_graham_andrew.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Convex_hull_2/include/CGAL/ch_graham_andrew.h $ // $Id: ch_graham_andrew.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Chinese_remainder_traits.h cgal-5.5/include/CGAL/Chinese_remainder_traits.h --- cgal-5.4.1/include/CGAL/Chinese_remainder_traits.h 2022-06-03 19:03:30.000000000 +0000 +++ cgal-5.5/include/CGAL/Chinese_remainder_traits.h 2022-07-13 19:04:12.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_foundations/include/CGAL/Chinese_remainder_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_foundations/include/CGAL/Chinese_remainder_traits.h $ // $Id: Chinese_remainder_traits.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/ch_jarvis.h cgal-5.5/include/CGAL/ch_jarvis.h --- cgal-5.4.1/include/CGAL/ch_jarvis.h 2022-06-03 19:04:08.000000000 +0000 +++ cgal-5.5/include/CGAL/ch_jarvis.h 2022-07-13 19:04:56.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Convex_hull_2/include/CGAL/ch_jarvis.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Convex_hull_2/include/CGAL/ch_jarvis.h $ // $Id: ch_jarvis.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/ch_melkman.h cgal-5.5/include/CGAL/ch_melkman.h --- cgal-5.4.1/include/CGAL/ch_melkman.h 2022-06-03 19:04:08.000000000 +0000 +++ cgal-5.5/include/CGAL/ch_melkman.h 2022-07-13 19:04:56.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Convex_hull_2/include/CGAL/ch_melkman.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Convex_hull_2/include/CGAL/ch_melkman.h $ // $Id: ch_melkman.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/ch_selected_extreme_points_2.h cgal-5.5/include/CGAL/ch_selected_extreme_points_2.h --- cgal-5.4.1/include/CGAL/ch_selected_extreme_points_2.h 2022-06-03 19:04:08.000000000 +0000 +++ cgal-5.5/include/CGAL/ch_selected_extreme_points_2.h 2022-07-13 19:04:56.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Convex_hull_2/include/CGAL/ch_selected_extreme_points_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Convex_hull_2/include/CGAL/ch_selected_extreme_points_2.h $ // $Id: ch_selected_extreme_points_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Circle_2.h cgal-5.5/include/CGAL/Circle_2.h --- cgal-5.4.1/include/CGAL/Circle_2.h 2022-06-03 19:04:31.000000000 +0000 +++ cgal-5.5/include/CGAL/Circle_2.h 2022-07-13 19:05:22.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Circle_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Circle_2.h $ // $Id: Circle_2.h e7357ac 2021-07-19T14:53:27+02:00 Marc Glisse // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Circle_3.h cgal-5.5/include/CGAL/Circle_3.h --- cgal-5.4.1/include/CGAL/Circle_3.h 2022-06-03 19:04:31.000000000 +0000 +++ cgal-5.5/include/CGAL/Circle_3.h 2022-07-13 19:05:22.000000000 +0000 @@ -9,7 +9,7 @@ // and a STREP (FET Open) Project under Contract No IST-006413 // (ACS -- Algorithms for Complex Shapes) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Circle_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Circle_3.h $ // $Id: Circle_3.h e5279db 2021-09-02T15:44:53+02:00 Sebastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Circle_type.h cgal-5.5/include/CGAL/Circle_type.h --- cgal-5.4.1/include/CGAL/Circle_type.h 2022-06-03 19:04:03.000000000 +0000 +++ cgal-5.5/include/CGAL/Circle_type.h 2022-07-13 19:04:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Circular_kernel_3/include/CGAL/Circle_type.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Circular_kernel_3/include/CGAL/Circle_type.h $ // $Id: Circle_type.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Circular_arc_2.h cgal-5.5/include/CGAL/Circular_arc_2.h --- cgal-5.4.1/include/CGAL/Circular_arc_2.h 2022-06-03 19:04:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Circular_arc_2.h 2022-07-13 19:04:47.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Circular_kernel_2/include/CGAL/Circular_arc_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Circular_kernel_2/include/CGAL/Circular_arc_2.h $ // $Id: Circular_arc_2.h 059bc60 2020-07-22T15:13:09+02:00 Dmitry Anisimov // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Circular_arc_3.h cgal-5.5/include/CGAL/Circular_arc_3.h --- cgal-5.4.1/include/CGAL/Circular_arc_3.h 2022-06-03 19:04:03.000000000 +0000 +++ cgal-5.5/include/CGAL/Circular_arc_3.h 2022-07-13 19:04:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Circular_kernel_3/include/CGAL/Circular_arc_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Circular_kernel_3/include/CGAL/Circular_arc_3.h $ // $Id: Circular_arc_3.h acdf4c6 2020-07-22T15:23:09+02:00 Dmitry Anisimov // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Circular_arc_point_2.h cgal-5.5/include/CGAL/Circular_arc_point_2.h --- cgal-5.4.1/include/CGAL/Circular_arc_point_2.h 2022-06-03 19:04:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Circular_arc_point_2.h 2022-07-13 19:04:47.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Circular_kernel_2/include/CGAL/Circular_arc_point_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Circular_kernel_2/include/CGAL/Circular_arc_point_2.h $ // $Id: Circular_arc_point_2.h 059bc60 2020-07-22T15:13:09+02:00 Dmitry Anisimov // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Circular_arc_point_3.h cgal-5.5/include/CGAL/Circular_arc_point_3.h --- cgal-5.4.1/include/CGAL/Circular_arc_point_3.h 2022-06-03 19:04:03.000000000 +0000 +++ cgal-5.5/include/CGAL/Circular_arc_point_3.h 2022-07-13 19:04:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Circular_kernel_3/include/CGAL/Circular_arc_point_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Circular_kernel_3/include/CGAL/Circular_arc_point_3.h $ // $Id: Circular_arc_point_3.h acdf4c6 2020-07-22T15:23:09+02:00 Dmitry Anisimov // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Circular_kernel_2/Circular_arc_2.h cgal-5.5/include/CGAL/Circular_kernel_2/Circular_arc_2.h --- cgal-5.4.1/include/CGAL/Circular_kernel_2/Circular_arc_2.h 2022-06-03 19:04:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Circular_kernel_2/Circular_arc_2.h 2022-07-13 19:04:47.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Circular_kernel_2/include/CGAL/Circular_kernel_2/Circular_arc_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Circular_kernel_2/include/CGAL/Circular_kernel_2/Circular_arc_2.h $ // $Id: Circular_arc_2.h 059bc60 2020-07-22T15:13:09+02:00 Dmitry Anisimov // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Circular_kernel_2/Circular_arc_point_2.h cgal-5.5/include/CGAL/Circular_kernel_2/Circular_arc_point_2.h --- cgal-5.4.1/include/CGAL/Circular_kernel_2/Circular_arc_point_2.h 2022-06-03 19:04:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Circular_kernel_2/Circular_arc_point_2.h 2022-07-13 19:04:47.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Circular_kernel_2/include/CGAL/Circular_kernel_2/Circular_arc_point_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Circular_kernel_2/include/CGAL/Circular_kernel_2/Circular_arc_point_2.h $ // $Id: Circular_arc_point_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Circular_kernel_2/function_objects_on_circle_2.h cgal-5.5/include/CGAL/Circular_kernel_2/function_objects_on_circle_2.h --- cgal-5.4.1/include/CGAL/Circular_kernel_2/function_objects_on_circle_2.h 2022-06-03 19:04:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Circular_kernel_2/function_objects_on_circle_2.h 2022-07-13 19:04:47.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Circular_kernel_2/include/CGAL/Circular_kernel_2/function_objects_on_circle_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Circular_kernel_2/include/CGAL/Circular_kernel_2/function_objects_on_circle_2.h $ // $Id: function_objects_on_circle_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Circular_kernel_2/function_objects_on_line_2.h cgal-5.5/include/CGAL/Circular_kernel_2/function_objects_on_line_2.h --- cgal-5.4.1/include/CGAL/Circular_kernel_2/function_objects_on_line_2.h 2022-06-03 19:04:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Circular_kernel_2/function_objects_on_line_2.h 2022-07-13 19:04:48.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Circular_kernel_2/include/CGAL/Circular_kernel_2/function_objects_on_line_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Circular_kernel_2/include/CGAL/Circular_kernel_2/function_objects_on_line_2.h $ // $Id: function_objects_on_line_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Circular_kernel_2/function_objects_polynomial_circular.h cgal-5.5/include/CGAL/Circular_kernel_2/function_objects_polynomial_circular.h --- cgal-5.4.1/include/CGAL/Circular_kernel_2/function_objects_polynomial_circular.h 2022-06-03 19:04:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Circular_kernel_2/function_objects_polynomial_circular.h 2022-07-13 19:04:48.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Circular_kernel_2/include/CGAL/Circular_kernel_2/function_objects_polynomial_circular.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Circular_kernel_2/include/CGAL/Circular_kernel_2/function_objects_polynomial_circular.h $ // $Id: function_objects_polynomial_circular.h 81d9556 2021-02-10T10:06:45+01:00 Dmitry Anisimov // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Circular_kernel_2/interface_macros.h cgal-5.5/include/CGAL/Circular_kernel_2/interface_macros.h --- cgal-5.4.1/include/CGAL/Circular_kernel_2/interface_macros.h 2022-06-03 19:04:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Circular_kernel_2/interface_macros.h 2022-07-13 19:04:48.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Circular_kernel_2/include/CGAL/Circular_kernel_2/interface_macros.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Circular_kernel_2/include/CGAL/Circular_kernel_2/interface_macros.h $ // $Id: interface_macros.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Circular_kernel_2/internal_functions_on_circle_2.h cgal-5.5/include/CGAL/Circular_kernel_2/internal_functions_on_circle_2.h --- cgal-5.4.1/include/CGAL/Circular_kernel_2/internal_functions_on_circle_2.h 2022-06-03 19:04:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Circular_kernel_2/internal_functions_on_circle_2.h 2022-07-13 19:04:48.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Circular_kernel_2/include/CGAL/Circular_kernel_2/internal_functions_on_circle_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Circular_kernel_2/include/CGAL/Circular_kernel_2/internal_functions_on_circle_2.h $ // $Id: internal_functions_on_circle_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Circular_kernel_2/internal_functions_on_circular_arc_2.h cgal-5.5/include/CGAL/Circular_kernel_2/internal_functions_on_circular_arc_2.h --- cgal-5.4.1/include/CGAL/Circular_kernel_2/internal_functions_on_circular_arc_2.h 2022-06-03 19:04:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Circular_kernel_2/internal_functions_on_circular_arc_2.h 2022-07-13 19:04:48.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Circular_kernel_2/include/CGAL/Circular_kernel_2/internal_functions_on_circular_arc_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Circular_kernel_2/include/CGAL/Circular_kernel_2/internal_functions_on_circular_arc_2.h $ // $Id: internal_functions_on_circular_arc_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Circular_kernel_2/internal_functions_on_line_2.h cgal-5.5/include/CGAL/Circular_kernel_2/internal_functions_on_line_2.h --- cgal-5.4.1/include/CGAL/Circular_kernel_2/internal_functions_on_line_2.h 2022-06-03 19:04:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Circular_kernel_2/internal_functions_on_line_2.h 2022-07-13 19:04:48.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Circular_kernel_2/include/CGAL/Circular_kernel_2/internal_functions_on_line_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Circular_kernel_2/include/CGAL/Circular_kernel_2/internal_functions_on_line_2.h $ // $Id: internal_functions_on_line_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Circular_kernel_2/internal_functions_on_line_arc_2.h cgal-5.5/include/CGAL/Circular_kernel_2/internal_functions_on_line_arc_2.h --- cgal-5.4.1/include/CGAL/Circular_kernel_2/internal_functions_on_line_arc_2.h 2022-06-03 19:04:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Circular_kernel_2/internal_functions_on_line_arc_2.h 2022-07-13 19:04:48.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Circular_kernel_2/include/CGAL/Circular_kernel_2/internal_functions_on_line_arc_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Circular_kernel_2/include/CGAL/Circular_kernel_2/internal_functions_on_line_arc_2.h $ // $Id: internal_functions_on_line_arc_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Circular_kernel_2/intersection_line_2_circle_2_map.h cgal-5.5/include/CGAL/Circular_kernel_2/intersection_line_2_circle_2_map.h --- cgal-5.4.1/include/CGAL/Circular_kernel_2/intersection_line_2_circle_2_map.h 2022-06-03 19:04:01.000000000 +0000 +++ cgal-5.5/include/CGAL/Circular_kernel_2/intersection_line_2_circle_2_map.h 2022-07-13 19:04:48.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Circular_kernel_2/include/CGAL/Circular_kernel_2/intersection_line_2_circle_2_map.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Circular_kernel_2/include/CGAL/Circular_kernel_2/intersection_line_2_circle_2_map.h $ // $Id: intersection_line_2_circle_2_map.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Circular_kernel_2/Intersection_traits.h cgal-5.5/include/CGAL/Circular_kernel_2/Intersection_traits.h --- cgal-5.4.1/include/CGAL/Circular_kernel_2/Intersection_traits.h 2022-06-03 19:04:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Circular_kernel_2/Intersection_traits.h 2022-07-13 19:04:47.000000000 +0000 @@ -3,11 +3,11 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Circular_kernel_2/include/CGAL/Circular_kernel_2/Intersection_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Circular_kernel_2/include/CGAL/Circular_kernel_2/Intersection_traits.h $ // $Id: Intersection_traits.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Circular_kernel_2/include/CGAL/Circular_kernel_2/Intersection_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Circular_kernel_2/include/CGAL/Circular_kernel_2/Intersection_traits.h $ // $Id: Intersection_traits.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Circular_kernel_2/Line_arc_2.h cgal-5.5/include/CGAL/Circular_kernel_2/Line_arc_2.h --- cgal-5.4.1/include/CGAL/Circular_kernel_2/Line_arc_2.h 2022-06-03 19:04:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Circular_kernel_2/Line_arc_2.h 2022-07-13 19:04:47.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Circular_kernel_2/include/CGAL/Circular_kernel_2/Line_arc_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Circular_kernel_2/include/CGAL/Circular_kernel_2/Line_arc_2.h $ // $Id: Line_arc_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Circular_kernel_2.h cgal-5.5/include/CGAL/Circular_kernel_2.h --- cgal-5.4.1/include/CGAL/Circular_kernel_2.h 2022-06-03 19:04:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Circular_kernel_2.h 2022-07-13 19:04:47.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Circular_kernel_2/include/CGAL/Circular_kernel_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Circular_kernel_2/include/CGAL/Circular_kernel_2.h $ // $Id: Circular_kernel_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Circular_kernel_3/Circular_arc_3.h cgal-5.5/include/CGAL/Circular_kernel_3/Circular_arc_3.h --- cgal-5.4.1/include/CGAL/Circular_kernel_3/Circular_arc_3.h 2022-06-03 19:04:03.000000000 +0000 +++ cgal-5.5/include/CGAL/Circular_kernel_3/Circular_arc_3.h 2022-07-13 19:04:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Circular_kernel_3/include/CGAL/Circular_kernel_3/Circular_arc_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Circular_kernel_3/include/CGAL/Circular_kernel_3/Circular_arc_3.h $ // $Id: Circular_arc_3.h c529418 2021-03-23T14:06:16+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Circular_kernel_3/Circular_arc_point_3.h cgal-5.5/include/CGAL/Circular_kernel_3/Circular_arc_point_3.h --- cgal-5.4.1/include/CGAL/Circular_kernel_3/Circular_arc_point_3.h 2022-06-03 19:04:03.000000000 +0000 +++ cgal-5.5/include/CGAL/Circular_kernel_3/Circular_arc_point_3.h 2022-07-13 19:04:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Circular_kernel_3/include/CGAL/Circular_kernel_3/Circular_arc_point_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Circular_kernel_3/include/CGAL/Circular_kernel_3/Circular_arc_point_3.h $ // $Id: Circular_arc_point_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Circular_kernel_3/function_objects_polynomial_sphere.h cgal-5.5/include/CGAL/Circular_kernel_3/function_objects_polynomial_sphere.h --- cgal-5.4.1/include/CGAL/Circular_kernel_3/function_objects_polynomial_sphere.h 2022-06-03 19:04:03.000000000 +0000 +++ cgal-5.5/include/CGAL/Circular_kernel_3/function_objects_polynomial_sphere.h 2022-07-13 19:04:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Circular_kernel_3/include/CGAL/Circular_kernel_3/function_objects_polynomial_sphere.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Circular_kernel_3/include/CGAL/Circular_kernel_3/function_objects_polynomial_sphere.h $ // $Id: function_objects_polynomial_sphere.h 81d9556 2021-02-10T10:06:45+01:00 Dmitry Anisimov // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Circular_kernel_3/get_equation_object_on_curved_kernel_3.h cgal-5.5/include/CGAL/Circular_kernel_3/get_equation_object_on_curved_kernel_3.h --- cgal-5.4.1/include/CGAL/Circular_kernel_3/get_equation_object_on_curved_kernel_3.h 2022-06-03 19:04:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Circular_kernel_3/get_equation_object_on_curved_kernel_3.h 2022-07-13 19:04:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Circular_kernel_3/include/CGAL/Circular_kernel_3/get_equation_object_on_curved_kernel_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Circular_kernel_3/include/CGAL/Circular_kernel_3/get_equation_object_on_curved_kernel_3.h $ // $Id: get_equation_object_on_curved_kernel_3.h ad813b4 2020-07-30T16:19:02+02:00 Dmitry Anisimov // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Circular_kernel_3/interface_macros.h cgal-5.5/include/CGAL/Circular_kernel_3/interface_macros.h --- cgal-5.4.1/include/CGAL/Circular_kernel_3/interface_macros.h 2022-06-03 19:04:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Circular_kernel_3/interface_macros.h 2022-07-13 19:04:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Circular_kernel_3/include/CGAL/Circular_kernel_3/interface_macros.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Circular_kernel_3/include/CGAL/Circular_kernel_3/interface_macros.h $ // $Id: interface_macros.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Circular_kernel_3/internal_function_compare_spherical_kernel.h cgal-5.5/include/CGAL/Circular_kernel_3/internal_function_compare_spherical_kernel.h --- cgal-5.4.1/include/CGAL/Circular_kernel_3/internal_function_compare_spherical_kernel.h 2022-06-03 19:04:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Circular_kernel_3/internal_function_compare_spherical_kernel.h 2022-07-13 19:04:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Circular_kernel_3/include/CGAL/Circular_kernel_3/internal_function_compare_spherical_kernel.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Circular_kernel_3/include/CGAL/Circular_kernel_3/internal_function_compare_spherical_kernel.h $ // $Id: internal_function_compare_spherical_kernel.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Circular_kernel_3/internal_function_compare_to_right_spherical_kernel.h cgal-5.5/include/CGAL/Circular_kernel_3/internal_function_compare_to_right_spherical_kernel.h --- cgal-5.4.1/include/CGAL/Circular_kernel_3/internal_function_compare_to_right_spherical_kernel.h 2022-06-03 19:04:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Circular_kernel_3/internal_function_compare_to_right_spherical_kernel.h 2022-07-13 19:04:51.000000000 +0000 @@ -9,7 +9,7 @@ // and a STREP (FET Open) Project under Contract No IST-006413 // (ACS -- Algorithms for Complex Shapes) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Circular_kernel_3/include/CGAL/Circular_kernel_3/internal_function_compare_to_right_spherical_kernel.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Circular_kernel_3/include/CGAL/Circular_kernel_3/internal_function_compare_to_right_spherical_kernel.h $ // $Id: internal_function_compare_to_right_spherical_kernel.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Circular_kernel_3/internal_function_has_on_spherical_kernel.h cgal-5.5/include/CGAL/Circular_kernel_3/internal_function_has_on_spherical_kernel.h --- cgal-5.4.1/include/CGAL/Circular_kernel_3/internal_function_has_on_spherical_kernel.h 2022-06-03 19:04:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Circular_kernel_3/internal_function_has_on_spherical_kernel.h 2022-07-13 19:04:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Circular_kernel_3/include/CGAL/Circular_kernel_3/internal_function_has_on_spherical_kernel.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Circular_kernel_3/include/CGAL/Circular_kernel_3/internal_function_has_on_spherical_kernel.h $ // $Id: internal_function_has_on_spherical_kernel.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Circular_kernel_3/internal_functions_on_circle_3.h cgal-5.5/include/CGAL/Circular_kernel_3/internal_functions_on_circle_3.h --- cgal-5.4.1/include/CGAL/Circular_kernel_3/internal_functions_on_circle_3.h 2022-06-03 19:04:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Circular_kernel_3/internal_functions_on_circle_3.h 2022-07-13 19:04:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Circular_kernel_3/include/CGAL/Circular_kernel_3/internal_functions_on_circle_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Circular_kernel_3/include/CGAL/Circular_kernel_3/internal_functions_on_circle_3.h $ // $Id: internal_functions_on_circle_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Circular_kernel_3/internal_functions_on_circular_arc_3.h cgal-5.5/include/CGAL/Circular_kernel_3/internal_functions_on_circular_arc_3.h --- cgal-5.4.1/include/CGAL/Circular_kernel_3/internal_functions_on_circular_arc_3.h 2022-06-03 19:04:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Circular_kernel_3/internal_functions_on_circular_arc_3.h 2022-07-13 19:04:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Circular_kernel_3/include/CGAL/Circular_kernel_3/internal_functions_on_circular_arc_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Circular_kernel_3/include/CGAL/Circular_kernel_3/internal_functions_on_circular_arc_3.h $ // $Id: internal_functions_on_circular_arc_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Circular_kernel_3/internal_functions_on_circular_arc_point_3.h cgal-5.5/include/CGAL/Circular_kernel_3/internal_functions_on_circular_arc_point_3.h --- cgal-5.4.1/include/CGAL/Circular_kernel_3/internal_functions_on_circular_arc_point_3.h 2022-06-03 19:04:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Circular_kernel_3/internal_functions_on_circular_arc_point_3.h 2022-07-13 19:04:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Circular_kernel_3/include/CGAL/Circular_kernel_3/internal_functions_on_circular_arc_point_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Circular_kernel_3/include/CGAL/Circular_kernel_3/internal_functions_on_circular_arc_point_3.h $ // $Id: internal_functions_on_circular_arc_point_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Circular_kernel_3/internal_functions_on_line_3.h cgal-5.5/include/CGAL/Circular_kernel_3/internal_functions_on_line_3.h --- cgal-5.4.1/include/CGAL/Circular_kernel_3/internal_functions_on_line_3.h 2022-06-03 19:04:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Circular_kernel_3/internal_functions_on_line_3.h 2022-07-13 19:04:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Circular_kernel_3/include/CGAL/Circular_kernel_3/internal_functions_on_line_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Circular_kernel_3/include/CGAL/Circular_kernel_3/internal_functions_on_line_3.h $ // $Id: internal_functions_on_line_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Circular_kernel_3/internal_functions_on_line_arc_3.h cgal-5.5/include/CGAL/Circular_kernel_3/internal_functions_on_line_arc_3.h --- cgal-5.4.1/include/CGAL/Circular_kernel_3/internal_functions_on_line_arc_3.h 2022-06-03 19:04:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Circular_kernel_3/internal_functions_on_line_arc_3.h 2022-07-13 19:04:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Circular_kernel_3/include/CGAL/Circular_kernel_3/internal_functions_on_line_arc_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Circular_kernel_3/include/CGAL/Circular_kernel_3/internal_functions_on_line_arc_3.h $ // $Id: internal_functions_on_line_arc_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Circular_kernel_3/internal_functions_on_plane_3.h cgal-5.5/include/CGAL/Circular_kernel_3/internal_functions_on_plane_3.h --- cgal-5.4.1/include/CGAL/Circular_kernel_3/internal_functions_on_plane_3.h 2022-06-03 19:04:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Circular_kernel_3/internal_functions_on_plane_3.h 2022-07-13 19:04:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Circular_kernel_3/include/CGAL/Circular_kernel_3/internal_functions_on_plane_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Circular_kernel_3/include/CGAL/Circular_kernel_3/internal_functions_on_plane_3.h $ // $Id: internal_functions_on_plane_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Circular_kernel_3/internal_functions_on_sphere_3.h cgal-5.5/include/CGAL/Circular_kernel_3/internal_functions_on_sphere_3.h --- cgal-5.4.1/include/CGAL/Circular_kernel_3/internal_functions_on_sphere_3.h 2022-06-03 19:04:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Circular_kernel_3/internal_functions_on_sphere_3.h 2022-07-13 19:04:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Circular_kernel_3/include/CGAL/Circular_kernel_3/internal_functions_on_sphere_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Circular_kernel_3/include/CGAL/Circular_kernel_3/internal_functions_on_sphere_3.h $ // $Id: internal_functions_on_sphere_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Circular_kernel_3/Intersection_traits.h cgal-5.5/include/CGAL/Circular_kernel_3/Intersection_traits.h --- cgal-5.4.1/include/CGAL/Circular_kernel_3/Intersection_traits.h 2022-06-03 19:04:03.000000000 +0000 +++ cgal-5.5/include/CGAL/Circular_kernel_3/Intersection_traits.h 2022-07-13 19:04:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Circular_kernel_3/include/CGAL/Circular_kernel_3/Intersection_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Circular_kernel_3/include/CGAL/Circular_kernel_3/Intersection_traits.h $ // $Id: Intersection_traits.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Circular_kernel_3/Line_arc_3.h cgal-5.5/include/CGAL/Circular_kernel_3/Line_arc_3.h --- cgal-5.4.1/include/CGAL/Circular_kernel_3/Line_arc_3.h 2022-06-03 19:04:03.000000000 +0000 +++ cgal-5.5/include/CGAL/Circular_kernel_3/Line_arc_3.h 2022-07-13 19:04:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Circular_kernel_3/include/CGAL/Circular_kernel_3/Line_arc_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Circular_kernel_3/include/CGAL/Circular_kernel_3/Line_arc_3.h $ // $Id: Line_arc_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Circular_kernel_converter.h cgal-5.5/include/CGAL/Circular_kernel_converter.h --- cgal-5.4.1/include/CGAL/Circular_kernel_converter.h 2022-06-03 19:04:01.000000000 +0000 +++ cgal-5.5/include/CGAL/Circular_kernel_converter.h 2022-07-13 19:04:48.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Circular_kernel_2/include/CGAL/Circular_kernel_converter.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Circular_kernel_2/include/CGAL/Circular_kernel_converter.h $ // $Id: Circular_kernel_converter.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Circular_kernel_intersections.h cgal-5.5/include/CGAL/Circular_kernel_intersections.h --- cgal-5.4.1/include/CGAL/Circular_kernel_intersections.h 2022-06-03 19:04:01.000000000 +0000 +++ cgal-5.5/include/CGAL/Circular_kernel_intersections.h 2022-07-13 19:04:48.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Circular_kernel_2/include/CGAL/Circular_kernel_intersections.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Circular_kernel_2/include/CGAL/Circular_kernel_intersections.h $ // $Id: Circular_kernel_intersections.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Circular_kernel_type_equality_wrapper.h cgal-5.5/include/CGAL/Circular_kernel_type_equality_wrapper.h --- cgal-5.4.1/include/CGAL/Circular_kernel_type_equality_wrapper.h 2022-06-03 19:04:01.000000000 +0000 +++ cgal-5.5/include/CGAL/Circular_kernel_type_equality_wrapper.h 2022-07-13 19:04:48.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Circular_kernel_2/include/CGAL/Circular_kernel_type_equality_wrapper.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Circular_kernel_2/include/CGAL/Circular_kernel_type_equality_wrapper.h $ // $Id: Circular_kernel_type_equality_wrapper.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Circulator/Circulator_adapters.h cgal-5.5/include/CGAL/Circulator/Circulator_adapters.h --- cgal-5.4.1/include/CGAL/Circulator/Circulator_adapters.h 2022-06-03 19:04:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Circulator/Circulator_adapters.h 2022-07-13 19:04:52.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Circulator/include/CGAL/Circulator/Circulator_adapters.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Circulator/include/CGAL/Circulator/Circulator_adapters.h $ // $Id: Circulator_adapters.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Circulator/Circulator_concepts.h cgal-5.5/include/CGAL/Circulator/Circulator_concepts.h --- cgal-5.4.1/include/CGAL/Circulator/Circulator_concepts.h 2022-06-03 19:04:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Circulator/Circulator_concepts.h 2022-07-13 19:04:52.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Circulator/include/CGAL/Circulator/Circulator_concepts.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Circulator/include/CGAL/Circulator/Circulator_concepts.h $ // $Id: Circulator_concepts.h c9af7a1 2020-10-14T10:59:46+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Circulator/Safe_circulator_from_iterator.h cgal-5.5/include/CGAL/Circulator/Safe_circulator_from_iterator.h --- cgal-5.4.1/include/CGAL/Circulator/Safe_circulator_from_iterator.h 2022-06-03 19:04:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Circulator/Safe_circulator_from_iterator.h 2022-07-13 19:04:52.000000000 +0000 @@ -8,7 +8,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Circulator/include/CGAL/Circulator/Safe_circulator_from_iterator.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Circulator/include/CGAL/Circulator/Safe_circulator_from_iterator.h $ // $Id: Safe_circulator_from_iterator.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/circulator_bases.h cgal-5.5/include/CGAL/circulator_bases.h --- cgal-5.4.1/include/CGAL/circulator_bases.h 2022-06-03 19:04:05.000000000 +0000 +++ cgal-5.5/include/CGAL/circulator_bases.h 2022-07-13 19:04:52.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Circulator/include/CGAL/circulator_bases.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Circulator/include/CGAL/circulator_bases.h $ // $Id: circulator_bases.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/circulator.h cgal-5.5/include/CGAL/circulator.h --- cgal-5.4.1/include/CGAL/circulator.h 2022-06-03 19:04:05.000000000 +0000 +++ cgal-5.5/include/CGAL/circulator.h 2022-07-13 19:04:52.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Circulator/include/CGAL/circulator.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Circulator/include/CGAL/circulator.h $ // $Id: circulator.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Circulator_identity.h cgal-5.5/include/CGAL/Circulator_identity.h --- cgal-5.4.1/include/CGAL/Circulator_identity.h 2022-06-03 19:05:31.000000000 +0000 +++ cgal-5.5/include/CGAL/Circulator_identity.h 2022-07-13 19:06:27.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/Circulator_identity.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/Circulator_identity.h $ // $Id: Circulator_identity.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Circulator_on_node.h cgal-5.5/include/CGAL/Circulator_on_node.h --- cgal-5.4.1/include/CGAL/Circulator_on_node.h 2022-06-03 19:05:31.000000000 +0000 +++ cgal-5.5/include/CGAL/Circulator_on_node.h 2022-07-13 19:06:27.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/Circulator_on_node.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/Circulator_on_node.h $ // $Id: Circulator_on_node.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Circulator_project.h cgal-5.5/include/CGAL/Circulator_project.h --- cgal-5.4.1/include/CGAL/Circulator_project.h 2022-06-03 19:05:31.000000000 +0000 +++ cgal-5.5/include/CGAL/Circulator_project.h 2022-07-13 19:06:27.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/Circulator_project.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/Circulator_project.h $ // $Id: Circulator_project.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Classification/classify.h cgal-5.5/include/CGAL/Classification/classify.h --- cgal-5.4.1/include/CGAL/Classification/classify.h 2022-06-03 19:04:06.000000000 +0000 +++ cgal-5.5/include/CGAL/Classification/classify.h 2022-07-13 19:04:53.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Classification/include/CGAL/Classification/classify.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Classification/include/CGAL/Classification/classify.h $ // $Id: classify.h 0e934b1 2020-08-04T13:16:13+02:00 Simon Giraudot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Classification/Cluster.h cgal-5.5/include/CGAL/Classification/Cluster.h --- cgal-5.4.1/include/CGAL/Classification/Cluster.h 2022-06-03 19:04:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Classification/Cluster.h 2022-07-13 19:04:52.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Classification/include/CGAL/Classification/Cluster.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Classification/include/CGAL/Classification/Cluster.h $ // $Id: Cluster.h 8166579 2021-10-11T19:58:07+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Classification/compressed_float.h cgal-5.5/include/CGAL/Classification/compressed_float.h --- cgal-5.4.1/include/CGAL/Classification/compressed_float.h 2022-06-03 19:04:06.000000000 +0000 +++ cgal-5.5/include/CGAL/Classification/compressed_float.h 2022-07-13 19:04:53.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Classification/include/CGAL/Classification/compressed_float.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Classification/include/CGAL/Classification/compressed_float.h $ // $Id: compressed_float.h e9d41d7 2020-04-21T10:03:00+02:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Classification/ETHZ/internal/dataview.h cgal-5.5/include/CGAL/Classification/ETHZ/internal/dataview.h --- cgal-5.4.1/include/CGAL/Classification/ETHZ/internal/dataview.h 2022-06-03 19:04:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Classification/ETHZ/internal/dataview.h 2022-07-13 19:04:52.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Classification/include/CGAL/Classification/ETHZ/internal/dataview.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Classification/include/CGAL/Classification/ETHZ/internal/dataview.h $ // $Id: dataview.h 26355e2 2020-06-25T12:31:21+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LicenseRef-RFL // License notice in Installation/LICENSE.RFL diff -Nru cgal-5.4.1/include/CGAL/Classification/ETHZ/internal/random-forest/common-libraries.hpp cgal-5.5/include/CGAL/Classification/ETHZ/internal/random-forest/common-libraries.hpp --- cgal-5.4.1/include/CGAL/Classification/ETHZ/internal/random-forest/common-libraries.hpp 2022-06-03 19:04:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Classification/ETHZ/internal/random-forest/common-libraries.hpp 2022-07-13 19:04:52.000000000 +0000 @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Classification/include/CGAL/Classification/ETHZ/internal/random-forest/common-libraries.hpp $ -// $Id: common-libraries.hpp f62aaa7 2021-04-06T15:12:56+02:00 Laurent Rineau +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Classification/include/CGAL/Classification/ETHZ/internal/random-forest/common-libraries.hpp $ +// $Id: common-libraries.hpp 4ffc949 2022-02-03T17:11:20+01:00 Sébastien Loriot // SPDX-License-Identifier: LicenseRef-RFL // License notice in Installation/LICENSE.RFL // @@ -47,7 +47,7 @@ #include #include #include -#include +#include #include #include @@ -63,7 +63,7 @@ { // data.resize(n_samples); } -typedef boost::unordered_set FeatureSet; +typedef std::unordered_set FeatureSet; #if BOOST_VERSION >= 104700 typedef boost::random::uniform_int_distribution<> UniformIntDist; diff -Nru cgal-5.4.1/include/CGAL/Classification/ETHZ/internal/random-forest/forest.hpp cgal-5.5/include/CGAL/Classification/ETHZ/internal/random-forest/forest.hpp --- cgal-5.4.1/include/CGAL/Classification/ETHZ/internal/random-forest/forest.hpp 2022-06-03 19:04:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Classification/ETHZ/internal/random-forest/forest.hpp 2022-07-13 19:04:52.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Classification/include/CGAL/Classification/ETHZ/internal/random-forest/forest.hpp $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Classification/include/CGAL/Classification/ETHZ/internal/random-forest/forest.hpp $ // $Id: forest.hpp 7599bbe 2020-10-01T13:53:02+02:00 Simon Giraudot // SPDX-License-Identifier: LicenseRef-RFL // License notice in Installation/LICENSE.RFL diff -Nru cgal-5.4.1/include/CGAL/Classification/ETHZ/internal/random-forest/node-gini.hpp cgal-5.5/include/CGAL/Classification/ETHZ/internal/random-forest/node-gini.hpp --- cgal-5.4.1/include/CGAL/Classification/ETHZ/internal/random-forest/node-gini.hpp 2022-06-03 19:04:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Classification/ETHZ/internal/random-forest/node-gini.hpp 2022-07-13 19:04:53.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Classification/include/CGAL/Classification/ETHZ/internal/random-forest/node-gini.hpp $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Classification/include/CGAL/Classification/ETHZ/internal/random-forest/node-gini.hpp $ // $Id: node-gini.hpp 7cfe6df 2020-04-07T11:02:16+02:00 Simon Giraudot // SPDX-License-Identifier: LicenseRef-RFL // License notice in Installation/LICENSE.RFL diff -Nru cgal-5.4.1/include/CGAL/Classification/ETHZ/internal/random-forest/node.hpp cgal-5.5/include/CGAL/Classification/ETHZ/internal/random-forest/node.hpp --- cgal-5.4.1/include/CGAL/Classification/ETHZ/internal/random-forest/node.hpp 2022-06-03 19:04:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Classification/ETHZ/internal/random-forest/node.hpp 2022-07-13 19:04:53.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Classification/include/CGAL/Classification/ETHZ/internal/random-forest/node.hpp $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Classification/include/CGAL/Classification/ETHZ/internal/random-forest/node.hpp $ // $Id: node.hpp 7599bbe 2020-10-01T13:53:02+02:00 Simon Giraudot // SPDX-License-Identifier: LicenseRef-RFL // License notice in Installation/LICENSE.RFL diff -Nru cgal-5.4.1/include/CGAL/Classification/ETHZ/internal/random-forest/tree.hpp cgal-5.5/include/CGAL/Classification/ETHZ/internal/random-forest/tree.hpp --- cgal-5.4.1/include/CGAL/Classification/ETHZ/internal/random-forest/tree.hpp 2022-06-03 19:04:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Classification/ETHZ/internal/random-forest/tree.hpp 2022-07-13 19:04:53.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Classification/include/CGAL/Classification/ETHZ/internal/random-forest/tree.hpp $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Classification/include/CGAL/Classification/ETHZ/internal/random-forest/tree.hpp $ // $Id: tree.hpp ed25fd2 2020-04-07T11:02:16+02:00 Simon Giraudot // SPDX-License-Identifier: LicenseRef-RFL // License notice in Installation/LICENSE.RFL diff -Nru cgal-5.4.1/include/CGAL/Classification/ETHZ/Random_forest_classifier.h cgal-5.5/include/CGAL/Classification/ETHZ/Random_forest_classifier.h --- cgal-5.4.1/include/CGAL/Classification/ETHZ/Random_forest_classifier.h 2022-06-03 19:04:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Classification/ETHZ/Random_forest_classifier.h 2022-07-13 19:04:52.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Classification/include/CGAL/Classification/ETHZ/Random_forest_classifier.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Classification/include/CGAL/Classification/ETHZ/Random_forest_classifier.h $ // $Id: Random_forest_classifier.h 78ff918 2021-06-23T23:34:14+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Classification/Evaluation.h cgal-5.5/include/CGAL/Classification/Evaluation.h --- cgal-5.4.1/include/CGAL/Classification/Evaluation.h 2022-06-03 19:04:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Classification/Evaluation.h 2022-07-13 19:04:53.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Classification/include/CGAL/Classification/Evaluation.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Classification/include/CGAL/Classification/Evaluation.h $ // $Id: Evaluation.h 78ff918 2021-06-23T23:34:14+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Classification/Feature/Cluster_mean_of_feature.h cgal-5.5/include/CGAL/Classification/Feature/Cluster_mean_of_feature.h --- cgal-5.4.1/include/CGAL/Classification/Feature/Cluster_mean_of_feature.h 2022-06-03 19:04:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Classification/Feature/Cluster_mean_of_feature.h 2022-07-13 19:04:53.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Classification/include/CGAL/Classification/Feature/Cluster_mean_of_feature.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Classification/include/CGAL/Classification/Feature/Cluster_mean_of_feature.h $ // $Id: Cluster_mean_of_feature.h 0e934b1 2020-08-04T13:16:13+02:00 Simon Giraudot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Classification/Feature/Cluster_size.h cgal-5.5/include/CGAL/Classification/Feature/Cluster_size.h --- cgal-5.4.1/include/CGAL/Classification/Feature/Cluster_size.h 2022-06-03 19:04:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Classification/Feature/Cluster_size.h 2022-07-13 19:04:53.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Classification/include/CGAL/Classification/Feature/Cluster_size.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Classification/include/CGAL/Classification/Feature/Cluster_size.h $ // $Id: Cluster_size.h 0e934b1 2020-08-04T13:16:13+02:00 Simon Giraudot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Classification/Feature/Cluster_variance_of_feature.h cgal-5.5/include/CGAL/Classification/Feature/Cluster_variance_of_feature.h --- cgal-5.4.1/include/CGAL/Classification/Feature/Cluster_variance_of_feature.h 2022-06-03 19:04:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Classification/Feature/Cluster_variance_of_feature.h 2022-07-13 19:04:53.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Classification/include/CGAL/Classification/Feature/Cluster_variance_of_feature.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Classification/include/CGAL/Classification/Feature/Cluster_variance_of_feature.h $ // $Id: Cluster_variance_of_feature.h 0e934b1 2020-08-04T13:16:13+02:00 Simon Giraudot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Classification/Feature/Cluster_vertical_extent.h cgal-5.5/include/CGAL/Classification/Feature/Cluster_vertical_extent.h --- cgal-5.4.1/include/CGAL/Classification/Feature/Cluster_vertical_extent.h 2022-06-03 19:04:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Classification/Feature/Cluster_vertical_extent.h 2022-07-13 19:04:53.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Classification/include/CGAL/Classification/Feature/Cluster_vertical_extent.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Classification/include/CGAL/Classification/Feature/Cluster_vertical_extent.h $ // $Id: Cluster_vertical_extent.h 19004a7 2020-08-04T13:41:48+02:00 Simon Giraudot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Classification/Feature/Color_channel.h cgal-5.5/include/CGAL/Classification/Feature/Color_channel.h --- cgal-5.4.1/include/CGAL/Classification/Feature/Color_channel.h 2022-06-03 19:04:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Classification/Feature/Color_channel.h 2022-07-13 19:04:53.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Classification/include/CGAL/Classification/Feature/Color_channel.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Classification/include/CGAL/Classification/Feature/Color_channel.h $ // $Id: Color_channel.h fb6f703 2021-05-04T14:07:49+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Classification/Feature/Distance_to_plane.h cgal-5.5/include/CGAL/Classification/Feature/Distance_to_plane.h --- cgal-5.4.1/include/CGAL/Classification/Feature/Distance_to_plane.h 2022-06-03 19:04:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Classification/Feature/Distance_to_plane.h 2022-07-13 19:04:53.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Classification/include/CGAL/Classification/Feature/Distance_to_plane.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Classification/include/CGAL/Classification/Feature/Distance_to_plane.h $ // $Id: Distance_to_plane.h 0e934b1 2020-08-04T13:16:13+02:00 Simon Giraudot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Classification/Feature/Echo_scatter.h cgal-5.5/include/CGAL/Classification/Feature/Echo_scatter.h --- cgal-5.4.1/include/CGAL/Classification/Feature/Echo_scatter.h 2022-06-03 19:04:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Classification/Feature/Echo_scatter.h 2022-07-13 19:04:53.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Classification/include/CGAL/Classification/Feature/Echo_scatter.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Classification/include/CGAL/Classification/Feature/Echo_scatter.h $ // $Id: Echo_scatter.h 0e934b1 2020-08-04T13:16:13+02:00 Simon Giraudot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Classification/Feature/Eigenvalue.h cgal-5.5/include/CGAL/Classification/Feature/Eigenvalue.h --- cgal-5.4.1/include/CGAL/Classification/Feature/Eigenvalue.h 2022-06-03 19:04:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Classification/Feature/Eigenvalue.h 2022-07-13 19:04:53.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Classification/include/CGAL/Classification/Feature/Eigenvalue.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Classification/include/CGAL/Classification/Feature/Eigenvalue.h $ // $Id: Eigenvalue.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Classification/Feature/Elevation.h cgal-5.5/include/CGAL/Classification/Feature/Elevation.h --- cgal-5.4.1/include/CGAL/Classification/Feature/Elevation.h 2022-06-03 19:04:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Classification/Feature/Elevation.h 2022-07-13 19:04:53.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Classification/include/CGAL/Classification/Feature/Elevation.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Classification/include/CGAL/Classification/Feature/Elevation.h $ // $Id: Elevation.h 19004a7 2020-08-04T13:41:48+02:00 Simon Giraudot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Classification/Feature/Gradient_of_feature.h cgal-5.5/include/CGAL/Classification/Feature/Gradient_of_feature.h --- cgal-5.4.1/include/CGAL/Classification/Feature/Gradient_of_feature.h 2022-06-03 19:04:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Classification/Feature/Gradient_of_feature.h 2022-07-13 19:04:53.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Classification/include/CGAL/Classification/Feature/Gradient_of_feature.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Classification/include/CGAL/Classification/Feature/Gradient_of_feature.h $ // $Id: Gradient_of_feature.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Classification/Feature/Height_above.h cgal-5.5/include/CGAL/Classification/Feature/Height_above.h --- cgal-5.4.1/include/CGAL/Classification/Feature/Height_above.h 2022-06-03 19:04:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Classification/Feature/Height_above.h 2022-07-13 19:04:53.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Classification/include/CGAL/Classification/Feature/Height_above.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Classification/include/CGAL/Classification/Feature/Height_above.h $ // $Id: Height_above.h 19004a7 2020-08-04T13:41:48+02:00 Simon Giraudot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Classification/Feature/Height_below.h cgal-5.5/include/CGAL/Classification/Feature/Height_below.h --- cgal-5.4.1/include/CGAL/Classification/Feature/Height_below.h 2022-06-03 19:04:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Classification/Feature/Height_below.h 2022-07-13 19:04:53.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Classification/include/CGAL/Classification/Feature/Height_below.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Classification/include/CGAL/Classification/Feature/Height_below.h $ // $Id: Height_below.h 19004a7 2020-08-04T13:41:48+02:00 Simon Giraudot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Classification/Feature/Simple_feature.h cgal-5.5/include/CGAL/Classification/Feature/Simple_feature.h --- cgal-5.4.1/include/CGAL/Classification/Feature/Simple_feature.h 2022-06-03 19:04:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Classification/Feature/Simple_feature.h 2022-07-13 19:04:53.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Classification/include/CGAL/Classification/Feature/Simple_feature.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Classification/include/CGAL/Classification/Feature/Simple_feature.h $ // $Id: Simple_feature.h 0e934b1 2020-08-04T13:16:13+02:00 Simon Giraudot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Classification/Feature/Vertical_dispersion.h cgal-5.5/include/CGAL/Classification/Feature/Vertical_dispersion.h --- cgal-5.4.1/include/CGAL/Classification/Feature/Vertical_dispersion.h 2022-06-03 19:04:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Classification/Feature/Vertical_dispersion.h 2022-07-13 19:04:53.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Classification/include/CGAL/Classification/Feature/Vertical_dispersion.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Classification/include/CGAL/Classification/Feature/Vertical_dispersion.h $ // $Id: Vertical_dispersion.h 0e934b1 2020-08-04T13:16:13+02:00 Simon Giraudot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Classification/Feature/Verticality.h cgal-5.5/include/CGAL/Classification/Feature/Verticality.h --- cgal-5.4.1/include/CGAL/Classification/Feature/Verticality.h 2022-06-03 19:04:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Classification/Feature/Verticality.h 2022-07-13 19:04:53.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Classification/include/CGAL/Classification/Feature/Verticality.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Classification/include/CGAL/Classification/Feature/Verticality.h $ // $Id: Verticality.h 0e934b1 2020-08-04T13:16:13+02:00 Simon Giraudot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Classification/Feature/Vertical_range.h cgal-5.5/include/CGAL/Classification/Feature/Vertical_range.h --- cgal-5.4.1/include/CGAL/Classification/Feature/Vertical_range.h 2022-06-03 19:04:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Classification/Feature/Vertical_range.h 2022-07-13 19:04:53.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Classification/include/CGAL/Classification/Feature/Vertical_range.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Classification/include/CGAL/Classification/Feature/Vertical_range.h $ // $Id: Vertical_range.h 19004a7 2020-08-04T13:41:48+02:00 Simon Giraudot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Classification/Feature_base.h cgal-5.5/include/CGAL/Classification/Feature_base.h --- cgal-5.4.1/include/CGAL/Classification/Feature_base.h 2022-06-03 19:04:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Classification/Feature_base.h 2022-07-13 19:04:53.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Classification/include/CGAL/Classification/Feature_base.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Classification/include/CGAL/Classification/Feature_base.h $ // $Id: Feature_base.h 627584f 2020-09-30T08:38:45+02:00 Simon Giraudot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Classification/Feature_set.h cgal-5.5/include/CGAL/Classification/Feature_set.h --- cgal-5.4.1/include/CGAL/Classification/Feature_set.h 2022-06-03 19:04:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Classification/Feature_set.h 2022-07-13 19:04:53.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Classification/include/CGAL/Classification/Feature_set.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Classification/include/CGAL/Classification/Feature_set.h $ // $Id: Feature_set.h 473d30b 2021-04-06T15:12:45+02:00 Laurent Rineau // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Classification/Image.h cgal-5.5/include/CGAL/Classification/Image.h --- cgal-5.4.1/include/CGAL/Classification/Image.h 2022-06-03 19:04:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Classification/Image.h 2022-07-13 19:04:53.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Classification/include/CGAL/Classification/Image.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Classification/include/CGAL/Classification/Image.h $ // $Id: Image.h 43014ba 2020-04-02T10:28:50+02:00 Simon Giraudot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Classification/internal/verbosity.h cgal-5.5/include/CGAL/Classification/internal/verbosity.h --- cgal-5.4.1/include/CGAL/Classification/internal/verbosity.h 2022-06-03 19:04:06.000000000 +0000 +++ cgal-5.5/include/CGAL/Classification/internal/verbosity.h 2022-07-13 19:04:53.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Classification/include/CGAL/Classification/internal/verbosity.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Classification/include/CGAL/Classification/internal/verbosity.h $ // $Id: verbosity.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Classification/Label.h cgal-5.5/include/CGAL/Classification/Label.h --- cgal-5.4.1/include/CGAL/Classification/Label.h 2022-06-03 19:04:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Classification/Label.h 2022-07-13 19:04:53.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Classification/include/CGAL/Classification/Label.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Classification/include/CGAL/Classification/Label.h $ // $Id: Label.h c863ee6 2021-05-04T17:28:52+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Classification/Label_set.h cgal-5.5/include/CGAL/Classification/Label_set.h --- cgal-5.4.1/include/CGAL/Classification/Label_set.h 2022-06-03 19:04:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Classification/Label_set.h 2022-07-13 19:04:53.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Classification/include/CGAL/Classification/Label_set.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Classification/include/CGAL/Classification/Label_set.h $ // $Id: Label_set.h 7fe4c32 2021-12-27T09:19:42+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Classification/Local_eigen_analysis.h cgal-5.5/include/CGAL/Classification/Local_eigen_analysis.h --- cgal-5.4.1/include/CGAL/Classification/Local_eigen_analysis.h 2022-06-03 19:04:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Classification/Local_eigen_analysis.h 2022-07-13 19:04:53.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Classification/include/CGAL/Classification/Local_eigen_analysis.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Classification/include/CGAL/Classification/Local_eigen_analysis.h $ // $Id: Local_eigen_analysis.h 350b917 2021-04-11T14:50:44+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Classification/Mesh_feature_generator.h cgal-5.5/include/CGAL/Classification/Mesh_feature_generator.h --- cgal-5.4.1/include/CGAL/Classification/Mesh_feature_generator.h 2022-06-03 19:04:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Classification/Mesh_feature_generator.h 2022-07-13 19:04:53.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Classification/include/CGAL/Classification/Mesh_feature_generator.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Classification/include/CGAL/Classification/Mesh_feature_generator.h $ // $Id: Mesh_feature_generator.h 350b917 2021-04-11T14:50:44+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Classification/Mesh_neighborhood.h cgal-5.5/include/CGAL/Classification/Mesh_neighborhood.h --- cgal-5.4.1/include/CGAL/Classification/Mesh_neighborhood.h 2022-06-03 19:04:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Classification/Mesh_neighborhood.h 2022-07-13 19:04:53.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Classification/include/CGAL/Classification/Mesh_neighborhood.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Classification/include/CGAL/Classification/Mesh_neighborhood.h $ // $Id: Mesh_neighborhood.h 0e934b1 2020-08-04T13:16:13+02:00 Simon Giraudot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Classification/OpenCV/Random_forest_classifier.h cgal-5.5/include/CGAL/Classification/OpenCV/Random_forest_classifier.h --- cgal-5.4.1/include/CGAL/Classification/OpenCV/Random_forest_classifier.h 2022-06-03 19:04:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Classification/OpenCV/Random_forest_classifier.h 2022-07-13 19:04:53.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Classification/include/CGAL/Classification/OpenCV/Random_forest_classifier.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Classification/include/CGAL/Classification/OpenCV/Random_forest_classifier.h $ // $Id: Random_forest_classifier.h 0e934b1 2020-08-04T13:16:13+02:00 Simon Giraudot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Classification/Planimetric_grid.h cgal-5.5/include/CGAL/Classification/Planimetric_grid.h --- cgal-5.4.1/include/CGAL/Classification/Planimetric_grid.h 2022-06-03 19:04:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Classification/Planimetric_grid.h 2022-07-13 19:04:53.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Classification/include/CGAL/Classification/Planimetric_grid.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Classification/include/CGAL/Classification/Planimetric_grid.h $ // $Id: Planimetric_grid.h 0e934b1 2020-08-04T13:16:13+02:00 Simon Giraudot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Classification/Point_set_feature_generator.h cgal-5.5/include/CGAL/Classification/Point_set_feature_generator.h --- cgal-5.4.1/include/CGAL/Classification/Point_set_feature_generator.h 2022-06-03 19:04:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Classification/Point_set_feature_generator.h 2022-07-13 19:04:53.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Classification/include/CGAL/Classification/Point_set_feature_generator.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Classification/include/CGAL/Classification/Point_set_feature_generator.h $ // $Id: Point_set_feature_generator.h fb6f703 2021-05-04T14:07:49+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Classification/Point_set_neighborhood.h cgal-5.5/include/CGAL/Classification/Point_set_neighborhood.h --- cgal-5.4.1/include/CGAL/Classification/Point_set_neighborhood.h 2022-06-03 19:04:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Classification/Point_set_neighborhood.h 2022-07-13 19:04:53.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Classification/include/CGAL/Classification/Point_set_neighborhood.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Classification/include/CGAL/Classification/Point_set_neighborhood.h $ // $Id: Point_set_neighborhood.h 833e511 2021-11-10T11:31:42+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Classification/property_maps.h cgal-5.5/include/CGAL/Classification/property_maps.h --- cgal-5.4.1/include/CGAL/Classification/property_maps.h 2022-06-03 19:04:06.000000000 +0000 +++ cgal-5.5/include/CGAL/Classification/property_maps.h 2022-07-13 19:04:53.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Classification/include/CGAL/Classification/property_maps.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Classification/include/CGAL/Classification/property_maps.h $ // $Id: property_maps.h 590ddf8 2021-10-08T15:38:47+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Classification/Sum_of_weighted_features_classifier.h cgal-5.5/include/CGAL/Classification/Sum_of_weighted_features_classifier.h --- cgal-5.4.1/include/CGAL/Classification/Sum_of_weighted_features_classifier.h 2022-06-03 19:04:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Classification/Sum_of_weighted_features_classifier.h 2022-07-13 19:04:53.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Classification/include/CGAL/Classification/Sum_of_weighted_features_classifier.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Classification/include/CGAL/Classification/Sum_of_weighted_features_classifier.h $ // $Id: Sum_of_weighted_features_classifier.h 393ae7d 2021-05-12T15:03:53+02:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Classification.h cgal-5.5/include/CGAL/Classification.h --- cgal-5.4.1/include/CGAL/Classification.h 2022-06-03 19:04:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Classification.h 2022-07-13 19:04:52.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Classification/include/CGAL/Classification.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Classification/include/CGAL/Classification.h $ // $Id: Classification.h 8264096 2021-02-23T08:49:18+01:00 Simon Giraudot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/cluster_point_set.h cgal-5.5/include/CGAL/cluster_point_set.h --- cgal-5.4.1/include/CGAL/cluster_point_set.h 2022-06-03 19:05:12.000000000 +0000 +++ cgal-5.5/include/CGAL/cluster_point_set.h 2022-07-13 19:06:06.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Point_set_processing_3/include/CGAL/cluster_point_set.h $ -// $Id: cluster_point_set.h e935a3d 2021-04-28T15:24:10+02:00 Laurent Rineau +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Point_set_processing_3/include/CGAL/cluster_point_set.h $ +// $Id: cluster_point_set.h 75b03e6 2022-01-10T15:33:04+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Simon Giraudot @@ -20,7 +20,7 @@ #include #include -#include +#include #include #include @@ -128,10 +128,10 @@ \return the number of clusters identified. */ -template +template std::size_t cluster_point_set (PointRange& points, ClusterMap cluster_map, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { using parameters::choose_parameter; using parameters::get_parameter; @@ -140,15 +140,16 @@ typedef typename PointRange::iterator iterator; typedef typename iterator::value_type value_type; typedef typename boost::property_traits::value_type Cluster_index_t; - typedef typename CGAL::GetPointMap::type PointMap; - typedef typename Point_set_processing_3::GetK::Kernel Kernel; + typedef Point_set_processing_3_np_helper NP_helper; + typedef typename NP_helper::Point_map PointMap; + typedef typename NP_helper::Geom_traits Kernel; typedef typename Point_set_processing_3::GetAdjacencies::type Adjacencies; CGAL_static_assertion_msg(!(boost::is_same::type, typename GetSvdTraits::NoTraits>::value), "Error: no SVD traits"); - PointMap point_map = choose_parameter(get_parameter(np, internal_np::point_map), PointMap()); + PointMap point_map = NP_helper::get_point_map(points, np); typename Kernel::FT neighbor_radius = choose_parameter(get_parameter(np, internal_np::neighbor_radius), typename Kernel::FT(-1)); typename Kernel::FT factor = choose_parameter(get_parameter(np, internal_np::attraction_factor), @@ -259,18 +260,6 @@ return nb_clusters; } -/// \cond SKIP_IN_MANUAL -// overload with default NP -template -std::size_t cluster_point_set (PointRange& points, - ClusterMap cluster_map, - unsigned int k) -{ - return cluster_point_set (points, cluster_map, k, - CGAL::Point_set_processing_3::parameters::all_default(points)); -} -/// \endcond - } // namespace CGAL diff -Nru cgal-5.4.1/include/CGAL/CMap_linear_cell_complex_storages.h cgal-5.5/include/CGAL/CMap_linear_cell_complex_storages.h --- cgal-5.4.1/include/CGAL/CMap_linear_cell_complex_storages.h 2022-06-03 19:04:41.000000000 +0000 +++ cgal-5.5/include/CGAL/CMap_linear_cell_complex_storages.h 2022-07-13 19:05:33.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Linear_cell_complex/include/CGAL/CMap_linear_cell_complex_storages.h $ -// $Id: CMap_linear_cell_complex_storages.h e6c767d 2021-05-12T15:45:07+02:00 Maxime Gimeno +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Linear_cell_complex/include/CGAL/CMap_linear_cell_complex_storages.h $ +// $Id: CMap_linear_cell_complex_storages.h 46f5325 2022-01-27T10:36:22+01:00 Guillaume Damiand // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Guillaume Damiand @@ -60,15 +60,11 @@ typedef typename Items_::template Dart_wrapper Dart_wrapper; -#if defined(CGAL_CMAP_DART_DEPRECATED) && !defined(CGAL_NO_DEPRECATED_CODE) - typedef typename Dart_wrapper::Dart Dart; -#else typedef typename internal::template Get_dart_info::type Dart_info; typedef typename internal::template Get_darts_with_id::type Darts_with_id; typedef CGAL::Dart Dart; -#endif typedef std::allocator_traits Allocator_traits; typedef typename Allocator_traits::template rebind_alloc Dart_allocator; @@ -324,13 +320,11 @@ ah->set_dart(adart); } -#if !defined(CGAL_CMAP_DART_DEPRECATED) || defined(CGAL_NO_DEPRECATED_CODE) // Get the information associated with a given dart Dart_info& info(Dart_handle adart) { return adart->info(); } const Dart_info& info(Dart_const_handle adart) const { return adart->info(); } -#endif // Get the info of the given attribute template diff -Nru cgal-5.4.1/include/CGAL/Coercion_traits.h cgal-5.5/include/CGAL/Coercion_traits.h --- cgal-5.4.1/include/CGAL/Coercion_traits.h 2022-06-03 19:03:30.000000000 +0000 +++ cgal-5.5/include/CGAL/Coercion_traits.h 2022-07-13 19:04:12.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_foundations/include/CGAL/Coercion_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_foundations/include/CGAL/Coercion_traits.h $ // $Id: Coercion_traits.h a88a84b 2021-08-13T15:46:50+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Combination_enumerator.h cgal-5.5/include/CGAL/Combination_enumerator.h --- cgal-5.4.1/include/CGAL/Combination_enumerator.h 2022-06-03 19:04:13.000000000 +0000 +++ cgal-5.5/include/CGAL/Combination_enumerator.h 2022-07-13 19:05:01.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Generator/include/CGAL/Combination_enumerator.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Generator/include/CGAL/Combination_enumerator.h $ // $Id: Combination_enumerator.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Combinatorial_map/internal/Combinatorial_map_copy_functors.h cgal-5.5/include/CGAL/Combinatorial_map/internal/Combinatorial_map_copy_functors.h --- cgal-5.4.1/include/CGAL/Combinatorial_map/internal/Combinatorial_map_copy_functors.h 2022-06-03 19:04:06.000000000 +0000 +++ cgal-5.5/include/CGAL/Combinatorial_map/internal/Combinatorial_map_copy_functors.h 2022-07-13 19:04:54.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Combinatorial_map/include/CGAL/Combinatorial_map/internal/Combinatorial_map_copy_functors.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Combinatorial_map/include/CGAL/Combinatorial_map/internal/Combinatorial_map_copy_functors.h $ // $Id: Combinatorial_map_copy_functors.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Combinatorial_map/internal/Combinatorial_map_group_functors.h cgal-5.5/include/CGAL/Combinatorial_map/internal/Combinatorial_map_group_functors.h --- cgal-5.4.1/include/CGAL/Combinatorial_map/internal/Combinatorial_map_group_functors.h 2022-06-03 19:04:06.000000000 +0000 +++ cgal-5.5/include/CGAL/Combinatorial_map/internal/Combinatorial_map_group_functors.h 2022-07-13 19:04:54.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Combinatorial_map/include/CGAL/Combinatorial_map/internal/Combinatorial_map_group_functors.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Combinatorial_map/include/CGAL/Combinatorial_map/internal/Combinatorial_map_group_functors.h $ // $Id: Combinatorial_map_group_functors.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Combinatorial_map/internal/Combinatorial_map_internal_functors.h cgal-5.5/include/CGAL/Combinatorial_map/internal/Combinatorial_map_internal_functors.h --- cgal-5.4.1/include/CGAL/Combinatorial_map/internal/Combinatorial_map_internal_functors.h 2022-06-03 19:04:06.000000000 +0000 +++ cgal-5.5/include/CGAL/Combinatorial_map/internal/Combinatorial_map_internal_functors.h 2022-07-13 19:04:54.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Combinatorial_map/include/CGAL/Combinatorial_map/internal/Combinatorial_map_internal_functors.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Combinatorial_map/include/CGAL/Combinatorial_map/internal/Combinatorial_map_internal_functors.h $ // $Id: Combinatorial_map_internal_functors.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Combinatorial_map/internal/Combinatorial_map_sewable.h cgal-5.5/include/CGAL/Combinatorial_map/internal/Combinatorial_map_sewable.h --- cgal-5.4.1/include/CGAL/Combinatorial_map/internal/Combinatorial_map_sewable.h 2022-06-03 19:04:06.000000000 +0000 +++ cgal-5.5/include/CGAL/Combinatorial_map/internal/Combinatorial_map_sewable.h 2022-07-13 19:04:54.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Combinatorial_map/include/CGAL/Combinatorial_map/internal/Combinatorial_map_sewable.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Combinatorial_map/include/CGAL/Combinatorial_map/internal/Combinatorial_map_sewable.h $ // $Id: Combinatorial_map_sewable.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Combinatorial_map/internal/Combinatorial_map_utility.h cgal-5.5/include/CGAL/Combinatorial_map/internal/Combinatorial_map_utility.h --- cgal-5.4.1/include/CGAL/Combinatorial_map/internal/Combinatorial_map_utility.h 2022-06-03 19:04:06.000000000 +0000 +++ cgal-5.5/include/CGAL/Combinatorial_map/internal/Combinatorial_map_utility.h 2022-07-13 19:04:54.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Combinatorial_map/include/CGAL/Combinatorial_map/internal/Combinatorial_map_utility.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Combinatorial_map/include/CGAL/Combinatorial_map/internal/Combinatorial_map_utility.h $ // $Id: Combinatorial_map_utility.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Combinatorial_map_basic_operations.h cgal-5.5/include/CGAL/Combinatorial_map_basic_operations.h --- cgal-5.4.1/include/CGAL/Combinatorial_map_basic_operations.h 2022-06-03 19:04:06.000000000 +0000 +++ cgal-5.5/include/CGAL/Combinatorial_map_basic_operations.h 2022-07-13 19:04:54.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Combinatorial_map/include/CGAL/Combinatorial_map_basic_operations.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Combinatorial_map/include/CGAL/Combinatorial_map_basic_operations.h $ // $Id: Combinatorial_map_basic_operations.h 3fb644e 2020-04-10T17:40:30+02:00 Guillaume Damiand // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Combinatorial_map_constructors.h cgal-5.5/include/CGAL/Combinatorial_map_constructors.h --- cgal-5.4.1/include/CGAL/Combinatorial_map_constructors.h 2022-06-03 19:04:06.000000000 +0000 +++ cgal-5.5/include/CGAL/Combinatorial_map_constructors.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,135 +0,0 @@ -// Copyright (c) 2010-2011 CNRS and LIRIS' Establishments (France). -// All rights reserved. -// -// This file is part of CGAL (www.cgal.org) -// -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Combinatorial_map/include/CGAL/Combinatorial_map_constructors.h $ -// $Id: Combinatorial_map_constructors.h 461156c 2020-07-17T18:06:47+02:00 Mael Rouxel-Labbé -// SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial -// -// Author(s) : Guillaume Damiand -// -#ifndef CGAL_COMBINATORIAL_MAP_CONSTRUCTORS_H -#define CGAL_COMBINATORIAL_MAP_CONSTRUCTORS_H 1 - -#include - -#ifndef CGAL_NO_DEPRECATED_CODE - -namespace CGAL { - - /** @file Combinatorial_map_constructors.h - * Basic creation operations for a combinatorial map. - * Create edge, triangle, quadrilateral, tetrahedron, hexahedron. - */ - - /** Create an edge. - * @param amap the used combinatorial map. - * @return a dart of the new edge. - */ - template < class Map > - CGAL_DEPRECATED typename Map::Dart_handle make_edge(Map& amap) - { return amap.make_edge(); } - - /** Create a combinatorial polygon of length alg - * (a cycle of alg darts beta1 links together). - * @param amap the used combinatorial map. - * @return a new dart. - */ - template < class Map > - CGAL_DEPRECATED typename Map::Dart_handle make_combinatorial_polygon(Map& amap, - unsigned int alg) - { return amap.make_combinatorial_polygon(alg); } - - /** Test if a face is a combinatorial polygon of length alg - * (a cycle of alg darts beta1 links together). - * @param amap the used combinatorial map. - * @param adart an intial dart - * @return true iff the face containing adart is a polygon of length alg. - */ - template < class Map > - CGAL_DEPRECATED bool is_face_combinatorial_polygon(const Map& amap, - typename Map::Dart_const_handle adart, - unsigned int alg) - { return amap.is_face_combinatorial_polygon(adart, alg); } - - /** Create a combinatorial tetrahedron from 4 triangles. - * @param amap the used combinatorial map. - * @param d1 a dart onto a first triangle. - * @param d2 a dart onto a second triangle. - * @param d3 a dart onto a third triangle. - * @param d4 a dart onto a fourth triangle. - * @return a new dart. - */ - template < class Map > - CGAL_DEPRECATED typename Map::Dart_handle - make_combinatorial_tetrahedron(Map& amap, - typename Map::Dart_handle d1, - typename Map::Dart_handle d2, - typename Map::Dart_handle d3, - typename Map::Dart_handle d4) - { return amap.make_combinatorial_tetrahedron(d1, d2, d3, d4); } - - /** Test if a volume is a combinatorial tetrahedron. - * @param amap the used combinatorial map. - * @param adart an intial dart - * @return true iff the volume containing adart is a combinatorial tetrahedron. - */ - template < class Map > - CGAL_DEPRECATED bool is_volume_combinatorial_tetrahedron(const Map& amap, - typename Map::Dart_const_handle d1) - { return amap.is_volume_combinatorial_tetrahedron(d1); } - - /** Create a new combinatorial tetrahedron. - * @param amap the used combinatorial map. - * @return a new dart. - */ - template < class Map > - CGAL_DEPRECATED typename Map::Dart_handle make_combinatorial_tetrahedron(Map& amap) - { return amap.make_combinatorial_tetrahedron(); } - - /** Create a combinatorial hexahedron from 6 quadrilaterals. - * @param amap the used combinatorial map. - * @param d1 a dart onto a first quadrilateral. - * @param d2 a dart onto a second quadrilateral. - * @param d3 a dart onto a third quadrilateral. - * @param d4 a dart onto a fourth quadrilateral. - * @param d5 a dart onto a fifth quadrilateral. - * @param d6 a dart onto a sixth quadrilateral. - * @return a dart of the new cuboidal_cell. - */ - template < class Map > - CGAL_DEPRECATED typename Map::Dart_handle - make_combinatorial_hexahedron(Map& amap, - typename Map::Dart_handle d1, - typename Map::Dart_handle d2, - typename Map::Dart_handle d3, - typename Map::Dart_handle d4, - typename Map::Dart_handle d5, - typename Map::Dart_handle d6) - { return amap.make_combinatorial_hexahedron(d1, d2, d3, d4, d5, d6); } - - /** Test if a volume is a combinatorial hexahedron. - * @param amap the used combinatorial map. - * @param adart an intial dart - * @return true iff the volume containing adart is a combinatorial hexahedron. - */ - template < class Map > - CGAL_DEPRECATED bool is_volume_combinatorial_hexahedron(const Map& amap, - typename Map::Dart_const_handle d1) - { return amap.is_volume_combinatorial_hexahedron(d1); } - - /** Create a new combinatorial hexahedron. - * @param amap the used combinatorial map. - * @return a new dart. - */ - template < class Map > - CGAL_DEPRECATED typename Map::Dart_handle make_combinatorial_hexahedron(Map& amap) - { return amap.make_combinatorial_hexahedron(); } - -} // namespace CGAL - -#endif // CGAL_NO_DEPRECATED_CODE - -#endif // CGAL_COMBINATORIAL_MAP_CONSTRUCTORS_H // -// EOF // diff -Nru cgal-5.4.1/include/CGAL/Combinatorial_map_functors.h cgal-5.5/include/CGAL/Combinatorial_map_functors.h --- cgal-5.4.1/include/CGAL/Combinatorial_map_functors.h 2022-06-03 19:04:06.000000000 +0000 +++ cgal-5.5/include/CGAL/Combinatorial_map_functors.h 2022-07-13 19:04:54.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Combinatorial_map/include/CGAL/Combinatorial_map_functors.h $ -// $Id: Combinatorial_map_functors.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Combinatorial_map/include/CGAL/Combinatorial_map_functors.h $ +// $Id: Combinatorial_map_functors.h d909084 2022-01-18T14:30:21+01:00 Guillaume Damiand // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Guillaume Damiand @@ -92,7 +92,7 @@ size_type mark=amap.get_new_mark(); bool res = true; CGAL::internal::Test_is_valid_attribute_functor:: - run(amap, adart, mark, &res); + template run(amap, adart, mark, &res); amap.negate_mark(mark); if ( !amap.is_whole_map_marked(mark) ) diff -Nru cgal-5.4.1/include/CGAL/Combinatorial_map_fwd.h cgal-5.5/include/CGAL/Combinatorial_map_fwd.h --- cgal-5.4.1/include/CGAL/Combinatorial_map_fwd.h 2022-06-03 19:04:06.000000000 +0000 +++ cgal-5.5/include/CGAL/Combinatorial_map_fwd.h 2022-07-13 19:04:54.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Combinatorial_map/include/CGAL/Combinatorial_map_fwd.h $ -// $Id: Combinatorial_map_fwd.h d6306be 2020-10-22T10:30:38+02:00 Guillaume Damiand +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Combinatorial_map/include/CGAL/Combinatorial_map_fwd.h $ +// $Id: Combinatorial_map_fwd.h 46f5325 2022-01-27T10:36:22+01:00 Guillaume Damiand // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Guillaume Damiand @@ -17,32 +17,19 @@ namespace CGAL { -#if defined(CGAL_CMAP_DART_DEPRECATED) && !defined(CGAL_NO_DEPRECATED_CODE) -template -struct Combinatorial_map_min_items; -#else struct Generic_map_min_items; -#endif template class Combinatorial_map_storage_1; template < unsigned int d_, class Refs_, -#if defined(CGAL_CMAP_DART_DEPRECATED) && !defined(CGAL_NO_DEPRECATED_CODE) - class Items_=Combinatorial_map_min_items, -#else class Items_=Generic_map_min_items, -#endif class Alloc_=CGAL_ALLOCATOR(int), class Storage_= Combinatorial_map_storage_1 > class Combinatorial_map_base; template < unsigned int d_, -#if defined(CGAL_CMAP_DART_DEPRECATED) && !defined(CGAL_NO_DEPRECATED_CODE) - class Items_=Combinatorial_map_min_items, -#else class Items_=Generic_map_min_items, -#endif class Alloc_=CGAL_ALLOCATOR(int), class Storage_= Combinatorial_map_storage_1 > class Combinatorial_map; diff -Nru cgal-5.4.1/include/CGAL/Combinatorial_map.h cgal-5.5/include/CGAL/Combinatorial_map.h --- cgal-5.4.1/include/CGAL/Combinatorial_map.h 2022-06-03 19:04:06.000000000 +0000 +++ cgal-5.5/include/CGAL/Combinatorial_map.h 2022-07-13 19:04:54.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Combinatorial_map/include/CGAL/Combinatorial_map.h $ -// $Id: Combinatorial_map.h f3db661 2022-03-09T14:13:31+00:00 Andreas Fabri +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Combinatorial_map/include/CGAL/Combinatorial_map.h $ +// $Id: Combinatorial_map.h 95b6bf3 2022-03-18T15:58:28+01:00 Laurent Rineau // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Guillaume Damiand @@ -13,6 +13,7 @@ #define CGAL_COMBINATORIAL_MAP_H 1 #include +#include #include @@ -27,12 +28,7 @@ #include #include #include - -#if defined(CGAL_CMAP_DART_DEPRECATED) && !defined(CGAL_NO_DEPRECATED_CODE) -#include -#else #include -#endif #include #include @@ -42,8 +38,9 @@ #include #include #include +#include +#include #include -#include #include #include @@ -184,11 +181,6 @@ */ Combinatorial_map_base() { -#if defined(CGAL_CMAP_DART_DEPRECATED) && !defined(CGAL_NO_DEPRECATED_CODE) - CGAL_static_assertion_msg(Dart::dimension==dimension, - "Dimension of dart different from dimension of map"); -#endif - CGAL_static_assertion_msg(Helper::nb_attribs<=dimension+1, "Too many attributes in the tuple Attributes_enabled"); this->init_storage(); @@ -230,36 +222,39 @@ typename Converters, typename DartInfoConverter, typename PointConverter> void generic_copy(CMap2& amap, - boost::unordered_map* origin_to_copy, - boost::unordered_map* copy_to_origin, + std::unordered_map* origin_to_copy, + std::unordered_map* copy_to_origin, const Converters& converters, const DartInfoConverter& dartinfoconverter, const PointConverter& pointconverter, + bool copy_marks=true, bool copy_perforated_darts=false, size_type mark_perforated=INVALID_MARK) { - this->clear(); - - /*this->mnb_used_marks = amap.mnb_used_marks; - this->mmask_marks = amap.mmask_marks; - this->automatic_attributes_management = - amap.automatic_attributes_management; - - for (size_type i = 0; i < NB_MARKS; ++i) + if(copy_marks) { - this->mfree_marks_stack[i] = amap.mfree_marks_stack[i]; - this->mused_marks_stack[i] = amap.mused_marks_stack[i]; - this->mindex_marks[i] = amap.mindex_marks[i]; - this->mnb_marked_darts[i] = amap.mnb_marked_darts[i]; - this->mnb_times_reserved_marks[i] = amap.mnb_times_reserved_marks[i]; + // Reserve all marks of amap not yet reserved + for (size_type i=0; icopies). // (here we cannot use CGAL::Unique_hash_map because it does not provide // iterators... - boost::unordered_map local_dartmap; + std::unordered_map local_dartmap; if (origin_to_copy==NULL) // Use local_dartmap if user does not provides its own unordered_map { origin_to_copy=&local_dartmap; } @@ -270,11 +265,21 @@ if (copy_perforated_darts || !amap.is_perforated(it)) { new_dart=mdarts.emplace(); - init_dart(new_dart); // , amap.get_marks(it)); + init_dart(new_dart); if (mark_perforated!=INVALID_MARK && amap.is_perforated(it)) { mark(new_dart, mark_perforated); } + if(copy_marks) + { + // Copy marks of amap + for(size_type i=0; i::iterator + typename std::unordered_map::iterator dartmap_iter, dartmap_iter_end=origin_to_copy->end(); for (dartmap_iter=origin_to_copy->begin(); dartmap_iter!=dartmap_iter_end; ++dartmap_iter) @@ -315,27 +320,28 @@ converters, pointconverter); } - CGAL_assertion (is_valid()); + CGAL_expensive_assertion(is_valid()); } // (1a) copy(amap, converters, dartinfoconverter, pointconverter) template void copy(CMap2& amap, - boost::unordered_map + std::unordered_map * origin_to_copy, - boost::unordered_map + std::unordered_map * copy_to_origin, const Converters& converters, const DartInfoConverter& dartinfoconverter, const PointConverter& pointconverter, + bool copy_marks=true, bool copy_perforated_darts=false, size_type mark_perforated=INVALID_MARK) { generic_copy (amap, origin_to_copy, copy_to_origin, - converters, dartinfoconverter, pointconverter, + converters, dartinfoconverter, pointconverter, copy_marks, copy_perforated_darts, mark_perforated); } @@ -343,127 +349,138 @@ template void copy_from_const(const CMap2& amap, - boost::unordered_map + std::unordered_map * origin_to_copy, - boost::unordered_map + std::unordered_map * copy_to_origin, const Converters& converters, const DartInfoConverter& dartinfoconverter, const PointConverter& pointconverter, + bool copy_marks=true, bool copy_perforated_darts=false, size_type mark_perforated=INVALID_MARK) { generic_copy (const_cast(amap), origin_to_copy, copy_to_origin, - converters, dartinfoconverter, pointconverter, + converters, dartinfoconverter, pointconverter, copy_marks, copy_perforated_darts, mark_perforated); } // (2a) copy(amap, converters, dartinfoconverter) template void copy(CMap2& amap, - boost::unordered_map + std::unordered_map * origin_to_copy, - boost::unordered_map + std::unordered_map * copy_to_origin, const Converters& converters, const DartInfoConverter& dartinfoconverter, + bool copy_marks=true, bool copy_perforated_darts=false, size_type mark_perforated=INVALID_MARK) { Default_converter_cmap_0attributes_with_point pointconverter; copy(amap, origin_to_copy, copy_to_origin, - converters, dartinfoconverter, pointconverter, + converters, dartinfoconverter, pointconverter, copy_marks, copy_perforated_darts, mark_perforated); } // (2b) copy_from_const(const amap, converters, dartinfoconverter) template void copy_from_const(const CMap2& amap, - boost::unordered_map + std::unordered_map * origin_to_copy, - boost::unordered_map + std::unordered_map * copy_to_origin, const Converters& converters, const DartInfoConverter& dartinfoconverter, + bool copy_marks=true, bool copy_perforated_darts=false, size_type mark_perforated=INVALID_MARK) { Default_converter_cmap_0attributes_with_point pointconverter; copy_from_const(amap, origin_to_copy, copy_to_origin, - converters, dartinfoconverter, pointconverter, + converters, dartinfoconverter, pointconverter, copy_marks, copy_perforated_darts, mark_perforated); } // (3a) copy(amap, converters) template void copy(CMap2& amap, - boost::unordered_map + std::unordered_map * origin_to_copy, - boost::unordered_map + std::unordered_map * copy_to_origin, const Converters& converters, + bool copy_marks=true, bool copy_perforated_darts=false, size_type mark_perforated=INVALID_MARK) { Default_converter_dart_info dartinfoconverter; copy(amap, origin_to_copy, copy_to_origin, converters, dartinfoconverter, - copy_perforated_darts, mark_perforated); + copy_marks, copy_perforated_darts, mark_perforated); } // (3b) copy_from_const(const amap, converters) template void copy_from_const(const CMap2& amap, - boost::unordered_map + std::unordered_map * origin_to_copy, - boost::unordered_map + std::unordered_map * copy_to_origin, const Converters& converters, + bool copy_marks=true, bool copy_perforated_darts=false, size_type mark_perforated=INVALID_MARK) { Default_converter_dart_info dartinfoconverter; copy_from_const(amap, origin_to_copy, copy_to_origin, converters, dartinfoconverter, - copy_perforated_darts, mark_perforated); + copy_marks, copy_perforated_darts, mark_perforated); } // (4a) copy(amap) template void copy(CMap2& amap, - boost::unordered_map + std::unordered_map * origin_to_copy=nullptr, - boost::unordered_map + std::unordered_map * copy_to_origin=nullptr, + bool copy_marks=true, bool copy_perforated_darts=false, size_type mark_perforated=INVALID_MARK) { std::tuple<> converters; - copy(amap, origin_to_copy, copy_to_origin, converters, + copy(amap, origin_to_copy, copy_to_origin, converters, copy_marks, copy_perforated_darts, mark_perforated); } // (4b) copy_from_const(const amap) template void copy_from_const(const CMap2& amap, - boost::unordered_map + std::unordered_map * origin_to_copy=nullptr, - boost::unordered_map + std::unordered_map * copy_to_origin=nullptr, + bool copy_marks=true, bool copy_perforated_darts=false, size_type mark_perforated=INVALID_MARK) { std::tuple<> converters; - copy_from_const(amap, origin_to_copy, copy_to_origin, converters, + copy_from_const(amap, origin_to_copy, copy_to_origin, converters, copy_marks, copy_perforated_darts, mark_perforated); } // Copy constructor from a map having exactly the same type. - Combinatorial_map_base (const Self & amap): Combinatorial_map_base() + Combinatorial_map_base(const Self & amap): Combinatorial_map_base() { copy_from_const(amap); } + // Move constructor + Combinatorial_map_base(Self && amap): Combinatorial_map_base() + { this->swap(amap); } + // "Copy constructor" from a map having different type. template @@ -554,10 +571,10 @@ /** Import the given hds which should be a model of an halfedge graph. */ template void import_from_halfedge_graph(const HEG& heg, - boost::unordered_map + std::unordered_map ::halfedge_descriptor, Dart_handle>* origin_to_copy=NULL, - boost::unordered_map + std::unordered_map ::halfedge_descriptor>* copy_to_origin=NULL, @@ -567,7 +584,7 @@ // Create an mapping between darts of the two maps (originals->copies). // (here we cannot use CGAL::Unique_hash_map because it does not provide // iterators... - boost::unordered_map + std::unordered_map ::halfedge_descriptor, Dart_handle> local_dartmap; if (origin_to_copy==NULL) // Used local_dartmap if user does not provides its own unordered_map @@ -590,7 +607,7 @@ } } - typename boost::unordered_map + typename std::unordered_map ::halfedge_descriptor, Dart_handle>::iterator dartmap_iter, dartmap_iter_end=origin_to_copy->end(); for (dartmap_iter=origin_to_copy->begin(); dartmap_iter!=dartmap_iter_end; @@ -610,7 +627,7 @@ } } - CGAL_assertion (is_valid()); + CGAL_expensive_assertion(is_valid()); } /** Clear the combinatorial map. Remove all darts and all attributes. @@ -2626,7 +2643,7 @@ if ( marks[acells[i]]==INVALID_MARK ) { marks[acells[i]] = get_new_mark(); - assert(is_whole_map_unmarked(marks[acells[i]])); + CGAL_assertion(is_whole_map_unmarked(marks[acells[i]])); } } @@ -3423,8 +3440,6 @@ } } - // CGAL_postcondition(amap2.is_valid()); - if ( res==amap.null_handle ) res = amap.darts().begin(); return res; } @@ -3457,10 +3472,6 @@ bool testAttributes=true, bool testPoint=true) const { -#if defined(CGAL_CMAP_DART_DEPRECATED) && !defined(CGAL_NO_DEPRECATED_CODE) - CGAL_USE(testDartInfo); -#endif - typedef Combinatorial_map_base Map2; bool match = true; @@ -3509,11 +3520,9 @@ map2.mark(other, m2); // We first test info of darts -#if !defined(CGAL_CMAP_DART_DEPRECATED) || defined(CGAL_NO_DEPRECATED_CODE) if (match && testDartInfo) match=internal::Test_is_same_dart_info_functor:: run(*this, map2, current, other); -#endif // We need to test in both direction because // Foreach_enabled_attributes only test non void attributes @@ -3635,9 +3644,9 @@ } } - assert(is_whole_map_unmarked(m1)); - assert(is_whole_map_unmarked(markpush)); - assert(map2.is_whole_map_unmarked(m2)); + CGAL_postcondition(is_whole_map_unmarked(m1)); + CGAL_postcondition(is_whole_map_unmarked(markpush)); + CGAL_postcondition(map2.is_whole_map_unmarked(m2)); free_mark(m1); free_mark(markpush); map2.free_mark(m2); @@ -4659,7 +4668,7 @@ } // Make copies of the new facet for dimension >=4 - assert(!is_free(first, 2)); + CGAL_assertion(!is_free(first, 2)); for ( unsigned int dim=4; dim<=dimension; ++dim ) { if ( !is_free(beta(first, 2), dim) ) @@ -4683,7 +4692,7 @@ basic_link_beta_for_involution<2>(beta(it, 3, 2, dim), dd); } - assert(!is_free(it, 2)); + CGAL_assertion(!is_free(it, 2)); this->template basic_link_beta_for_involution<2>(beta(it, 2, dim), d); if ( prec!=null_handle ) @@ -4789,6 +4798,9 @@ Combinatorial_map(const Self & amap) : Base(amap) {} + Combinatorial_map(Self && amap) : Base(amap) + {} + template Combinatorial_map(const Combinatorial_map_base& diff -Nru cgal-5.4.1/include/CGAL/Combinatorial_map_insertions.h cgal-5.5/include/CGAL/Combinatorial_map_insertions.h --- cgal-5.4.1/include/CGAL/Combinatorial_map_insertions.h 2022-06-03 19:04:06.000000000 +0000 +++ cgal-5.5/include/CGAL/Combinatorial_map_insertions.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,146 +0,0 @@ -// Copyright (c) 2010-2011 CNRS and LIRIS' Establishments (France). -// All rights reserved. -// -// This file is part of CGAL (www.cgal.org) -// -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Combinatorial_map/include/CGAL/Combinatorial_map_insertions.h $ -// $Id: Combinatorial_map_insertions.h 48fedba 2019-12-11T16:57:34+01:00 Andreas Fabri -// SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial -// -// Author(s) : Guillaume Damiand -// -#ifndef CGAL_COMBINATORIAL_MAP_INSERTIONS_H -#define CGAL_COMBINATORIAL_MAP_INSERTIONS_H - -#include - -namespace CGAL -{ -/** @file Combinatorial_map_insertions.h - * Insertion operations on combinatorial map. - */ - -#ifndef CGAL_NO_DEPRECATED_CODE - -/** Insert a vertex in a given edge. - * @param amap the used combinatorial map. - * @param adart a dart of the edge (!=nullptr && !=null_dart_handle). - * @param update_attributes a boolean to update the enabled attributes - * (deprecated, now we use are_attributes_automatically_managed()) - * @return a dart of the new vertex. - */ -template -CGAL_DEPRECATED typename CMap::Dart_handle -insert_cell_0_in_cell_1( CMap& amap, typename CMap::Dart_handle adart, - typename CMap::template - Attribute_handle<0>::type ah=CMap::null_handle, - bool update_attributes=true ) -{ - return amap.insert_cell_0_in_cell_1(adart, ah, update_attributes); -} - -/** Insert a vertex in the given 2-cell which is split in triangles, - * once for each inital edge of the facet. - * @param amap the used combinatorial map. - * @param adart a dart of the facet to triangulate. - * @param update_attributes a boolean to update the enabled attributes - * (deprecated, now we use are_attributes_automatically_managed()) - * @return A dart incident to the new vertex. - */ -template < class CMap > -CGAL_DEPRECATED typename CMap::Dart_handle -insert_cell_0_in_cell_2( CMap& amap, typename CMap::Dart_handle adart, - typename CMap::template - Attribute_handle<0>::type ah=CMap::null_handle, - bool update_attributes=true ) -{ - return amap.insert_cell_0_in_cell_2(adart, ah, update_attributes); -} -/** Insert a dangling edge in a 2-cell between given by a dart. - * @param amap the used combinatorial map. - * @param adart1 a first dart of the facet (!=nullptr && !=null_dart_handle). - * @param update_attributes a boolean to update the enabled attributes - * (deprecated, now we use are_attributes_automatically_managed()) - * @return a dart of the new edge, not incident to the vertex of adart1. - */ -template -CGAL_DEPRECATED typename CMap::Dart_handle -insert_dangling_cell_1_in_cell_2( CMap& amap, - typename CMap::Dart_handle adart1, - typename CMap::template - Attribute_handle<0>::type ah=CMap::null_handle, - bool update_attributes=true ) -{ - return amap.insert_dangling_cell_1_in_cell_2(adart1, - ah, update_attributes); -} - -/** Test if an edge can be inserted onto a 2-cell between two given darts. - * @param amap the used combinatorial map. - * @param adart1 a first dart. - * @param adart2 a second dart. - * @return true iff an edge can be inserted between adart1 and adart2. - */ -template < class CMap > -CGAL_DEPRECATED bool is_insertable_cell_1_in_cell_2 -(const CMap& amap, typename CMap::Dart_const_handle adart1, - typename CMap::Dart_const_handle adart2) -{ - return amap.is_insertable_cell_1_in_cell_2(adart1, adart2); -} - -/** Insert an edge in a 2-cell between two given darts. - * @param amap the used combinatorial map. - * @param adart1 a first dart of the facet (!=nullptr && !=null_dart_handle). - * @param adart2 a second dart of the facet. If nullptr insert a dangling edge. - * @param update_attributes a boolean to update the enabled attributes - * (deprecated, now we use are_attributes_automatically_managed()) - * @return a dart of the new edge, and not incident to the - * same vertex than adart1. - */ -template -CGAL_DEPRECATED typename CMap::Dart_handle -insert_cell_1_in_cell_2(CMap& amap, - typename CMap::Dart_handle adart1, - typename CMap::Dart_handle adart2, - bool update_attributes=true) -{ - return amap.insert_cell_1_in_cell_2(adart1, adart2, - update_attributes); -} - -/** Test if a 2-cell can be inserted onto a given 3-cell along - * a path of edges. - * @param amap the used combinatorial map. - * @param afirst iterator on the beginning of the path. - * @param alast iterator on the end of the path. - * @return true iff a 2-cell can be inserted along the path. - */ -template -CGAL_DEPRECATED bool is_insertable_cell_2_in_cell_3 -(const CMap& amap, InputIterator afirst, InputIterator alast) -{ - return amap.is_insertable_cell_2_in_cell_3(afirst, alast); -} - -/** Insert a 2-cell in a given 3-cell along a path of darts. - * @param amap the used combinatorial map. - * @param afirst iterator on the beginning of the path. - * @param alast iterator on the end of the path. - * @param update_attributes a boolean to update the enabled attributes - * (deprecated, now we use are_attributes_automatically_managed()) - * @return a dart of the new 2-cell. - */ -template -CGAL_DEPRECATED typename CMap::Dart_handle -insert_cell_2_in_cell_3(CMap& amap, InputIterator afirst, InputIterator alast, - bool update_attributes=true) -{ - return amap.insert_cell_2_in_cell_3(afirst, alast, update_attributes); -} - -#endif // CGAL_NO_DEPRECATED_CODE - -} // namespace CGAL - -#endif // CGAL_COMBINATORIAL_MAP_INSERTIONS_H diff -Nru cgal-5.4.1/include/CGAL/Combinatorial_map_iterators_base.h cgal-5.5/include/CGAL/Combinatorial_map_iterators_base.h --- cgal-5.4.1/include/CGAL/Combinatorial_map_iterators_base.h 2022-06-03 19:04:06.000000000 +0000 +++ cgal-5.5/include/CGAL/Combinatorial_map_iterators_base.h 2022-07-13 19:04:54.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Combinatorial_map/include/CGAL/Combinatorial_map_iterators_base.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Combinatorial_map/include/CGAL/Combinatorial_map_iterators_base.h $ // $Id: Combinatorial_map_iterators_base.h 5ecd852 2021-04-26T21:37:02+01:00 Giles Bathgate // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Combinatorial_map_min_items.h cgal-5.5/include/CGAL/Combinatorial_map_min_items.h --- cgal-5.4.1/include/CGAL/Combinatorial_map_min_items.h 2022-06-03 19:04:06.000000000 +0000 +++ cgal-5.5/include/CGAL/Combinatorial_map_min_items.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,46 +0,0 @@ -// Copyright (c) 2010-2011 CNRS and LIRIS' Establishments (France). -// All rights reserved. -// -// This file is part of CGAL (www.cgal.org) -// -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Combinatorial_map/include/CGAL/Combinatorial_map_min_items.h $ -// $Id: Combinatorial_map_min_items.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot -// SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial -// -// Author(s) : Guillaume Damiand -// -#ifndef CGAL_COMBINATORIAL_MAP_MIN_ITEMS_H -#define CGAL_COMBINATORIAL_MAP_MIN_ITEMS_H 1 - -#if defined(CGAL_CMAP_DART_DEPRECATED) && !defined(CGAL_NO_DEPRECATED_CODE) -#include -#include - -namespace CGAL { - - /** @file Combinatorial_map_min_items.h - * Definition of min item class for dD combinatorial map. - */ - - /** Minimal items for dD combinatorial map. - * Combinatorial_map_min_items defines what is the minimal item - * class for a d-map It provides definitions for darts without attribute. - */ - template - struct CGAL_DEPRECATED Combinatorial_map_min_items - { - /// Dart_wrapper defines the type of darts used, and enabled attributes. - template < class Refs > - struct Dart_wrapper - { - typedef CGAL::Dart< d, Refs > Dart; - typedef std::tuple<> Attributes; - }; - }; - -} // namespace CGAL - -#endif // defined(CGAL_CMAP_DART_DEPRECATED) && !defined(CGAL_NO_DEPRECATED_CODE) - -#endif // CGAL_COMBINATORIAL_MAP_MIN_ITEMS_H // -// EOF // diff -Nru cgal-5.4.1/include/CGAL/Combinatorial_map_operations.h cgal-5.5/include/CGAL/Combinatorial_map_operations.h --- cgal-5.4.1/include/CGAL/Combinatorial_map_operations.h 2022-06-03 19:04:06.000000000 +0000 +++ cgal-5.5/include/CGAL/Combinatorial_map_operations.h 2022-07-13 19:04:54.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Combinatorial_map/include/CGAL/Combinatorial_map_operations.h $ -// $Id: Combinatorial_map_operations.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Combinatorial_map/include/CGAL/Combinatorial_map_operations.h $ +// $Id: Combinatorial_map_operations.h 46f5325 2022-01-27T10:36:22+01:00 Guillaume Damiand // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Guillaume Damiand @@ -62,18 +62,6 @@ static bool run(const CMap&, typename CMap::Dart_const_handle) { return true; } }; - /** Test if an i-cell can be removed. - * An i-cell can be removed if i==CMap::dimension or i==CMap::dimension-1, - * or if there are at most two (i+1)-cell incident to it. - * @param adart a dart of the i-cell. - * @return true iff the i-cell can be removed. - */ -#ifndef CGAL_NO_DEPRECATED_CODE - template < class CMap, unsigned int i > - CGAL_DEPRECATED bool is_removable(const CMap& amap, - typename CMap::Dart_const_handle adart) - { return CGAL::Is_removable_functor::run(amap,adart); } -#endif // CGAL_NO_DEPRECATED_CODE /** Remove an i-cell, 0 - CGAL_DEPRECATED size_t remove_cell(CMap& amap, typename CMap::Dart_handle adart, - bool update_attributes = true) - { - return CGAL::Remove_cell_functor:: - run(amap,adart,update_attributes); - } -#endif // CGAL_NO_DEPRECATED_CODE - /** Test if an i-cell can be contracted. * An i-cell can be contracted if i==1 * or if there are at most two (i-1)-cell incident to it. @@ -508,17 +480,6 @@ static bool run(const CMap&, typename CMap::Dart_const_handle) { return true; } }; - /** Test if an i-cell can be contracted. - * An i-cell can be contracted if i==1 - * or if there are at most two (i-1)-cell incident to it. - * @param adart a dart of the i-cell. - * @return true iff the i-cell can be contracted. - */ -#ifndef CGAL_NO_DEPRECATED_CODE - template < class CMap, unsigned int i > - CGAL_DEPRECATED bool is_contractible(const CMap& amap, typename CMap::Dart_const_handle adart) - { return CGAL::Is_contractible_functor::run(amap,adart); } -#endif // CGAL_NO_DEPRECATED_CODE /** Contract an i-cell, 1 - CGAL_DEPRECATED size_t contract_cell(CMap& amap, typename CMap::Dart_handle adart, - bool update_attributes) - { return CGAL::Contract_cell_functor::run(amap,adart, update_attributes); } -#endif // CGAL_NO_DEPRECATED_CODE - } // namespace CGAL #endif // CGAL_COMBINATORIAL_MAP_OPERATIONS_H // diff -Nru cgal-5.4.1/include/CGAL/Combinatorial_map_save_load.h cgal-5.5/include/CGAL/Combinatorial_map_save_load.h --- cgal-5.4.1/include/CGAL/Combinatorial_map_save_load.h 2022-06-03 19:04:06.000000000 +0000 +++ cgal-5.5/include/CGAL/Combinatorial_map_save_load.h 2022-07-13 19:04:54.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Combinatorial_map/include/CGAL/Combinatorial_map_save_load.h $ -// $Id: Combinatorial_map_save_load.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Combinatorial_map/include/CGAL/Combinatorial_map_save_load.h $ +// $Id: Combinatorial_map_save_load.h 5c57f83 2021-10-14T17:19:33+02:00 Guillaume Damiand // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Guillaume Damiand @@ -23,7 +23,7 @@ #include #include -#include +#include #include #include #include @@ -161,15 +161,9 @@ struct My_functor_cmap_save_one_attrib { static void run(CMap& amap, boost::property_tree::ptree& ptree, - std::map& myDarts) + std::unordered_map& myDarts) { - // to check all i-cells of the map - typename CMap::template Attribute_range::type::const_iterator - it_attrib, itend_attrib; - it_attrib=amap.template attributes().begin(); - itend_attrib=amap.template attributes().end(); - // add dimension & type boost::property_tree::ptree& ndim = ptree.add("dimension", ""); ndim.put(".index", i); @@ -177,16 +171,20 @@ ndim.add("type_point", typeid(typename CMap::Point).name()); // for every attribute of the dimension - for (; it_attrib!=itend_attrib; ++it_attrib) + for (auto it=amap.template one_dart_per_cell().begin(), + itend=amap.template one_dart_per_cell().end(); it!=itend; ++it) { - // make composant, dart and property node - boost::property_tree::ptree & nattr = ndim.add("a", ""); - /* boost::property_tree::ptree & ndarts = */ - nattr.add("d", myDarts[it_attrib->dart()]); - - // update property node to add a value node (from basic or custom type - write_cmap_attribute_node(nattr, it_attrib->info()); - write_cmap_attribute_node(nattr, it_attrib->point()); + if (amap.template attribute(it)!=nullptr) + { + // make composant, dart and property node + boost::property_tree::ptree & nattr = ndim.add("a", ""); + /* boost::property_tree::ptree & ndarts = */ + nattr.add("d", myDarts[it]); + + // update property node to add a value node (from basic or custom type + write_cmap_attribute_node(nattr, amap.template info(it)); + write_cmap_attribute_node(nattr, amap.point(it)); + } } } }; @@ -196,15 +194,9 @@ struct My_functor_cmap_save_one_attrib { static void run(CMap& amap, boost::property_tree::ptree& ptree, - std::map& myDarts) + std::unordered_map& myDarts) { - // to check all i-cells of the map - typename CMap::template Attribute_range::type::const_iterator - it_attrib, itend_attrib; - it_attrib=amap.template attributes().begin(); - itend_attrib=amap.template attributes().end(); - // add dimension & type boost::property_tree::ptree& ndim = ptree.add("dimension", ""); ndim.put(".index", i); @@ -212,15 +204,19 @@ ndim.add("type_point", typeid(typename CMap::Point).name()); // for every attribute of the dimension - for (; it_attrib!=itend_attrib; ++it_attrib) + for (auto it=amap.template one_dart_per_cell().begin(), + itend=amap.template one_dart_per_cell().end(); it!=itend; ++it) { - // make composant, dart and property node - boost::property_tree::ptree & nattr = ndim.add("a", ""); - /* boost::property_tree::ptree & ndarts = */ - nattr.add("d", myDarts[it_attrib->dart()]); + if (amap.template attribute(it)!=nullptr) + { + // make composant, dart and property node + boost::property_tree::ptree & nattr = ndim.add("a", ""); + /* boost::property_tree::ptree & ndarts = */ + nattr.add("d", myDarts[it]); - // update property node to add a value node (from basic or custom type - write_cmap_attribute_node(nattr, it_attrib->point()); + // update property node to add a value node (from basic or custom type + write_cmap_attribute_node(nattr, amap.point(it)); + } } } }; @@ -230,15 +226,9 @@ struct My_functor_cmap_save_one_attrib { static void run(CMap& amap, boost::property_tree::ptree& ptree, - std::map& myDarts) + std::unordered_map& myDarts) { - // to check all i-cells of the map - typename CMap::template Attribute_range::type::const_iterator - it_attrib, itend_attrib; - it_attrib=amap.template attributes().begin(); - itend_attrib=amap.template attributes().end(); - // add dimension & type boost::property_tree::ptree& ndim = ptree.add("dimension", ""); ndim.put(".index", i); @@ -247,15 +237,19 @@ ndim.add("type_point", "void"); // for every attribute of the dimension - for (; it_attrib!=itend_attrib; ++it_attrib) + for (auto it=amap.template one_dart_per_cell().begin(), + itend=amap.template one_dart_per_cell().end(); it!=itend; ++it) { - // make composant, dart and property node - boost::property_tree::ptree & nattr = ndim.add("a", ""); - /* boost::property_tree::ptree & ndarts = */ - nattr.add("d", myDarts[it_attrib->dart()]); + if (amap.template attribute(it)!=nullptr) + { + // make composant, dart and property node + boost::property_tree::ptree & nattr = ndim.add("a", ""); + /* boost::property_tree::ptree & ndarts = */ + nattr.add("d", myDarts[it]); - // update property node to add a value node (from basic or custom type - write_cmap_attribute_node(nattr, it_attrib->info()); + // update property node to add a value node (from basic or custom type + write_cmap_attribute_node(nattr, amap.template info(it)); + } } } }; @@ -265,15 +259,9 @@ struct My_functor_cmap_save_one_attrib { static void run(CMap& amap, boost::property_tree::ptree& ptree, - std::map& myDarts) + std::unordered_map& myDarts) { - // to check all i-cells of the map - typename CMap::template Attribute_range::type::const_iterator - it_attrib, itend_attrib; - it_attrib=amap.template attributes().begin(); - itend_attrib=amap.template attributes().end(); - // add dimension & type boost::property_tree::ptree& ndim = ptree.add("dimension", ""); ndim.put(".index", i); @@ -281,12 +269,16 @@ ndim.add("type_point", "void"); // for every attribute of the dimension - for (; it_attrib!=itend_attrib; ++it_attrib) + for (auto it=amap.template one_dart_per_cell().begin(), + itend=amap.template one_dart_per_cell().end(); it!=itend; ++it) { - // make composant, dart and property node - boost::property_tree::ptree & nattr = ndim.add("a", ""); - /* boost::property_tree::ptree & ndarts = */ - nattr.add("d", myDarts[it_attrib->dart()]); + if (amap.template attribute(it)!=nullptr) + { + // make composant, dart and property node + boost::property_tree::ptree & nattr = ndim.add("a", ""); + /* boost::property_tree::ptree & ndarts = */ + nattr.add("d", myDarts[it]); + } } } }; @@ -296,8 +288,8 @@ { template static void run(CMap& amap, boost::property_tree::ptree& ptree, - std::map& myDarts) + std::unordered_map& myDarts) { My_functor_cmap_save_one_attrib::run(amap, ptree, myDarts); } @@ -305,12 +297,12 @@ template < class CMap > boost::property_tree::ptree cmap_save_darts - (CMap& amap, std::map& myDarts) + (CMap& amap, std::unordered_map& myDarts) { CGAL_assertion( myDarts.empty() ); - // First we numbered each dart by using the std::map. + // First we numbered each dart by using the unordered_map. typename CMap::Dart_range::const_iterator it(amap.darts().begin()); for(typename CMap::size_type num=1; num<=amap.number_of_darts(); ++num, ++it) @@ -349,8 +341,8 @@ template < class CMap > boost::property_tree::ptree cmap_save_attributes - (const CMap& amap, std::map& myDarts) + (const CMap& amap, std::unordered_map& myDarts) { using boost::property_tree::ptree; ptree pt; @@ -383,7 +375,7 @@ f(tree); // map dart => number - std::map myDarts; + std::unordered_map myDarts; // Save darts ptree pt_darts=cmap_save_darts(amap, myDarts); diff -Nru cgal-5.4.1/include/CGAL/Combinatorial_map_storages.h cgal-5.5/include/CGAL/Combinatorial_map_storages.h --- cgal-5.4.1/include/CGAL/Combinatorial_map_storages.h 2022-06-03 19:04:06.000000000 +0000 +++ cgal-5.5/include/CGAL/Combinatorial_map_storages.h 2022-07-13 19:04:54.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Combinatorial_map/include/CGAL/Combinatorial_map_storages.h $ -// $Id: Combinatorial_map_storages.h e6c767d 2021-05-12T15:45:07+02:00 Maxime Gimeno +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Combinatorial_map/include/CGAL/Combinatorial_map_storages.h $ +// $Id: Combinatorial_map_storages.h 46f5325 2022-01-27T10:36:22+01:00 Guillaume Damiand // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Guillaume Damiand @@ -49,15 +49,11 @@ typedef typename Items_::template Dart_wrapper Dart_wrapper; -#if defined(CGAL_CMAP_DART_DEPRECATED) && !defined(CGAL_NO_DEPRECATED_CODE) - typedef typename Dart_wrapper::Dart Dart; -#else typedef typename internal::template Get_dart_info::type Dart_info; typedef typename internal::template Get_darts_with_id::type Darts_with_id; typedef CGAL::Dart Dart; -#endif typedef std::allocator_traits Allocator_traits; typedef typename Allocator_traits::template rebind_alloc Dart_allocator; @@ -304,13 +300,11 @@ ah->set_dart(adart); } -#if !defined(CGAL_CMAP_DART_DEPRECATED) || defined(CGAL_NO_DEPRECATED_CODE) // Get the information associated with a given dart Dart_info& info(Dart_handle adart) { return adart->info(); } const Dart_info& info(Dart_const_handle adart) const { return adart->info(); } -#endif // Get the info of the given attribute template diff -Nru cgal-5.4.1/include/CGAL/Compact_container.h cgal-5.5/include/CGAL/Compact_container.h --- cgal-5.4.1/include/CGAL/Compact_container.h 2022-06-03 19:05:31.000000000 +0000 +++ cgal-5.5/include/CGAL/Compact_container.h 2022-07-13 19:06:27.000000000 +0000 @@ -4,8 +4,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/Compact_container.h $ -// $Id: Compact_container.h e683686 2021-11-18T12:31:39+01:00 Laurent Rineau +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/Compact_container.h $ +// $Id: Compact_container.h 440a8df 2022-02-03T08:41:04+00:00 Andreas Fabri // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Sylvain Pion @@ -32,6 +32,7 @@ #include #include #include +#include #include @@ -480,7 +481,7 @@ // We use the block structure to provide an efficient version : // we check if the address is in the range of each block. - assert(cit != end()); + CGAL_assertion(cit != end()); const_pointer c = &*cit; size_type res=0; @@ -1050,7 +1051,7 @@ bool operator<(const CC_iterator& other) const { #ifdef CGAL_COMPACT_CONTAINER_DEBUG_TIME_STAMP - assert( is_time_stamp_valid() ); + CGAL_assertion( is_time_stamp_valid() ); #endif return Time_stamper::less(m_ptr, other.m_ptr); } @@ -1058,7 +1059,7 @@ bool operator>(const CC_iterator& other) const { #ifdef CGAL_COMPACT_CONTAINER_DEBUG_TIME_STAMP - assert( is_time_stamp_valid() ); + CGAL_assertion( is_time_stamp_valid() ); #endif return Time_stamper::less(other.m_ptr, m_ptr); } @@ -1066,7 +1067,7 @@ bool operator<=(const CC_iterator& other) const { #ifdef CGAL_COMPACT_CONTAINER_DEBUG_TIME_STAMP - assert( is_time_stamp_valid() ); + CGAL_assertion( is_time_stamp_valid() ); #endif return Time_stamper::less(m_ptr, other.m_ptr) || (*this == other); @@ -1075,7 +1076,7 @@ bool operator>=(const CC_iterator& other) const { #ifdef CGAL_COMPACT_CONTAINER_DEBUG_TIME_STAMP - assert( is_time_stamp_valid() ); + CGAL_assertion( is_time_stamp_valid() ); #endif return Time_stamper::less(other.m_ptr, m_ptr) || (*this == other); diff -Nru cgal-5.4.1/include/CGAL/Compact_mesh_cell_base_3.h cgal-5.5/include/CGAL/Compact_mesh_cell_base_3.h --- cgal-5.4.1/include/CGAL/Compact_mesh_cell_base_3.h 2022-06-03 19:04:46.000000000 +0000 +++ cgal-5.5/include/CGAL/Compact_mesh_cell_base_3.h 2022-07-13 19:05:38.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Compact_mesh_cell_base_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Compact_mesh_cell_base_3.h $ // $Id: Compact_mesh_cell_base_3.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Compare_handles_with_or_without_timestamps.h cgal-5.5/include/CGAL/Compare_handles_with_or_without_timestamps.h --- cgal-5.4.1/include/CGAL/Compare_handles_with_or_without_timestamps.h 2022-06-03 19:05:31.000000000 +0000 +++ cgal-5.5/include/CGAL/Compare_handles_with_or_without_timestamps.h 2022-07-13 19:06:27.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/Compare_handles_with_or_without_timestamps.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/Compare_handles_with_or_without_timestamps.h $ // $Id: Compare_handles_with_or_without_timestamps.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/compare_vertices.h cgal-5.5/include/CGAL/compare_vertices.h --- cgal-5.4.1/include/CGAL/compare_vertices.h 2022-06-03 19:05:12.000000000 +0000 +++ cgal-5.5/include/CGAL/compare_vertices.h 2022-07-13 19:06:06.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Point_set_2/include/CGAL/compare_vertices.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Point_set_2/include/CGAL/compare_vertices.h $ // $Id: compare_vertices.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Complex_2_in_triangulation_3.h cgal-5.5/include/CGAL/Complex_2_in_triangulation_3.h --- cgal-5.4.1/include/CGAL/Complex_2_in_triangulation_3.h 2022-06-03 19:05:59.000000000 +0000 +++ cgal-5.5/include/CGAL/Complex_2_in_triangulation_3.h 2022-07-13 19:06:56.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesher/include/CGAL/Complex_2_in_triangulation_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesher/include/CGAL/Complex_2_in_triangulation_3.h $ // $Id: Complex_2_in_triangulation_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Complex_2_in_triangulation_cell_base_3.h cgal-5.5/include/CGAL/Complex_2_in_triangulation_cell_base_3.h --- cgal-5.4.1/include/CGAL/Complex_2_in_triangulation_cell_base_3.h 2022-06-03 19:05:59.000000000 +0000 +++ cgal-5.5/include/CGAL/Complex_2_in_triangulation_cell_base_3.h 2022-07-13 19:06:56.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesher/include/CGAL/Complex_2_in_triangulation_cell_base_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesher/include/CGAL/Complex_2_in_triangulation_cell_base_3.h $ // $Id: Complex_2_in_triangulation_cell_base_3.h 4e519a3 2021-05-05T13:15:37+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Complex_2_in_triangulation_vertex_base_3.h cgal-5.5/include/CGAL/Complex_2_in_triangulation_vertex_base_3.h --- cgal-5.4.1/include/CGAL/Complex_2_in_triangulation_vertex_base_3.h 2022-06-03 19:05:59.000000000 +0000 +++ cgal-5.5/include/CGAL/Complex_2_in_triangulation_vertex_base_3.h 2022-07-13 19:06:56.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesher/include/CGAL/Complex_2_in_triangulation_vertex_base_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesher/include/CGAL/Complex_2_in_triangulation_vertex_base_3.h $ // $Id: Complex_2_in_triangulation_vertex_base_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Complexity_tags.h cgal-5.5/include/CGAL/Complexity_tags.h --- cgal-5.4.1/include/CGAL/Complexity_tags.h 2022-06-03 19:05:31.000000000 +0000 +++ cgal-5.5/include/CGAL/Complexity_tags.h 2022-07-13 19:06:27.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/Complexity_tags.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/Complexity_tags.h $ // $Id: Complexity_tags.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Compute_anchor_3.h cgal-5.5/include/CGAL/Compute_anchor_3.h --- cgal-5.4.1/include/CGAL/Compute_anchor_3.h 2022-06-03 19:05:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Compute_anchor_3.h 2022-07-13 19:06:40.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Skin_surface_3/include/CGAL/Compute_anchor_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Skin_surface_3/include/CGAL/Compute_anchor_3.h $ // $Id: Compute_anchor_3.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/compute_average_spacing.h cgal-5.5/include/CGAL/compute_average_spacing.h --- cgal-5.4.1/include/CGAL/compute_average_spacing.h 2022-06-03 19:05:12.000000000 +0000 +++ cgal-5.5/include/CGAL/compute_average_spacing.h 2022-07-13 19:06:06.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Point_set_processing_3/include/CGAL/compute_average_spacing.h $ -// $Id: compute_average_spacing.h 158495b 2021-03-10T10:39:37+01:00 Laurent Rineau +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Point_set_processing_3/include/CGAL/compute_average_spacing.h $ +// $Id: compute_average_spacing.h 10b0af3 2022-01-13T14:43:34+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Pierre Alliez and Laurent Saboret @@ -26,7 +26,7 @@ #include #include -#include +#include #include #include @@ -34,13 +34,6 @@ #include #include - - -#ifdef DOXYGEN_RUNNING -#define CGAL_BGL_NP_TEMPLATE_PARAMETERS NamedParameters -#define CGAL_BGL_NP_CLASS NamedParameters -#endif - namespace CGAL { @@ -152,27 +145,28 @@ */ template #ifdef DOXYGEN_RUNNING FT #else - typename Point_set_processing_3::GetK::Kernel::FT + typename Point_set_processing_3_np_helper::FT #endif compute_average_spacing( const PointRange& points, unsigned int k, - const CGAL_BGL_NP_CLASS& np) + const CGAL_NP_CLASS& np = parameters::default_values()) { using parameters::choose_parameter; using parameters::get_parameter; // basic geometric types typedef typename PointRange::const_iterator iterator; - typedef typename CGAL::GetPointMap::const_type PointMap; - typedef typename Point_set_processing_3::GetK::Kernel Kernel; + typedef Point_set_processing_3_np_helper NP_helper; + typedef typename NP_helper::Const_point_map PointMap; + typedef typename NP_helper::Geom_traits Kernel; - PointMap point_map = choose_parameter(get_parameter(np, internal_np::point_map), PointMap()); + PointMap point_map = NP_helper::get_const_point_map(points, np); const std::function& callback = choose_parameter(get_parameter(np, internal_np::callback), std::function()); @@ -231,21 +225,6 @@ return sum_spacings / (FT)(nb); } -/// \cond SKIP_IN_MANUAL - -// variant with default NP -template -typename Point_set_processing_3::GetFT::type -compute_average_spacing( - const PointRange& points, - unsigned int k) ///< number of neighbors. -{ - return compute_average_spacing - (points, k, CGAL::Point_set_processing_3::parameters::all_default(points)); -} -/// \endcond - - } //namespace CGAL #include diff -Nru cgal-5.4.1/include/CGAL/Compute_cone_boundaries_2.h cgal-5.5/include/CGAL/Compute_cone_boundaries_2.h --- cgal-5.4.1/include/CGAL/Compute_cone_boundaries_2.h 2022-06-03 19:04:07.000000000 +0000 +++ cgal-5.5/include/CGAL/Compute_cone_boundaries_2.h 2022-07-13 19:04:54.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cone_spanners_2/include/CGAL/Compute_cone_boundaries_2.h $ -// $Id: Compute_cone_boundaries_2.h 3ad2b0f 2021-11-25T15:43:21+01:00 albert-github +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cone_spanners_2/include/CGAL/Compute_cone_boundaries_2.h $ +// $Id: Compute_cone_boundaries_2.h 6486844 2022-05-10T11:30:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -207,7 +207,7 @@ return result; - }; // end of operator() + } // end of operator() }; // end of functor specialization: Compute_cone_..._2 } // namespace CGAL diff -Nru cgal-5.4.1/include/CGAL/compute_outer_frame_margin.h cgal-5.5/include/CGAL/compute_outer_frame_margin.h --- cgal-5.4.1/include/CGAL/compute_outer_frame_margin.h 2022-06-03 19:05:50.000000000 +0000 +++ cgal-5.5/include/CGAL/compute_outer_frame_margin.h 2022-07-13 19:06:47.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Straight_skeleton_2/include/CGAL/compute_outer_frame_margin.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Straight_skeleton_2/include/CGAL/compute_outer_frame_margin.h $ // $Id: compute_outer_frame_margin.h 9051fc1 2020-10-08T22:54:11+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Concatenate_iterator.h cgal-5.5/include/CGAL/Concatenate_iterator.h --- cgal-5.4.1/include/CGAL/Concatenate_iterator.h 2022-06-03 19:05:31.000000000 +0000 +++ cgal-5.5/include/CGAL/Concatenate_iterator.h 2022-07-13 19:06:27.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/Concatenate_iterator.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/Concatenate_iterator.h $ // $Id: Concatenate_iterator.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Concurrent_compact_container.h cgal-5.5/include/CGAL/Concurrent_compact_container.h --- cgal-5.4.1/include/CGAL/Concurrent_compact_container.h 2022-06-03 19:05:31.000000000 +0000 +++ cgal-5.5/include/CGAL/Concurrent_compact_container.h 2022-07-13 19:06:27.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/Concurrent_compact_container.h $ -// $Id: Concurrent_compact_container.h e683686 2021-11-18T12:31:39+01:00 Laurent Rineau +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/Concurrent_compact_container.h $ +// $Id: Concurrent_compact_container.h 440a8df 2022-02-03T08:41:04+00:00 Andreas Fabri // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Clement Jamin @@ -27,6 +27,7 @@ #include +#include #include #include #include @@ -481,7 +482,7 @@ // We use the block structure to provide an efficient version : // we check if the address is in the range of each block. - assert(cit != end()); + CGAL_assertion(cit != end()); const_pointer c = &*cit; size_type res=0; diff -Nru cgal-5.4.1/include/CGAL/Cone_spanners_2/Less_by_direction_2.h cgal-5.5/include/CGAL/Cone_spanners_2/Less_by_direction_2.h --- cgal-5.4.1/include/CGAL/Cone_spanners_2/Less_by_direction_2.h 2022-06-03 19:04:07.000000000 +0000 +++ cgal-5.5/include/CGAL/Cone_spanners_2/Less_by_direction_2.h 2022-07-13 19:04:54.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cone_spanners_2/include/CGAL/Cone_spanners_2/Less_by_direction_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cone_spanners_2/include/CGAL/Cone_spanners_2/Less_by_direction_2.h $ // $Id: Less_by_direction_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Cone_spanners_2/Plane_scan_tree.h cgal-5.5/include/CGAL/Cone_spanners_2/Plane_scan_tree.h --- cgal-5.4.1/include/CGAL/Cone_spanners_2/Plane_scan_tree.h 2022-06-03 19:04:07.000000000 +0000 +++ cgal-5.5/include/CGAL/Cone_spanners_2/Plane_scan_tree.h 2022-07-13 19:04:54.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cone_spanners_2/include/CGAL/Cone_spanners_2/Plane_scan_tree.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cone_spanners_2/include/CGAL/Cone_spanners_2/Plane_scan_tree.h $ // $Id: Plane_scan_tree.h 0d66e19 2020-07-24T17:05:10+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Cone_spanners_2/Plane_scan_tree_impl.h cgal-5.5/include/CGAL/Cone_spanners_2/Plane_scan_tree_impl.h --- cgal-5.4.1/include/CGAL/Cone_spanners_2/Plane_scan_tree_impl.h 2022-06-03 19:04:07.000000000 +0000 +++ cgal-5.5/include/CGAL/Cone_spanners_2/Plane_scan_tree_impl.h 2022-07-13 19:04:54.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cone_spanners_2/include/CGAL/Cone_spanners_2/Plane_scan_tree_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cone_spanners_2/include/CGAL/Cone_spanners_2/Plane_scan_tree_impl.h $ // $Id: Plane_scan_tree_impl.h 72bf8cc 2021-09-15T07:07:18+01:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Cone_spanners_enum_2.h cgal-5.5/include/CGAL/Cone_spanners_enum_2.h --- cgal-5.4.1/include/CGAL/Cone_spanners_enum_2.h 2022-06-03 19:04:07.000000000 +0000 +++ cgal-5.5/include/CGAL/Cone_spanners_enum_2.h 2022-07-13 19:04:54.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cone_spanners_2/include/CGAL/Cone_spanners_enum_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cone_spanners_2/include/CGAL/Cone_spanners_enum_2.h $ // $Id: Cone_spanners_enum_2.h 26355e2 2020-06-25T12:31:21+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/config.h cgal-5.5/include/CGAL/config.h --- cgal-5.4.1/include/CGAL/config.h 2022-06-03 19:04:20.000000000 +0000 +++ cgal-5.5/include/CGAL/config.h 2022-07-13 19:05:09.000000000 +0000 @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/config.h $ -// $Id: config.h ab7aa75 2022-04-28T13:59:14+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/config.h $ +// $Id: config.h 709f123 2022-05-13T17:22:43+02:00 Sebastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // @@ -499,6 +499,12 @@ # define CGAL_FALLTHROUGH while(false){} #endif +#if CGAL_CXX17 +# define CGAL_CPP17_INLINE inline +#else +# define CGAL_CPP17_INLINE +#endif + #ifndef CGAL_NO_ASSERTIONS # define CGAL_NO_ASSERTIONS_BOOL false #else @@ -523,7 +529,7 @@ /// Macro `CGAL_WARNING`. /// Must be used with `#pragma`, this way: /// -/// #pragma CGAL_WARNING(This line should trigger a warning) +/// #pragma CGAL_WARNING("This line should trigger a warning") /// /// @{ #ifdef BOOST_MSVC diff -Nru cgal-5.4.1/include/CGAL/Conic_2.h cgal-5.5/include/CGAL/Conic_2.h --- cgal-5.4.1/include/CGAL/Conic_2.h 2022-06-03 19:04:31.000000000 +0000 +++ cgal-5.5/include/CGAL/Conic_2.h 2022-07-13 19:05:22.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Conic_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Conic_2.h $ // $Id: Conic_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/connect_holes.h cgal-5.5/include/CGAL/connect_holes.h --- cgal-5.4.1/include/CGAL/connect_holes.h 2022-06-03 19:03:52.000000000 +0000 +++ cgal-5.5/include/CGAL/connect_holes.h 2022-07-13 19:04:38.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Boolean_set_operations_2/include/CGAL/connect_holes.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Boolean_set_operations_2/include/CGAL/connect_holes.h $ // $Id: connect_holes.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/constant.h cgal-5.5/include/CGAL/constant.h --- cgal-5.4.1/include/CGAL/constant.h 2022-06-03 19:05:01.000000000 +0000 +++ cgal-5.5/include/CGAL/constant.h 2022-07-13 19:05:55.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/constant.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/constant.h $ // $Id: constant.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Constrained_Delaunay_triangulation_2.h cgal-5.5/include/CGAL/Constrained_Delaunay_triangulation_2.h --- cgal-5.4.1/include/CGAL/Constrained_Delaunay_triangulation_2.h 2022-06-03 19:06:06.000000000 +0000 +++ cgal-5.5/include/CGAL/Constrained_Delaunay_triangulation_2.h 2022-07-13 19:07:05.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_2/include/CGAL/Constrained_Delaunay_triangulation_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_2/include/CGAL/Constrained_Delaunay_triangulation_2.h $ // $Id: Constrained_Delaunay_triangulation_2.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Constrained_Delaunay_triangulation_face_base_2.h cgal-5.5/include/CGAL/Constrained_Delaunay_triangulation_face_base_2.h --- cgal-5.4.1/include/CGAL/Constrained_Delaunay_triangulation_face_base_2.h 2022-06-03 19:04:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Constrained_Delaunay_triangulation_face_base_2.h 2022-07-13 19:05:35.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_2/include/CGAL/Constrained_Delaunay_triangulation_face_base_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_2/include/CGAL/Constrained_Delaunay_triangulation_face_base_2.h $ // $Id: Constrained_Delaunay_triangulation_face_base_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Constrained_triangulation_2.h cgal-5.5/include/CGAL/Constrained_triangulation_2.h --- cgal-5.4.1/include/CGAL/Constrained_triangulation_2.h 2022-06-03 19:06:06.000000000 +0000 +++ cgal-5.5/include/CGAL/Constrained_triangulation_2.h 2022-07-13 19:07:05.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_2/include/CGAL/Constrained_triangulation_2.h $ -// $Id: Constrained_triangulation_2.h 4e519a3 2021-05-05T13:15:37+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_2/include/CGAL/Constrained_triangulation_2.h $ +// $Id: Constrained_triangulation_2.h 561cc66 2022-06-29T12:30:35+02:00 Laurent Rineau // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -20,6 +20,7 @@ #include #include +#include #include #include @@ -28,14 +29,15 @@ #include #include #include +#include +#include +#include +#include #include +#include #include -#include -#include -#include - namespace CGAL { struct No_constraint_intersection_tag{}; @@ -343,7 +345,7 @@ // if the segment (or a subpart of the segment) that we are trying to constraint is already // present in the triangulation and is already marked as constrained, // then this is an intersection - if(boost::is_same::value) { + if(std::is_same::value) { if(dimension() == 1) { if(fr->is_constrained(2)) throw Intersection_of_constraints_exception(); @@ -504,6 +506,17 @@ Vertex_handle vaa, Vertex_handle vbb, Exact_predicates_tag); + + Vertex_handle insert_intersection(Face_handle f, int i, + Vertex_handle vaa, + Vertex_handle vbb, + Vertex_handle vcc, + Vertex_handle vdd, + const Point& pa, + const Point& pb, + const Point& pc, + const Point& pd, + Exact_predicates_tag); private: //made private to avoid using the Triangulation_2 version Vertex_handle move(Vertex_handle v, const Point &) @@ -705,7 +718,7 @@ } if ( lt == Triangulation::EDGE && loc->is_constrained(li) ) { - if(boost::is_same::value) + if(std::is_same::value) throw Intersection_of_constraints_exception(); insert_in_constrained_edge = true; @@ -815,7 +828,7 @@ // if the segment (or a subpart of the segment) that we are trying to constraint is already // present in the triangulation and is already marked as constrained, // then this is an intersection - if(boost::is_same::value) { + if(std::is_same::value) { if(dimension() == 1) { if(fr->is_constrained(2)) throw Intersection_of_constraints_exception(); @@ -1039,7 +1052,7 @@ intersect(Face_handle f, int i, Vertex_handle vaa, Vertex_handle vbb, - Exact_intersections_tag) + Exact_intersections_tag itag) // compute the intersection of the constraint edge (f,i) // with the subconstraint (vaa,vbb) being inserted // insert the intersection point @@ -1060,7 +1073,6 @@ const Point& pc = f->vertex(cw(i))->point(); const Point& pd = f->vertex(ccw(i))->point(); Point pi; - Itag itag = Itag(); CGAL_triangulation_assertion_code( bool ok = ) intersection(geom_traits(), pa, pb, pc, pd, pi, itag ); CGAL_triangulation_assertion(ok); @@ -1068,13 +1080,157 @@ return vi; } + +namespace internal { + + template + class Has_barycenter_2 + { + typedef char Yes; + typedef struct { char a[2]; } No; + + template + static auto check(int) + -> decltype(std::declval() = + std::declval().construct_barycenter_2_object()( + std::declval(), + std::declval(), + std::declval()), + Yes()); + + template + static No check(...); + + public: + static const bool value = (sizeof(Yes) == sizeof(check(0))); + }; + + template + class Has_exact_kernel + { + typedef char Yes; + typedef struct { char a[2]; } No; + + template + static auto check(int) + -> decltype(std::declval() = + std::declval().exact_kernel(), + Yes()); + + template + static No check(...); + + public: + static const bool value = (sizeof(Yes) == sizeof(check(0))); + }; + + template ::value > + struct Can_construct_almost_exact_intersection { + enum { value = + internal::Has_barycenter_2::value && + internal::Has_filtered_predicates::value }; + }; + + template + struct Can_construct_almost_exact_intersection + : public CGAL::Tag_false {}; + + template + static constexpr bool can_construct_almost_exact_intersection_v = + Can_construct_almost_exact_intersection::value; + + template + constexpr bool can_construct_almost_exact_intersection(const Gt&) { + return can_construct_almost_exact_intersection_v; + } +} // namespace internal + + +template +typename Constrained_triangulation_2::Vertex_handle +Constrained_triangulation_2:: +insert_intersection(Face_handle f, int i, + Vertex_handle vaa, + Vertex_handle vbb, + Vertex_handle vcc, + Vertex_handle vdd, + const Point& pa, + const Point& pb, + const Point& pc, + const Point& pd, + Exact_predicates_tag itag) +{ + Point pi; //creator for point is required here + bool ok = intersection(geom_traits(), pa, pb, pc, pd, pi, itag); + + auto intersection_not_in_the_two_triangles = [&](const Point& pi) { + if(orientation(pc,pd,pi) == RIGHT_TURN) { + // check if `pi` is in the triangle (pc, pd, p0) + const Point& p0 = f->vertex(i)->point(); + if(orientation(p0, pc, pi) == LEFT_TURN || orientation(pd, p0, pi) == LEFT_TURN) { + return true; + } + } else { + // orientation(pd, pc, pi) != LEFT_TURN + const auto edge = mirror_edge({f, i}); + // check if `pi` is in the triangle (pd, pc, p1) + const Point& p1 = edge.first->vertex(edge.second)->point(); + if(orientation(pc, p1, pi) == LEFT_TURN || orientation(p1, pd, pi) == LEFT_TURN) { + return true; + } + } + return false; + }; + + Vertex_handle vi; + if ( !ok ) { //intersection detected but not computed + int int_index = limit_intersection(geom_traits(), pa, pb, pc, pd, itag); + switch(int_index){ + case 0 : vi = vaa; break; + case 1 : vi = vbb; break; + case 2 : vi = vcc; break; + case 3 : vi = vdd; break; + } + if(vi == vaa || vi == vbb) { + remove_constrained_edge(f, i); + } + } + else{ //intersection computed + if(internal::can_construct_almost_exact_intersection(geom_traits()) && + intersection_not_in_the_two_triangles(pi)) + { + // now compute the exact intersection point + pi = almost_exact_intersection(geom_traits(), pa, pb, pc, pd); + if (intersection_not_in_the_two_triangles(pi)) { + // If the most-exact intersection point is not in the union of the two + // triangles, then snap to `pc` or `pd`... + if(compare_distance(pi, pc, pd) == SMALLER) { + vi = vcc; + } else { + vi = vdd; + } + } + } + if(vi != vcc && vi != vdd) { + remove_constrained_edge(f, i); + vi = virtual_insert(pi, f); + } + } +#ifdef CGAL_CDT_2_DEBUG_INTERSECTIONS + std::cerr << CGAL::internal::cdt_2_indent_level + << "CT_2::insert_intersection, `vi` is ( #" << vi->time_stamp() << "= " << vi->point() + << " )\n"; +#endif // CGAL_CDT_2_DEBUG_INTERSECTIONS + return vi; +} + template typename Constrained_triangulation_2::Vertex_handle Constrained_triangulation_2:: intersect(Face_handle f, int i, Vertex_handle vaa, Vertex_handle vbb, - Exact_predicates_tag) + Exact_predicates_tag itag) { Vertex_handle vcc, vdd; vcc = f->vertex(cw(i)); @@ -1093,27 +1249,7 @@ << " , #" << vdd->time_stamp() << "= " << vdd->point() << " )\n"; #endif // CGAL_CDT_2_DEBUG_INTERSECTIONS - Point pi; //creator for point is required here - Itag itag = Itag(); - bool ok = intersection(geom_traits(), pa, pb, pc, pd, pi, itag ); - - Vertex_handle vi; - if ( !ok) { //intersection detected but not computed - int int_index = limit_intersection(geom_traits(), pa, pb, pc, pd, itag); - switch(int_index){ - case 0 : vi = vaa; break; - case 1 : vi = vbb; break; - case 2 : vi = vcc; break; - case 3 : vi = vdd; break; - } - if(vi == vaa || vi == vbb) { - remove_constrained_edge(f, i); - } - } - else{ //intersection computed - remove_constrained_edge(f, i); - vi = virtual_insert(pi, f); - } + Vertex_handle vi = insert_intersection(f, i, vaa, vbb, vcc, vdd, pa, pb, pc, pd, itag); #ifdef CGAL_CDT_2_DEBUG_INTERSECTIONS std::cerr << CGAL::internal::cdt_2_indent_level << "CT_2::intersect, `vi` is ( #" << vi->time_stamp() << "= " << vi->point() @@ -1668,7 +1804,7 @@ #endif typedef typename Gt::Construct_bbox_2 Construct_bbox_2; Construct_bbox_2 bbox = gt.construct_bbox_2_object(); - typename boost::result_of::type bb(bbox(pi)); + auto bb(bbox(pi)); bb.dilate(dist); if(do_overlap(bb, bbox(pa))) pi = pa; if(do_overlap(bb, bbox(pb))) pi = pb; @@ -1697,7 +1833,7 @@ typedef typename Gt::FT FT; return intersection(gt,pa,pb,pc,pd,pi, exact_predicates_tag, - Boolean_tag::value>()); + Boolean_tag::value>()); } @@ -1715,10 +1851,8 @@ typename Gt::Intersect_2 compute_intersec = gt.intersect_2_object(); typename Gt::Construct_segment_2 construct_segment = gt.construct_segment_2_object(); - auto // CGAL::cpp11::result_of::type - result = compute_intersec(construct_segment(pa,pb), - construct_segment(pc,pd)); - + auto result = + compute_intersec(construct_segment(pa, pb), construct_segment(pc, pd)); #ifdef CGAL_CDT_2_DEBUG_INTERSECTIONS typedef typename Gt::Segment_2 Segment_2; @@ -1740,51 +1874,14 @@ return false; } - -template -int -limit_intersection(const Gt& , - const typename Gt::Point_2& , - const typename Gt::Point_2& , - const typename Gt::Point_2& , - const typename Gt::Point_2& , - No_constraint_intersection_tag) -{ - return 0; -} - -template -int -limit_intersection(const Gt& , - const typename Gt::Point_2& , - const typename Gt::Point_2& , - const typename Gt::Point_2& , - const typename Gt::Point_2& , - No_constraint_intersection_requiring_constructions_tag) -{ - return 0; -} - -template -int -limit_intersection(const Gt& , - const typename Gt::Point_2& , - const typename Gt::Point_2& , - const typename Gt::Point_2& , - const typename Gt::Point_2& , - Exact_intersections_tag) -{ - return 0; -} - template int limit_intersection(const Gt& gt, - const typename Gt::Point_2& pa, - const typename Gt::Point_2& pb, - const typename Gt::Point_2& pc, - const typename Gt::Point_2& pd, - Exact_predicates_tag) + const typename Gt::Point_2& pa, + const typename Gt::Point_2& pb, + const typename Gt::Point_2& pc, + const typename Gt::Point_2& pd, + Exact_predicates_tag) { typename Gt::Construct_line_2 line = gt.construct_line_2_object(); typename Gt::Compute_squared_distance_2 @@ -1802,6 +1899,85 @@ return i; } +template +typename Gt::Point_2 +almost_exact_intersection(const Gt& gt, + const typename Gt::Point_2& pa, + const typename Gt::Point_2& pb, + const typename Gt::Point_2& pc, + const typename Gt::Point_2& pd) +{ + Boolean_tag> tag; + return almost_exact_intersection(gt, pa, pb, pc, pd, tag); +} + +template +typename Gt::Point_2 +almost_exact_intersection(const Gt&, + const typename Gt::Point_2&, + const typename Gt::Point_2&, + const typename Gt::Point_2&, + const typename Gt::Point_2&, + Tag_false) +{ + CGAL_error_msg("this function should be call only with Exact_predicates_tag" + " and with an appropriate traits class"); +} + +template +auto convert_point_type(const CGAL::Point_2 &p) { + NT_converter::Kernel::FT> c; + return K2_Point_2(c(p.x()), c(p.y())); +} + +template +auto convert_point_type(const CGAL::Point_3 &p) { + NT_converter::Kernel::FT> c; + return K2_Point_3(c(p.x()), c(p.y()), c(p.z())); +} + +template +typename Gt::Point_2 +exact_intersection_point_for_cdt_2(const typename Gt::Point_2& pa, + const typename Gt::Point_2& pb, + const typename Gt::Point_2& pc, + const typename Gt::Point_2& pd, + const Gt& gt) +{ + using Exact_kernel = typename Gt::Exact_kernel; + using Exact_point = typename Exact_kernel::Point_2; + using Exact_FT = typename Exact_kernel::FT; + using Point = typename Gt::Point_2; + + const auto ea = convert_point_type(pa); + const auto eb = convert_point_type(pb); + const auto ec = convert_point_type(pc); + const auto ed = convert_point_type(pd); + + auto det = [](const auto& v1, const auto& v2) -> Exact_FT { + return v1.x() * v2.y() - v1.y() * v2.x(); + }; + + const Exact_FT det_bd_cd = det(ed - eb, ed - ec); + const Exact_FT det_ba_cd = det(ea - eb, ec - ed); + const Exact_FT alpha = det_bd_cd / det_ba_cd; + + return convert_point_type( + gt.exact_kernel().construct_barycenter_2_object()(ea, alpha, eb)); +} + +template +typename Gt::Point_2 +almost_exact_intersection(const Gt& gt, + const typename Gt::Point_2& pa, + const typename Gt::Point_2& pb, + const typename Gt::Point_2& pc, + const typename Gt::Point_2& pd, + Tag_true /* gt has Construct_exact_intersection_point_2 */) +{ + return exact_intersection_point_for_cdt_2(pa, pb, pc, pd, gt); +} + } //namespace CGAL #include diff -Nru cgal-5.4.1/include/CGAL/Constrained_triangulation_face_base_2.h cgal-5.5/include/CGAL/Constrained_triangulation_face_base_2.h --- cgal-5.4.1/include/CGAL/Constrained_triangulation_face_base_2.h 2022-06-03 19:06:06.000000000 +0000 +++ cgal-5.5/include/CGAL/Constrained_triangulation_face_base_2.h 2022-07-13 19:07:05.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_2/include/CGAL/Constrained_triangulation_face_base_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_2/include/CGAL/Constrained_triangulation_face_base_2.h $ // $Id: Constrained_triangulation_face_base_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Constrained_triangulation_plus_2.h cgal-5.5/include/CGAL/Constrained_triangulation_plus_2.h --- cgal-5.4.1/include/CGAL/Constrained_triangulation_plus_2.h 2022-06-03 19:06:06.000000000 +0000 +++ cgal-5.5/include/CGAL/Constrained_triangulation_plus_2.h 2022-07-13 19:07:05.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_2/include/CGAL/Constrained_triangulation_plus_2.h $ -// $Id: Constrained_triangulation_plus_2.h 48c462b 2022-03-09T13:46:55+00:00 Andreas Fabri +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_2/include/CGAL/Constrained_triangulation_plus_2.h $ +// $Id: Constrained_triangulation_plus_2.h 561cc66 2022-06-29T12:30:35+02:00 Laurent Rineau // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -1208,7 +1208,7 @@ intersect(Face_handle f, int i, Vertex_handle vaa, Vertex_handle vbb, - Exact_predicates_tag) + Exact_predicates_tag itag) { Vertex_handle vcc, vdd; vcc = f->vertex(cw(i)); @@ -1227,32 +1227,8 @@ << " , Exact_predicates_tag)\n"; #endif // CGAL_CDT_2_DEBUG_INTERSECTIONS - Point pi; //creator for point is required here - Intersection_tag itag = Intersection_tag(); - bool ok = intersection(geom_traits(), pa, pb, pc, pd, pi, itag ); - - Vertex_handle vi; - if ( !ok) { //intersection detected but not computed - int i = limit_intersection(geom_traits(), pa, pb, pc, pd, itag); - switch(i){ - case 0 : vi = vaa; break; - case 1 : vi = vbb; break; - case 2 : vi = vcc; break; - case 3 : vi = vdd; break; - } - if(vi == vaa || vi == vbb) { - Triangulation::remove_constrained_edge(f, i); - } - } - else{ //computed - Triangulation::remove_constrained_edge(f, i); - vi = insert(pi, f); - } -#ifdef CGAL_CDT_2_DEBUG_INTERSECTIONS - std::cerr << CGAL::internal::cdt_2_indent_level - << "CT_plus_2::intersect, `vi` is ( #" << vi->time_stamp() << "= " << vi->point() - << " )\n"; -#endif // CGAL_CDT_2_DEBUG_INTERSECTIONS + Vertex_handle vi = Triangulation::insert_intersection( + f, i, vaa, vbb, vcc, vdd, pa, pb, pc, pd, itag); // vi == vc or vi == vd may happen even if intersection==true // due to approximate construction of the intersection diff -Nru cgal-5.4.1/include/CGAL/Constrained_voronoi_diagram_2.h cgal-5.5/include/CGAL/Constrained_voronoi_diagram_2.h --- cgal-5.4.1/include/CGAL/Constrained_voronoi_diagram_2.h 2022-06-03 19:04:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Constrained_voronoi_diagram_2.h 2022-07-13 19:05:35.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_2/include/CGAL/Constrained_voronoi_diagram_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_2/include/CGAL/Constrained_voronoi_diagram_2.h $ // $Id: Constrained_voronoi_diagram_2.h 7e3af5c 2021-09-10T11:26:53+02:00 Jane Tournois // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/constructions/constructions_for_voronoi_intersection_cartesian_2_3.h cgal-5.5/include/CGAL/constructions/constructions_for_voronoi_intersection_cartesian_2_3.h --- cgal-5.4.1/include/CGAL/constructions/constructions_for_voronoi_intersection_cartesian_2_3.h 2022-06-03 19:04:25.000000000 +0000 +++ cgal-5.5/include/CGAL/constructions/constructions_for_voronoi_intersection_cartesian_2_3.h 2022-07-13 19:05:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Interpolation/include/CGAL/constructions/constructions_for_voronoi_intersection_cartesian_2_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Interpolation/include/CGAL/constructions/constructions_for_voronoi_intersection_cartesian_2_3.h $ // $Id: constructions_for_voronoi_intersection_cartesian_2_3.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/constructions/kernel_ftC2.h cgal-5.5/include/CGAL/constructions/kernel_ftC2.h --- cgal-5.4.1/include/CGAL/constructions/kernel_ftC2.h 2022-06-03 19:03:58.000000000 +0000 +++ cgal-5.5/include/CGAL/constructions/kernel_ftC2.h 2022-07-13 19:04:45.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cartesian_kernel/include/CGAL/constructions/kernel_ftC2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cartesian_kernel/include/CGAL/constructions/kernel_ftC2.h $ // $Id: kernel_ftC2.h 2165605 2021-02-18T15:26:51+01:00 Laurent Rineau // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/constructions/kernel_ftC3.h cgal-5.5/include/CGAL/constructions/kernel_ftC3.h --- cgal-5.4.1/include/CGAL/constructions/kernel_ftC3.h 2022-06-03 19:03:58.000000000 +0000 +++ cgal-5.5/include/CGAL/constructions/kernel_ftC3.h 2022-07-13 19:04:45.000000000 +0000 @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cartesian_kernel/include/CGAL/constructions/kernel_ftC3.h $ -// $Id: kernel_ftC3.h 80af4b3 2020-10-26T09:17:01+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cartesian_kernel/include/CGAL/constructions/kernel_ftC3.h $ +// $Id: kernel_ftC3.h 1916290 2022-03-21T18:04:03+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // @@ -406,33 +406,98 @@ return (CGAL_NTS square(vx) + CGAL_NTS square(vy) + CGAL_NTS square(vz))/4; } +// Compute determinants for weighted_circumcenter and circumradius template void -determinants_for_weighted_circumcenterC3( - const FT &px, const FT &py, const FT &pz, const FT &pw, - const FT &qx, const FT &qy, const FT &qz, const FT &qw, - const FT &rx, const FT &ry, const FT &rz, const FT &rw, - const FT &sx, const FT &sy, const FT &sz, const FT &sw, - FT &num_x, FT &num_y, FT &num_z, FT& den) +determinants_for_circumcenterC3(const FT &px, const FT &py, const FT &pz, + const FT &qx, const FT &qy, const FT &qz, + const FT &sx, const FT &sy, const FT &sz, + FT &num_x, FT &num_y, FT &num_z, FT& den) +{ + // Translate s to origin to simplify the expression. + FT psx = px - sx; + FT psy = py - sy; + FT psz = pz - sz; + FT ps2 = CGAL_NTS square(psx) + CGAL_NTS square(psy) + CGAL_NTS square(psz); + FT qsx = qx - sx; + FT qsy = qy - sy; + FT qsz = qz - sz; + FT qs2 = CGAL_NTS square(qsx) + CGAL_NTS square(qsy) + CGAL_NTS square(qsz); + FT rsx = psy*qsz - psz*qsy; + FT rsy = psz*qsx - psx*qsz; + FT rsz = psx*qsy - psy*qsx; + + // The following determinants can be developped and simplified. + // + // FT num_x = determinant(psy,psz,ps2, + // qsy,qsz,qs2, + // rsy,rsz,0); + // FT num_y = determinant(psx,psz,ps2, + // qsx,qsz,qs2, + // rsx,rsz,0); + // FT num_z = determinant(psx,psy,ps2, + // qsx,qsy,qs2, + // rsx,rsy,0); + + num_x = ps2 * determinant(qsy,qsz,rsy,rsz) + - qs2 * determinant(psy,psz,rsy,rsz); + num_y = ps2 * determinant(qsx,qsz,rsx,rsz) + - qs2 * determinant(psx,psz,rsx,rsz); + num_z = ps2 * determinant(qsx,qsy,rsx,rsy) + - qs2 * determinant(psx,psy,rsx,rsy); + + den = determinant(psx,psy,psz, + qsx,qsy,qsz, + rsx,rsy,rsz); +} + +// this function computes the circumcenter point only +template < class FT> +void +circumcenterC3(const FT &px, const FT &py, const FT &pz, + const FT &qx, const FT &qy, const FT &qz, + const FT &sx, const FT &sy, const FT &sz, + FT &x, FT &y, FT &z) +{ + FT num_x, num_y, num_z, den; + determinants_for_circumcenterC3(px, py, pz, + qx, qy, qz, + sx, sy, sz, + num_x, num_y, num_z, den); + + CGAL_kernel_assertion( den != 0 ); + FT inv = 1 / (2 * den); + + x = sx + num_x*inv; + y = sy - num_y*inv; + z = sz + num_z*inv; +} + +// Compute determinants for weighted_circumcenter and circumradius +template +void +determinants_for_circumcenterC3(const FT &px, const FT &py, const FT &pz, + const FT &qx, const FT &qy, const FT &qz, + const FT &rx, const FT &ry, const FT &rz, + const FT &sx, const FT &sy, const FT &sz, + FT &num_x, FT &num_y, FT &num_z, FT& den) { // translate origin to p - // and compute determinants for weighted_circumcenter and - // circumradius FT qpx = qx - px; FT qpy = qy - py; FT qpz = qz - pz; FT qp2 = CGAL_NTS square(qpx) + CGAL_NTS square(qpy) + - CGAL_NTS square(qpz) - qw + pw; + CGAL_NTS square(qpz); FT rpx = rx - px; FT rpy = ry - py; FT rpz = rz - pz; FT rp2 = CGAL_NTS square(rpx) + CGAL_NTS square(rpy) + - CGAL_NTS square(rpz) - rw + pw; + CGAL_NTS square(rpz); FT spx = sx - px; FT spy = sy - py; FT spz = sz - pz; FT sp2 = CGAL_NTS square(spx) + CGAL_NTS square(spy) + - CGAL_NTS square(spz) - sw + pw; + CGAL_NTS square(spz); num_x = determinant(qpy,qpz,qp2, rpy,rpz,rp2, @@ -448,32 +513,56 @@ spx,spy,spz); } +// this function computes the circumcenter point only +template < class FT> +void +circumcenterC3(const FT &px, const FT &py, const FT &pz, + const FT &qx, const FT &qy, const FT &qz, + const FT &rx, const FT &ry, const FT &rz, + const FT &sx, const FT &sy, const FT &sz, + FT &x, FT &y, FT &z) +{ + FT num_x, num_y, num_z, den; + determinants_for_circumcenterC3(px, py, pz, + qx, qy, qz, + rx, ry, rz, + sx, sy, sz, + num_x, num_y, num_z, den); + + CGAL_assertion( ! CGAL_NTS is_zero(den) ); + FT inv = FT(1)/(FT(2) * den); + + x = px + num_x*inv; + y = py - num_y*inv; + z = pz + num_z*inv; +} + +// compute determinants for weighted_circumcenter and circumradius template void -determinants_for_circumcenterC3(const FT &px, const FT &py, const FT &pz, - const FT &qx, const FT &qy, const FT &qz, - const FT &rx, const FT &ry, const FT &rz, - const FT &sx, const FT &sy, const FT &sz, - FT &num_x, FT &num_y, FT &num_z, FT& den) +determinants_for_weighted_circumcenterC3( + const FT &px, const FT &py, const FT &pz, const FT &pw, + const FT &qx, const FT &qy, const FT &qz, const FT &qw, + const FT &rx, const FT &ry, const FT &rz, const FT &rw, + const FT &sx, const FT &sy, const FT &sz, const FT &sw, + FT &num_x, FT &num_y, FT &num_z, FT& den) { // translate origin to p - // and compute determinants for weighted_circumcenter and - // circumradius FT qpx = qx - px; FT qpy = qy - py; FT qpz = qz - pz; FT qp2 = CGAL_NTS square(qpx) + CGAL_NTS square(qpy) + - CGAL_NTS square(qpz); + CGAL_NTS square(qpz) - qw + pw; FT rpx = rx - px; FT rpy = ry - py; FT rpz = rz - pz; FT rp2 = CGAL_NTS square(rpx) + CGAL_NTS square(rpy) + - CGAL_NTS square(rpz); + CGAL_NTS square(rpz) - rw + pw; FT spx = sx - px; FT spy = sy - py; FT spz = sz - pz; FT sp2 = CGAL_NTS square(spx) + CGAL_NTS square(spy) + - CGAL_NTS square(spz); + CGAL_NTS square(spz) - sw + pw; num_x = determinant(qpy,qpz,qp2, rpy,rpz,rp2, @@ -489,6 +578,7 @@ spx,spy,spz); } +// this function computes the weighted circumcenter point only template < class FT> void weighted_circumcenterC3(const FT &px, const FT &py, const FT &pz, const FT &pw, @@ -497,9 +587,6 @@ const FT &sx, const FT &sy, const FT &sz, const FT &sw, FT &x, FT &y, FT &z) { - // this function computes the weighted circumcenter point only - - // Translate p to origin and compute determinants FT num_x, num_y, num_z, den; determinants_for_weighted_circumcenterC3(px, py, pz, pw, qx, qy, qz, qw, @@ -515,6 +602,7 @@ z = pz + num_z*inv; } +// this function computes the weighted circumcenter point and the squared weighted circumradius template < class FT> void weighted_circumcenterC3(const FT &px, const FT &py, const FT &pz, const FT &pw, @@ -523,10 +611,6 @@ const FT &sx, const FT &sy, const FT &sz, const FT &sw, FT &x, FT &y, FT &z, FT &w) { - // this function computes the weighted circumcenter point - // and the squared weighted circumradius - - // Translate p to origin and compute determinants FT num_x, num_y, num_z, den; determinants_for_weighted_circumcenterC3(px, py, pz, pw, qx, qy, qz, qw, @@ -545,6 +629,7 @@ * CGAL_NTS square(inv) - pw; } +// this function computes the squared weighted circumradius only template< class FT > FT squared_radius_orthogonal_sphereC3( @@ -553,9 +638,6 @@ const FT &rx, const FT &ry, const FT &rz, const FT &rw, const FT &sx, const FT &sy, const FT &sz, const FT &sw) { - // this function computes the squared weighted circumradius only - - // Translate p to origin and compute determinants FT num_x, num_y, num_z, den; determinants_for_weighted_circumcenterC3(px, py, pz, pw, qx, qy, qz, qw, @@ -570,6 +652,7 @@ * CGAL_NTS square(inv) - pw; } +// compute determinants for weighted_circumcenter and circumradius template void determinants_for_weighted_circumcenterC3( @@ -578,10 +661,7 @@ const FT &rx, const FT &ry, const FT &rz, const FT &rw, FT &num_x, FT &num_y, FT &num_z, FT &den) { - // translate origin to p and compute determinants for weighted_circumcenter - // and circumradius - - // Translate s to origin to simplify the expression. + // translate origin to p FT qpx = qx - px; FT qpy = qy - py; FT qpz = qz - pz; @@ -623,6 +703,7 @@ sx,sy,sz); } +// this function computes the weighted circumcenter point only template < class FT > void weighted_circumcenterC3(const FT &px, const FT &py, const FT &pz, const FT &pw, @@ -630,9 +711,6 @@ const FT &rx, const FT &ry, const FT &rz, const FT &rw, FT &x, FT &y, FT &z) { - // this function computes the weighted circumcenter point only - - // Translate p to origin and compute determinants FT num_x, num_y, num_z, den; determinants_for_weighted_circumcenterC3(px, py, pz, pw, qx, qy, qz, qw, @@ -647,6 +725,7 @@ z = pz + num_z*inv; } +// this function computes the weighted circumcenter and the weighted squared circumradius template < class FT > void weighted_circumcenterC3(const FT &px, const FT &py, const FT &pz, const FT &pw, @@ -654,9 +733,6 @@ const FT &rx, const FT &ry, const FT &rz, const FT &rw, FT &x, FT &y, FT &z, FT &w) { - // this function computes the weighted circumcenter and - // the weighted squared circumradius - // Translate p to origin and compute determinants FT num_x, num_y, num_z, den; determinants_for_weighted_circumcenterC3(px, py, pz, pw, @@ -672,9 +748,10 @@ z = pz + num_z*inv; w = (CGAL_NTS square(num_x) + CGAL_NTS square(num_y) + CGAL_NTS square(num_z)) - *CGAL_NTS square(inv) - pw; + * CGAL_NTS square(inv) - pw; } +// this function computes the weighted squared circumradius only template< class FT > CGAL_MEDIUM_INLINE FT @@ -683,9 +760,6 @@ const FT &qx, const FT &qy, const FT &qz, const FT &qw, const FT &rx, const FT &ry, const FT &rz, const FT &rw) { - // this function computes the weighted squared circumradius only - - // Translate p to origin and compute determinants FT num_x, num_y, num_z, den; determinants_for_weighted_circumcenterC3(px, py, pz, pw, qx, qy, qz, qw, @@ -699,18 +773,17 @@ * CGAL_NTS square(inv) - pw; } +// this function computes the weighted circumcenter point only template < class FT > void weighted_circumcenterC3(const FT &px, const FT &py, const FT &pz, const FT &pw, const FT &qx, const FT &qy, const FT &qz, const FT &qw, FT &x, FT &y, FT &z) { -// this function computes the weighted circumcenter point only FT qpx = qx - px; FT qpy = qy - py; FT qpz = qz - pz; - FT qp2 = CGAL_NTS square(qpx) + CGAL_NTS square(qpy) + - CGAL_NTS square(qpz); + FT qp2 = CGAL_NTS square(qpx) + CGAL_NTS square(qpy) + CGAL_NTS square(qpz); FT inv = FT(1) / (FT(2) * qp2); FT alpha = 1 / FT(2) + (pw-qw) * inv; @@ -719,14 +792,13 @@ z = pz + alpha * qpz; } +// this function computes the weighted circumcenter point and the weighted circumradius template < class FT > void weighted_circumcenterC3(const FT &px, const FT &py, const FT &pz, const FT &pw, const FT &qx, const FT &qy, const FT &qz, const FT &qw, FT &x, FT &y, FT &z, FT &w) { - // this function computes the weighted circumcenter point and - // the weighted circumradius FT qpx = qx - px; FT qpy = qy - py; FT qpz = qz - pz; @@ -742,6 +814,7 @@ w = CGAL_NTS square(alpha) * qp2 - pw; } +// this function computes the weighted circumradius only template< class FT > CGAL_MEDIUM_INLINE FT @@ -749,7 +822,6 @@ const FT &px, const FT &py, const FT &pz, const FT &pw, const FT &qx, const FT &qy, const FT &qz, const FT &qw) { - // this function computes the weighted circumradius only FT qpx = qx - px; FT qpy = qy - py; FT qpz = qz - pz; diff -Nru cgal-5.4.1/include/CGAL/constructions/Polygon_offset_cons_ftC2.h cgal-5.5/include/CGAL/constructions/Polygon_offset_cons_ftC2.h --- cgal-5.4.1/include/CGAL/constructions/Polygon_offset_cons_ftC2.h 2022-06-03 19:05:50.000000000 +0000 +++ cgal-5.5/include/CGAL/constructions/Polygon_offset_cons_ftC2.h 2022-07-13 19:06:47.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Straight_skeleton_2/include/CGAL/constructions/Polygon_offset_cons_ftC2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Straight_skeleton_2/include/CGAL/constructions/Polygon_offset_cons_ftC2.h $ // $Id: Polygon_offset_cons_ftC2.h 13f19c4 2020-10-07T19:28:54+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/constructions/Straight_skeleton_cons_ftC2.h cgal-5.5/include/CGAL/constructions/Straight_skeleton_cons_ftC2.h --- cgal-5.4.1/include/CGAL/constructions/Straight_skeleton_cons_ftC2.h 2022-06-03 19:05:50.000000000 +0000 +++ cgal-5.5/include/CGAL/constructions/Straight_skeleton_cons_ftC2.h 2022-07-13 19:06:47.000000000 +0000 @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Straight_skeleton_2/include/CGAL/constructions/Straight_skeleton_cons_ftC2.h $ -// $Id: Straight_skeleton_cons_ftC2.h 7d311d3 2020-11-27T13:54:22+01:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Straight_skeleton_2/include/CGAL/constructions/Straight_skeleton_cons_ftC2.h $ +// $Id: Straight_skeleton_cons_ftC2.h 45b5fd4 2022-07-06T12:58:49+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Fernando Cacciola @@ -45,7 +45,7 @@ template bool are_edges_orderly_collinear( Segment_2_with_ID const& e0, Segment_2_with_ID const& e1 ) { - return are_edges_collinear(e0,e1) & are_parallel_edges_equally_oriented(e0,e1); + return are_edges_collinear(e0,e1) && are_parallel_edges_equally_oriented(e0,e1); } diff -Nru cgal-5.4.1/include/CGAL/constructions_d.h cgal-5.5/include/CGAL/constructions_d.h --- cgal-5.4.1/include/CGAL/constructions_d.h 2022-06-03 19:04:39.000000000 +0000 +++ cgal-5.5/include/CGAL/constructions_d.h 2022-07-13 19:05:31.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_d/include/CGAL/constructions_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_d/include/CGAL/constructions_d.h $ // $Id: constructions_d.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Construct_theta_graph_2.h cgal-5.5/include/CGAL/Construct_theta_graph_2.h --- cgal-5.4.1/include/CGAL/Construct_theta_graph_2.h 2022-06-03 19:04:07.000000000 +0000 +++ cgal-5.5/include/CGAL/Construct_theta_graph_2.h 2022-07-13 19:04:54.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cone_spanners_2/include/CGAL/Construct_theta_graph_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cone_spanners_2/include/CGAL/Construct_theta_graph_2.h $ // $Id: Construct_theta_graph_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Construct_yao_graph_2.h cgal-5.5/include/CGAL/Construct_yao_graph_2.h --- cgal-5.4.1/include/CGAL/Construct_yao_graph_2.h 2022-06-03 19:04:07.000000000 +0000 +++ cgal-5.5/include/CGAL/Construct_yao_graph_2.h 2022-07-13 19:04:54.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cone_spanners_2/include/CGAL/Construct_yao_graph_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cone_spanners_2/include/CGAL/Construct_yao_graph_2.h $ // $Id: Construct_yao_graph_2.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Container_helper.h cgal-5.5/include/CGAL/Container_helper.h --- cgal-5.4.1/include/CGAL/Container_helper.h 2022-06-03 19:05:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Container_helper.h 2022-07-13 19:06:27.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/Container_helper.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/Container_helper.h $ // $Id: Container_helper.h 8bb22d5 2020-03-26T14:23:37+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/convert_to_bfi.h cgal-5.5/include/CGAL/convert_to_bfi.h --- cgal-5.4.1/include/CGAL/convert_to_bfi.h 2022-06-03 19:04:28.000000000 +0000 +++ cgal-5.5/include/CGAL/convert_to_bfi.h 2022-07-13 19:05:19.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Interval_support/include/CGAL/convert_to_bfi.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Interval_support/include/CGAL/convert_to_bfi.h $ // $Id: convert_to_bfi.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Convex_decomposition_3/Edge_sorter.h cgal-5.5/include/CGAL/Convex_decomposition_3/Edge_sorter.h --- cgal-5.4.1/include/CGAL/Convex_decomposition_3/Edge_sorter.h 2022-06-03 19:04:07.000000000 +0000 +++ cgal-5.5/include/CGAL/Convex_decomposition_3/Edge_sorter.h 2022-07-13 19:04:54.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Convex_decomposition_3/include/CGAL/Convex_decomposition_3/Edge_sorter.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Convex_decomposition_3/include/CGAL/Convex_decomposition_3/Edge_sorter.h $ // $Id: Edge_sorter.h 1a08127 2020-11-18T07:43:12+00:00 Giles Bathgate // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Convex_decomposition_3/External_structure_builder.h cgal-5.5/include/CGAL/Convex_decomposition_3/External_structure_builder.h --- cgal-5.4.1/include/CGAL/Convex_decomposition_3/External_structure_builder.h 2022-06-03 19:04:07.000000000 +0000 +++ cgal-5.5/include/CGAL/Convex_decomposition_3/External_structure_builder.h 2022-07-13 19:04:55.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Convex_decomposition_3/include/CGAL/Convex_decomposition_3/External_structure_builder.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Convex_decomposition_3/include/CGAL/Convex_decomposition_3/External_structure_builder.h $ // $Id: External_structure_builder.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Convex_decomposition_3/Insert_vertex_into_edge.h cgal-5.5/include/CGAL/Convex_decomposition_3/Insert_vertex_into_edge.h --- cgal-5.4.1/include/CGAL/Convex_decomposition_3/Insert_vertex_into_edge.h 2022-06-03 19:04:07.000000000 +0000 +++ cgal-5.5/include/CGAL/Convex_decomposition_3/Insert_vertex_into_edge.h 2022-07-13 19:04:55.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Convex_decomposition_3/include/CGAL/Convex_decomposition_3/Insert_vertex_into_edge.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Convex_decomposition_3/include/CGAL/Convex_decomposition_3/Insert_vertex_into_edge.h $ // $Id: Insert_vertex_into_edge.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Convex_decomposition_3/is_reflex_sedge.h cgal-5.5/include/CGAL/Convex_decomposition_3/is_reflex_sedge.h --- cgal-5.4.1/include/CGAL/Convex_decomposition_3/is_reflex_sedge.h 2022-06-03 19:04:07.000000000 +0000 +++ cgal-5.5/include/CGAL/Convex_decomposition_3/is_reflex_sedge.h 2022-07-13 19:04:55.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Convex_decomposition_3/include/CGAL/Convex_decomposition_3/is_reflex_sedge.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Convex_decomposition_3/include/CGAL/Convex_decomposition_3/is_reflex_sedge.h $ // $Id: is_reflex_sedge.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Convex_decomposition_3/Ray_hit_generator2.h cgal-5.5/include/CGAL/Convex_decomposition_3/Ray_hit_generator2.h --- cgal-5.4.1/include/CGAL/Convex_decomposition_3/Ray_hit_generator2.h 2022-06-03 19:04:07.000000000 +0000 +++ cgal-5.5/include/CGAL/Convex_decomposition_3/Ray_hit_generator2.h 2022-07-13 19:04:55.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Convex_decomposition_3/include/CGAL/Convex_decomposition_3/Ray_hit_generator2.h $ -// $Id: Ray_hit_generator2.h 2d9dc6c 2021-09-29T11:46:58+02:00 Laurent Rineau +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Convex_decomposition_3/include/CGAL/Convex_decomposition_3/Ray_hit_generator2.h $ +// $Id: Ray_hit_generator2.h 1172c9d 2022-03-29T17:48:17+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -18,6 +18,7 @@ #include #include #include +#include #undef CGAL_NEF_DEBUG #define CGAL_NEF_DEBUG 233 @@ -26,42 +27,23 @@ namespace CGAL { template -class Ray_hit_generator2 : public Modifier_base { - +class Ray_hit_generator2 : public Ray_hit_generator { typedef Nef_ Nef_polyhedron; typedef typename Nef_polyhedron::SNC_and_PL SNC_and_PL; typedef typename Nef_polyhedron::SNC_structure SNC_structure; - typedef typename Nef_polyhedron::Items Items; - typedef CGAL::SNC_decorator Base; - typedef CGAL::SNC_point_locator SNC_point_locator; - typedef CGAL::SNC_intersection SNC_intersection; - typedef CGAL::SNC_constructor - SNC_constructor; + typedef Ray_hit_generator Base; typedef typename SNC_structure::Sphere_map Sphere_map; - typedef CGAL::SM_decorator SM_decorator; - typedef CGAL::SM_point_locator SM_point_locator; typedef CGAL::SM_walls SM_walls; - typedef typename Base::Segment_3 Segment_3; - typedef typename Base::Point_3 Point_3; typedef typename Base::Ray_3 Ray_3; typedef typename Base::Vector_3 Vector_3; typedef typename Base::Sphere_point Sphere_point; typedef typename Base::Vertex_handle Vertex_handle; - typedef typename Base::SVertex_handle SVertex_handle; + typedef typename Base::SVertex_handle SVertex_handle; typedef typename Base::Halfedge_handle Halfedge_handle; - typedef typename Base::Halffacet_handle Halffacet_handle; - typedef typename Base::Object_handle Object_handle; - - typedef typename Base::Vertex_iterator Vertex_iterator; - typedef typename Base::SVertex_iterator SVertex_iterator; - Vector_3 dir; Vertex_handle vs; - SNC_structure* sncp; - SNC_point_locator* pl; - bool edge_splitted; Halfedge_handle second_half; @@ -70,65 +52,9 @@ public: Ray_hit_generator2(Vector_3 d, Vertex_handle v) - : dir(d), vs(v), sncp(nullptr), pl(nullptr), edge_splitted(false), vertex_added(false) {} - - Vertex_handle create_vertex_on_first_hit(const Ray_3& r) { - - CGAL_NEF_TRACEN("shoot ray in SNC " << r); - - // CGAL_NEF_SETDTHREAD(503*509); - Object_handle o = pl->shoot(r); - // CGAL_NEF_SETDTHREAD(1); - - Vertex_handle v; - if(assign(v, o)) { - CGAL_NEF_TRACEN("Found vertex " << v->point()); - return v; - } - - Point_3 ip; - SNC_intersection I; - SNC_constructor C(*sncp); - - Halfedge_handle e; - if(assign(e, o)) { - CGAL_NEF_TRACEN("Found edge " << e->source()->point() - << "->" << e->twin()->source()->point()); - Segment_3 seg(e->source()->point(), e->twin()->source()->point()); - I.does_intersect_internally(r, seg, ip); - ip = normalized(ip); - v = C.create_from_edge(e,ip); - pl->add_vertex(v); - - CGAL_NEF_TRACEN("new vertex " << ip); - - SVertex_iterator svi = v->svertices_begin(); - SVertex_handle svf = svi; - SVertex_handle svb = ++svi; - - if(svf->point() == e->point()) { - svb->twin() = e; - svf->twin() = e->twin(); - e->twin()->twin() = svf; - e->twin() = svb; -#ifndef CGAL_NEF_NO_INDEXED_ITEMS - svb->set_index(e->get_index()); - svf->twin()->set_index(svf->new_index()); -#endif - } else { - svf->twin() = e; - svb->twin() = e->twin(); - e->twin()->twin() = svb; - e->twin() = svf; -#ifndef CGAL_NEF_NO_INDEXED_ITEMS - svf->set_index(e->get_index()); - svb->twin()->set_index(svb->new_index()); -#endif - } - - pl->add_edge(svf); - pl->add_edge(svb); + : Base(d), vs(v), edge_splitted(false), vertex_added(false) {} + void handle_splits(Halfedge_handle e, SVertex_handle svf, SVertex_handle svb) override { edge_splitted = true; if(e->source()->point() < e->twin()->source()->point()) second_half = svf; @@ -141,28 +67,11 @@ << "->" << second_half->twin()->source()->point()); vertex_added = true; - return v; - } - - Halffacet_handle f; - if(assign(f, o)) { - CGAL_NEF_TRACEN("Found facet "); - I.does_intersect_internally(r, f, ip); - ip = normalized(ip); - v = C.create_from_facet(f,ip); - pl->add_vertex(v); - CGAL_NEF_TRACEN("new vertex " << ip); - - return v; - } - - CGAL_error_msg( "ray should hit vertex, edge, or facet"); - return Vertex_handle(); } - void operator()(SNC_and_PL& sncpl) { - sncp = sncpl.sncp; - pl = sncpl.pl; + void operator()(SNC_and_PL& sncpl) override { + Base::sncp = sncpl.sncp; + Base::pl = sncpl.pl; edge_splitted = false; vertex_added = false; @@ -171,11 +80,11 @@ << " (" << dir << ")"); SM_walls smw(&*vs); SVertex_handle sv1, sv2; - if(smw.need_to_shoot(Sphere_point(dir),sv1)) { - Ray_3 r(vs->point(), dir); - v_new = create_vertex_on_first_hit(r); + if(smw.need_to_shoot(Sphere_point(Base::dir),sv1)) { + Ray_3 r(vs->point(), Base::dir); + v_new = Base::create_vertex_on_first_hit(r); SM_walls smw(&*v_new); - sv2 = smw.add_ray_svertex(Sphere_point(-dir)); + sv2 = smw.add_ray_svertex(Sphere_point(-Base::dir)); CGAL_NEF_TRACEN("sv1 " << sv1->source()->point() << "( " << sv1->point() << ")"); CGAL_NEF_TRACEN("sv2 " << sv2->source()->point() << "( " << sv2->point() << ")"); sv1->twin() = sv2; // TODO: why is this necessary? diff -Nru cgal-5.4.1/include/CGAL/Convex_decomposition_3/Ray_hit_generator.h cgal-5.5/include/CGAL/Convex_decomposition_3/Ray_hit_generator.h --- cgal-5.4.1/include/CGAL/Convex_decomposition_3/Ray_hit_generator.h 2022-06-03 19:04:07.000000000 +0000 +++ cgal-5.5/include/CGAL/Convex_decomposition_3/Ray_hit_generator.h 2022-07-13 19:04:55.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Convex_decomposition_3/include/CGAL/Convex_decomposition_3/Ray_hit_generator.h $ -// $Id: Ray_hit_generator.h 30e536b 2021-03-01T08:06:48+00:00 Giles Bathgate +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Convex_decomposition_3/include/CGAL/Convex_decomposition_3/Ray_hit_generator.h $ +// $Id: Ray_hit_generator.h 1172c9d 2022-03-29T17:48:17+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -28,7 +28,7 @@ template class Ray_hit_generator : public Modifier_base { - +protected: typedef Nef_ Nef_polyhedron; typedef typename Nef_polyhedron::SNC_and_PL SNC_and_PL; typedef typename Nef_polyhedron::SNC_structure SNC_structure; @@ -50,13 +50,15 @@ typedef typename Base::Vector_3 Vector_3; typedef typename Base::Sphere_point Sphere_point; typedef typename Base::Vertex_handle Vertex_handle; - typedef typename Base::SVertex_handle SVertex_handle; + typedef typename Base::SVertex_handle SVertex_handle; typedef typename Base::Halfedge_handle Halfedge_handle; typedef typename Base::Halffacet_handle Halffacet_handle; typedef typename Base::Object_handle Object_handle; typedef typename Base::Vertex_iterator Vertex_iterator; - typedef typename Base::SVertex_iterator SVertex_iterator; + typedef typename Base::SVertex_iterator SVertex_iterator; + + Vector_3 dir; SNC_structure* sncp; @@ -64,7 +66,7 @@ int mask; public: - Ray_hit_generator(Vector_3 d = Vector_3()) : dir(d), mask(255) {} + Ray_hit_generator(Vector_3 d = Vector_3()) : dir(d), sncp(nullptr), pl(nullptr), mask(255) {} Ray_hit_generator(SNC_structure* sncin, SNC_point_locator* plin, int m = 255) : sncp(sncin), pl(plin), mask(m) {} @@ -76,25 +78,24 @@ Vertex_handle v; if(assign(v, o)) { - CGAL_NEF_TRACEN( "Found vertex " << v->point() ); + CGAL_NEF_TRACEN("Found vertex " << v->point()); return v; } Point_3 ip; - SNC_intersection I; SNC_constructor C(*sncp); Halfedge_handle e; if(assign(e, o)) { - CGAL_NEF_TRACEN( "Found edge " << e->source()->point() - << "->" << e->twin()->source()->point() ); + CGAL_NEF_TRACEN("Found edge " << e->source()->point() + << "->" << e->twin()->source()->point()); Segment_3 seg(e->source()->point(), e->twin()->source()->point()); - I.does_intersect_internally(r, seg, ip); + SNC_intersection::does_intersect_internally(r, seg, ip); ip = normalized(ip); v = C.create_from_edge(e,ip); pl->add_vertex(v); - CGAL_NEF_TRACEN( "new vertex " << ip ); + CGAL_NEF_TRACEN("new vertex " << ip); SVertex_iterator svi = v->svertices_begin(); SVertex_handle svf = svi; @@ -120,26 +121,21 @@ #endif } - // TODO: that's too much pl->add_edge(svf); pl->add_edge(svb); - CGAL_NEF_TRACEN("new edge " << e->source()->point() << - "->" << e->twin()->source()->point()); - CGAL_NEF_TRACEN("new edge " << svf->source()->point() << - "->" << svf->twin()->source()->point()); - + handle_splits(e,svf,svb); return v; } Halffacet_handle f; if(assign(f, o)) { - CGAL_NEF_TRACEN( "Found facet " ); - I.does_intersect_internally(r, f, ip); + CGAL_NEF_TRACEN("Found facet "); + SNC_intersection::does_intersect_internally(r, f, ip); ip = normalized(ip); v = C.create_from_facet(f,ip); pl->add_vertex(v); - CGAL_NEF_TRACEN( "new vertex " << ip ); + CGAL_NEF_TRACEN("new vertex " << ip); return v; } @@ -148,7 +144,15 @@ return Vertex_handle(); } - void operator()(SNC_and_PL& sncpl) { + virtual void handle_splits(Halfedge_handle, SVertex_handle, SVertex_handle) { + CGAL_NEF_TRACEN("new edge " << e->source()->point() << + "->" << e->twin()->source()->point()); + CGAL_NEF_TRACEN("new edge " << svf->source()->point() << + "->" << svf->twin()->source()->point()); + + } + + virtual void operator()(SNC_and_PL& sncpl) { sncp = sncpl.sncp; pl = sncpl.pl; diff -Nru cgal-5.4.1/include/CGAL/Convex_decomposition_3/Reflex_edge_searcher.h cgal-5.5/include/CGAL/Convex_decomposition_3/Reflex_edge_searcher.h --- cgal-5.4.1/include/CGAL/Convex_decomposition_3/Reflex_edge_searcher.h 2022-06-03 19:04:07.000000000 +0000 +++ cgal-5.5/include/CGAL/Convex_decomposition_3/Reflex_edge_searcher.h 2022-07-13 19:04:55.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Convex_decomposition_3/include/CGAL/Convex_decomposition_3/Reflex_edge_searcher.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Convex_decomposition_3/include/CGAL/Convex_decomposition_3/Reflex_edge_searcher.h $ // $Id: Reflex_edge_searcher.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Convex_decomposition_3/Reflex_vertex_searcher.h cgal-5.5/include/CGAL/Convex_decomposition_3/Reflex_vertex_searcher.h --- cgal-5.4.1/include/CGAL/Convex_decomposition_3/Reflex_vertex_searcher.h 2022-06-03 19:04:07.000000000 +0000 +++ cgal-5.5/include/CGAL/Convex_decomposition_3/Reflex_vertex_searcher.h 2022-07-13 19:04:55.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Convex_decomposition_3/include/CGAL/Convex_decomposition_3/Reflex_vertex_searcher.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Convex_decomposition_3/include/CGAL/Convex_decomposition_3/Reflex_vertex_searcher.h $ // $Id: Reflex_vertex_searcher.h 4229fa4 2021-04-27T22:34:01+01:00 Giles Bathgate // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Convex_decomposition_3/SFace_separator.h cgal-5.5/include/CGAL/Convex_decomposition_3/SFace_separator.h --- cgal-5.4.1/include/CGAL/Convex_decomposition_3/SFace_separator.h 2022-06-03 19:04:07.000000000 +0000 +++ cgal-5.5/include/CGAL/Convex_decomposition_3/SFace_separator.h 2022-07-13 19:04:55.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Convex_decomposition_3/include/CGAL/Convex_decomposition_3/SFace_separator.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Convex_decomposition_3/include/CGAL/Convex_decomposition_3/SFace_separator.h $ // $Id: SFace_separator.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Convex_decomposition_3/Single_wall_creator2.h cgal-5.5/include/CGAL/Convex_decomposition_3/Single_wall_creator2.h --- cgal-5.4.1/include/CGAL/Convex_decomposition_3/Single_wall_creator2.h 2022-06-03 19:04:07.000000000 +0000 +++ cgal-5.5/include/CGAL/Convex_decomposition_3/Single_wall_creator2.h 2022-07-13 19:04:55.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Convex_decomposition_3/include/CGAL/Convex_decomposition_3/Single_wall_creator2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Convex_decomposition_3/include/CGAL/Convex_decomposition_3/Single_wall_creator2.h $ // $Id: Single_wall_creator2.h 30e536b 2021-03-01T08:06:48+00:00 Giles Bathgate // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Convex_decomposition_3/Single_wall_creator3.h cgal-5.5/include/CGAL/Convex_decomposition_3/Single_wall_creator3.h --- cgal-5.4.1/include/CGAL/Convex_decomposition_3/Single_wall_creator3.h 2022-06-03 19:04:07.000000000 +0000 +++ cgal-5.5/include/CGAL/Convex_decomposition_3/Single_wall_creator3.h 2022-07-13 19:04:55.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Convex_decomposition_3/include/CGAL/Convex_decomposition_3/Single_wall_creator3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Convex_decomposition_3/include/CGAL/Convex_decomposition_3/Single_wall_creator3.h $ // $Id: Single_wall_creator3.h 30e536b 2021-03-01T08:06:48+00:00 Giles Bathgate // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Convex_decomposition_3/Single_wall_creator.h cgal-5.5/include/CGAL/Convex_decomposition_3/Single_wall_creator.h --- cgal-5.4.1/include/CGAL/Convex_decomposition_3/Single_wall_creator.h 2022-06-03 19:04:07.000000000 +0000 +++ cgal-5.5/include/CGAL/Convex_decomposition_3/Single_wall_creator.h 2022-07-13 19:04:55.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Convex_decomposition_3/include/CGAL/Convex_decomposition_3/Single_wall_creator.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Convex_decomposition_3/include/CGAL/Convex_decomposition_3/Single_wall_creator.h $ // $Id: Single_wall_creator.h 6831403 2021-09-29T11:47:08+02:00 Laurent Rineau // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Convex_decomposition_3/SM_walls.h cgal-5.5/include/CGAL/Convex_decomposition_3/SM_walls.h --- cgal-5.4.1/include/CGAL/Convex_decomposition_3/SM_walls.h 2022-06-03 19:04:07.000000000 +0000 +++ cgal-5.5/include/CGAL/Convex_decomposition_3/SM_walls.h 2022-07-13 19:04:55.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Convex_decomposition_3/include/CGAL/Convex_decomposition_3/SM_walls.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Convex_decomposition_3/include/CGAL/Convex_decomposition_3/SM_walls.h $ // $Id: SM_walls.h 30e536b 2021-03-01T08:06:48+00:00 Giles Bathgate // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Convex_decomposition_3/YVertical_wall_builder.h cgal-5.5/include/CGAL/Convex_decomposition_3/YVertical_wall_builder.h --- cgal-5.4.1/include/CGAL/Convex_decomposition_3/YVertical_wall_builder.h 2022-06-03 19:04:07.000000000 +0000 +++ cgal-5.5/include/CGAL/Convex_decomposition_3/YVertical_wall_builder.h 2022-07-13 19:04:55.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Convex_decomposition_3/include/CGAL/Convex_decomposition_3/YVertical_wall_builder.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Convex_decomposition_3/include/CGAL/Convex_decomposition_3/YVertical_wall_builder.h $ // $Id: YVertical_wall_builder.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/convex_decomposition_3.h cgal-5.5/include/CGAL/convex_decomposition_3.h --- cgal-5.4.1/include/CGAL/convex_decomposition_3.h 2022-06-03 19:04:07.000000000 +0000 +++ cgal-5.5/include/CGAL/convex_decomposition_3.h 2022-07-13 19:04:55.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Convex_decomposition_3/include/CGAL/convex_decomposition_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Convex_decomposition_3/include/CGAL/convex_decomposition_3.h $ // $Id: convex_decomposition_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Convex_hull_2/ch_akl_toussaint_impl.h cgal-5.5/include/CGAL/Convex_hull_2/ch_akl_toussaint_impl.h --- cgal-5.4.1/include/CGAL/Convex_hull_2/ch_akl_toussaint_impl.h 2022-06-03 19:04:08.000000000 +0000 +++ cgal-5.5/include/CGAL/Convex_hull_2/ch_akl_toussaint_impl.h 2022-07-13 19:04:55.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Convex_hull_2/include/CGAL/Convex_hull_2/ch_akl_toussaint_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Convex_hull_2/include/CGAL/Convex_hull_2/ch_akl_toussaint_impl.h $ // $Id: ch_akl_toussaint_impl.h 21755b1 2021-03-24T15:05:41+01:00 Laurent Rineau // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Convex_hull_2/ch_assertions.h cgal-5.5/include/CGAL/Convex_hull_2/ch_assertions.h --- cgal-5.4.1/include/CGAL/Convex_hull_2/ch_assertions.h 2022-06-03 19:04:08.000000000 +0000 +++ cgal-5.5/include/CGAL/Convex_hull_2/ch_assertions.h 2022-07-13 19:04:55.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Convex_hull_2/include/CGAL/Convex_hull_2/ch_assertions.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Convex_hull_2/include/CGAL/Convex_hull_2/ch_assertions.h $ // $Id: ch_assertions.h 5a36ff8 2020-12-04T08:02:26+00:00 Giles Bathgate // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Convex_hull_2/ch_bykat_impl.h cgal-5.5/include/CGAL/Convex_hull_2/ch_bykat_impl.h --- cgal-5.4.1/include/CGAL/Convex_hull_2/ch_bykat_impl.h 2022-06-03 19:04:08.000000000 +0000 +++ cgal-5.5/include/CGAL/Convex_hull_2/ch_bykat_impl.h 2022-07-13 19:04:55.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Convex_hull_2/include/CGAL/Convex_hull_2/ch_bykat_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Convex_hull_2/include/CGAL/Convex_hull_2/ch_bykat_impl.h $ // $Id: ch_bykat_impl.h 21755b1 2021-03-24T15:05:41+01:00 Laurent Rineau // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Convex_hull_2/ch_eddy_impl.h cgal-5.5/include/CGAL/Convex_hull_2/ch_eddy_impl.h --- cgal-5.4.1/include/CGAL/Convex_hull_2/ch_eddy_impl.h 2022-06-03 19:04:08.000000000 +0000 +++ cgal-5.5/include/CGAL/Convex_hull_2/ch_eddy_impl.h 2022-07-13 19:04:55.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Convex_hull_2/include/CGAL/Convex_hull_2/ch_eddy_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Convex_hull_2/include/CGAL/Convex_hull_2/ch_eddy_impl.h $ // $Id: ch_eddy_impl.h c4ad713 2021-01-05T11:40:22+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Convex_hull_2/ch_graham_andrew_impl.h cgal-5.5/include/CGAL/Convex_hull_2/ch_graham_andrew_impl.h --- cgal-5.4.1/include/CGAL/Convex_hull_2/ch_graham_andrew_impl.h 2022-06-03 19:04:08.000000000 +0000 +++ cgal-5.5/include/CGAL/Convex_hull_2/ch_graham_andrew_impl.h 2022-07-13 19:04:55.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Convex_hull_2/include/CGAL/Convex_hull_2/ch_graham_andrew_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Convex_hull_2/include/CGAL/Convex_hull_2/ch_graham_andrew_impl.h $ // $Id: ch_graham_andrew_impl.h 5a36ff8 2020-12-04T08:02:26+00:00 Giles Bathgate // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Convex_hull_2/ch_jarvis_impl.h cgal-5.5/include/CGAL/Convex_hull_2/ch_jarvis_impl.h --- cgal-5.4.1/include/CGAL/Convex_hull_2/ch_jarvis_impl.h 2022-06-03 19:04:08.000000000 +0000 +++ cgal-5.5/include/CGAL/Convex_hull_2/ch_jarvis_impl.h 2022-07-13 19:04:55.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Convex_hull_2/include/CGAL/Convex_hull_2/ch_jarvis_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Convex_hull_2/include/CGAL/Convex_hull_2/ch_jarvis_impl.h $ // $Id: ch_jarvis_impl.h 21755b1 2021-03-24T15:05:41+01:00 Laurent Rineau // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Convex_hull_2/ch_melkman_impl.h cgal-5.5/include/CGAL/Convex_hull_2/ch_melkman_impl.h --- cgal-5.4.1/include/CGAL/Convex_hull_2/ch_melkman_impl.h 2022-06-03 19:04:08.000000000 +0000 +++ cgal-5.5/include/CGAL/Convex_hull_2/ch_melkman_impl.h 2022-07-13 19:04:56.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Convex_hull_2/include/CGAL/Convex_hull_2/ch_melkman_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Convex_hull_2/include/CGAL/Convex_hull_2/ch_melkman_impl.h $ // $Id: ch_melkman_impl.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Convex_hull_2/ch_selected_extreme_points_2_impl.h cgal-5.5/include/CGAL/Convex_hull_2/ch_selected_extreme_points_2_impl.h --- cgal-5.4.1/include/CGAL/Convex_hull_2/ch_selected_extreme_points_2_impl.h 2022-06-03 19:04:08.000000000 +0000 +++ cgal-5.5/include/CGAL/Convex_hull_2/ch_selected_extreme_points_2_impl.h 2022-07-13 19:04:56.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Convex_hull_2/include/CGAL/Convex_hull_2/ch_selected_extreme_points_2_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Convex_hull_2/include/CGAL/Convex_hull_2/ch_selected_extreme_points_2_impl.h $ // $Id: ch_selected_extreme_points_2_impl.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Convex_hull_2/convexity_check_2_impl.h cgal-5.5/include/CGAL/Convex_hull_2/convexity_check_2_impl.h --- cgal-5.4.1/include/CGAL/Convex_hull_2/convexity_check_2_impl.h 2022-06-03 19:04:08.000000000 +0000 +++ cgal-5.5/include/CGAL/Convex_hull_2/convexity_check_2_impl.h 2022-07-13 19:04:56.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Convex_hull_2/include/CGAL/Convex_hull_2/convexity_check_2_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Convex_hull_2/include/CGAL/Convex_hull_2/convexity_check_2_impl.h $ // $Id: convexity_check_2_impl.h 4bb0406 2021-02-04T18:12:12+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/convex_hull_2.h cgal-5.5/include/CGAL/convex_hull_2.h --- cgal-5.4.1/include/CGAL/convex_hull_2.h 2022-06-03 19:04:08.000000000 +0000 +++ cgal-5.5/include/CGAL/convex_hull_2.h 2022-07-13 19:04:56.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Convex_hull_2/include/CGAL/convex_hull_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Convex_hull_2/include/CGAL/convex_hull_2.h $ // $Id: convex_hull_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Convex_hull_3/dual/Convex_hull_traits_dual_2.h cgal-5.5/include/CGAL/Convex_hull_3/dual/Convex_hull_traits_dual_2.h --- cgal-5.4.1/include/CGAL/Convex_hull_3/dual/Convex_hull_traits_dual_2.h 2022-06-03 19:04:09.000000000 +0000 +++ cgal-5.5/include/CGAL/Convex_hull_3/dual/Convex_hull_traits_dual_2.h 2022-07-13 19:04:57.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Convex_hull_3/include/CGAL/Convex_hull_3/dual/Convex_hull_traits_dual_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Convex_hull_3/include/CGAL/Convex_hull_3/dual/Convex_hull_traits_dual_2.h $ // $Id: Convex_hull_traits_dual_2.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Convex_hull_3/dual/Convex_hull_traits_dual_3.h cgal-5.5/include/CGAL/Convex_hull_3/dual/Convex_hull_traits_dual_3.h --- cgal-5.4.1/include/CGAL/Convex_hull_3/dual/Convex_hull_traits_dual_3.h 2022-06-03 19:04:09.000000000 +0000 +++ cgal-5.5/include/CGAL/Convex_hull_3/dual/Convex_hull_traits_dual_3.h 2022-07-13 19:04:57.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Convex_hull_3/include/CGAL/Convex_hull_3/dual/Convex_hull_traits_dual_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Convex_hull_3/include/CGAL/Convex_hull_3/dual/Convex_hull_traits_dual_3.h $ // $Id: Convex_hull_traits_dual_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Convex_hull_3/dual/halfspace_intersection_3.h cgal-5.5/include/CGAL/Convex_hull_3/dual/halfspace_intersection_3.h --- cgal-5.4.1/include/CGAL/Convex_hull_3/dual/halfspace_intersection_3.h 2022-06-03 19:04:09.000000000 +0000 +++ cgal-5.5/include/CGAL/Convex_hull_3/dual/halfspace_intersection_3.h 2022-07-13 19:04:57.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Convex_hull_3/include/CGAL/Convex_hull_3/dual/halfspace_intersection_3.h $ -// $Id: halfspace_intersection_3.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Convex_hull_3/include/CGAL/Convex_hull_3/dual/halfspace_intersection_3.h $ +// $Id: halfspace_intersection_3.h 4ffc949 2022-02-03T17:11:20+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -29,7 +29,7 @@ #include #include -#include +#include #include #include @@ -72,7 +72,7 @@ Plane_3 > > result_inter; - boost::unordered_map primal_vertices; + std::unordered_map primal_vertices; size_t n = 0; // First, computing the primal vertices diff -Nru cgal-5.4.1/include/CGAL/Convex_hull_3/dual/halfspace_intersection_interior_point_3.h cgal-5.5/include/CGAL/Convex_hull_3/dual/halfspace_intersection_interior_point_3.h --- cgal-5.4.1/include/CGAL/Convex_hull_3/dual/halfspace_intersection_interior_point_3.h 2022-06-03 19:04:09.000000000 +0000 +++ cgal-5.5/include/CGAL/Convex_hull_3/dual/halfspace_intersection_interior_point_3.h 2022-07-13 19:04:57.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Convex_hull_3/include/CGAL/Convex_hull_3/dual/halfspace_intersection_interior_point_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Convex_hull_3/include/CGAL/Convex_hull_3/dual/halfspace_intersection_interior_point_3.h $ // $Id: halfspace_intersection_interior_point_3.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Convex_hull_3/dual/halfspace_intersection_with_constructions_3.h cgal-5.5/include/CGAL/Convex_hull_3/dual/halfspace_intersection_with_constructions_3.h --- cgal-5.4.1/include/CGAL/Convex_hull_3/dual/halfspace_intersection_with_constructions_3.h 2022-06-03 19:04:09.000000000 +0000 +++ cgal-5.5/include/CGAL/Convex_hull_3/dual/halfspace_intersection_with_constructions_3.h 2022-07-13 19:04:57.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Convex_hull_3/include/CGAL/Convex_hull_3/dual/halfspace_intersection_with_constructions_3.h $ -// $Id: halfspace_intersection_with_constructions_3.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Convex_hull_3/include/CGAL/Convex_hull_3/dual/halfspace_intersection_with_constructions_3.h $ +// $Id: halfspace_intersection_with_constructions_3.h 4ffc949 2022-02-03T17:11:20+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -26,7 +26,7 @@ #include #include -#include +#include #include #include @@ -51,7 +51,7 @@ typename boost::property_map::type vpm_dual = get(CGAL::vertex_point, dual); // compute coordinates of extreme vertices in the dual polyhedron // from primal faces - boost::unordered_map extreme_points; + std::unordered_map extreme_points; for(face_descriptor fd : faces( primal)){ halfedge_descriptor h = halfedge(fd,primal); diff -Nru cgal-5.4.1/include/CGAL/Convex_hull_3/dual/predicates.h cgal-5.5/include/CGAL/Convex_hull_3/dual/predicates.h --- cgal-5.4.1/include/CGAL/Convex_hull_3/dual/predicates.h 2022-06-03 19:04:09.000000000 +0000 +++ cgal-5.5/include/CGAL/Convex_hull_3/dual/predicates.h 2022-07-13 19:04:57.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Convex_hull_3/include/CGAL/Convex_hull_3/dual/predicates.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Convex_hull_3/include/CGAL/Convex_hull_3/dual/predicates.h $ // $Id: predicates.h 46d1aea 2022-05-09T15:30:26+01:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Convex_hull_3/internal/Indexed_triangle_set.h cgal-5.5/include/CGAL/Convex_hull_3/internal/Indexed_triangle_set.h --- cgal-5.4.1/include/CGAL/Convex_hull_3/internal/Indexed_triangle_set.h 1970-01-01 00:00:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Convex_hull_3/internal/Indexed_triangle_set.h 2022-07-13 19:04:57.000000000 +0000 @@ -0,0 +1,149 @@ +// Copyright (c) 2021 GeometryFactory Sarl +// All rights reserved. +// +// This file is part of CGAL (www.cgal.org). +// +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Convex_hull_3/include/CGAL/Convex_hull_3/internal/Indexed_triangle_set.h $ +// $Id: Indexed_triangle_set.h cb4f549 2021-12-07T16:03:18+01:00 Sébastien Loriot +// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial +// +// +// Author(s) : Andreas Fabri + +#ifndef CGAL_INDEXED_TRIANGLE_SET_H +#define CGAL_INDEXED_TRIANGLE_SET_H + +#include +#include +#include + +#include +#include +#include +#include + +namespace CGAL { +namespace Convex_hull_3 { +namespace internal { + +template +struct Indexed_triangle_set +{ + V& vertices; + F& faces; + + typedef typename std::iterator_traits::value_type Index_triple; + typedef typename std::iterator_traits::value_type Index; + + Indexed_triangle_set(V& vertices, + F& faces) + : vertices(vertices), faces(faces) + {} +}; + +template +void add_isolated_points(const P& point, Indexed_triangle_set& its) +{ + its.vertices.push_back(point); +} + + +template +void copy_ch2_to_face_graph(const std::list

& CH_2, + Indexed_triangle_set& its) +{ + its.vertices.reserve(CH_2.size()); + CGAL::internal::resize(its.faces, CH_2.size()-2); + for(const P& p : CH_2){ + its.vertices.push_back(p); + } + + typedef typename Indexed_triangle_set::Index Index; + + for(std::size_t i = 1; i < CH_2.size()-1; ++i){ + CGAL::internal::resize(its.faces[i-1], 3); + its.faces[i-1][0] = static_cast(i); + its.faces[i-1][1] = static_cast(i + 1); + its.faces[i-1][2] = static_cast(i + 2); + } + +} + +} // namespace internal +} // namespace Convex_hull_3 + +template +void copy_face_graph(const TDS& tds, Convex_hull_3::internal::Indexed_triangle_set& its) +{ + typedef typename TDS::Vertex_iterator Vertex_iterator; + typedef typename TDS::Face_iterator Face_iterator; + CGAL::internal::resize(its.vertices, tds.number_of_vertices()); + CGAL::internal::resize(its.faces, tds.number_of_faces()); + typename Convex_hull_3::internal::Indexed_triangle_set::Index i = 0; + for(Vertex_iterator vit = tds.vertices_begin(); vit != tds.vertices_end(); ++vit){ + its.vertices[i] = vit->point(); + vit->info() = i++; + } + + i = 0; + for (Face_iterator fit = tds.faces_begin(); fit != tds.faces_end(); ++fit) { + CGAL::internal::resize(its.faces[i], 3); + its.faces[i][0] = fit->vertex(0)->info(); + its.faces[i][1] = fit->vertex(1)->info(); + its.faces[i][2] = fit->vertex(2)->info(); + ++i; + } +} + + +template +void clear(Convex_hull_3::internal::Indexed_triangle_set& its) +{ + CGAL::internal::resize(its.vertices, 0); + CGAL::internal::resize(its.faces, 0); +} + + +template +void make_tetrahedron(const P& p0, const P&p1, const P& p2, const P& p3, + Convex_hull_3::internal::Indexed_triangle_set& its) +{ CGAL::internal::resize(its.vertices, 4); + CGAL::internal::resize(its.faces, 4); + + its.vertices[0] = p0; + its.vertices[1] = p1; + its.vertices[2] = p2; + its.vertices[3] = p3; + for(std::size_t i = 0; i < 4; ++i){ + CGAL::internal::resize(its.faces[i], 3); + } + its.faces[0][0] = 0; + its.faces[0][1] = 1; + its.faces[0][2] = 2; + its.faces[1][0] = 1; + its.faces[1][1] = 0; + its.faces[1][2] = 3; + its.faces[2][0] = 3; + its.faces[2][1] = 0; + its.faces[2][2] = 2; + its.faces[3][0] = 2; + its.faces[3][1] = 1; + its.faces[3][2] = 3; +} + +} // namespace CGAL + +namespace boost { + +// this partial specialization is needed so that the general overload +// for make_tetrahedron can be eliminated as halfedge_descriptor is +// used in the returned type +template + struct graph_traits> +{ + typedef void* halfedge_descriptor; +}; + +} // namespace boost + +#endif // CGAL_INDEXED_TRIANGLE_SET_H diff -Nru cgal-5.4.1/include/CGAL/convex_hull_3.h cgal-5.5/include/CGAL/convex_hull_3.h --- cgal-5.4.1/include/CGAL/convex_hull_3.h 2022-06-03 19:04:09.000000000 +0000 +++ cgal-5.5/include/CGAL/convex_hull_3.h 2022-07-13 19:04:57.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Convex_hull_3/include/CGAL/convex_hull_3.h $ -// $Id: convex_hull_3.h 9ecb90c 2022-01-26T19:07:34+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Convex_hull_3/include/CGAL/convex_hull_3.h $ +// $Id: convex_hull_3.h 9bb36b0 2022-02-01T08:58:25+01:00 Laurent Rineau // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -29,10 +29,11 @@ #include #include #include +#include #include #include -#include +#include #include #include #include @@ -1058,10 +1059,10 @@ convex_hull_3(first, beyond, polyhedron, Traits()); } -template +template void convex_hull_3(const VertexListGraph& g, PolygonMesh& pm, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { using CGAL::parameters::choose_parameter; using CGAL::parameters::get_parameter; @@ -1076,13 +1077,38 @@ boost::make_transform_iterator(vertices(g).end(), v2p), pm); } -template -void convex_hull_3(const VertexListGraph& g, - PolygonMesh& pm) + + +template +void convex_hull_3(InputIterator first, InputIterator beyond, + PointRange& vertices, + TriangleRange& faces, + typename std::enable_if::value>::type* = 0, + typename std::enable_if::value>::type* = 0, + typename std::enable_if::value>::type* = 0) +{ + typedef typename std::iterator_traits::value_type Point_3; + typedef typename Kernel_traits::type Traits; + + Convex_hull_3::internal::Indexed_triangle_set its(vertices,faces); + convex_hull_3(first, beyond, its, Traits()); +} + + +template +void convex_hull_3(InputIterator first, InputIterator beyond, + PointRange& vertices, + TriangleRange& faces, + const Traits& traits, + typename std::enable_if::value>::type* = 0, + typename std::enable_if::value>::type* = 0, + typename std::enable_if::value>::type* = 0) { - convex_hull_3(g,pm,CGAL::parameters::all_default()); + Convex_hull_3::internal::Indexed_triangle_set its(vertices,faces); + convex_hull_3(first, beyond, its, traits); } + template OutputIterator extreme_points_3(const InputRange& range, diff -Nru cgal-5.4.1/include/CGAL/convex_hull_3_to_face_graph.h cgal-5.5/include/CGAL/convex_hull_3_to_face_graph.h --- cgal-5.4.1/include/CGAL/convex_hull_3_to_face_graph.h 2022-06-03 19:04:09.000000000 +0000 +++ cgal-5.5/include/CGAL/convex_hull_3_to_face_graph.h 2022-07-13 19:04:57.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Convex_hull_3/include/CGAL/convex_hull_3_to_face_graph.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Convex_hull_3/include/CGAL/convex_hull_3_to_face_graph.h $ // $Id: convex_hull_3_to_face_graph.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/convex_hull_constructive_traits_2.h cgal-5.5/include/CGAL/convex_hull_constructive_traits_2.h --- cgal-5.4.1/include/CGAL/convex_hull_constructive_traits_2.h 2022-06-03 19:04:08.000000000 +0000 +++ cgal-5.5/include/CGAL/convex_hull_constructive_traits_2.h 2022-07-13 19:04:56.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Convex_hull_2/include/CGAL/convex_hull_constructive_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Convex_hull_2/include/CGAL/convex_hull_constructive_traits_2.h $ // $Id: convex_hull_constructive_traits_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Convex_hull_d.h cgal-5.5/include/CGAL/Convex_hull_d.h --- cgal-5.4.1/include/CGAL/Convex_hull_d.h 2022-06-03 19:04:09.000000000 +0000 +++ cgal-5.5/include/CGAL/Convex_hull_d.h 2022-07-13 19:04:57.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Convex_hull_d/include/CGAL/Convex_hull_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Convex_hull_d/include/CGAL/Convex_hull_d.h $ // $Id: Convex_hull_d.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Convex_hull_d_to_polyhedron_3.h cgal-5.5/include/CGAL/Convex_hull_d_to_polyhedron_3.h --- cgal-5.4.1/include/CGAL/Convex_hull_d_to_polyhedron_3.h 2022-06-03 19:04:09.000000000 +0000 +++ cgal-5.5/include/CGAL/Convex_hull_d_to_polyhedron_3.h 2022-07-13 19:04:57.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Convex_hull_d/include/CGAL/Convex_hull_d_to_polyhedron_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Convex_hull_d/include/CGAL/Convex_hull_d_to_polyhedron_3.h $ // $Id: Convex_hull_d_to_polyhedron_3.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Convex_hull_d_traits_3.h cgal-5.5/include/CGAL/Convex_hull_d_traits_3.h --- cgal-5.4.1/include/CGAL/Convex_hull_d_traits_3.h 2022-06-03 19:04:09.000000000 +0000 +++ cgal-5.5/include/CGAL/Convex_hull_d_traits_3.h 2022-07-13 19:04:57.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Convex_hull_d/include/CGAL/Convex_hull_d_traits_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Convex_hull_d/include/CGAL/Convex_hull_d_traits_3.h $ // $Id: Convex_hull_d_traits_3.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Convex_hull_face_base_2.h cgal-5.5/include/CGAL/Convex_hull_face_base_2.h --- cgal-5.4.1/include/CGAL/Convex_hull_face_base_2.h 2022-06-03 19:04:09.000000000 +0000 +++ cgal-5.5/include/CGAL/Convex_hull_face_base_2.h 2022-07-13 19:04:57.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Convex_hull_3/include/CGAL/Convex_hull_face_base_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Convex_hull_3/include/CGAL/Convex_hull_face_base_2.h $ // $Id: Convex_hull_face_base_2.h 9ecb90c 2022-01-26T19:07:34+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Convex_hull_projective_xy_traits_2.h cgal-5.5/include/CGAL/Convex_hull_projective_xy_traits_2.h --- cgal-5.4.1/include/CGAL/Convex_hull_projective_xy_traits_2.h 2022-06-03 19:04:08.000000000 +0000 +++ cgal-5.5/include/CGAL/Convex_hull_projective_xy_traits_2.h 2022-07-13 19:04:56.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Convex_hull_2/include/CGAL/Convex_hull_projective_xy_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Convex_hull_2/include/CGAL/Convex_hull_projective_xy_traits_2.h $ // $Id: Convex_hull_projective_xy_traits_2.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Convex_hull_projective_xz_traits_2.h cgal-5.5/include/CGAL/Convex_hull_projective_xz_traits_2.h --- cgal-5.4.1/include/CGAL/Convex_hull_projective_xz_traits_2.h 2022-06-03 19:04:08.000000000 +0000 +++ cgal-5.5/include/CGAL/Convex_hull_projective_xz_traits_2.h 2022-07-13 19:04:56.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Convex_hull_2/include/CGAL/Convex_hull_projective_xz_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Convex_hull_2/include/CGAL/Convex_hull_projective_xz_traits_2.h $ // $Id: Convex_hull_projective_xz_traits_2.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Convex_hull_projective_yz_traits_2.h cgal-5.5/include/CGAL/Convex_hull_projective_yz_traits_2.h --- cgal-5.4.1/include/CGAL/Convex_hull_projective_yz_traits_2.h 2022-06-03 19:04:08.000000000 +0000 +++ cgal-5.5/include/CGAL/Convex_hull_projective_yz_traits_2.h 2022-07-13 19:04:56.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Convex_hull_2/include/CGAL/Convex_hull_projective_yz_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Convex_hull_2/include/CGAL/Convex_hull_projective_yz_traits_2.h $ // $Id: Convex_hull_projective_yz_traits_2.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/convex_hull_traits_2.h cgal-5.5/include/CGAL/convex_hull_traits_2.h --- cgal-5.4.1/include/CGAL/convex_hull_traits_2.h 2022-06-03 19:04:08.000000000 +0000 +++ cgal-5.5/include/CGAL/convex_hull_traits_2.h 2022-07-13 19:04:56.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Convex_hull_2/include/CGAL/convex_hull_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Convex_hull_2/include/CGAL/convex_hull_traits_2.h $ // $Id: convex_hull_traits_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Convex_hull_traits_3.h cgal-5.5/include/CGAL/Convex_hull_traits_3.h --- cgal-5.4.1/include/CGAL/Convex_hull_traits_3.h 2022-06-03 19:04:09.000000000 +0000 +++ cgal-5.5/include/CGAL/Convex_hull_traits_3.h 2022-07-13 19:04:57.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Convex_hull_3/include/CGAL/Convex_hull_traits_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Convex_hull_3/include/CGAL/Convex_hull_traits_3.h $ // $Id: Convex_hull_traits_3.h 61d42c3 2021-12-16T13:49:45+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Convex_hull_traits_adapter_2.h cgal-5.5/include/CGAL/Convex_hull_traits_adapter_2.h --- cgal-5.4.1/include/CGAL/Convex_hull_traits_adapter_2.h 2022-06-03 19:04:08.000000000 +0000 +++ cgal-5.5/include/CGAL/Convex_hull_traits_adapter_2.h 2022-07-13 19:04:56.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Convex_hull_2/include/CGAL/Convex_hull_traits_adapter_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Convex_hull_2/include/CGAL/Convex_hull_traits_adapter_2.h $ // $Id: Convex_hull_traits_adapter_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Convex_hull_vertex_base_2.h cgal-5.5/include/CGAL/Convex_hull_vertex_base_2.h --- cgal-5.4.1/include/CGAL/Convex_hull_vertex_base_2.h 2022-06-03 19:04:09.000000000 +0000 +++ cgal-5.5/include/CGAL/Convex_hull_vertex_base_2.h 2022-07-13 19:04:57.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Convex_hull_3/include/CGAL/Convex_hull_vertex_base_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Convex_hull_3/include/CGAL/Convex_hull_vertex_base_2.h $ // $Id: Convex_hull_vertex_base_2.h 9ecb90c 2022-01-26T19:07:34+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/convexity_check_2.h cgal-5.5/include/CGAL/convexity_check_2.h --- cgal-5.4.1/include/CGAL/convexity_check_2.h 2022-06-03 19:04:08.000000000 +0000 +++ cgal-5.5/include/CGAL/convexity_check_2.h 2022-07-13 19:04:56.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Convex_hull_2/include/CGAL/convexity_check_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Convex_hull_2/include/CGAL/convexity_check_2.h $ // $Id: convexity_check_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/convexity_check_3.h cgal-5.5/include/CGAL/convexity_check_3.h --- cgal-5.4.1/include/CGAL/convexity_check_3.h 2022-06-03 19:04:09.000000000 +0000 +++ cgal-5.5/include/CGAL/convexity_check_3.h 2022-07-13 19:04:57.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Convex_hull_3/include/CGAL/convexity_check_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Convex_hull_3/include/CGAL/convexity_check_3.h $ // $Id: convexity_check_3.h df61ad9 2020-11-12T10:56:40+01:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/copy_n.h cgal-5.5/include/CGAL/copy_n.h --- cgal-5.4.1/include/CGAL/copy_n.h 2022-06-03 19:05:33.000000000 +0000 +++ cgal-5.5/include/CGAL/copy_n.h 2022-07-13 19:06:28.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/copy_n.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/copy_n.h $ // $Id: copy_n.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/CORE/BigFloat.h cgal-5.5/include/CGAL/CORE/BigFloat.h --- cgal-5.4.1/include/CGAL/CORE/BigFloat.h 2022-06-03 19:03:54.000000000 +0000 +++ cgal-5.5/include/CGAL/CORE/BigFloat.h 2022-07-13 19:04:41.000000000 +0000 @@ -17,7 +17,7 @@ * WWW URL: http://cs.nyu.edu/exact/ * Email: exact@cs.nyu.edu * - * $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_Core/include/CGAL/CORE/BigFloat.h $ + * $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_Core/include/CGAL/CORE/BigFloat.h $ * $Id: BigFloat.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot * SPDX-License-Identifier: LGPL-3.0-or-later ***************************************************************************/ diff -Nru cgal-5.4.1/include/CGAL/CORE/BigFloat_impl.h cgal-5.5/include/CGAL/CORE/BigFloat_impl.h --- cgal-5.4.1/include/CGAL/CORE/BigFloat_impl.h 2022-06-03 19:03:54.000000000 +0000 +++ cgal-5.5/include/CGAL/CORE/BigFloat_impl.h 2022-07-13 19:04:41.000000000 +0000 @@ -26,7 +26,7 @@ * WWW URL: http://cs.nyu.edu/exact/ * Email: exact@cs.nyu.edu * - * $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_Core/include/CGAL/CORE/BigFloat_impl.h $ + * $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_Core/include/CGAL/CORE/BigFloat_impl.h $ * $Id: BigFloat_impl.h b6e2656 2021-09-15T11:36:00+01:00 Andreas Fabri * SPDX-License-Identifier: LGPL-3.0-or-later ***************************************************************************/ diff -Nru cgal-5.4.1/include/CGAL/CORE/BigFloatRep.h cgal-5.5/include/CGAL/CORE/BigFloatRep.h --- cgal-5.4.1/include/CGAL/CORE/BigFloatRep.h 2022-06-03 19:03:54.000000000 +0000 +++ cgal-5.5/include/CGAL/CORE/BigFloatRep.h 2022-07-13 19:04:41.000000000 +0000 @@ -17,7 +17,7 @@ * WWW URL: http://cs.nyu.edu/exact/ * Email: exact@cs.nyu.edu * - * $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_Core/include/CGAL/CORE/BigFloatRep.h $ + * $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_Core/include/CGAL/CORE/BigFloatRep.h $ * $Id: BigFloatRep.h 6680a6e 2021-11-09T16:20:48+01:00 Sébastien Loriot * SPDX-License-Identifier: LGPL-3.0-or-later ***************************************************************************/ diff -Nru cgal-5.4.1/include/CGAL/CORE/BigInt.h cgal-5.5/include/CGAL/CORE/BigInt.h --- cgal-5.4.1/include/CGAL/CORE/BigInt.h 2022-06-03 19:03:55.000000000 +0000 +++ cgal-5.5/include/CGAL/CORE/BigInt.h 2022-07-13 19:04:41.000000000 +0000 @@ -17,7 +17,7 @@ * WWW URL: http://cs.nyu.edu/exact/ * Email: exact@cs.nyu.edu * - * $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_Core/include/CGAL/CORE/BigInt.h $ + * $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_Core/include/CGAL/CORE/BigInt.h $ * $Id: BigInt.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot * SPDX-License-Identifier: LGPL-3.0-or-later ***************************************************************************/ diff -Nru cgal-5.4.1/include/CGAL/CORE/BigRat.h cgal-5.5/include/CGAL/CORE/BigRat.h --- cgal-5.4.1/include/CGAL/CORE/BigRat.h 2022-06-03 19:03:55.000000000 +0000 +++ cgal-5.5/include/CGAL/CORE/BigRat.h 2022-07-13 19:04:41.000000000 +0000 @@ -17,7 +17,7 @@ * WWW URL: http://cs.nyu.edu/exact/ * Email: exact@cs.nyu.edu * - * $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_Core/include/CGAL/CORE/BigRat.h $ + * $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_Core/include/CGAL/CORE/BigRat.h $ * $Id: BigRat.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot * SPDX-License-Identifier: LGPL-3.0-or-later ***************************************************************************/ diff -Nru cgal-5.4.1/include/CGAL/CORE/Config.h cgal-5.5/include/CGAL/CORE/Config.h --- cgal-5.4.1/include/CGAL/CORE/Config.h 2022-06-03 19:03:55.000000000 +0000 +++ cgal-5.5/include/CGAL/CORE/Config.h 2022-07-13 19:04:41.000000000 +0000 @@ -5,7 +5,7 @@ * * This file is part of CGAL (www.cgal.org). * - * $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_Core/include/CGAL/CORE/Config.h $ + * $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_Core/include/CGAL/CORE/Config.h $ * $Id: Config.h 26fb266 2019-10-19T16:28:33+02:00 Sébastien Loriot * SPDX-License-Identifier: LGPL-3.0-or-later ***************************************************************************/ diff -Nru cgal-5.4.1/include/CGAL/CORE/CoreAux.h cgal-5.5/include/CGAL/CORE/CoreAux.h --- cgal-5.4.1/include/CGAL/CORE/CoreAux.h 2022-06-03 19:03:55.000000000 +0000 +++ cgal-5.5/include/CGAL/CORE/CoreAux.h 2022-07-13 19:04:41.000000000 +0000 @@ -17,7 +17,7 @@ * WWW URL: http://cs.nyu.edu/exact/ * Email: exact@cs.nyu.edu * - * $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_Core/include/CGAL/CORE/CoreAux.h $ + * $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_Core/include/CGAL/CORE/CoreAux.h $ * $Id: CoreAux.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot * SPDX-License-Identifier: LGPL-3.0-or-later ***************************************************************************/ diff -Nru cgal-5.4.1/include/CGAL/CORE/CoreAux_impl.h cgal-5.5/include/CGAL/CORE/CoreAux_impl.h --- cgal-5.4.1/include/CGAL/CORE/CoreAux_impl.h 2022-06-03 19:03:55.000000000 +0000 +++ cgal-5.5/include/CGAL/CORE/CoreAux_impl.h 2022-07-13 19:04:41.000000000 +0000 @@ -18,7 +18,7 @@ * WWW URL: http://cs.nyu.edu/exact/ * Email: exact@cs.nyu.edu * - * $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_Core/include/CGAL/CORE/CoreAux_impl.h $ + * $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_Core/include/CGAL/CORE/CoreAux_impl.h $ * $Id: CoreAux_impl.h 625848e 2021-10-04T13:21:47+02:00 Mael Rouxel-Labbé * SPDX-License-Identifier: LGPL-3.0-or-later ***************************************************************************/ diff -Nru cgal-5.4.1/include/CGAL/CORE/CoreDefs.h cgal-5.5/include/CGAL/CORE/CoreDefs.h --- cgal-5.4.1/include/CGAL/CORE/CoreDefs.h 2022-06-03 19:03:55.000000000 +0000 +++ cgal-5.5/include/CGAL/CORE/CoreDefs.h 2022-07-13 19:04:41.000000000 +0000 @@ -20,7 +20,7 @@ * WWW URL: http://cs.nyu.edu/exact/ * Email: exact@cs.nyu.edu * - * $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_Core/include/CGAL/CORE/CoreDefs.h $ + * $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_Core/include/CGAL/CORE/CoreDefs.h $ * $Id: CoreDefs.h 3e03d50 2021-05-05T15:32:22+02:00 Maxime Gimeno * SPDX-License-Identifier: LGPL-3.0-or-later ***************************************************************************/ diff -Nru cgal-5.4.1/include/CGAL/CORE/CoreDefs_impl.h cgal-5.5/include/CGAL/CORE/CoreDefs_impl.h --- cgal-5.4.1/include/CGAL/CORE/CoreDefs_impl.h 2022-06-03 19:03:55.000000000 +0000 +++ cgal-5.5/include/CGAL/CORE/CoreDefs_impl.h 2022-07-13 19:04:41.000000000 +0000 @@ -17,7 +17,7 @@ * WWW URL: http://cs.nyu.edu/exact/ * Email: exact@cs.nyu.edu * - * $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_Core/include/CGAL/CORE/CoreDefs_impl.h $ + * $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_Core/include/CGAL/CORE/CoreDefs_impl.h $ * $Id: CoreDefs_impl.h 3e03d50 2021-05-05T15:32:22+02:00 Maxime Gimeno * SPDX-License-Identifier: LGPL-3.0-or-later ***************************************************************************/ diff -Nru cgal-5.4.1/include/CGAL/CORE/CORE.h cgal-5.5/include/CGAL/CORE/CORE.h --- cgal-5.4.1/include/CGAL/CORE/CORE.h 2022-06-03 19:03:55.000000000 +0000 +++ cgal-5.5/include/CGAL/CORE/CORE.h 2022-07-13 19:04:41.000000000 +0000 @@ -18,7 +18,7 @@ * WWW URL: http://cs.nyu.edu/exact/ * Email: exact@cs.nyu.edu * - * $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_Core/include/CGAL/CORE/CORE.h $ + * $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_Core/include/CGAL/CORE/CORE.h $ * $Id: CORE.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot * SPDX-License-Identifier: LGPL-3.0-or-later ***************************************************************************/ diff -Nru cgal-5.4.1/include/CGAL/CORE/CoreIO_impl.h cgal-5.5/include/CGAL/CORE/CoreIO_impl.h --- cgal-5.4.1/include/CGAL/CORE/CoreIO_impl.h 2022-06-03 19:03:55.000000000 +0000 +++ cgal-5.5/include/CGAL/CORE/CoreIO_impl.h 2022-07-13 19:04:41.000000000 +0000 @@ -14,7 +14,7 @@ * WWW URL: http://cs.nyu.edu/exact/ * Email: exact@cs.nyu.edu * - * $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_Core/include/CGAL/CORE/CoreIO_impl.h $ + * $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_Core/include/CGAL/CORE/CoreIO_impl.h $ * $Id: CoreIO_impl.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot * SPDX-License-Identifier: LGPL-3.0-or-later ***************************************************************************/ diff -Nru cgal-5.4.1/include/CGAL/CORE/Expr.h cgal-5.5/include/CGAL/CORE/Expr.h --- cgal-5.4.1/include/CGAL/CORE/Expr.h 2022-06-03 19:03:55.000000000 +0000 +++ cgal-5.5/include/CGAL/CORE/Expr.h 2022-07-13 19:04:41.000000000 +0000 @@ -21,7 +21,7 @@ * WWW URL: http://cs.nyu.edu/exact/ * Email: exact@cs.nyu.edu * - * $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_Core/include/CGAL/CORE/Expr.h $ + * $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_Core/include/CGAL/CORE/Expr.h $ * $Id: Expr.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot * SPDX-License-Identifier: LGPL-3.0-or-later ***************************************************************************/ diff -Nru cgal-5.4.1/include/CGAL/CORE/Expr_impl.h cgal-5.5/include/CGAL/CORE/Expr_impl.h --- cgal-5.4.1/include/CGAL/CORE/Expr_impl.h 2022-06-03 19:03:55.000000000 +0000 +++ cgal-5.5/include/CGAL/CORE/Expr_impl.h 2022-07-13 19:04:41.000000000 +0000 @@ -19,7 +19,7 @@ * WWW URL: http://cs.nyu.edu/exact/ * Email: exact@cs.nyu.edu * - * $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_Core/include/CGAL/CORE/Expr_impl.h $ + * $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_Core/include/CGAL/CORE/Expr_impl.h $ * $Id: Expr_impl.h a8dbdc3 2021-11-16T16:44:43+01:00 Laurent Rineau * SPDX-License-Identifier: LGPL-3.0-or-later ***************************************************************************/ diff -Nru cgal-5.4.1/include/CGAL/CORE/ExprRep.h cgal-5.5/include/CGAL/CORE/ExprRep.h --- cgal-5.4.1/include/CGAL/CORE/ExprRep.h 2022-06-03 19:03:55.000000000 +0000 +++ cgal-5.5/include/CGAL/CORE/ExprRep.h 2022-07-13 19:04:41.000000000 +0000 @@ -21,7 +21,7 @@ * WWW URL: http://cs.nyu.edu/exact/ * Email: exact@cs.nyu.edu * - * $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_Core/include/CGAL/CORE/ExprRep.h $ + * $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_Core/include/CGAL/CORE/ExprRep.h $ * $Id: ExprRep.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot * SPDX-License-Identifier: LGPL-3.0-or-later ***************************************************************************/ diff -Nru cgal-5.4.1/include/CGAL/CORE/extLong.h cgal-5.5/include/CGAL/CORE/extLong.h --- cgal-5.4.1/include/CGAL/CORE/extLong.h 2022-06-03 19:03:55.000000000 +0000 +++ cgal-5.5/include/CGAL/CORE/extLong.h 2022-07-13 19:04:41.000000000 +0000 @@ -20,7 +20,7 @@ * WWW URL: http://cs.nyu.edu/exact/ * Email: exact@cs.nyu.edu * - * $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_Core/include/CGAL/CORE/extLong.h $ + * $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_Core/include/CGAL/CORE/extLong.h $ * $Id: extLong.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot * SPDX-License-Identifier: LGPL-3.0-or-later ***************************************************************************/ diff -Nru cgal-5.4.1/include/CGAL/CORE/extLong_impl.h cgal-5.5/include/CGAL/CORE/extLong_impl.h --- cgal-5.4.1/include/CGAL/CORE/extLong_impl.h 2022-06-03 19:03:55.000000000 +0000 +++ cgal-5.5/include/CGAL/CORE/extLong_impl.h 2022-07-13 19:04:42.000000000 +0000 @@ -24,7 +24,7 @@ * WWW URL: http://cs.nyu.edu/exact/ * Email: exact@cs.nyu.edu * - * $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_Core/include/CGAL/CORE/extLong_impl.h $ + * $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_Core/include/CGAL/CORE/extLong_impl.h $ * $Id: extLong_impl.h 627a7b2 2020-04-27T17:08:35+02:00 Maxime Gimeno * SPDX-License-Identifier: LGPL-3.0-or-later ***************************************************************************/ diff -Nru cgal-5.4.1/include/CGAL/CORE/Filter.h cgal-5.5/include/CGAL/CORE/Filter.h --- cgal-5.4.1/include/CGAL/CORE/Filter.h 2022-06-03 19:03:55.000000000 +0000 +++ cgal-5.5/include/CGAL/CORE/Filter.h 2022-07-13 19:04:41.000000000 +0000 @@ -20,7 +20,7 @@ * WWW URL: http://cs.nyu.edu/exact/ * Email: exact@cs.nyu.edu * - * $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_Core/include/CGAL/CORE/Filter.h $ + * $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_Core/include/CGAL/CORE/Filter.h $ * $Id: Filter.h 6c94c15 2020-05-05T14:40:55+02:00 Sébastien Loriot * SPDX-License-Identifier: LGPL-3.0-or-later ***************************************************************************/ diff -Nru cgal-5.4.1/include/CGAL/CORE/Gmp.h cgal-5.5/include/CGAL/CORE/Gmp.h --- cgal-5.4.1/include/CGAL/CORE/Gmp.h 2022-06-03 19:03:55.000000000 +0000 +++ cgal-5.5/include/CGAL/CORE/Gmp.h 2022-07-13 19:04:41.000000000 +0000 @@ -5,7 +5,7 @@ * * This file is part of CGAL (www.cgal.org). * - * $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_Core/include/CGAL/CORE/Gmp.h $ + * $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_Core/include/CGAL/CORE/Gmp.h $ * $Id: Gmp.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot * SPDX-License-Identifier: LGPL-3.0-or-later ***************************************************************************/ diff -Nru cgal-5.4.1/include/CGAL/CORE/Gmp_impl.h cgal-5.5/include/CGAL/CORE/Gmp_impl.h --- cgal-5.4.1/include/CGAL/CORE/Gmp_impl.h 2022-06-03 19:03:55.000000000 +0000 +++ cgal-5.5/include/CGAL/CORE/Gmp_impl.h 2022-07-13 19:04:41.000000000 +0000 @@ -8,7 +8,7 @@ * * Zilin Du, 2003 * - * $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_Core/include/CGAL/CORE/Gmp_impl.h $ + * $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_Core/include/CGAL/CORE/Gmp_impl.h $ * $Id: Gmp_impl.h 12fd01d 2020-09-21T08:54:29+02:00 Ahmed Essam * SPDX-License-Identifier: LGPL-3.0-only ***************************************************************************/ diff -Nru cgal-5.4.1/include/CGAL/CORE/Impl.h cgal-5.5/include/CGAL/CORE/Impl.h --- cgal-5.4.1/include/CGAL/CORE/Impl.h 2022-06-03 19:03:55.000000000 +0000 +++ cgal-5.5/include/CGAL/CORE/Impl.h 2022-07-13 19:04:41.000000000 +0000 @@ -5,7 +5,7 @@ * * This file is part of CGAL (www.cgal.org). * - * $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_Core/include/CGAL/CORE/Impl.h $ + * $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_Core/include/CGAL/CORE/Impl.h $ * $Id: Impl.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot * SPDX-License-Identifier: LGPL-3.0-or-later ***************************************************************************/ diff -Nru cgal-5.4.1/include/CGAL/CORE/linearAlgebra.h cgal-5.5/include/CGAL/CORE/linearAlgebra.h --- cgal-5.4.1/include/CGAL/CORE/linearAlgebra.h 2022-06-03 19:03:55.000000000 +0000 +++ cgal-5.5/include/CGAL/CORE/linearAlgebra.h 2022-07-13 19:04:42.000000000 +0000 @@ -5,7 +5,7 @@ * * This file is part of CGAL (www.cgal.org). * - * $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_Core/include/CGAL/CORE/linearAlgebra.h $ + * $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_Core/include/CGAL/CORE/linearAlgebra.h $ * $Id: linearAlgebra.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot * SPDX-License-Identifier: LGPL-3.0-or-later ***************************************************************************/ diff -Nru cgal-5.4.1/include/CGAL/CORE/MemoryPool.h cgal-5.5/include/CGAL/CORE/MemoryPool.h --- cgal-5.4.1/include/CGAL/CORE/MemoryPool.h 2022-06-03 19:03:55.000000000 +0000 +++ cgal-5.5/include/CGAL/CORE/MemoryPool.h 2022-07-13 19:04:41.000000000 +0000 @@ -17,7 +17,7 @@ * WWW URL: http://cs.nyu.edu/exact/ * Email: exact@cs.nyu.edu * - * $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_Core/include/CGAL/CORE/MemoryPool.h $ + * $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_Core/include/CGAL/CORE/MemoryPool.h $ * $Id: MemoryPool.h 8a7d3fa 2020-07-21T17:32:30+02:00 Laurent Rineau * SPDX-License-Identifier: LGPL-3.0-or-later ***************************************************************************/ diff -Nru cgal-5.4.1/include/CGAL/CORE/poly/Curves.h cgal-5.5/include/CGAL/CORE/poly/Curves.h --- cgal-5.4.1/include/CGAL/CORE/poly/Curves.h 2022-06-03 19:03:55.000000000 +0000 +++ cgal-5.5/include/CGAL/CORE/poly/Curves.h 2022-07-13 19:04:42.000000000 +0000 @@ -52,7 +52,7 @@ * WWW URL: http://cs.nyu.edu/exact/ * Email: exact@cs.nyu.edu * - * $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_Core/include/CGAL/CORE/poly/Curves.h $ + * $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_Core/include/CGAL/CORE/poly/Curves.h $ * $Id: Curves.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot * SPDX-License-Identifier: LGPL-3.0-or-later ***************************************************************************/ diff -Nru cgal-5.4.1/include/CGAL/CORE/poly/Poly.h cgal-5.5/include/CGAL/CORE/poly/Poly.h --- cgal-5.4.1/include/CGAL/CORE/poly/Poly.h 2022-06-03 19:03:55.000000000 +0000 +++ cgal-5.5/include/CGAL/CORE/poly/Poly.h 2022-07-13 19:04:42.000000000 +0000 @@ -39,7 +39,7 @@ * WWW URL: http://cs.nyu.edu/exact/ * Email: exact@cs.nyu.edu * - * $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_Core/include/CGAL/CORE/poly/Poly.h $ + * $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_Core/include/CGAL/CORE/poly/Poly.h $ * $Id: Poly.h bd172e5 2020-07-21T17:15:45+02:00 Laurent Rineau * SPDX-License-Identifier: LGPL-3.0-or-later ***************************************************************************/ diff -Nru cgal-5.4.1/include/CGAL/CORE/poly/Sturm.h cgal-5.5/include/CGAL/CORE/poly/Sturm.h --- cgal-5.4.1/include/CGAL/CORE/poly/Sturm.h 2022-06-03 19:03:55.000000000 +0000 +++ cgal-5.5/include/CGAL/CORE/poly/Sturm.h 2022-07-13 19:04:42.000000000 +0000 @@ -40,7 +40,7 @@ * WWW URL: http://cs.nyu.edu/exact/ * Email: exact@cs.nyu.edu * - * $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_Core/include/CGAL/CORE/poly/Sturm.h $ + * $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_Core/include/CGAL/CORE/poly/Sturm.h $ * $Id: Sturm.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot * SPDX-License-Identifier: LGPL-3.0-or-later ***************************************************************************/ diff -Nru cgal-5.4.1/include/CGAL/CORE/Promote.h cgal-5.5/include/CGAL/CORE/Promote.h --- cgal-5.4.1/include/CGAL/CORE/Promote.h 2022-06-03 19:03:55.000000000 +0000 +++ cgal-5.5/include/CGAL/CORE/Promote.h 2022-07-13 19:04:41.000000000 +0000 @@ -21,7 +21,7 @@ * WWW URL: http://cs.nyu.edu/exact/ * Email: exact@cs.nyu.edu * - * $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_Core/include/CGAL/CORE/Promote.h $ + * $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_Core/include/CGAL/CORE/Promote.h $ * $Id: Promote.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot * SPDX-License-Identifier: LGPL-3.0-or-later ***************************************************************************/ diff -Nru cgal-5.4.1/include/CGAL/CORE/Real.h cgal-5.5/include/CGAL/CORE/Real.h --- cgal-5.4.1/include/CGAL/CORE/Real.h 2022-06-03 19:03:55.000000000 +0000 +++ cgal-5.5/include/CGAL/CORE/Real.h 2022-07-13 19:04:41.000000000 +0000 @@ -21,7 +21,7 @@ * WWW URL: http://cs.nyu.edu/exact/ * Email: exact@cs.nyu.edu * - * $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_Core/include/CGAL/CORE/Real.h $ + * $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_Core/include/CGAL/CORE/Real.h $ * $Id: Real.h 10e99cb 2020-07-22T09:51:07+02:00 Laurent Rineau * SPDX-License-Identifier: LGPL-3.0-or-later ***************************************************************************/ diff -Nru cgal-5.4.1/include/CGAL/CORE/Real_impl.h cgal-5.5/include/CGAL/CORE/Real_impl.h --- cgal-5.4.1/include/CGAL/CORE/Real_impl.h 2022-06-03 19:03:55.000000000 +0000 +++ cgal-5.5/include/CGAL/CORE/Real_impl.h 2022-07-13 19:04:41.000000000 +0000 @@ -20,7 +20,7 @@ * WWW URL: http://cs.nyu.edu/exact/ * Email: exact@cs.nyu.edu * - * $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_Core/include/CGAL/CORE/Real_impl.h $ + * $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_Core/include/CGAL/CORE/Real_impl.h $ * $Id: Real_impl.h b6e2656 2021-09-15T11:36:00+01:00 Andreas Fabri * SPDX-License-Identifier: LGPL-3.0-or-later ***************************************************************************/ diff -Nru cgal-5.4.1/include/CGAL/CORE/RealRep.h cgal-5.5/include/CGAL/CORE/RealRep.h --- cgal-5.4.1/include/CGAL/CORE/RealRep.h 2022-06-03 19:03:55.000000000 +0000 +++ cgal-5.5/include/CGAL/CORE/RealRep.h 2022-07-13 19:04:41.000000000 +0000 @@ -19,7 +19,7 @@ * WWW URL: http://cs.nyu.edu/exact/ * Email: exact@cs.nyu.edu * - * $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_Core/include/CGAL/CORE/RealRep.h $ + * $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_Core/include/CGAL/CORE/RealRep.h $ * $Id: RealRep.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot * SPDX-License-Identifier: LGPL-3.0-or-later ***************************************************************************/ diff -Nru cgal-5.4.1/include/CGAL/CORE/RefCount.h cgal-5.5/include/CGAL/CORE/RefCount.h --- cgal-5.4.1/include/CGAL/CORE/RefCount.h 2022-06-03 19:03:55.000000000 +0000 +++ cgal-5.5/include/CGAL/CORE/RefCount.h 2022-07-13 19:04:41.000000000 +0000 @@ -38,7 +38,7 @@ * WWW URL: http://cs.nyu.edu/exact/ * Email: exact@cs.nyu.edu * - * $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_Core/include/CGAL/CORE/RefCount.h $ + * $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_Core/include/CGAL/CORE/RefCount.h $ * $Id: RefCount.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot * SPDX-License-Identifier: LGPL-3.0-or-later ***************************************************************************/ diff -Nru cgal-5.4.1/include/CGAL/CORE/Timer.h cgal-5.5/include/CGAL/CORE/Timer.h --- cgal-5.4.1/include/CGAL/CORE/Timer.h 2022-06-03 19:03:55.000000000 +0000 +++ cgal-5.5/include/CGAL/CORE/Timer.h 2022-07-13 19:04:41.000000000 +0000 @@ -26,7 +26,7 @@ * WWW URL: http://cs.nyu.edu/exact/ * Email: exact@cs.nyu.edu * - * $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_Core/include/CGAL/CORE/Timer.h $ + * $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_Core/include/CGAL/CORE/Timer.h $ * $Id: Timer.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot * SPDX-License-Identifier: LGPL-3.0-or-later ***************************************************************************/ diff -Nru cgal-5.4.1/include/CGAL/CORE_algebraic_number_traits.h cgal-5.5/include/CGAL/CORE_algebraic_number_traits.h --- cgal-5.4.1/include/CGAL/CORE_algebraic_number_traits.h 2022-06-03 19:03:45.000000000 +0000 +++ cgal-5.5/include/CGAL/CORE_algebraic_number_traits.h 2022-07-13 19:04:30.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/CORE_algebraic_number_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/CORE_algebraic_number_traits.h $ // $Id: CORE_algebraic_number_traits.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/CORE_arithmetic_kernel.h cgal-5.5/include/CGAL/CORE_arithmetic_kernel.h --- cgal-5.4.1/include/CGAL/CORE_arithmetic_kernel.h 2022-06-03 19:03:36.000000000 +0000 +++ cgal-5.5/include/CGAL/CORE_arithmetic_kernel.h 2022-07-13 19:04:20.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arithmetic_kernel/include/CGAL/CORE_arithmetic_kernel.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arithmetic_kernel/include/CGAL/CORE_arithmetic_kernel.h $ // $Id: CORE_arithmetic_kernel.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/CORE_BigFloat.h cgal-5.5/include/CGAL/CORE_BigFloat.h --- cgal-5.4.1/include/CGAL/CORE_BigFloat.h 2022-06-03 19:05:00.000000000 +0000 +++ cgal-5.5/include/CGAL/CORE_BigFloat.h 2022-07-13 19:05:53.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/CORE_BigFloat.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/CORE_BigFloat.h $ // $Id: CORE_BigFloat.h 152a084 2021-09-21T13:34:58+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/CORE_BigInt.h cgal-5.5/include/CGAL/CORE_BigInt.h --- cgal-5.4.1/include/CGAL/CORE_BigInt.h 2022-06-03 19:05:00.000000000 +0000 +++ cgal-5.5/include/CGAL/CORE_BigInt.h 2022-07-13 19:05:53.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/CORE_BigInt.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/CORE_BigInt.h $ // $Id: CORE_BigInt.h 152a084 2021-09-21T13:34:58+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/CORE_BigRat.h cgal-5.5/include/CGAL/CORE_BigRat.h --- cgal-5.4.1/include/CGAL/CORE_BigRat.h 2022-06-03 19:05:00.000000000 +0000 +++ cgal-5.5/include/CGAL/CORE_BigRat.h 2022-07-13 19:05:53.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/CORE_BigRat.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/CORE_BigRat.h $ // $Id: CORE_BigRat.h 152a084 2021-09-21T13:34:58+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/CORE_coercion_traits.h cgal-5.5/include/CGAL/CORE_coercion_traits.h --- cgal-5.4.1/include/CGAL/CORE_coercion_traits.h 2022-06-03 19:05:00.000000000 +0000 +++ cgal-5.5/include/CGAL/CORE_coercion_traits.h 2022-07-13 19:05:53.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/CORE_coercion_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/CORE_coercion_traits.h $ // $Id: CORE_coercion_traits.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/CORE_Expr.h cgal-5.5/include/CGAL/CORE_Expr.h --- cgal-5.4.1/include/CGAL/CORE_Expr.h 2022-06-03 19:05:00.000000000 +0000 +++ cgal-5.5/include/CGAL/CORE_Expr.h 2022-07-13 19:05:53.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/CORE_Expr.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/CORE_Expr.h $ // $Id: CORE_Expr.h 152a084 2021-09-21T13:34:58+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Counted_number.h cgal-5.5/include/CGAL/Counted_number.h --- cgal-5.4.1/include/CGAL/Counted_number.h 2022-06-03 19:05:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Counted_number.h 2022-07-13 19:05:53.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/Counted_number.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/Counted_number.h $ // $Id: Counted_number.h 59a0da4 2021-05-19T17:23:53+02:00 Laurent Rineau // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Counting_iterator.h cgal-5.5/include/CGAL/Counting_iterator.h --- cgal-5.4.1/include/CGAL/Counting_iterator.h 2022-06-03 19:05:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Counting_iterator.h 2022-07-13 19:06:27.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/Counting_iterator.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/Counting_iterator.h $ // $Id: Counting_iterator.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/create_offset_polygons_2.h cgal-5.5/include/CGAL/create_offset_polygons_2.h --- cgal-5.4.1/include/CGAL/create_offset_polygons_2.h 2022-06-03 19:05:50.000000000 +0000 +++ cgal-5.5/include/CGAL/create_offset_polygons_2.h 2022-07-13 19:06:47.000000000 +0000 @@ -3,8 +3,8 @@ // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Straight_skeleton_2/include/CGAL/create_offset_polygons_2.h $ -// $Id: create_offset_polygons_2.h 145f204 2020-10-09T17:20:01+02:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Straight_skeleton_2/include/CGAL/create_offset_polygons_2.h $ +// $Id: create_offset_polygons_2.h 6462cac 2022-06-23T16:29:11+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Fernando Cacciola @@ -50,7 +50,7 @@ // The return type of create_interior/exterior_skeleton_and_offset_polygons_2: // - if polygon input is a model of 'GeneralPolygonWithHoles_2', the return type -// should be the internal (hole-less) polygon type GeneralPolygonWithHoles_2::General_polygon_2 +// should be the internal (hole-less) polygon type GeneralPolygonWithHoles_2::Polygon_2 // - if polygon input is just a sequence container of points (e.g. Polygon_2), then the same type // is expected in output template ::type>::Kernel, + typename Polygon::Polygon_2>::type>::Kernel, OfK>::value, - typename Polygon::General_polygon_2, // correct kernel + typename Polygon::Polygon_2, // correct kernel CGAL::Polygon_2 /*incorrect kernel*/ >::type type; }; @@ -85,7 +85,7 @@ { typedef typename std::conditional::type>::Kernel, + typename Polygon::Polygon_2>::type>::Kernel, OfK>::value, Polygon, // correct kernel CGAL::Polygon_with_holes_2 /*incorrect kernel*/ >::type type; @@ -389,7 +389,7 @@ ofk); } -// Overloads common to both polygons with and without holes, a simple polygon is returned in any case +// Overloads common to both polygons with and without holes, a simple polygons are returned in any case template::type> std::vector< boost::shared_ptr > diff -Nru cgal-5.4.1/include/CGAL/create_offset_polygons_from_polygon_with_holes_2.h cgal-5.5/include/CGAL/create_offset_polygons_from_polygon_with_holes_2.h --- cgal-5.4.1/include/CGAL/create_offset_polygons_from_polygon_with_holes_2.h 2022-06-03 19:05:50.000000000 +0000 +++ cgal-5.5/include/CGAL/create_offset_polygons_from_polygon_with_holes_2.h 2022-07-13 19:06:47.000000000 +0000 @@ -3,8 +3,8 @@ // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Straight_skeleton_2/include/CGAL/create_offset_polygons_from_polygon_with_holes_2.h $ -// $Id: create_offset_polygons_from_polygon_with_holes_2.h 9051fc1 2020-10-08T22:54:11+02:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Straight_skeleton_2/include/CGAL/create_offset_polygons_from_polygon_with_holes_2.h $ +// $Id: create_offset_polygons_from_polygon_with_holes_2.h 6462cac 2022-06-23T16:29:11+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Fernando Cacciola @@ -97,6 +97,44 @@ //////////////////////////////////////////////////////////////////////////////////////////////////// /// EXTERIOR +/*! create_exterior_skeleton_and_offset_polygons_with_holes_2 (orders the resulting polygons) */ + +// Polygon might be a Polygon with holes or not, but it returns a Polygon with holes +template::type> +std::vector > +inline +create_exterior_skeleton_and_offset_polygons_with_holes_2(const FT& aOffset, + const Polygon& aPoly, + const OfK& ofk, + const SsK& ssk) +{ + typedef typename CGAL_SS_i::Default_return_polygon_type::type Polygon_; + std::vector > raw_output = + create_exterior_skeleton_and_offset_polygons_2(aOffset, aPoly, ofk, ssk); + + // filter offset of the outer frame + typename OfK::Point_2 xtrm_pt = *(raw_output[0]->begin()); + std::size_t outer_id=0; + for(std::size_t i=0; iorientation() == COUNTERCLOCKWISE) + { + for (const typename OfK::Point_2& p : raw_output[i]->container()) + if (p < xtrm_pt) + { + xtrm_pt=p; + outer_id=i; + } + } + if (outer_id != (raw_output.size()-1)) + std::swap(raw_output[outer_id], raw_output.back()); + raw_output.pop_back(); + for (boost::shared_ptr ptr : raw_output) + ptr->reverse_orientation(); + + return arrange_offset_polygons_2(raw_output); +} + /*! create_interior_skeleton_and_offset_polygons_2 with a polygon with holes */ // overload where PolygonWithHoles actually is a type of Polygon that supports holes @@ -111,23 +149,21 @@ typename std::enable_if< CGAL_SS_i::has_Hole_const_iterator::value>::type* = nullptr) { - return create_exterior_skeleton_and_offset_polygons_2(aOffset, aPoly.outer_boundary(), ofk, ssk); -} + std::vector > polygons = + create_exterior_skeleton_and_offset_polygons_2(aOffset, aPoly.outer_boundary(), ofk, ssk); -/*! create_exterior_skeleton_and_offset_polygons_with_holes_2 (orders the resulting polygons) */ + for (typename PolygonWithHoles::Hole_const_iterator hit=aPoly.holes_begin(); hit!=aPoly.holes_end(); ++hit) + { + typename PolygonWithHoles::Polygon_2 hole = *hit; + hole.reverse_orientation(); + std::vector > hole_polygons = + create_interior_skeleton_and_offset_polygons_2(aOffset, + hole, + ofk,ssk); + polygons.insert(polygons.end(), hole_polygons.begin(), hole_polygons.end()); + } -// Polygon might be a Polygon with holes or not, but it returns a Polygon with holes -template::type> -std::vector > -inline -create_exterior_skeleton_and_offset_polygons_with_holes_2(const FT& aOffset, - const Polygon& aPoly, - const OfK& ofk, - const SsK& ssk) -{ - return arrange_offset_polygons_2( - create_exterior_skeleton_and_offset_polygons_2(aOffset, aPoly, ofk, ssk)); + return polygons; } template @@ -200,109 +200,6 @@ typename Helper::Attribute_handles mattribute_handles; }; -#if defined(CGAL_CMAP_DART_DEPRECATED) && !defined(CGAL_NO_DEPRECATED_CODE) - -#define CGAL_BETAINV(i) (i>1?i:(i==1?0:1)) - - /** Definition of nD dart for combinatorial map. Add functions beta and attributes which - * are now deprecated. - */ - template - struct CGAL_DEPRECATED Dart : public Dart_without_info - { - template - friend class Combinatorial_map_storage_1; - - template - friend class CMap_linear_cell_complex_storage_1; - - template - friend class Compact_container; - - template - friend class Concurrent_compact_container; - - typedef Dart_without_info Base; - - using Base::dimension; - using Base::mf; - using Base::mattribute_handles; - - typedef typename Base::Dart_handle Dart_handle; - typedef typename Base::Dart_const_handle Dart_const_handle; - typedef typename Base::Helper Helper; - - /// Typedef for attributes - template - struct Attribute_handle: public Refs::template Attribute_handle - {}; - template - struct Attribute_const_handle: - public Refs::template Attribute_const_handle - {}; - - public: - /** Return the beta of this dart for a given dimension. - * @param i the dimension. - * @return beta(\em i). - */ - template - Dart_handle beta() - { - CGAL_assertion(i <= dimension); - return mf[i]; - } - Dart_handle beta(unsigned int i) - { - CGAL_assertion(i <= dimension); - return mf[i]; - } - template - Dart_const_handle beta() const - { - CGAL_assertion(i <= dimension); - return mf[i]; - } - Dart_const_handle beta(unsigned int i) const - { - CGAL_assertion(i <= dimension); - return mf[i]; - } - - /** Return the beta inverse of this dart for a given dimension. - * @param i the dimension. - * @return beta^{-1}(\em i). - */ - template - Dart_handle beta_inv() - { return beta(); } - Dart_handle beta_inv(unsigned int i) - { return beta(CGAL_BETAINV(i)); } - template - Dart_const_handle beta_inv() const - { return beta(); } - Dart_const_handle beta_inv(unsigned int i) const - { return beta(CGAL_BETAINV(i)); } - - /// @return a handle on the i-attribute - template - typename Attribute_handle::type attribute() - { - CGAL_static_assertion_msg(Helper::template Dimension_index::value>=0, - "attribute called but i-attributes are disabled."); - return std::get::value> - (mattribute_handles); - } - template - typename Attribute_const_handle::type attribute() const - { - CGAL_static_assertion_msg(Helper::template Dimension_index::value>=0, - "attribute called but i-attributes are disabled."); - return std::get::value> - (mattribute_handles); - } - }; -#else // CGAL_CMAP_DART_DEPRECATED // Dart definition with an info; // (there is a specialization below when Info_==void) template solver; + solver.compute(m); +#else Eigen::JacobiSVD solver; - solver.compute( m, Eigen::ComputeFullU | Eigen::ComputeFullV ); + solver.compute(m, Eigen::ComputeFullU | Eigen::ComputeFullV); +#endif const Matrix& u = solver.matrixU(); const Matrix& v = solver.matrixV(); R = v * u.transpose(); diff -Nru cgal-5.4.1/include/CGAL/Deformation_Eigen_polar_closest_rotation_traits_3.h cgal-5.5/include/CGAL/Deformation_Eigen_polar_closest_rotation_traits_3.h --- cgal-5.4.1/include/CGAL/Deformation_Eigen_polar_closest_rotation_traits_3.h 2022-06-03 19:05:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Deformation_Eigen_polar_closest_rotation_traits_3.h 2022-07-13 19:06:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_deformation/include/CGAL/Deformation_Eigen_polar_closest_rotation_traits_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_deformation/include/CGAL/Deformation_Eigen_polar_closest_rotation_traits_3.h $ // $Id: Deformation_Eigen_polar_closest_rotation_traits_3.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Delaunay_d.h cgal-5.5/include/CGAL/Delaunay_d.h --- cgal-5.4.1/include/CGAL/Delaunay_d.h 2022-06-03 19:04:09.000000000 +0000 +++ cgal-5.5/include/CGAL/Delaunay_d.h 2022-07-13 19:04:57.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Convex_hull_d/include/CGAL/Delaunay_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Convex_hull_d/include/CGAL/Delaunay_d.h $ // $Id: Delaunay_d.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Delaunay_mesh_area_criteria_2.h cgal-5.5/include/CGAL/Delaunay_mesh_area_criteria_2.h --- cgal-5.4.1/include/CGAL/Delaunay_mesh_area_criteria_2.h 2022-06-03 19:04:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Delaunay_mesh_area_criteria_2.h 2022-07-13 19:05:35.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_2/include/CGAL/Delaunay_mesh_area_criteria_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_2/include/CGAL/Delaunay_mesh_area_criteria_2.h $ // $Id: Delaunay_mesh_area_criteria_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Delaunay_mesh_criteria_2.h cgal-5.5/include/CGAL/Delaunay_mesh_criteria_2.h --- cgal-5.4.1/include/CGAL/Delaunay_mesh_criteria_2.h 2022-06-03 19:04:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Delaunay_mesh_criteria_2.h 2022-07-13 19:05:35.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_2/include/CGAL/Delaunay_mesh_criteria_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_2/include/CGAL/Delaunay_mesh_criteria_2.h $ // $Id: Delaunay_mesh_criteria_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Delaunay_mesher_2.h cgal-5.5/include/CGAL/Delaunay_mesher_2.h --- cgal-5.4.1/include/CGAL/Delaunay_mesher_2.h 2022-06-03 19:04:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Delaunay_mesher_2.h 2022-07-13 19:05:35.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_2/include/CGAL/Delaunay_mesher_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_2/include/CGAL/Delaunay_mesher_2.h $ // $Id: Delaunay_mesher_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Delaunay_mesher_no_edge_refinement_2.h cgal-5.5/include/CGAL/Delaunay_mesher_no_edge_refinement_2.h --- cgal-5.4.1/include/CGAL/Delaunay_mesher_no_edge_refinement_2.h 2022-06-03 19:04:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Delaunay_mesher_no_edge_refinement_2.h 2022-07-13 19:05:35.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_2/include/CGAL/Delaunay_mesher_no_edge_refinement_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_2/include/CGAL/Delaunay_mesher_no_edge_refinement_2.h $ // $Id: Delaunay_mesher_no_edge_refinement_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Delaunay_mesh_face_base_2.h cgal-5.5/include/CGAL/Delaunay_mesh_face_base_2.h --- cgal-5.4.1/include/CGAL/Delaunay_mesh_face_base_2.h 2022-06-03 19:04:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Delaunay_mesh_face_base_2.h 2022-07-13 19:05:35.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_2/include/CGAL/Delaunay_mesh_face_base_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_2/include/CGAL/Delaunay_mesh_face_base_2.h $ // $Id: Delaunay_mesh_face_base_2.h 7a6bdc1 2020-05-15T14:16:56+01:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Delaunay_mesh_local_size_criteria_2.h cgal-5.5/include/CGAL/Delaunay_mesh_local_size_criteria_2.h --- cgal-5.4.1/include/CGAL/Delaunay_mesh_local_size_criteria_2.h 2022-06-03 19:04:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Delaunay_mesh_local_size_criteria_2.h 2022-07-13 19:05:35.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_2/include/CGAL/Delaunay_mesh_local_size_criteria_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_2/include/CGAL/Delaunay_mesh_local_size_criteria_2.h $ // $Id: Delaunay_mesh_local_size_criteria_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Delaunay_mesh_size_criteria_2.h cgal-5.5/include/CGAL/Delaunay_mesh_size_criteria_2.h --- cgal-5.4.1/include/CGAL/Delaunay_mesh_size_criteria_2.h 2022-06-03 19:04:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Delaunay_mesh_size_criteria_2.h 2022-07-13 19:05:35.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_2/include/CGAL/Delaunay_mesh_size_criteria_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_2/include/CGAL/Delaunay_mesh_size_criteria_2.h $ // $Id: Delaunay_mesh_size_criteria_2.h 8bb22d5 2020-03-26T14:23:37+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Delaunay_mesh_vertex_base_2.h cgal-5.5/include/CGAL/Delaunay_mesh_vertex_base_2.h --- cgal-5.4.1/include/CGAL/Delaunay_mesh_vertex_base_2.h 2022-06-03 19:04:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Delaunay_mesh_vertex_base_2.h 2022-07-13 19:05:35.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_2/include/CGAL/Delaunay_mesh_vertex_base_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_2/include/CGAL/Delaunay_mesh_vertex_base_2.h $ // $Id: Delaunay_mesh_vertex_base_2.h e3934f1 2021-05-12T15:20:27+02:00 Laurent Rineau // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Delaunay_triangulation_2.h cgal-5.5/include/CGAL/Delaunay_triangulation_2.h --- cgal-5.4.1/include/CGAL/Delaunay_triangulation_2.h 2022-06-03 19:06:07.000000000 +0000 +++ cgal-5.5/include/CGAL/Delaunay_triangulation_2.h 2022-07-13 19:07:05.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_2/include/CGAL/Delaunay_triangulation_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_2/include/CGAL/Delaunay_triangulation_2.h $ // $Id: Delaunay_triangulation_2.h d1a323c 2020-03-26T19:24:14+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Delaunay_triangulation_3.h cgal-5.5/include/CGAL/Delaunay_triangulation_3.h --- cgal-5.4.1/include/CGAL/Delaunay_triangulation_3.h 2022-06-03 19:06:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Delaunay_triangulation_3.h 2022-07-13 19:07:09.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_3/include/CGAL/Delaunay_triangulation_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_3/include/CGAL/Delaunay_triangulation_3.h $ // $Id: Delaunay_triangulation_3.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Delaunay_triangulation_adaptation_policies_2.h cgal-5.5/include/CGAL/Delaunay_triangulation_adaptation_policies_2.h --- cgal-5.4.1/include/CGAL/Delaunay_triangulation_adaptation_policies_2.h 2022-06-03 19:06:13.000000000 +0000 +++ cgal-5.5/include/CGAL/Delaunay_triangulation_adaptation_policies_2.h 2022-07-13 19:07:12.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Voronoi_diagram_2/include/CGAL/Delaunay_triangulation_adaptation_policies_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Voronoi_diagram_2/include/CGAL/Delaunay_triangulation_adaptation_policies_2.h $ // $Id: Delaunay_triangulation_adaptation_policies_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Delaunay_triangulation_adaptation_traits_2.h cgal-5.5/include/CGAL/Delaunay_triangulation_adaptation_traits_2.h --- cgal-5.4.1/include/CGAL/Delaunay_triangulation_adaptation_traits_2.h 2022-06-03 19:06:13.000000000 +0000 +++ cgal-5.5/include/CGAL/Delaunay_triangulation_adaptation_traits_2.h 2022-07-13 19:07:12.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Voronoi_diagram_2/include/CGAL/Delaunay_triangulation_adaptation_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Voronoi_diagram_2/include/CGAL/Delaunay_triangulation_adaptation_traits_2.h $ // $Id: Delaunay_triangulation_adaptation_traits_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Delaunay_triangulation_cell_base_3.h cgal-5.5/include/CGAL/Delaunay_triangulation_cell_base_3.h --- cgal-5.4.1/include/CGAL/Delaunay_triangulation_cell_base_3.h 2022-06-03 19:06:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Delaunay_triangulation_cell_base_3.h 2022-07-13 19:07:09.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_3/include/CGAL/Delaunay_triangulation_cell_base_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_3/include/CGAL/Delaunay_triangulation_cell_base_3.h $ // $Id: Delaunay_triangulation_cell_base_3.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Delaunay_triangulation_cell_base_with_circumcenter_3.h cgal-5.5/include/CGAL/Delaunay_triangulation_cell_base_with_circumcenter_3.h --- cgal-5.4.1/include/CGAL/Delaunay_triangulation_cell_base_with_circumcenter_3.h 2022-06-03 19:06:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Delaunay_triangulation_cell_base_with_circumcenter_3.h 2022-07-13 19:07:09.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_3/include/CGAL/Delaunay_triangulation_cell_base_with_circumcenter_3.h $ -// $Id: Delaunay_triangulation_cell_base_with_circumcenter_3.h d1a323c 2020-03-26T19:24:14+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_3/include/CGAL/Delaunay_triangulation_cell_base_with_circumcenter_3.h $ +// $Id: Delaunay_triangulation_cell_base_with_circumcenter_3.h 4df8440 2022-03-18T20:03:22+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Monique Teillaud @@ -124,6 +124,15 @@ Cb::set_vertices(v0, v1, v2, v3); } + void set_circumcenter(const Point& p) const + { + if (circumcenter_ == nullptr) { + circumcenter_ = new Point(p); + } else { + *circumcenter_ = p; + } + } + const Point& circumcenter(const Geom_traits& gt = Geom_traits()) const { if (circumcenter_ == nullptr) { diff -Nru cgal-5.4.1/include/CGAL/Delaunay_triangulation.h cgal-5.5/include/CGAL/Delaunay_triangulation.h --- cgal-5.4.1/include/CGAL/Delaunay_triangulation.h 2022-06-03 19:06:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Delaunay_triangulation.h 2022-07-13 19:07:03.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation/include/CGAL/Delaunay_triangulation.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation/include/CGAL/Delaunay_triangulation.h $ // $Id: Delaunay_triangulation.h ec01356 2020-12-15T22:18:12+01:00 Marc Glisse // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Delaunay_triangulation_on_sphere_2.h cgal-5.5/include/CGAL/Delaunay_triangulation_on_sphere_2.h --- cgal-5.4.1/include/CGAL/Delaunay_triangulation_on_sphere_2.h 2022-06-03 19:06:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Delaunay_triangulation_on_sphere_2.h 2022-07-13 19:07:11.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_on_sphere_2/include/CGAL/Delaunay_triangulation_on_sphere_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_on_sphere_2/include/CGAL/Delaunay_triangulation_on_sphere_2.h $ // $Id: Delaunay_triangulation_on_sphere_2.h d871728 2021-07-23T13:09:37+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Delaunay_triangulation_on_sphere_adaptation_policies_2.h cgal-5.5/include/CGAL/Delaunay_triangulation_on_sphere_adaptation_policies_2.h --- cgal-5.4.1/include/CGAL/Delaunay_triangulation_on_sphere_adaptation_policies_2.h 2022-06-03 19:06:13.000000000 +0000 +++ cgal-5.5/include/CGAL/Delaunay_triangulation_on_sphere_adaptation_policies_2.h 2022-07-13 19:07:12.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Voronoi_diagram_2/include/CGAL/Delaunay_triangulation_on_sphere_adaptation_policies_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Voronoi_diagram_2/include/CGAL/Delaunay_triangulation_on_sphere_adaptation_policies_2.h $ // $Id: Delaunay_triangulation_on_sphere_adaptation_policies_2.h d5a306b 2021-06-11T17:26:36+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Delaunay_triangulation_on_sphere_adaptation_traits_2.h cgal-5.5/include/CGAL/Delaunay_triangulation_on_sphere_adaptation_traits_2.h --- cgal-5.4.1/include/CGAL/Delaunay_triangulation_on_sphere_adaptation_traits_2.h 2022-06-03 19:06:13.000000000 +0000 +++ cgal-5.5/include/CGAL/Delaunay_triangulation_on_sphere_adaptation_traits_2.h 2022-07-13 19:07:12.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Voronoi_diagram_2/include/CGAL/Delaunay_triangulation_on_sphere_adaptation_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Voronoi_diagram_2/include/CGAL/Delaunay_triangulation_on_sphere_adaptation_traits_2.h $ // $Id: Delaunay_triangulation_on_sphere_adaptation_traits_2.h 942d461 2021-05-05T16:59:22+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Delaunay_triangulation_on_sphere_traits_2.h cgal-5.5/include/CGAL/Delaunay_triangulation_on_sphere_traits_2.h --- cgal-5.4.1/include/CGAL/Delaunay_triangulation_on_sphere_traits_2.h 2022-06-03 19:06:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Delaunay_triangulation_on_sphere_traits_2.h 2022-07-13 19:07:11.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_on_sphere_2/include/CGAL/Delaunay_triangulation_on_sphere_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_on_sphere_2/include/CGAL/Delaunay_triangulation_on_sphere_traits_2.h $ // $Id: Delaunay_triangulation_on_sphere_traits_2.h 76b6649 2021-04-29T23:22:47+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/demangle.h cgal-5.5/include/CGAL/demangle.h --- cgal-5.4.1/include/CGAL/demangle.h 2022-06-03 19:05:33.000000000 +0000 +++ cgal-5.5/include/CGAL/demangle.h 2022-07-13 19:06:28.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/demangle.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/demangle.h $ // $Id: demangle.h 393ae7d 2021-05-12T15:03:53+02:00 Maxime Gimeno // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/determinant.h cgal-5.5/include/CGAL/determinant.h --- cgal-5.4.1/include/CGAL/determinant.h 2022-06-03 19:04:33.000000000 +0000 +++ cgal-5.5/include/CGAL/determinant.h 2022-07-13 19:05:24.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/determinant.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/determinant.h $ // $Id: determinant.h cb08f67 2020-05-12T11:56:18+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/determinant_of_vectors.h cgal-5.5/include/CGAL/determinant_of_vectors.h --- cgal-5.4.1/include/CGAL/determinant_of_vectors.h 2022-06-03 19:04:58.000000000 +0000 +++ cgal-5.5/include/CGAL/determinant_of_vectors.h 2022-07-13 19:05:52.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/NewKernel_d/include/CGAL/determinant_of_vectors.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/NewKernel_d/include/CGAL/determinant_of_vectors.h $ // $Id: determinant_of_vectors.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Diagonalize_traits.h cgal-5.5/include/CGAL/Diagonalize_traits.h --- cgal-5.4.1/include/CGAL/Diagonalize_traits.h 2022-06-03 19:05:45.000000000 +0000 +++ cgal-5.5/include/CGAL/Diagonalize_traits.h 2022-07-13 19:06:42.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Solver_interface/include/CGAL/Diagonalize_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Solver_interface/include/CGAL/Diagonalize_traits.h $ // $Id: Diagonalize_traits.h 267a641 2021-05-31T14:01:08+02:00 Dmitry Anisimov // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Dimension.h cgal-5.5/include/CGAL/Dimension.h --- cgal-5.4.1/include/CGAL/Dimension.h 2022-06-03 19:04:31.000000000 +0000 +++ cgal-5.5/include/CGAL/Dimension.h 2022-07-13 19:05:23.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Dimension.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Dimension.h $ // $Id: Dimension.h e9d41d7 2020-04-21T10:03:00+02:00 Maxime Gimeno // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Direction_2.h cgal-5.5/include/CGAL/Direction_2.h --- cgal-5.4.1/include/CGAL/Direction_2.h 2022-06-03 19:04:31.000000000 +0000 +++ cgal-5.5/include/CGAL/Direction_2.h 2022-07-13 19:05:23.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Direction_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Direction_2.h $ // $Id: Direction_2.h e7357ac 2021-07-19T14:53:27+02:00 Marc Glisse // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Direction_3.h cgal-5.5/include/CGAL/Direction_3.h --- cgal-5.4.1/include/CGAL/Direction_3.h 2022-06-03 19:04:31.000000000 +0000 +++ cgal-5.5/include/CGAL/Direction_3.h 2022-07-13 19:05:23.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Direction_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Direction_3.h $ // $Id: Direction_3.h e7357ac 2021-07-19T14:53:27+02:00 Marc Glisse // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/disable_warnings.h cgal-5.5/include/CGAL/disable_warnings.h --- cgal-5.4.1/include/CGAL/disable_warnings.h 2022-06-03 19:04:20.000000000 +0000 +++ cgal-5.5/include/CGAL/disable_warnings.h 2022-07-13 19:05:09.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/disable_warnings.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/disable_warnings.h $ // $Id: disable_warnings.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Distance_2/internal/squared_distance_utils_2.h cgal-5.5/include/CGAL/Distance_2/internal/squared_distance_utils_2.h --- cgal-5.4.1/include/CGAL/Distance_2/internal/squared_distance_utils_2.h 2022-06-03 19:04:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Distance_2/internal/squared_distance_utils_2.h 2022-07-13 19:04:58.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Distance_2/include/CGAL/Distance_2/internal/squared_distance_utils_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Distance_2/include/CGAL/Distance_2/internal/squared_distance_utils_2.h $ // $Id: squared_distance_utils_2.h 518aad8 2021-04-12T17:42:12+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Distance_2/Line_2_Line_2.h cgal-5.5/include/CGAL/Distance_2/Line_2_Line_2.h --- cgal-5.4.1/include/CGAL/Distance_2/Line_2_Line_2.h 2022-06-03 19:04:09.000000000 +0000 +++ cgal-5.5/include/CGAL/Distance_2/Line_2_Line_2.h 2022-07-13 19:04:57.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Distance_2/include/CGAL/Distance_2/Line_2_Line_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Distance_2/include/CGAL/Distance_2/Line_2_Line_2.h $ // $Id: Line_2_Line_2.h cf15bbe 2021-05-07T19:22:00+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Distance_2/Line_2_Triangle_2.h cgal-5.5/include/CGAL/Distance_2/Line_2_Triangle_2.h --- cgal-5.4.1/include/CGAL/Distance_2/Line_2_Triangle_2.h 2022-06-03 19:04:09.000000000 +0000 +++ cgal-5.5/include/CGAL/Distance_2/Line_2_Triangle_2.h 2022-07-13 19:04:57.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Distance_2/include/CGAL/Distance_2/Line_2_Triangle_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Distance_2/include/CGAL/Distance_2/Line_2_Triangle_2.h $ // $Id: Line_2_Triangle_2.h cf15bbe 2021-05-07T19:22:00+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Distance_2/Point_2_Line_2.h cgal-5.5/include/CGAL/Distance_2/Point_2_Line_2.h --- cgal-5.4.1/include/CGAL/Distance_2/Point_2_Line_2.h 2022-06-03 19:04:09.000000000 +0000 +++ cgal-5.5/include/CGAL/Distance_2/Point_2_Line_2.h 2022-07-13 19:04:57.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Distance_2/include/CGAL/Distance_2/Point_2_Line_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Distance_2/include/CGAL/Distance_2/Point_2_Line_2.h $ // $Id: Point_2_Line_2.h cf15bbe 2021-05-07T19:22:00+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Distance_2/Point_2_Point_2.h cgal-5.5/include/CGAL/Distance_2/Point_2_Point_2.h --- cgal-5.4.1/include/CGAL/Distance_2/Point_2_Point_2.h 2022-06-03 19:04:09.000000000 +0000 +++ cgal-5.5/include/CGAL/Distance_2/Point_2_Point_2.h 2022-07-13 19:04:57.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Distance_2/include/CGAL/Distance_2/Point_2_Point_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Distance_2/include/CGAL/Distance_2/Point_2_Point_2.h $ // $Id: Point_2_Point_2.h cf15bbe 2021-05-07T19:22:00+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Distance_2/Point_2_Ray_2.h cgal-5.5/include/CGAL/Distance_2/Point_2_Ray_2.h --- cgal-5.4.1/include/CGAL/Distance_2/Point_2_Ray_2.h 2022-06-03 19:04:09.000000000 +0000 +++ cgal-5.5/include/CGAL/Distance_2/Point_2_Ray_2.h 2022-07-13 19:04:57.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Distance_2/include/CGAL/Distance_2/Point_2_Ray_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Distance_2/include/CGAL/Distance_2/Point_2_Ray_2.h $ // $Id: Point_2_Ray_2.h 7e62c02 2021-04-12T14:02:37+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Distance_2/Point_2_Segment_2.h cgal-5.5/include/CGAL/Distance_2/Point_2_Segment_2.h --- cgal-5.4.1/include/CGAL/Distance_2/Point_2_Segment_2.h 2022-06-03 19:04:09.000000000 +0000 +++ cgal-5.5/include/CGAL/Distance_2/Point_2_Segment_2.h 2022-07-13 19:04:57.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Distance_2/include/CGAL/Distance_2/Point_2_Segment_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Distance_2/include/CGAL/Distance_2/Point_2_Segment_2.h $ // $Id: Point_2_Segment_2.h cf15bbe 2021-05-07T19:22:00+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Distance_2/Point_2_Triangle_2.h cgal-5.5/include/CGAL/Distance_2/Point_2_Triangle_2.h --- cgal-5.4.1/include/CGAL/Distance_2/Point_2_Triangle_2.h 2022-06-03 19:04:09.000000000 +0000 +++ cgal-5.5/include/CGAL/Distance_2/Point_2_Triangle_2.h 2022-07-13 19:04:57.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Distance_2/include/CGAL/Distance_2/Point_2_Triangle_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Distance_2/include/CGAL/Distance_2/Point_2_Triangle_2.h $ // $Id: Point_2_Triangle_2.h cf15bbe 2021-05-07T19:22:00+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Distance_2/Ray_2_Line_2.h cgal-5.5/include/CGAL/Distance_2/Ray_2_Line_2.h --- cgal-5.4.1/include/CGAL/Distance_2/Ray_2_Line_2.h 2022-06-03 19:04:09.000000000 +0000 +++ cgal-5.5/include/CGAL/Distance_2/Ray_2_Line_2.h 2022-07-13 19:04:57.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Distance_2/include/CGAL/Distance_2/Ray_2_Line_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Distance_2/include/CGAL/Distance_2/Ray_2_Line_2.h $ // $Id: Ray_2_Line_2.h cf15bbe 2021-05-07T19:22:00+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Distance_2/Ray_2_Ray_2.h cgal-5.5/include/CGAL/Distance_2/Ray_2_Ray_2.h --- cgal-5.4.1/include/CGAL/Distance_2/Ray_2_Ray_2.h 2022-06-03 19:04:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Distance_2/Ray_2_Ray_2.h 2022-07-13 19:04:57.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Distance_2/include/CGAL/Distance_2/Ray_2_Ray_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Distance_2/include/CGAL/Distance_2/Ray_2_Ray_2.h $ // $Id: Ray_2_Ray_2.h cf15bbe 2021-05-07T19:22:00+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Distance_2/Ray_2_Triangle_2.h cgal-5.5/include/CGAL/Distance_2/Ray_2_Triangle_2.h --- cgal-5.4.1/include/CGAL/Distance_2/Ray_2_Triangle_2.h 2022-06-03 19:04:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Distance_2/Ray_2_Triangle_2.h 2022-07-13 19:04:57.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Distance_2/include/CGAL/Distance_2/Ray_2_Triangle_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Distance_2/include/CGAL/Distance_2/Ray_2_Triangle_2.h $ // $Id: Ray_2_Triangle_2.h cf15bbe 2021-05-07T19:22:00+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Distance_2/Segment_2_Line_2.h cgal-5.5/include/CGAL/Distance_2/Segment_2_Line_2.h --- cgal-5.4.1/include/CGAL/Distance_2/Segment_2_Line_2.h 2022-06-03 19:04:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Distance_2/Segment_2_Line_2.h 2022-07-13 19:04:58.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Distance_2/include/CGAL/Distance_2/Segment_2_Line_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Distance_2/include/CGAL/Distance_2/Segment_2_Line_2.h $ // $Id: Segment_2_Line_2.h cf15bbe 2021-05-07T19:22:00+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Distance_2/Segment_2_Ray_2.h cgal-5.5/include/CGAL/Distance_2/Segment_2_Ray_2.h --- cgal-5.4.1/include/CGAL/Distance_2/Segment_2_Ray_2.h 2022-06-03 19:04:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Distance_2/Segment_2_Ray_2.h 2022-07-13 19:04:58.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Distance_2/include/CGAL/Distance_2/Segment_2_Ray_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Distance_2/include/CGAL/Distance_2/Segment_2_Ray_2.h $ // $Id: Segment_2_Ray_2.h cf15bbe 2021-05-07T19:22:00+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Distance_2/Segment_2_Segment_2.h cgal-5.5/include/CGAL/Distance_2/Segment_2_Segment_2.h --- cgal-5.4.1/include/CGAL/Distance_2/Segment_2_Segment_2.h 2022-06-03 19:04:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Distance_2/Segment_2_Segment_2.h 2022-07-13 19:04:58.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Distance_2/include/CGAL/Distance_2/Segment_2_Segment_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Distance_2/include/CGAL/Distance_2/Segment_2_Segment_2.h $ // $Id: Segment_2_Segment_2.h cf15bbe 2021-05-07T19:22:00+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Distance_2/Segment_2_Triangle_2.h cgal-5.5/include/CGAL/Distance_2/Segment_2_Triangle_2.h --- cgal-5.4.1/include/CGAL/Distance_2/Segment_2_Triangle_2.h 2022-06-03 19:04:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Distance_2/Segment_2_Triangle_2.h 2022-07-13 19:04:58.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Distance_2/include/CGAL/Distance_2/Segment_2_Triangle_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Distance_2/include/CGAL/Distance_2/Segment_2_Triangle_2.h $ // $Id: Segment_2_Triangle_2.h cf15bbe 2021-05-07T19:22:00+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Distance_2/Triangle_2_Triangle_2.h cgal-5.5/include/CGAL/Distance_2/Triangle_2_Triangle_2.h --- cgal-5.4.1/include/CGAL/Distance_2/Triangle_2_Triangle_2.h 2022-06-03 19:04:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Distance_2/Triangle_2_Triangle_2.h 2022-07-13 19:04:58.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Distance_2/include/CGAL/Distance_2/Triangle_2_Triangle_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Distance_2/include/CGAL/Distance_2/Triangle_2_Triangle_2.h $ // $Id: Triangle_2_Triangle_2.h cf15bbe 2021-05-07T19:22:00+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Distance_3/internal/squared_distance_utils_3.h cgal-5.5/include/CGAL/Distance_3/internal/squared_distance_utils_3.h --- cgal-5.4.1/include/CGAL/Distance_3/internal/squared_distance_utils_3.h 2022-06-03 19:04:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Distance_3/internal/squared_distance_utils_3.h 2022-07-13 19:04:58.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Distance_3/include/CGAL/Distance_3/internal/squared_distance_utils_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Distance_3/include/CGAL/Distance_3/internal/squared_distance_utils_3.h $ // $Id: squared_distance_utils_3.h a4a00d9 2021-06-23T22:30:23+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Distance_3/Line_3_Line_3.h cgal-5.5/include/CGAL/Distance_3/Line_3_Line_3.h --- cgal-5.4.1/include/CGAL/Distance_3/Line_3_Line_3.h 2022-06-03 19:04:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Distance_3/Line_3_Line_3.h 2022-07-13 19:04:58.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Distance_3/include/CGAL/Distance_3/Line_3_Line_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Distance_3/include/CGAL/Distance_3/Line_3_Line_3.h $ // $Id: Line_3_Line_3.h cf15bbe 2021-05-07T19:22:00+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Distance_3/Line_3_Plane_3.h cgal-5.5/include/CGAL/Distance_3/Line_3_Plane_3.h --- cgal-5.4.1/include/CGAL/Distance_3/Line_3_Plane_3.h 2022-06-03 19:04:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Distance_3/Line_3_Plane_3.h 2022-07-13 19:04:58.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Distance_3/include/CGAL/Distance_3/Line_3_Plane_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Distance_3/include/CGAL/Distance_3/Line_3_Plane_3.h $ // $Id: Line_3_Plane_3.h cf15bbe 2021-05-07T19:22:00+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Distance_3/Plane_3_Plane_3.h cgal-5.5/include/CGAL/Distance_3/Plane_3_Plane_3.h --- cgal-5.4.1/include/CGAL/Distance_3/Plane_3_Plane_3.h 2022-06-03 19:04:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Distance_3/Plane_3_Plane_3.h 2022-07-13 19:04:58.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Distance_3/include/CGAL/Distance_3/Plane_3_Plane_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Distance_3/include/CGAL/Distance_3/Plane_3_Plane_3.h $ // $Id: Plane_3_Plane_3.h cf15bbe 2021-05-07T19:22:00+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Distance_3/Point_3_Line_3.h cgal-5.5/include/CGAL/Distance_3/Point_3_Line_3.h --- cgal-5.4.1/include/CGAL/Distance_3/Point_3_Line_3.h 2022-06-03 19:04:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Distance_3/Point_3_Line_3.h 2022-07-13 19:04:58.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Distance_3/include/CGAL/Distance_3/Point_3_Line_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Distance_3/include/CGAL/Distance_3/Point_3_Line_3.h $ // $Id: Point_3_Line_3.h a4a00d9 2021-06-23T22:30:23+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Distance_3/Point_3_Plane_3.h cgal-5.5/include/CGAL/Distance_3/Point_3_Plane_3.h --- cgal-5.4.1/include/CGAL/Distance_3/Point_3_Plane_3.h 2022-06-03 19:04:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Distance_3/Point_3_Plane_3.h 2022-07-13 19:04:58.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Distance_3/include/CGAL/Distance_3/Point_3_Plane_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Distance_3/include/CGAL/Distance_3/Point_3_Plane_3.h $ // $Id: Point_3_Plane_3.h cf15bbe 2021-05-07T19:22:00+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Distance_3/Point_3_Point_3.h cgal-5.5/include/CGAL/Distance_3/Point_3_Point_3.h --- cgal-5.4.1/include/CGAL/Distance_3/Point_3_Point_3.h 2022-06-03 19:04:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Distance_3/Point_3_Point_3.h 2022-07-13 19:04:58.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Distance_3/include/CGAL/Distance_3/Point_3_Point_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Distance_3/include/CGAL/Distance_3/Point_3_Point_3.h $ // $Id: Point_3_Point_3.h 5deb509 2021-04-12T14:42:44+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Distance_3/Point_3_Ray_3.h cgal-5.5/include/CGAL/Distance_3/Point_3_Ray_3.h --- cgal-5.4.1/include/CGAL/Distance_3/Point_3_Ray_3.h 2022-06-03 19:04:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Distance_3/Point_3_Ray_3.h 2022-07-13 19:04:58.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Distance_3/include/CGAL/Distance_3/Point_3_Ray_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Distance_3/include/CGAL/Distance_3/Point_3_Ray_3.h $ // $Id: Point_3_Ray_3.h a4a00d9 2021-06-23T22:30:23+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Distance_3/Point_3_Segment_3.h cgal-5.5/include/CGAL/Distance_3/Point_3_Segment_3.h --- cgal-5.4.1/include/CGAL/Distance_3/Point_3_Segment_3.h 2022-06-03 19:04:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Distance_3/Point_3_Segment_3.h 2022-07-13 19:04:58.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Distance_3/include/CGAL/Distance_3/Point_3_Segment_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Distance_3/include/CGAL/Distance_3/Point_3_Segment_3.h $ // $Id: Point_3_Segment_3.h a4a00d9 2021-06-23T22:30:23+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Distance_3/Point_3_Tetrahedron_3.h cgal-5.5/include/CGAL/Distance_3/Point_3_Tetrahedron_3.h --- cgal-5.4.1/include/CGAL/Distance_3/Point_3_Tetrahedron_3.h 2022-06-03 19:04:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Distance_3/Point_3_Tetrahedron_3.h 2022-07-13 19:04:58.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Distance_3/include/CGAL/Distance_3/Point_3_Tetrahedron_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Distance_3/include/CGAL/Distance_3/Point_3_Tetrahedron_3.h $ // $Id: Point_3_Tetrahedron_3.h cf15bbe 2021-05-07T19:22:00+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Distance_3/Point_3_Triangle_3.h cgal-5.5/include/CGAL/Distance_3/Point_3_Triangle_3.h --- cgal-5.4.1/include/CGAL/Distance_3/Point_3_Triangle_3.h 2022-06-03 19:04:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Distance_3/Point_3_Triangle_3.h 2022-07-13 19:04:58.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Distance_3/include/CGAL/Distance_3/Point_3_Triangle_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Distance_3/include/CGAL/Distance_3/Point_3_Triangle_3.h $ // $Id: Point_3_Triangle_3.h 5aeb592 2022-02-28T11:29:54+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Distance_3/Point_3_Weighted_point_3.h cgal-5.5/include/CGAL/Distance_3/Point_3_Weighted_point_3.h --- cgal-5.4.1/include/CGAL/Distance_3/Point_3_Weighted_point_3.h 2022-06-03 19:04:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Distance_3/Point_3_Weighted_point_3.h 2022-07-13 19:04:58.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Distance_3/include/CGAL/Distance_3/Point_3_Weighted_point_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Distance_3/include/CGAL/Distance_3/Point_3_Weighted_point_3.h $ // $Id: Point_3_Weighted_point_3.h cf15bbe 2021-05-07T19:22:00+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Distance_3/Ray_3_Line_3.h cgal-5.5/include/CGAL/Distance_3/Ray_3_Line_3.h --- cgal-5.4.1/include/CGAL/Distance_3/Ray_3_Line_3.h 2022-06-03 19:04:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Distance_3/Ray_3_Line_3.h 2022-07-13 19:04:58.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Distance_3/include/CGAL/Distance_3/Ray_3_Line_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Distance_3/include/CGAL/Distance_3/Ray_3_Line_3.h $ // $Id: Ray_3_Line_3.h cf15bbe 2021-05-07T19:22:00+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Distance_3/Ray_3_Plane_3.h cgal-5.5/include/CGAL/Distance_3/Ray_3_Plane_3.h --- cgal-5.4.1/include/CGAL/Distance_3/Ray_3_Plane_3.h 2022-06-03 19:04:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Distance_3/Ray_3_Plane_3.h 2022-07-13 19:04:58.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Distance_3/include/CGAL/Distance_3/Ray_3_Plane_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Distance_3/include/CGAL/Distance_3/Ray_3_Plane_3.h $ // $Id: Ray_3_Plane_3.h cf15bbe 2021-05-07T19:22:00+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Distance_3/Ray_3_Ray_3.h cgal-5.5/include/CGAL/Distance_3/Ray_3_Ray_3.h --- cgal-5.4.1/include/CGAL/Distance_3/Ray_3_Ray_3.h 2022-06-03 19:04:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Distance_3/Ray_3_Ray_3.h 2022-07-13 19:04:58.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Distance_3/include/CGAL/Distance_3/Ray_3_Ray_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Distance_3/include/CGAL/Distance_3/Ray_3_Ray_3.h $ // $Id: Ray_3_Ray_3.h cf15bbe 2021-05-07T19:22:00+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Distance_3/Segment_3_Line_3.h cgal-5.5/include/CGAL/Distance_3/Segment_3_Line_3.h --- cgal-5.4.1/include/CGAL/Distance_3/Segment_3_Line_3.h 2022-06-03 19:04:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Distance_3/Segment_3_Line_3.h 2022-07-13 19:04:58.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Distance_3/include/CGAL/Distance_3/Segment_3_Line_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Distance_3/include/CGAL/Distance_3/Segment_3_Line_3.h $ // $Id: Segment_3_Line_3.h cf15bbe 2021-05-07T19:22:00+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Distance_3/Segment_3_Plane_3.h cgal-5.5/include/CGAL/Distance_3/Segment_3_Plane_3.h --- cgal-5.4.1/include/CGAL/Distance_3/Segment_3_Plane_3.h 2022-06-03 19:04:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Distance_3/Segment_3_Plane_3.h 2022-07-13 19:04:58.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Distance_3/include/CGAL/Distance_3/Segment_3_Plane_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Distance_3/include/CGAL/Distance_3/Segment_3_Plane_3.h $ // $Id: Segment_3_Plane_3.h cf15bbe 2021-05-07T19:22:00+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Distance_3/Segment_3_Ray_3.h cgal-5.5/include/CGAL/Distance_3/Segment_3_Ray_3.h --- cgal-5.4.1/include/CGAL/Distance_3/Segment_3_Ray_3.h 2022-06-03 19:04:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Distance_3/Segment_3_Ray_3.h 2022-07-13 19:04:58.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Distance_3/include/CGAL/Distance_3/Segment_3_Ray_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Distance_3/include/CGAL/Distance_3/Segment_3_Ray_3.h $ // $Id: Segment_3_Ray_3.h cf15bbe 2021-05-07T19:22:00+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Distance_3/Segment_3_Segment_3.h cgal-5.5/include/CGAL/Distance_3/Segment_3_Segment_3.h --- cgal-5.4.1/include/CGAL/Distance_3/Segment_3_Segment_3.h 2022-06-03 19:04:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Distance_3/Segment_3_Segment_3.h 2022-07-13 19:04:58.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Distance_3/include/CGAL/Distance_3/Segment_3_Segment_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Distance_3/include/CGAL/Distance_3/Segment_3_Segment_3.h $ // $Id: Segment_3_Segment_3.h cf15bbe 2021-05-07T19:22:00+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Distance_3/Triangle_3_Triangle_3.h cgal-5.5/include/CGAL/Distance_3/Triangle_3_Triangle_3.h --- cgal-5.4.1/include/CGAL/Distance_3/Triangle_3_Triangle_3.h 2022-06-03 19:04:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Distance_3/Triangle_3_Triangle_3.h 2022-07-13 19:04:58.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Distance_3/include/CGAL/Distance_3/Triangle_3_Triangle_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Distance_3/include/CGAL/Distance_3/Triangle_3_Triangle_3.h $ // $Id: Triangle_3_Triangle_3.h cf15bbe 2021-05-07T19:22:00+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Distance_3/Weighted_point_3_Weighted_point_3.h cgal-5.5/include/CGAL/Distance_3/Weighted_point_3_Weighted_point_3.h --- cgal-5.4.1/include/CGAL/Distance_3/Weighted_point_3_Weighted_point_3.h 2022-06-03 19:04:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Distance_3/Weighted_point_3_Weighted_point_3.h 2022-07-13 19:04:58.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Distance_3/include/CGAL/Distance_3/Weighted_point_3_Weighted_point_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Distance_3/include/CGAL/Distance_3/Weighted_point_3_Weighted_point_3.h $ // $Id: Weighted_point_3_Weighted_point_3.h cf15bbe 2021-05-07T19:22:00+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/distance_predicates_2.h cgal-5.5/include/CGAL/distance_predicates_2.h --- cgal-5.4.1/include/CGAL/distance_predicates_2.h 2022-06-03 19:04:33.000000000 +0000 +++ cgal-5.5/include/CGAL/distance_predicates_2.h 2022-07-13 19:05:24.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/distance_predicates_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/distance_predicates_2.h $ // $Id: distance_predicates_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/distance_predicates_3.h cgal-5.5/include/CGAL/distance_predicates_3.h --- cgal-5.4.1/include/CGAL/distance_predicates_3.h 2022-06-03 19:04:33.000000000 +0000 +++ cgal-5.5/include/CGAL/distance_predicates_3.h 2022-07-13 19:05:24.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/distance_predicates_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/distance_predicates_3.h $ // $Id: distance_predicates_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/double.h cgal-5.5/include/CGAL/double.h --- cgal-5.4.1/include/CGAL/double.h 2022-06-03 19:05:01.000000000 +0000 +++ cgal-5.5/include/CGAL/double.h 2022-07-13 19:05:55.000000000 +0000 @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/double.h $ -// $Id: double.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/double.h $ +// $Id: double.h 1d0565d 2022-04-20T09:17:02+01:00 Andreas Fabri // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // @@ -125,7 +125,7 @@ static CGAL_ALIGN_16 const union{ __int64 i[2]; __m128d m; - } absMask = {0x7fffffffffffffff, 0x7fffffffffffffff}; + } absMask = { {0x7fffffffffffffff, 0x7fffffffffffffff} }; __m128d temp = _mm_set1_pd(a); diff -Nru cgal-5.4.1/include/CGAL/Double_map.h cgal-5.5/include/CGAL/Double_map.h --- cgal-5.4.1/include/CGAL/Double_map.h 2022-06-03 19:04:49.000000000 +0000 +++ cgal-5.5/include/CGAL/Double_map.h 2022-07-13 19:05:42.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesher_level/include/CGAL/Double_map.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesher_level/include/CGAL/Double_map.h $ // $Id: Double_map.h 393ae7d 2021-05-12T15:03:53+02:00 Maxime Gimeno // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/draw_face_graph.h cgal-5.5/include/CGAL/draw_face_graph.h --- cgal-5.4.1/include/CGAL/draw_face_graph.h 2022-06-03 19:03:49.000000000 +0000 +++ cgal-5.5/include/CGAL/draw_face_graph.h 2022-07-13 19:04:35.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/BGL/include/CGAL/draw_face_graph.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/BGL/include/CGAL/draw_face_graph.h $ // $Id: draw_face_graph.h fb6f703 2021-05-04T14:07:49+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/draw_face_graph_with_paths.h cgal-5.5/include/CGAL/draw_face_graph_with_paths.h --- cgal-5.4.1/include/CGAL/draw_face_graph_with_paths.h 2022-06-03 19:05:58.000000000 +0000 +++ cgal-5.5/include/CGAL/draw_face_graph_with_paths.h 2022-07-13 19:06:55.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_topology/include/CGAL/draw_face_graph_with_paths.h $ -// $Id: draw_face_graph_with_paths.h ee11c85 2021-11-10T09:59:48+01:00 Guillaume Damiand +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_topology/include/CGAL/draw_face_graph_with_paths.h $ +// $Id: draw_face_graph_with_paths.h 440a8df 2022-02-03T08:41:04+00:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Guillaume Damiand @@ -18,6 +18,7 @@ #include #include #include +#include #ifdef CGAL_USE_BASIC_VIEWER @@ -52,7 +53,7 @@ } while(adart!=dh); - assert(nb>0); + CGAL_assertion(nb>0); return typename Get_traits::Kernel::Construct_scaled_vector_3() (normal, 1.0/nb); } diff -Nru cgal-5.4.1/include/CGAL/draw_linear_cell_complex.h cgal-5.5/include/CGAL/draw_linear_cell_complex.h --- cgal-5.4.1/include/CGAL/draw_linear_cell_complex.h 2022-06-03 19:04:42.000000000 +0000 +++ cgal-5.5/include/CGAL/draw_linear_cell_complex.h 2022-07-13 19:05:34.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Linear_cell_complex/include/CGAL/draw_linear_cell_complex.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Linear_cell_complex/include/CGAL/draw_linear_cell_complex.h $ // $Id: draw_linear_cell_complex.h 2bbcabe 2021-11-11T17:23:37+01:00 Guillaume Damiand // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/draw_nef_3.h cgal-5.5/include/CGAL/draw_nef_3.h --- cgal-5.4.1/include/CGAL/draw_nef_3.h 2022-06-03 19:04:56.000000000 +0000 +++ cgal-5.5/include/CGAL/draw_nef_3.h 2022-07-13 19:05:49.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_3/include/CGAL/draw_nef_3.h $ -// $Id: draw_nef_3.h 2bbcabe 2021-11-11T17:23:37+01:00 Guillaume Damiand +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_3/include/CGAL/draw_nef_3.h $ +// $Id: draw_nef_3.h 2df2398 2022-03-07T17:37:54+01:00 Guillaume Damiand // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -22,6 +22,8 @@ #include #include #include +#include + #include namespace CGAL { @@ -101,9 +103,10 @@ return; } + + SHalfedge_const_handle se; - Halffacet_cycle_const_iterator fc; - fc = f->facet_cycles_begin(); + Halffacet_cycle_const_iterator fc=f->facet_cycles_begin(); se = SHalfedge_const_handle(fc); // non-zero if shalfedge is returned if(se == 0) @@ -116,13 +119,35 @@ SHalfedge_around_facet_const_circulator hc_start(se); SHalfedge_around_facet_const_circulator hc_end(hc_start); + Vertex_const_handle lastvh; CGAL_For_all(hc_start, hc_end) { - Vertex_const_handle vh = hc_start->source()->center_vertex(); + Vertex_const_handle vh=hc_start->source()->center_vertex(); + lastvh=vh; viewer.add_point_in_face(vh->point(), viewer.get_vertex_normal(vh)); } + + // Now iterate through holes of the face + ++fc; + while(fc!=f->facet_cycles_end()) + { + se = SHalfedge_const_handle(fc); + hc_start=se; + hc_end=hc_start; + CGAL_For_all(hc_start, hc_end) { + Vertex_const_handle vh=hc_start->source()->center_vertex(); + viewer.add_point_in_face(vh->point(), + viewer.get_vertex_normal(vh)); + } + viewer.add_point_in_face(hc_start->source()->center_vertex()->point(), + viewer.get_vertex_normal(hc_start->source()->center_vertex())); + viewer.add_point_in_face(lastvh->point(), + viewer.get_vertex_normal(lastvh)); + ++fc; + } + viewer.face_end(); - facets_done[f] = true; + facets_done[f]=true; n_faces++; } @@ -209,7 +234,7 @@ ++nb; } - assert(nb > 0); + CGAL_assertion(nb > 0); return (typename Local_kernel::Construct_scaled_vector_3()(normal, 1.0 / nb)); } diff -Nru cgal-5.4.1/include/CGAL/draw_periodic_2_triangulation_2.h cgal-5.5/include/CGAL/draw_periodic_2_triangulation_2.h --- cgal-5.4.1/include/CGAL/draw_periodic_2_triangulation_2.h 2022-06-03 19:05:08.000000000 +0000 +++ cgal-5.5/include/CGAL/draw_periodic_2_triangulation_2.h 2022-07-13 19:06:02.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_2_triangulation_2/include/CGAL/draw_periodic_2_triangulation_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_2_triangulation_2/include/CGAL/draw_periodic_2_triangulation_2.h $ // $Id: draw_periodic_2_triangulation_2.h 2bbcabe 2021-11-11T17:23:37+01:00 Guillaume Damiand // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/draw_point_set_3.h cgal-5.5/include/CGAL/draw_point_set_3.h --- cgal-5.4.1/include/CGAL/draw_point_set_3.h 2022-06-03 19:05:12.000000000 +0000 +++ cgal-5.5/include/CGAL/draw_point_set_3.h 2022-07-13 19:06:06.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Point_set_3/include/CGAL/draw_point_set_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Point_set_3/include/CGAL/draw_point_set_3.h $ // $Id: draw_point_set_3.h 2bbcabe 2021-11-11T17:23:37+01:00 Guillaume Damiand // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/draw_polygon_2.h cgal-5.5/include/CGAL/draw_polygon_2.h --- cgal-5.4.1/include/CGAL/draw_polygon_2.h 2022-06-03 19:05:13.000000000 +0000 +++ cgal-5.5/include/CGAL/draw_polygon_2.h 2022-07-13 19:06:07.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon/include/CGAL/draw_polygon_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon/include/CGAL/draw_polygon_2.h $ // $Id: draw_polygon_2.h 2bbcabe 2021-11-11T17:23:37+01:00 Guillaume Damiand // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/draw_polygon_set_2.h cgal-5.5/include/CGAL/draw_polygon_set_2.h --- cgal-5.4.1/include/CGAL/draw_polygon_set_2.h 2022-06-03 19:03:52.000000000 +0000 +++ cgal-5.5/include/CGAL/draw_polygon_set_2.h 2022-07-13 19:04:38.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Boolean_set_operations_2/include/CGAL/draw_polygon_set_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Boolean_set_operations_2/include/CGAL/draw_polygon_set_2.h $ // $Id: draw_polygon_set_2.h 2bbcabe 2021-11-11T17:23:37+01:00 Guillaume Damiand // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/draw_polygon_with_holes_2.h cgal-5.5/include/CGAL/draw_polygon_with_holes_2.h --- cgal-5.4.1/include/CGAL/draw_polygon_with_holes_2.h 2022-06-03 19:05:13.000000000 +0000 +++ cgal-5.5/include/CGAL/draw_polygon_with_holes_2.h 2022-07-13 19:06:07.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon/include/CGAL/draw_polygon_with_holes_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon/include/CGAL/draw_polygon_with_holes_2.h $ // $Id: draw_polygon_with_holes_2.h 2bbcabe 2021-11-11T17:23:37+01:00 Guillaume Damiand // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/draw_polyhedron.h cgal-5.5/include/CGAL/draw_polyhedron.h --- cgal-5.4.1/include/CGAL/draw_polyhedron.h 2022-06-03 19:05:22.000000000 +0000 +++ cgal-5.5/include/CGAL/draw_polyhedron.h 2022-07-13 19:06:17.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polyhedron/include/CGAL/draw_polyhedron.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polyhedron/include/CGAL/draw_polyhedron.h $ // $Id: draw_polyhedron.h 2bbcabe 2021-11-11T17:23:37+01:00 Guillaume Damiand // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/draw_straight_skeleton_2.h cgal-5.5/include/CGAL/draw_straight_skeleton_2.h --- cgal-5.4.1/include/CGAL/draw_straight_skeleton_2.h 2022-06-03 19:05:50.000000000 +0000 +++ cgal-5.5/include/CGAL/draw_straight_skeleton_2.h 2022-07-13 19:06:47.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Straight_skeleton_2/include/CGAL/draw_straight_skeleton_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Straight_skeleton_2/include/CGAL/draw_straight_skeleton_2.h $ // $Id: draw_straight_skeleton_2.h 2bbcabe 2021-11-11T17:23:37+01:00 Guillaume Damiand // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/draw_surface_mesh.h cgal-5.5/include/CGAL/draw_surface_mesh.h --- cgal-5.4.1/include/CGAL/draw_surface_mesh.h 2022-06-03 19:05:53.000000000 +0000 +++ cgal-5.5/include/CGAL/draw_surface_mesh.h 2022-07-13 19:06:50.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh/include/CGAL/draw_surface_mesh.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh/include/CGAL/draw_surface_mesh.h $ // $Id: draw_surface_mesh.h 2bbcabe 2021-11-11T17:23:37+01:00 Guillaume Damiand // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/draw_triangulation_2.h cgal-5.5/include/CGAL/draw_triangulation_2.h --- cgal-5.4.1/include/CGAL/draw_triangulation_2.h 2022-06-03 19:06:08.000000000 +0000 +++ cgal-5.5/include/CGAL/draw_triangulation_2.h 2022-07-13 19:07:07.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_2/include/CGAL/draw_triangulation_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_2/include/CGAL/draw_triangulation_2.h $ // $Id: draw_triangulation_2.h 2bbcabe 2021-11-11T17:23:37+01:00 Guillaume Damiand // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/draw_triangulation_3.h cgal-5.5/include/CGAL/draw_triangulation_3.h --- cgal-5.4.1/include/CGAL/draw_triangulation_3.h 2022-06-03 19:06:11.000000000 +0000 +++ cgal-5.5/include/CGAL/draw_triangulation_3.h 2022-07-13 19:07:10.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_3/include/CGAL/draw_triangulation_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_3/include/CGAL/draw_triangulation_3.h $ // $Id: draw_triangulation_3.h 2bbcabe 2021-11-11T17:23:37+01:00 Guillaume Damiand // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/draw_voronoi_diagram_2.h cgal-5.5/include/CGAL/draw_voronoi_diagram_2.h --- cgal-5.4.1/include/CGAL/draw_voronoi_diagram_2.h 2022-06-03 19:06:14.000000000 +0000 +++ cgal-5.5/include/CGAL/draw_voronoi_diagram_2.h 2022-07-13 19:07:14.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Voronoi_diagram_2/include/CGAL/draw_voronoi_diagram_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Voronoi_diagram_2/include/CGAL/draw_voronoi_diagram_2.h $ // $Id: draw_voronoi_diagram_2.h 2bbcabe 2021-11-11T17:23:37+01:00 Guillaume Damiand // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Dummy_tds_2.h cgal-5.5/include/CGAL/Dummy_tds_2.h --- cgal-5.4.1/include/CGAL/Dummy_tds_2.h 2022-06-03 19:06:02.000000000 +0000 +++ cgal-5.5/include/CGAL/Dummy_tds_2.h 2022-07-13 19:06:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/TDS_2/include/CGAL/Dummy_tds_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/TDS_2/include/CGAL/Dummy_tds_2.h $ // $Id: Dummy_tds_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Dynamic_matrix.h cgal-5.5/include/CGAL/Dynamic_matrix.h --- cgal-5.4.1/include/CGAL/Dynamic_matrix.h 2022-06-03 19:04:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Dynamic_matrix.h 2022-07-13 19:05:34.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Matrix_search/include/CGAL/Dynamic_matrix.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Matrix_search/include/CGAL/Dynamic_matrix.h $ // $Id: Dynamic_matrix.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Dynamic_property_map.h cgal-5.5/include/CGAL/Dynamic_property_map.h --- cgal-5.4.1/include/CGAL/Dynamic_property_map.h 2022-06-03 19:05:28.000000000 +0000 +++ cgal-5.5/include/CGAL/Dynamic_property_map.h 2022-07-13 19:06:23.000000000 +0000 @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Property_map/include/CGAL/Dynamic_property_map.h $ -// $Id: Dynamic_property_map.h 8166579 2021-10-11T19:58:07+02:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Property_map/include/CGAL/Dynamic_property_map.h $ +// $Id: Dynamic_property_map.h 4ffc949 2022-02-03T17:11:20+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // @@ -19,10 +19,11 @@ #include #include -#include #include #include +#include + namespace CGAL { namespace internal { @@ -69,7 +70,7 @@ } - typedef boost::unordered_map Map; + typedef std::unordered_map Map; std::shared_ptr map_; V default_value_; }; diff -Nru cgal-5.4.1/include/CGAL/edge_aware_upsample_point_set.h cgal-5.5/include/CGAL/edge_aware_upsample_point_set.h --- cgal-5.4.1/include/CGAL/edge_aware_upsample_point_set.h 2022-06-03 19:05:12.000000000 +0000 +++ cgal-5.5/include/CGAL/edge_aware_upsample_point_set.h 2022-07-13 19:06:06.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Point_set_processing_3/include/CGAL/edge_aware_upsample_point_set.h $ -// $Id: edge_aware_upsample_point_set.h 343ef10 2021-04-06T15:13:00+02:00 Laurent Rineau +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Point_set_processing_3/include/CGAL/edge_aware_upsample_point_set.h $ +// $Id: edge_aware_upsample_point_set.h 75b03e6 2022-01-10T15:33:04+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Shihao Wu, Clement Jamin, Pierre Alliez @@ -23,7 +23,7 @@ #include #include -#include +#include #include #include @@ -350,32 +350,32 @@ template + typename NamedParameters = parameters::Default_named_parameters> OutputIterator edge_aware_upsample_point_set( const PointRange& points, OutputIterator output, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { using parameters::choose_parameter; using parameters::get_parameter; // basic geometric types - typedef typename CGAL::GetPointMap::type PointMap; - typedef typename Point_set_processing_3::GetNormalMap::type NormalMap; - typedef typename Point_set_processing_3::GetK::Kernel Kernel; - - CGAL_static_assertion_msg(!(boost::is_same::NoMap>::value), - "Error: no normal map"); + typedef Point_set_processing_3_np_helper NP_helper; + typedef typename NP_helper::Const_point_map PointMap; + typedef typename NP_helper::Normal_map NormalMap; + typedef typename NP_helper::Geom_traits Kernel; + + + CGAL_static_assertion_msg(NP_helper::has_normal_map(), "Error: no normal map"); typedef typename Kernel::Point_3 Point; typedef typename Kernel::Vector_3 Vector; typedef typename Kernel::FT FT; typedef typename rich_grid_internal::Rich_point Rich_point; - PointMap point_map = choose_parameter(get_parameter(np, internal_np::point_map)); - NormalMap normal_map = choose_parameter(get_parameter(np, internal_np::normal_map)); + PointMap point_map = NP_helper::get_const_point_map(points, np); + NormalMap normal_map = NP_helper::get_normal_map(points, np); double sharpness_angle = choose_parameter(get_parameter(np, internal_np::sharpness_angle), 30.); double edge_sensitivity = choose_parameter(get_parameter(np, internal_np::edge_sensitivity), 1); double neighbor_radius = choose_parameter(get_parameter(np, internal_np::neighbor_radius), -1); @@ -613,22 +613,6 @@ return output; } - -/// \cond SKIP_IN_MANUAL -// variant with default NP -template -OutputIterator -edge_aware_upsample_point_set( - const PointRange& points, - OutputIterator output) -{ - return edge_aware_upsample_point_set - (points, output, CGAL::Point_set_processing_3::parameters::all_default(points)); -} -/// \endcond - } //namespace CGAL #include diff -Nru cgal-5.4.1/include/CGAL/Eigen_diagonalize_traits.h cgal-5.5/include/CGAL/Eigen_diagonalize_traits.h --- cgal-5.4.1/include/CGAL/Eigen_diagonalize_traits.h 2022-06-03 19:05:45.000000000 +0000 +++ cgal-5.5/include/CGAL/Eigen_diagonalize_traits.h 2022-07-13 19:06:42.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Solver_interface/include/CGAL/Eigen_diagonalize_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Solver_interface/include/CGAL/Eigen_diagonalize_traits.h $ // $Id: Eigen_diagonalize_traits.h 267a641 2021-05-31T14:01:08+02:00 Dmitry Anisimov // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Eigen_matrix.h cgal-5.5/include/CGAL/Eigen_matrix.h --- cgal-5.4.1/include/CGAL/Eigen_matrix.h 2022-06-03 19:05:45.000000000 +0000 +++ cgal-5.5/include/CGAL/Eigen_matrix.h 2022-07-13 19:06:42.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Solver_interface/include/CGAL/Eigen_matrix.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Solver_interface/include/CGAL/Eigen_matrix.h $ // $Id: Eigen_matrix.h 267a641 2021-05-31T14:01:08+02:00 Dmitry Anisimov // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Eigen_solver_traits.h cgal-5.5/include/CGAL/Eigen_solver_traits.h --- cgal-5.4.1/include/CGAL/Eigen_solver_traits.h 2022-06-03 19:05:45.000000000 +0000 +++ cgal-5.5/include/CGAL/Eigen_solver_traits.h 2022-07-13 19:06:42.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Solver_interface/include/CGAL/Eigen_solver_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Solver_interface/include/CGAL/Eigen_solver_traits.h $ // $Id: Eigen_solver_traits.h b905482 2021-06-11T15:24:49+02:00 Dmitry Anisimov // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Eigen_sparse_matrix.h cgal-5.5/include/CGAL/Eigen_sparse_matrix.h --- cgal-5.4.1/include/CGAL/Eigen_sparse_matrix.h 2022-06-03 19:05:45.000000000 +0000 +++ cgal-5.5/include/CGAL/Eigen_sparse_matrix.h 2022-07-13 19:06:42.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Solver_interface/include/CGAL/Eigen_sparse_matrix.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Solver_interface/include/CGAL/Eigen_sparse_matrix.h $ // $Id: Eigen_sparse_matrix.h 267a641 2021-05-31T14:01:08+02:00 Dmitry Anisimov // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Eigen_svd.h cgal-5.5/include/CGAL/Eigen_svd.h --- cgal-5.4.1/include/CGAL/Eigen_svd.h 2022-06-03 19:05:45.000000000 +0000 +++ cgal-5.5/include/CGAL/Eigen_svd.h 2022-07-13 19:06:42.000000000 +0000 @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Solver_interface/include/CGAL/Eigen_svd.h $ -// $Id: Eigen_svd.h 267a641 2021-05-31T14:01:08+02:00 Dmitry Anisimov +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Solver_interface/include/CGAL/Eigen_svd.h $ +// $Id: Eigen_svd.h a98b548 2022-05-12T16:03:53+02:00 Sven Oesau // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Gael Guennebaud @@ -51,7 +51,11 @@ /// \return the condition number of \f$ M\f$ static FT solve(const Matrix& M, Vector& B) { - Eigen::JacobiSVD jacobiSvd(M.eigen_object(),::Eigen::ComputeThinU | ::Eigen::ComputeThinV); +#if EIGEN_VERSION_AT_LEAST(3,4,90) + Eigen::JacobiSVD jacobiSvd(M.eigen_object()); +#else + Eigen::JacobiSVD jacobiSvd(M.eigen_object(), ::Eigen::ComputeThinU | ::Eigen::ComputeThinV); +#endif B.eigen_object()=jacobiSvd.solve(Vector::EigenType(B.eigen_object())); return jacobiSvd.singularValues().array().abs().maxCoeff() / jacobiSvd.singularValues().array().abs().minCoeff(); diff -Nru cgal-5.4.1/include/CGAL/Eigen_vector.h cgal-5.5/include/CGAL/Eigen_vector.h --- cgal-5.4.1/include/CGAL/Eigen_vector.h 2022-06-03 19:05:45.000000000 +0000 +++ cgal-5.5/include/CGAL/Eigen_vector.h 2022-07-13 19:06:42.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Solver_interface/include/CGAL/Eigen_vector.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Solver_interface/include/CGAL/Eigen_vector.h $ // $Id: Eigen_vector.h 267a641 2021-05-31T14:01:08+02:00 Dmitry Anisimov // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/enable_warnings.h cgal-5.5/include/CGAL/enable_warnings.h --- cgal-5.4.1/include/CGAL/enable_warnings.h 2022-06-03 19:04:20.000000000 +0000 +++ cgal-5.5/include/CGAL/enable_warnings.h 2022-07-13 19:05:09.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/enable_warnings.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/enable_warnings.h $ // $Id: enable_warnings.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Enum_converter.h cgal-5.5/include/CGAL/Enum_converter.h --- cgal-5.4.1/include/CGAL/Enum_converter.h 2022-06-03 19:04:31.000000000 +0000 +++ cgal-5.5/include/CGAL/Enum_converter.h 2022-07-13 19:05:23.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Enum_converter.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Enum_converter.h $ // $Id: Enum_converter.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/enum.h cgal-5.5/include/CGAL/enum.h --- cgal-5.4.1/include/CGAL/enum.h 2022-06-03 19:04:33.000000000 +0000 +++ cgal-5.5/include/CGAL/enum.h 2022-07-13 19:05:24.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/enum.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/enum.h $ // $Id: enum.h 5c8df66 2020-09-25T14:25:14+02:00 Jane Tournois // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Env_default_diagram_1.h cgal-5.5/include/CGAL/Env_default_diagram_1.h --- cgal-5.4.1/include/CGAL/Env_default_diagram_1.h 2022-06-03 19:04:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Env_default_diagram_1.h 2022-07-13 19:04:58.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Envelope_2/include/CGAL/Env_default_diagram_1.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Envelope_2/include/CGAL/Env_default_diagram_1.h $ // $Id: Env_default_diagram_1.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Envelope_2/Env_divide_and_conquer_2.h cgal-5.5/include/CGAL/Envelope_2/Env_divide_and_conquer_2.h --- cgal-5.4.1/include/CGAL/Envelope_2/Env_divide_and_conquer_2.h 2022-06-03 19:04:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Envelope_2/Env_divide_and_conquer_2.h 2022-07-13 19:04:58.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Envelope_2/include/CGAL/Envelope_2/Env_divide_and_conquer_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Envelope_2/include/CGAL/Envelope_2/Env_divide_and_conquer_2.h $ // $Id: Env_divide_and_conquer_2.h 35fd91b 2020-08-20T16:03:29+02:00 Ahmed Essam // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Envelope_2/Env_divide_and_conquer_2_impl.h cgal-5.5/include/CGAL/Envelope_2/Env_divide_and_conquer_2_impl.h --- cgal-5.4.1/include/CGAL/Envelope_2/Env_divide_and_conquer_2_impl.h 2022-06-03 19:04:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Envelope_2/Env_divide_and_conquer_2_impl.h 2022-07-13 19:04:58.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Envelope_2/include/CGAL/Envelope_2/Env_divide_and_conquer_2_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Envelope_2/include/CGAL/Envelope_2/Env_divide_and_conquer_2_impl.h $ // $Id: Env_divide_and_conquer_2_impl.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/envelope_2.h cgal-5.5/include/CGAL/envelope_2.h --- cgal-5.4.1/include/CGAL/envelope_2.h 2022-06-03 19:04:10.000000000 +0000 +++ cgal-5.5/include/CGAL/envelope_2.h 2022-07-13 19:04:58.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Envelope_2/include/CGAL/envelope_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Envelope_2/include/CGAL/envelope_2.h $ // $Id: envelope_2.h a46398d 2020-08-25T13:43:49+02:00 Ahmed Essam // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Envelope_3/Envelope_base.h cgal-5.5/include/CGAL/Envelope_3/Envelope_base.h --- cgal-5.4.1/include/CGAL/Envelope_3/Envelope_base.h 2022-06-03 19:04:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Envelope_3/Envelope_base.h 2022-07-13 19:04:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Envelope_3/include/CGAL/Envelope_3/Envelope_base.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Envelope_3/include/CGAL/Envelope_3/Envelope_base.h $ // $Id: Envelope_base.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Envelope_3/Envelope_diagram_on_surface_2.h cgal-5.5/include/CGAL/Envelope_3/Envelope_diagram_on_surface_2.h --- cgal-5.4.1/include/CGAL/Envelope_3/Envelope_diagram_on_surface_2.h 2022-06-03 19:04:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Envelope_3/Envelope_diagram_on_surface_2.h 2022-07-13 19:04:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Envelope_3/include/CGAL/Envelope_3/Envelope_diagram_on_surface_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Envelope_3/include/CGAL/Envelope_3/Envelope_diagram_on_surface_2.h $ // $Id: Envelope_diagram_on_surface_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Envelope_3/Envelope_divide_and_conquer_3.h cgal-5.5/include/CGAL/Envelope_3/Envelope_divide_and_conquer_3.h --- cgal-5.4.1/include/CGAL/Envelope_3/Envelope_divide_and_conquer_3.h 2022-06-03 19:04:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Envelope_3/Envelope_divide_and_conquer_3.h 2022-07-13 19:04:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Envelope_3/include/CGAL/Envelope_3/Envelope_divide_and_conquer_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Envelope_3/include/CGAL/Envelope_3/Envelope_divide_and_conquer_3.h $ // $Id: Envelope_divide_and_conquer_3.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Envelope_3/Envelope_element_visitor_3.h cgal-5.5/include/CGAL/Envelope_3/Envelope_element_visitor_3.h --- cgal-5.4.1/include/CGAL/Envelope_3/Envelope_element_visitor_3.h 2022-06-03 19:04:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Envelope_3/Envelope_element_visitor_3.h 2022-07-13 19:04:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Envelope_3/include/CGAL/Envelope_3/Envelope_element_visitor_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Envelope_3/include/CGAL/Envelope_3/Envelope_element_visitor_3.h $ // $Id: Envelope_element_visitor_3.h 0d66e19 2020-07-24T17:05:10+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Envelope_3/Envelope_overlay_2.h cgal-5.5/include/CGAL/Envelope_3/Envelope_overlay_2.h --- cgal-5.4.1/include/CGAL/Envelope_3/Envelope_overlay_2.h 2022-06-03 19:04:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Envelope_3/Envelope_overlay_2.h 2022-07-13 19:04:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Envelope_3/include/CGAL/Envelope_3/Envelope_overlay_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Envelope_3/include/CGAL/Envelope_3/Envelope_overlay_2.h $ // $Id: Envelope_overlay_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Envelope_3/Envelope_overlay_functor.h cgal-5.5/include/CGAL/Envelope_3/Envelope_overlay_functor.h --- cgal-5.4.1/include/CGAL/Envelope_3/Envelope_overlay_functor.h 2022-06-03 19:04:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Envelope_3/Envelope_overlay_functor.h 2022-07-13 19:04:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Envelope_3/include/CGAL/Envelope_3/Envelope_overlay_functor.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Envelope_3/include/CGAL/Envelope_3/Envelope_overlay_functor.h $ // $Id: Envelope_overlay_functor.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Envelope_3/Envelope_pm_dcel.h cgal-5.5/include/CGAL/Envelope_3/Envelope_pm_dcel.h --- cgal-5.4.1/include/CGAL/Envelope_3/Envelope_pm_dcel.h 2022-06-03 19:04:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Envelope_3/Envelope_pm_dcel.h 2022-07-13 19:04:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Envelope_3/include/CGAL/Envelope_3/Envelope_pm_dcel.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Envelope_3/include/CGAL/Envelope_3/Envelope_pm_dcel.h $ // $Id: Envelope_pm_dcel.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Envelope_3/Env_plane_traits_3_functions.h cgal-5.5/include/CGAL/Envelope_3/Env_plane_traits_3_functions.h --- cgal-5.4.1/include/CGAL/Envelope_3/Env_plane_traits_3_functions.h 2022-06-03 19:04:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Envelope_3/Env_plane_traits_3_functions.h 2022-07-13 19:04:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Envelope_3/include/CGAL/Envelope_3/Env_plane_traits_3_functions.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Envelope_3/include/CGAL/Envelope_3/Env_plane_traits_3_functions.h $ // $Id: Env_plane_traits_3_functions.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Envelope_3/set_dividors.h cgal-5.5/include/CGAL/Envelope_3/set_dividors.h --- cgal-5.4.1/include/CGAL/Envelope_3/set_dividors.h 2022-06-03 19:04:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Envelope_3/set_dividors.h 2022-07-13 19:04:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Envelope_3/include/CGAL/Envelope_3/set_dividors.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Envelope_3/include/CGAL/Envelope_3/set_dividors.h $ // $Id: set_dividors.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/envelope_3.h cgal-5.5/include/CGAL/envelope_3.h --- cgal-5.4.1/include/CGAL/envelope_3.h 2022-06-03 19:04:11.000000000 +0000 +++ cgal-5.5/include/CGAL/envelope_3.h 2022-07-13 19:04:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Envelope_3/include/CGAL/envelope_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Envelope_3/include/CGAL/envelope_3.h $ // $Id: envelope_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Envelope_diagram_1.h cgal-5.5/include/CGAL/Envelope_diagram_1.h --- cgal-5.4.1/include/CGAL/Envelope_diagram_1.h 2022-06-03 19:04:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Envelope_diagram_1.h 2022-07-13 19:04:58.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Envelope_2/include/CGAL/Envelope_diagram_1.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Envelope_2/include/CGAL/Envelope_diagram_1.h $ // $Id: Envelope_diagram_1.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Env_plane_traits_3.h cgal-5.5/include/CGAL/Env_plane_traits_3.h --- cgal-5.4.1/include/CGAL/Env_plane_traits_3.h 2022-06-03 19:04:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Env_plane_traits_3.h 2022-07-13 19:04:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Envelope_3/include/CGAL/Env_plane_traits_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Envelope_3/include/CGAL/Env_plane_traits_3.h $ // $Id: Env_plane_traits_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Env_sphere_traits_3.h cgal-5.5/include/CGAL/Env_sphere_traits_3.h --- cgal-5.4.1/include/CGAL/Env_sphere_traits_3.h 2022-06-03 19:04:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Env_sphere_traits_3.h 2022-07-13 19:04:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Envelope_3/include/CGAL/Env_sphere_traits_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Envelope_3/include/CGAL/Env_sphere_traits_3.h $ // $Id: Env_sphere_traits_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Env_surface_data_traits_3.h cgal-5.5/include/CGAL/Env_surface_data_traits_3.h --- cgal-5.4.1/include/CGAL/Env_surface_data_traits_3.h 2022-06-03 19:04:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Env_surface_data_traits_3.h 2022-07-13 19:04:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Envelope_3/include/CGAL/Env_surface_data_traits_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Envelope_3/include/CGAL/Env_surface_data_traits_3.h $ // $Id: Env_surface_data_traits_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Env_tracing_traits_3.h cgal-5.5/include/CGAL/Env_tracing_traits_3.h --- cgal-5.4.1/include/CGAL/Env_tracing_traits_3.h 2022-06-03 19:04:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Env_tracing_traits_3.h 2022-07-13 19:04:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Envelope_3/include/CGAL/Env_tracing_traits_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Envelope_3/include/CGAL/Env_tracing_traits_3.h $ // $Id: Env_tracing_traits_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Env_triangle_traits_3.h cgal-5.5/include/CGAL/Env_triangle_traits_3.h --- cgal-5.4.1/include/CGAL/Env_triangle_traits_3.h 2022-06-03 19:04:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Env_triangle_traits_3.h 2022-07-13 19:04:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Envelope_3/include/CGAL/Env_triangle_traits_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Envelope_3/include/CGAL/Env_triangle_traits_3.h $ // $Id: Env_triangle_traits_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Epeck_d.h cgal-5.5/include/CGAL/Epeck_d.h --- cgal-5.4.1/include/CGAL/Epeck_d.h 2022-06-03 19:04:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Epeck_d.h 2022-07-13 19:05:50.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/NewKernel_d/include/CGAL/Epeck_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/NewKernel_d/include/CGAL/Epeck_d.h $ // $Id: Epeck_d.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Epic_converter.h cgal-5.5/include/CGAL/Epic_converter.h --- cgal-5.4.1/include/CGAL/Epic_converter.h 2022-06-03 19:04:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Epic_converter.h 2022-07-13 19:04:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Filtered_kernel/include/CGAL/Epic_converter.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Filtered_kernel/include/CGAL/Epic_converter.h $ // $Id: Epic_converter.h c4b8c37 2022-03-11T10:21:51+00:00 Andreas Fabri // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Epick_d.h cgal-5.5/include/CGAL/Epick_d.h --- cgal-5.4.1/include/CGAL/Epick_d.h 2022-06-03 19:04:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Epick_d.h 2022-07-13 19:05:50.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/NewKernel_d/include/CGAL/Epick_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/NewKernel_d/include/CGAL/Epick_d.h $ // $Id: Epick_d.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/estimate_scale.h cgal-5.5/include/CGAL/estimate_scale.h --- cgal-5.4.1/include/CGAL/estimate_scale.h 2022-06-03 19:05:12.000000000 +0000 +++ cgal-5.5/include/CGAL/estimate_scale.h 2022-07-13 19:06:06.000000000 +0000 @@ -4,8 +4,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Point_set_processing_3/include/CGAL/estimate_scale.h $ -// $Id: estimate_scale.h 4eb1464 2021-11-09T11:21:24+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Point_set_processing_3/include/CGAL/estimate_scale.h $ +// $Id: estimate_scale.h 75b03e6 2022-01-10T15:33:04+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Simon Giraudot @@ -27,7 +27,7 @@ #include #include -#include +#include #include #include @@ -482,25 +482,26 @@ template OutputIterator estimate_local_k_neighbor_scales( const PointRange& points, const QueryPointRange& queries, OutputIterator output, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { using parameters::choose_parameter; using parameters::get_parameter; - typedef typename CGAL::GetPointMap::const_type PointMap; + typedef Point_set_processing_3_np_helper NP_helper; + typedef typename NP_helper::Const_point_map PointMap; + typedef typename NP_helper::Geom_traits Kernel; typedef typename CGAL::GetPointMap::const_type QueryPointMap; - typedef typename Point_set_processing_3::GetK::Kernel Kernel; typedef typename boost::property_traits::value_type Point_d; - PointMap point_map = choose_parameter(get_parameter(np, internal_np::point_map)); + PointMap point_map = NP_helper::get_const_point_map(points, np); QueryPointMap query_point_map = choose_parameter(get_parameter(np, internal_np::query_point_map)); // Build multi-scale KD-tree @@ -516,23 +517,6 @@ return output; } -/// \cond SKIP_IN_MANUAL -// variant with default NP -template -OutputIterator -estimate_local_k_neighbor_scales( - const PointRange& points, - const QueryPointRange& queries, - OutputIterator output) -{ - return estimate_local_k_neighbor_scales - (points, queries, output, CGAL::Point_set_processing_3::parameters::all_default(points)); -} -/// \endcond - /** \ingroup PkgPointSetProcessing3Algorithms @@ -569,35 +553,25 @@ \return The estimated scale in the K nearest neighbors sense. */ template std::size_t estimate_global_k_neighbor_scale( const PointRange& points, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { using parameters::choose_parameter; using parameters::get_parameter; - typedef typename CGAL::GetPointMap::const_type PointMap; - PointMap point_map = choose_parameter(get_parameter(np, internal_np::point_map)); + typedef Point_set_processing_3_np_helper NP_helper; + typedef typename NP_helper::Const_point_map PointMap; + PointMap point_map = NP_helper::get_const_point_map(points, np); std::vector scales; estimate_local_k_neighbor_scales (points, points, std::back_inserter (scales), np.query_point_map(point_map)); std::sort (scales.begin(), scales.end()); return scales[scales.size() / 2]; } -/// \cond SKIP_IN_MANUAL -// variant with default NP -template -std::size_t -estimate_global_k_neighbor_scale(const PointRange& points) -{ - return estimate_global_k_neighbor_scale - (points, CGAL::Point_set_processing_3::parameters::all_default(points)); -} -/// \endcond - /** \ingroup PkgPointSetProcessing3Algorithms @@ -650,25 +624,26 @@ template OutputIterator estimate_local_range_scales( const PointRange& points, const QueryPointRange& queries, OutputIterator output, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { using parameters::choose_parameter; using parameters::get_parameter; - typedef typename CGAL::GetPointMap::const_type PointMap; + typedef Point_set_processing_3_np_helper NP_helper; + typedef typename NP_helper::Const_point_map PointMap; + typedef typename NP_helper::Geom_traits Kernel; typedef typename CGAL::GetPointMap::const_type QueryPointMap; - typedef typename Point_set_processing_3::GetK::Kernel Kernel; typedef typename boost::property_traits::value_type Point_d; - PointMap point_map = choose_parameter(get_parameter(np, internal_np::point_map)); + PointMap point_map = NP_helper::get_const_point_map(points, np); QueryPointMap query_point_map = choose_parameter(get_parameter(np, internal_np::query_point_map)); // Build multi-scale KD-tree @@ -683,23 +658,6 @@ return output; } -/// \cond SKIP_IN_MANUAL -// variant with default NP -template -OutputIterator -estimate_local_range_scales( - const PointRange& points, - const QueryPointRange& queries, - OutputIterator output) -{ - return estimate_local_range_scales - (points, queries, output, CGAL::Point_set_processing_3::parameters::all_default(points)); -} -/// \endcond - /** \ingroup PkgPointSetProcessing3Algorithms @@ -740,39 +698,29 @@ of `points`. */ template #ifdef DOXYGEN_RUNNING FT #else - typename Point_set_processing_3::GetK::Kernel::FT + typename Point_set_processing_3_np_helper::FT #endif estimate_global_range_scale( const PointRange& points, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { using parameters::choose_parameter; using parameters::get_parameter; std::vector scales; - typedef typename CGAL::GetPointMap::const_type PointMap; - PointMap point_map = choose_parameter(get_parameter(np, internal_np::point_map)); + typedef Point_set_processing_3_np_helper NP_helper; + typedef typename NP_helper::Const_point_map PointMap; + PointMap point_map = NP_helper::get_const_point_map(points, np); estimate_local_range_scales (points, points, std::back_inserter (scales), np.query_point_map(point_map)); std::sort (scales.begin(), scales.end()); return std::sqrt (scales[scales.size() / 2]); } -/// \cond SKIP_IN_MANUAL -// variant with default NP -template -typename Point_set_processing_3::GetFT::type -estimate_global_range_scale(const PointRange& points) -{ - return estimate_global_range_scale - (points, CGAL::Point_set_processing_3::parameters::all_default(points)); -} -/// \endcond - } //namespace CGAL #include diff -Nru cgal-5.4.1/include/CGAL/Euclidean_distance.h cgal-5.5/include/CGAL/Euclidean_distance.h --- cgal-5.4.1/include/CGAL/Euclidean_distance.h 2022-06-03 19:05:47.000000000 +0000 +++ cgal-5.5/include/CGAL/Euclidean_distance.h 2022-07-13 19:06:43.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Spatial_searching/include/CGAL/Euclidean_distance.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Spatial_searching/include/CGAL/Euclidean_distance.h $ // $Id: Euclidean_distance.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Euclidean_distance_sphere_point.h cgal-5.5/include/CGAL/Euclidean_distance_sphere_point.h --- cgal-5.4.1/include/CGAL/Euclidean_distance_sphere_point.h 2022-06-03 19:05:47.000000000 +0000 +++ cgal-5.5/include/CGAL/Euclidean_distance_sphere_point.h 2022-07-13 19:06:43.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Spatial_searching/include/CGAL/Euclidean_distance_sphere_point.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Spatial_searching/include/CGAL/Euclidean_distance_sphere_point.h $ // $Id: Euclidean_distance_sphere_point.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Euler_integrator_2.h cgal-5.5/include/CGAL/Euler_integrator_2.h --- cgal-5.4.1/include/CGAL/Euler_integrator_2.h 2022-06-03 19:05:51.000000000 +0000 +++ cgal-5.5/include/CGAL/Euler_integrator_2.h 2022-07-13 19:06:47.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Stream_lines_2/include/CGAL/Euler_integrator_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Stream_lines_2/include/CGAL/Euler_integrator_2.h $ // $Id: Euler_integrator_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Exact_algebraic.h cgal-5.5/include/CGAL/Exact_algebraic.h --- cgal-5.4.1/include/CGAL/Exact_algebraic.h 2022-06-03 19:05:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Exact_algebraic.h 2022-07-13 19:05:53.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/Exact_algebraic.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/Exact_algebraic.h $ // $Id: Exact_algebraic.h 350b917 2021-04-11T14:50:44+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Exact_circular_kernel_2.h cgal-5.5/include/CGAL/Exact_circular_kernel_2.h --- cgal-5.4.1/include/CGAL/Exact_circular_kernel_2.h 2022-06-03 19:04:01.000000000 +0000 +++ cgal-5.5/include/CGAL/Exact_circular_kernel_2.h 2022-07-13 19:04:48.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Circular_kernel_2/include/CGAL/Exact_circular_kernel_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Circular_kernel_2/include/CGAL/Exact_circular_kernel_2.h $ // $Id: Exact_circular_kernel_2.h e813d9f 2021-05-28T11:25:01+02:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Exact_integer.h cgal-5.5/include/CGAL/Exact_integer.h --- cgal-5.4.1/include/CGAL/Exact_integer.h 2022-06-03 19:05:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Exact_integer.h 2022-07-13 19:05:53.000000000 +0000 @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/Exact_integer.h $ -// $Id: Exact_integer.h 350b917 2021-04-11T14:50:44+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/Exact_integer.h $ +// $Id: Exact_integer.h 4bd7049 2022-05-03T12:14:50+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // @@ -50,30 +50,30 @@ #else // not DOXYGEN_RUNNING -#if CGAL_USE_GMPXX - +#if ( (defined(CGAL_TEST_SUITE) && CGAL_VERSION_NR == 1050500900) || defined(CGAL_FORCE_USE_BOOST_MP))\ + && BOOST_VERSION > 107800 && defined(CGAL_USE_BOOST_MP) +// use boost-mp by default in the testsuite until 5.5-beta is out +typedef BOOST_cpp_arithmetic_kernel::Integer Exact_integer; +#else // BOOST_VERSION > 107800 +#ifdef CGAL_USE_GMPXX typedef mpz_class Exact_integer; - -#elif CGAL_USE_GMP -# ifdef CGAL_USE_BOOST_MP -typedef boost::multiprecision::mpz_int Exact_integer; -# else +#elif defined(CGAL_USE_GMP) +#if defined(CGAL_USE_BOOST_MP) +typedef BOOST_gmp_arithmetic_kernel::Integer Exact_integer; +#else typedef Gmpz Exact_integer; -# endif - -#elif CGAL_USE_LEDA - +#endif +#elif defined(CGAL_USE_LEDA) typedef leda_integer Exact_integer; - -#elif CGAL_USE_CORE - +#elif defined(CGAL_USE_BOOST_MP) +typedef BOOST_cpp_arithmetic_kernel::Integer Exact_integer; +#elif defined(CGAL_USE_CORE) typedef CORE::BigInt Exact_integer; - -#elif defined CGAL_USE_BOOST_MP - -typedef boost::multiprecision::cpp_int Exact_integer; - +#else +#error "ERROR: Cannot determine a BigInt type!" #endif // CGAL_USE_CORE +#endif // BOOST_VERSION > 107800 + #endif // not DOXYGEN_RUNNING } /* end namespace CGAL */ diff -Nru cgal-5.4.1/include/CGAL/Exact_kernel_selector.h cgal-5.5/include/CGAL/Exact_kernel_selector.h --- cgal-5.4.1/include/CGAL/Exact_kernel_selector.h 2022-06-03 19:04:31.000000000 +0000 +++ cgal-5.5/include/CGAL/Exact_kernel_selector.h 2022-07-13 19:05:23.000000000 +0000 @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Exact_kernel_selector.h $ -// $Id: Exact_kernel_selector.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Exact_kernel_selector.h $ +// $Id: Exact_kernel_selector.h 561cc66 2022-06-29T12:30:35+02:00 Laurent Rineau // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Sylvain Pion, @@ -31,7 +31,7 @@ namespace CGAL { -template +template struct Exact_kernel_selector { typedef typename internal::Exact_field_selector::Type Exact_nt; diff -Nru cgal-5.4.1/include/CGAL/Exact_predicates_exact_constructions_kernel.h cgal-5.5/include/CGAL/Exact_predicates_exact_constructions_kernel.h --- cgal-5.4.1/include/CGAL/Exact_predicates_exact_constructions_kernel.h 2022-06-03 19:04:31.000000000 +0000 +++ cgal-5.5/include/CGAL/Exact_predicates_exact_constructions_kernel.h 2022-07-13 19:05:23.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Exact_predicates_exact_constructions_kernel.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Exact_predicates_exact_constructions_kernel.h $ // $Id: Exact_predicates_exact_constructions_kernel.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Exact_predicates_exact_constructions_kernel_with_kth_root.h cgal-5.5/include/CGAL/Exact_predicates_exact_constructions_kernel_with_kth_root.h --- cgal-5.4.1/include/CGAL/Exact_predicates_exact_constructions_kernel_with_kth_root.h 2022-06-03 19:04:31.000000000 +0000 +++ cgal-5.5/include/CGAL/Exact_predicates_exact_constructions_kernel_with_kth_root.h 2022-07-13 19:05:23.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Exact_predicates_exact_constructions_kernel_with_kth_root.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Exact_predicates_exact_constructions_kernel_with_kth_root.h $ // $Id: Exact_predicates_exact_constructions_kernel_with_kth_root.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Exact_predicates_exact_constructions_kernel_with_root_of.h cgal-5.5/include/CGAL/Exact_predicates_exact_constructions_kernel_with_root_of.h --- cgal-5.4.1/include/CGAL/Exact_predicates_exact_constructions_kernel_with_root_of.h 2022-06-03 19:04:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Exact_predicates_exact_constructions_kernel_with_root_of.h 2022-07-13 19:05:23.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Exact_predicates_exact_constructions_kernel_with_root_of.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Exact_predicates_exact_constructions_kernel_with_root_of.h $ // $Id: Exact_predicates_exact_constructions_kernel_with_root_of.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Exact_predicates_exact_constructions_kernel_with_sqrt.h cgal-5.5/include/CGAL/Exact_predicates_exact_constructions_kernel_with_sqrt.h --- cgal-5.4.1/include/CGAL/Exact_predicates_exact_constructions_kernel_with_sqrt.h 2022-06-03 19:04:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Exact_predicates_exact_constructions_kernel_with_sqrt.h 2022-07-13 19:05:23.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Exact_predicates_exact_constructions_kernel_with_sqrt.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Exact_predicates_exact_constructions_kernel_with_sqrt.h $ // $Id: Exact_predicates_exact_constructions_kernel_with_sqrt.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Exact_predicates_inexact_constructions_kernel.h cgal-5.5/include/CGAL/Exact_predicates_inexact_constructions_kernel.h --- cgal-5.4.1/include/CGAL/Exact_predicates_inexact_constructions_kernel.h 2022-06-03 19:04:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Exact_predicates_inexact_constructions_kernel.h 2022-07-13 19:05:23.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Exact_predicates_inexact_constructions_kernel.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Exact_predicates_inexact_constructions_kernel.h $ // $Id: Exact_predicates_inexact_constructions_kernel.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Exact_rational.h cgal-5.5/include/CGAL/Exact_rational.h --- cgal-5.4.1/include/CGAL/Exact_rational.h 2022-06-03 19:05:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Exact_rational.h 2022-07-13 19:05:53.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/Exact_rational.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/Exact_rational.h $ // $Id: Exact_rational.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Exact_spherical_kernel_3.h cgal-5.5/include/CGAL/Exact_spherical_kernel_3.h --- cgal-5.4.1/include/CGAL/Exact_spherical_kernel_3.h 2022-06-03 19:04:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Exact_spherical_kernel_3.h 2022-07-13 19:04:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Circular_kernel_3/include/CGAL/Exact_spherical_kernel_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Circular_kernel_3/include/CGAL/Exact_spherical_kernel_3.h $ // $Id: Exact_spherical_kernel_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/exceptions.h cgal-5.5/include/CGAL/exceptions.h --- cgal-5.4.1/include/CGAL/exceptions.h 2022-06-03 19:05:33.000000000 +0000 +++ cgal-5.5/include/CGAL/exceptions.h 2022-07-13 19:06:28.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/exceptions.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/exceptions.h $ // $Id: exceptions.h 04305dc 2020-06-13T23:39:35+05:30 Abhay Raj Singh // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Exponent_vector.h cgal-5.5/include/CGAL/Exponent_vector.h --- cgal-5.4.1/include/CGAL/Exponent_vector.h 2022-06-03 19:05:25.000000000 +0000 +++ cgal-5.5/include/CGAL/Exponent_vector.h 2022-07-13 19:06:20.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polynomial/include/CGAL/Exponent_vector.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polynomial/include/CGAL/Exponent_vector.h $ // $Id: Exponent_vector.h 0ef8127 2021-04-20T20:20:58+01:00 Giles Bathgate // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/export/CGAL.h cgal-5.5/include/CGAL/export/CGAL.h --- cgal-5.4.1/include/CGAL/export/CGAL.h 2022-06-03 19:04:20.000000000 +0000 +++ cgal-5.5/include/CGAL/export/CGAL.h 2022-07-13 19:05:09.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/export/CGAL.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/export/CGAL.h $ // $Id: CGAL.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/export/CORE.h cgal-5.5/include/CGAL/export/CORE.h --- cgal-5.4.1/include/CGAL/export/CORE.h 2022-06-03 19:03:55.000000000 +0000 +++ cgal-5.5/include/CGAL/export/CORE.h 2022-07-13 19:04:42.000000000 +0000 @@ -21,7 +21,7 @@ * WWW URL: http://cs.nyu.edu/exact/ * Email: exact@cs.nyu.edu * - * $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_Core/include/CGAL/export/CORE.h $ + * $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_Core/include/CGAL/export/CORE.h $ * $Id: CORE.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot * SPDX-License-Identifier: LGPL-3.0-or-later ***************************************************************************/ diff -Nru cgal-5.4.1/include/CGAL/export/helpers.h cgal-5.5/include/CGAL/export/helpers.h --- cgal-5.4.1/include/CGAL/export/helpers.h 2022-06-03 19:04:20.000000000 +0000 +++ cgal-5.5/include/CGAL/export/helpers.h 2022-07-13 19:05:09.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/export/helpers.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/export/helpers.h $ // $Id: helpers.h e6c767d 2021-05-12T15:45:07+02:00 Maxime Gimeno // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/export/ImageIO.h cgal-5.5/include/CGAL/export/ImageIO.h --- cgal-5.4.1/include/CGAL/export/ImageIO.h 2022-06-03 19:03:56.000000000 +0000 +++ cgal-5.5/include/CGAL/export/ImageIO.h 2022-07-13 19:04:43.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_ImageIO/include/CGAL/export/ImageIO.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_ImageIO/include/CGAL/export/ImageIO.h $ // $Id: ImageIO.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/export/Qt.h cgal-5.5/include/CGAL/export/Qt.h --- cgal-5.4.1/include/CGAL/export/Qt.h 2022-06-03 19:04:16.000000000 +0000 +++ cgal-5.5/include/CGAL/export/Qt.h 2022-07-13 19:05:05.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/export/Qt.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/export/Qt.h $ // $Id: Qt.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Extended_cartesian.h cgal-5.5/include/CGAL/Extended_cartesian.h --- cgal-5.4.1/include/CGAL/Extended_cartesian.h 2022-06-03 19:04:53.000000000 +0000 +++ cgal-5.5/include/CGAL/Extended_cartesian.h 2022-07-13 19:05:46.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_2/include/CGAL/Extended_cartesian.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_2/include/CGAL/Extended_cartesian.h $ // $Id: Extended_cartesian.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/extended_euclidean_algorithm.h cgal-5.5/include/CGAL/extended_euclidean_algorithm.h --- cgal-5.4.1/include/CGAL/extended_euclidean_algorithm.h 2022-06-03 19:03:30.000000000 +0000 +++ cgal-5.5/include/CGAL/extended_euclidean_algorithm.h 2022-07-13 19:04:13.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_foundations/include/CGAL/extended_euclidean_algorithm.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_foundations/include/CGAL/extended_euclidean_algorithm.h $ // $Id: extended_euclidean_algorithm.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Extended_homogeneous.h cgal-5.5/include/CGAL/Extended_homogeneous.h --- cgal-5.4.1/include/CGAL/Extended_homogeneous.h 2022-06-03 19:04:53.000000000 +0000 +++ cgal-5.5/include/CGAL/Extended_homogeneous.h 2022-07-13 19:05:46.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_2/include/CGAL/Extended_homogeneous.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_2/include/CGAL/Extended_homogeneous.h $ // $Id: Extended_homogeneous.h 7e62c02 2021-04-12T14:02:37+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/extract_mean_curvature_flow_skeleton.h cgal-5.5/include/CGAL/extract_mean_curvature_flow_skeleton.h --- cgal-5.4.1/include/CGAL/extract_mean_curvature_flow_skeleton.h 2022-06-03 19:05:57.000000000 +0000 +++ cgal-5.5/include/CGAL/extract_mean_curvature_flow_skeleton.h 2022-07-13 19:06:54.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_skeletonization/include/CGAL/extract_mean_curvature_flow_skeleton.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_skeletonization/include/CGAL/extract_mean_curvature_flow_skeleton.h $ // $Id: extract_mean_curvature_flow_skeleton.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/extremal_polygon_2.h cgal-5.5/include/CGAL/extremal_polygon_2.h --- cgal-5.4.1/include/CGAL/extremal_polygon_2.h 2022-06-03 19:04:19.000000000 +0000 +++ cgal-5.5/include/CGAL/extremal_polygon_2.h 2022-07-13 19:05:08.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Inscribed_areas/include/CGAL/extremal_polygon_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Inscribed_areas/include/CGAL/extremal_polygon_2.h $ // $Id: extremal_polygon_2.h 3882d27 2021-01-06T10:55:53+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Extremal_polygon_traits_2.h cgal-5.5/include/CGAL/Extremal_polygon_traits_2.h --- cgal-5.4.1/include/CGAL/Extremal_polygon_traits_2.h 2022-06-03 19:04:19.000000000 +0000 +++ cgal-5.5/include/CGAL/Extremal_polygon_traits_2.h 2022-07-13 19:05:08.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Inscribed_areas/include/CGAL/Extremal_polygon_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Inscribed_areas/include/CGAL/Extremal_polygon_traits_2.h $ // $Id: Extremal_polygon_traits_2.h d8d5f1d 2021-01-05T18:41:11+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Extreme_points_traits_adapter_3.h cgal-5.5/include/CGAL/Extreme_points_traits_adapter_3.h --- cgal-5.4.1/include/CGAL/Extreme_points_traits_adapter_3.h 2022-06-03 19:04:09.000000000 +0000 +++ cgal-5.5/include/CGAL/Extreme_points_traits_adapter_3.h 2022-07-13 19:04:57.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Convex_hull_3/include/CGAL/Extreme_points_traits_adapter_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Convex_hull_3/include/CGAL/Extreme_points_traits_adapter_3.h $ // $Id: Extreme_points_traits_adapter_3.h 263ad6b 2020-08-20T18:25:01+02:00 Dmitry Anisimov // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/exude_mesh_3.h cgal-5.5/include/CGAL/exude_mesh_3.h --- cgal-5.4.1/include/CGAL/exude_mesh_3.h 2022-06-03 19:04:49.000000000 +0000 +++ cgal-5.5/include/CGAL/exude_mesh_3.h 2022-07-13 19:05:41.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/exude_mesh_3.h $ -// $Id: exude_mesh_3.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/exude_mesh_3.h $ +// $Id: exude_mesh_3.h 1c3e09f 2022-01-10T15:32:38+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -48,7 +48,7 @@ (required (in_out(c3t3),*) ) (optional (time_limit_, *, 0 ) - (sliver_bound_, *, parameters::default_values::exude_sliver_bound ) + (sliver_bound_, *, parameters::default_values_for_mesh_3::exude_sliver_bound ) ) ) { diff -Nru cgal-5.4.1/include/CGAL/Face_graph_wrapper.h cgal-5.5/include/CGAL/Face_graph_wrapper.h --- cgal-5.4.1/include/CGAL/Face_graph_wrapper.h 2022-06-03 19:05:58.000000000 +0000 +++ cgal-5.5/include/CGAL/Face_graph_wrapper.h 2022-07-13 19:06:55.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_topology/include/CGAL/Face_graph_wrapper.h $ -// $Id: Face_graph_wrapper.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_topology/include/CGAL/Face_graph_wrapper.h $ +// $Id: Face_graph_wrapper.h 440a8df 2022-02-03T08:41:04+00:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Guillaume Damiand @@ -13,6 +13,7 @@ #define CGAL_FACE_GRAPH_WRAPPER_H 1 #include +#include #include #include @@ -23,6 +24,7 @@ #include #include #include + #include namespace CGAL @@ -614,7 +616,7 @@ if (marks[acells[i]]==INVALID_MARK ) { marks[acells[i]]=get_new_mark(); - assert(is_whole_map_unmarked(marks[acells[i]])); + CGAL_assertion(is_whole_map_unmarked(marks[acells[i]])); } } diff -Nru cgal-5.4.1/include/CGAL/facets_in_complex_3_to_triangle_mesh.h cgal-5.5/include/CGAL/facets_in_complex_3_to_triangle_mesh.h --- cgal-5.4.1/include/CGAL/facets_in_complex_3_to_triangle_mesh.h 2022-06-03 19:04:49.000000000 +0000 +++ cgal-5.5/include/CGAL/facets_in_complex_3_to_triangle_mesh.h 2022-07-13 19:05:41.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/facets_in_complex_3_to_triangle_mesh.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/facets_in_complex_3_to_triangle_mesh.h $ // $Id: facets_in_complex_3_to_triangle_mesh.h ab03816 2022-04-20T10:26:26+02:00 Mael // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Filter_circulator.h cgal-5.5/include/CGAL/Filter_circulator.h --- cgal-5.4.1/include/CGAL/Filter_circulator.h 2022-06-03 19:04:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Filter_circulator.h 2022-07-13 19:05:35.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_2/include/CGAL/Filter_circulator.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_2/include/CGAL/Filter_circulator.h $ // $Id: Filter_circulator.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Filtered_bbox_circular_kernel_2/bbox_filtered_predicates.h cgal-5.5/include/CGAL/Filtered_bbox_circular_kernel_2/bbox_filtered_predicates.h --- cgal-5.4.1/include/CGAL/Filtered_bbox_circular_kernel_2/bbox_filtered_predicates.h 2022-06-03 19:04:01.000000000 +0000 +++ cgal-5.5/include/CGAL/Filtered_bbox_circular_kernel_2/bbox_filtered_predicates.h 2022-07-13 19:04:48.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Circular_kernel_2/include/CGAL/Filtered_bbox_circular_kernel_2/bbox_filtered_predicates.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Circular_kernel_2/include/CGAL/Filtered_bbox_circular_kernel_2/bbox_filtered_predicates.h $ // $Id: bbox_filtered_predicates.h 5c8df66 2020-09-25T14:25:14+02:00 Jane Tournois // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Filtered_bbox_circular_kernel_2/interface_macros.h cgal-5.5/include/CGAL/Filtered_bbox_circular_kernel_2/interface_macros.h --- cgal-5.4.1/include/CGAL/Filtered_bbox_circular_kernel_2/interface_macros.h 2022-06-03 19:04:01.000000000 +0000 +++ cgal-5.5/include/CGAL/Filtered_bbox_circular_kernel_2/interface_macros.h 2022-07-13 19:04:48.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Circular_kernel_2/include/CGAL/Filtered_bbox_circular_kernel_2/interface_macros.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Circular_kernel_2/include/CGAL/Filtered_bbox_circular_kernel_2/interface_macros.h $ // $Id: interface_macros.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Filtered_bbox_circular_kernel_2.h cgal-5.5/include/CGAL/Filtered_bbox_circular_kernel_2.h --- cgal-5.4.1/include/CGAL/Filtered_bbox_circular_kernel_2.h 2022-06-03 19:04:01.000000000 +0000 +++ cgal-5.5/include/CGAL/Filtered_bbox_circular_kernel_2.h 2022-07-13 19:04:48.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Circular_kernel_2/include/CGAL/Filtered_bbox_circular_kernel_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Circular_kernel_2/include/CGAL/Filtered_bbox_circular_kernel_2.h $ // $Id: Filtered_bbox_circular_kernel_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Filtered_construction.h cgal-5.5/include/CGAL/Filtered_construction.h --- cgal-5.4.1/include/CGAL/Filtered_construction.h 2022-06-03 19:04:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Filtered_construction.h 2022-07-13 19:04:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Filtered_kernel/include/CGAL/Filtered_construction.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Filtered_kernel/include/CGAL/Filtered_construction.h $ // $Id: Filtered_construction.h c8624ee 2021-09-09T11:01:03+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Filtered_extended_homogeneous.h cgal-5.5/include/CGAL/Filtered_extended_homogeneous.h --- cgal-5.4.1/include/CGAL/Filtered_extended_homogeneous.h 2022-06-03 19:04:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Filtered_extended_homogeneous.h 2022-07-13 19:05:46.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_2/include/CGAL/Filtered_extended_homogeneous.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_2/include/CGAL/Filtered_extended_homogeneous.h $ // $Id: Filtered_extended_homogeneous.h 74c029c 2021-09-09T11:44:36+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Filtered_kernel/Cartesian_coordinate_iterator_2.h cgal-5.5/include/CGAL/Filtered_kernel/Cartesian_coordinate_iterator_2.h --- cgal-5.4.1/include/CGAL/Filtered_kernel/Cartesian_coordinate_iterator_2.h 2022-06-03 19:04:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Filtered_kernel/Cartesian_coordinate_iterator_2.h 2022-07-13 19:04:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Filtered_kernel/include/CGAL/Filtered_kernel/Cartesian_coordinate_iterator_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Filtered_kernel/include/CGAL/Filtered_kernel/Cartesian_coordinate_iterator_2.h $ // $Id: Cartesian_coordinate_iterator_2.h 66c20ba 2021-08-03T16:30:18+02:00 Dmitry Anisimov // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Filtered_kernel/Cartesian_coordinate_iterator_3.h cgal-5.5/include/CGAL/Filtered_kernel/Cartesian_coordinate_iterator_3.h --- cgal-5.4.1/include/CGAL/Filtered_kernel/Cartesian_coordinate_iterator_3.h 2022-06-03 19:04:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Filtered_kernel/Cartesian_coordinate_iterator_3.h 2022-07-13 19:04:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Filtered_kernel/include/CGAL/Filtered_kernel/Cartesian_coordinate_iterator_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Filtered_kernel/include/CGAL/Filtered_kernel/Cartesian_coordinate_iterator_3.h $ // $Id: Cartesian_coordinate_iterator_3.h 66c20ba 2021-08-03T16:30:18+02:00 Dmitry Anisimov // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Filtered_kernel/internal/Static_filters/Angle_3.h cgal-5.5/include/CGAL/Filtered_kernel/internal/Static_filters/Angle_3.h --- cgal-5.4.1/include/CGAL/Filtered_kernel/internal/Static_filters/Angle_3.h 2022-06-03 19:04:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Filtered_kernel/internal/Static_filters/Angle_3.h 2022-07-13 19:04:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Filtered_kernel/include/CGAL/Filtered_kernel/internal/Static_filters/Angle_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Filtered_kernel/include/CGAL/Filtered_kernel/internal/Static_filters/Angle_3.h $ // $Id: Angle_3.h 5945e48 2021-09-17T08:14:06+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Filtered_kernel/internal/Static_filters/Collinear_3.h cgal-5.5/include/CGAL/Filtered_kernel/internal/Static_filters/Collinear_3.h --- cgal-5.4.1/include/CGAL/Filtered_kernel/internal/Static_filters/Collinear_3.h 2022-06-03 19:04:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Filtered_kernel/internal/Static_filters/Collinear_3.h 2022-07-13 19:05:00.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Filtered_kernel/include/CGAL/Filtered_kernel/internal/Static_filters/Collinear_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Filtered_kernel/include/CGAL/Filtered_kernel/internal/Static_filters/Collinear_3.h $ // $Id: Collinear_3.h c7437c6 2021-09-23T16:14:00+02:00 Laurent Rineau // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Filtered_kernel/internal/Static_filters/Compare_distance_3.h cgal-5.5/include/CGAL/Filtered_kernel/internal/Static_filters/Compare_distance_3.h --- cgal-5.4.1/include/CGAL/Filtered_kernel/internal/Static_filters/Compare_distance_3.h 2022-06-03 19:04:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Filtered_kernel/internal/Static_filters/Compare_distance_3.h 2022-07-13 19:05:00.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Filtered_kernel/include/CGAL/Filtered_kernel/internal/Static_filters/Compare_distance_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Filtered_kernel/include/CGAL/Filtered_kernel/internal/Static_filters/Compare_distance_3.h $ // $Id: Compare_distance_3.h 5945e48 2021-09-17T08:14:06+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Filtered_kernel/internal/Static_filters/Compare_squared_radius_3.h cgal-5.5/include/CGAL/Filtered_kernel/internal/Static_filters/Compare_squared_radius_3.h --- cgal-5.4.1/include/CGAL/Filtered_kernel/internal/Static_filters/Compare_squared_radius_3.h 2022-06-03 19:04:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Filtered_kernel/internal/Static_filters/Compare_squared_radius_3.h 2022-07-13 19:05:00.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Filtered_kernel/include/CGAL/Filtered_kernel/internal/Static_filters/Compare_squared_radius_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Filtered_kernel/include/CGAL/Filtered_kernel/internal/Static_filters/Compare_squared_radius_3.h $ // $Id: Compare_squared_radius_3.h 5945e48 2021-09-17T08:14:06+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Filtered_kernel/internal/Static_filters/Compare_weighted_squared_radius_3.h cgal-5.5/include/CGAL/Filtered_kernel/internal/Static_filters/Compare_weighted_squared_radius_3.h --- cgal-5.4.1/include/CGAL/Filtered_kernel/internal/Static_filters/Compare_weighted_squared_radius_3.h 2022-06-03 19:04:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Filtered_kernel/internal/Static_filters/Compare_weighted_squared_radius_3.h 2022-07-13 19:05:00.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Filtered_kernel/include/CGAL/Filtered_kernel/internal/Static_filters/Compare_weighted_squared_radius_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Filtered_kernel/include/CGAL/Filtered_kernel/internal/Static_filters/Compare_weighted_squared_radius_3.h $ // $Id: Compare_weighted_squared_radius_3.h 5945e48 2021-09-17T08:14:06+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Filtered_kernel/internal/Static_filters/Compare_x_2.h cgal-5.5/include/CGAL/Filtered_kernel/internal/Static_filters/Compare_x_2.h --- cgal-5.4.1/include/CGAL/Filtered_kernel/internal/Static_filters/Compare_x_2.h 2022-06-03 19:04:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Filtered_kernel/internal/Static_filters/Compare_x_2.h 2022-07-13 19:05:00.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Filtered_kernel/include/CGAL/Filtered_kernel/internal/Static_filters/Compare_x_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Filtered_kernel/include/CGAL/Filtered_kernel/internal/Static_filters/Compare_x_2.h $ // $Id: Compare_x_2.h 5945e48 2021-09-17T08:14:06+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Filtered_kernel/internal/Static_filters/Compare_y_2.h cgal-5.5/include/CGAL/Filtered_kernel/internal/Static_filters/Compare_y_2.h --- cgal-5.4.1/include/CGAL/Filtered_kernel/internal/Static_filters/Compare_y_2.h 2022-06-03 19:04:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Filtered_kernel/internal/Static_filters/Compare_y_2.h 2022-07-13 19:05:00.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Filtered_kernel/include/CGAL/Filtered_kernel/internal/Static_filters/Compare_y_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Filtered_kernel/include/CGAL/Filtered_kernel/internal/Static_filters/Compare_y_2.h $ // $Id: Compare_y_2.h 5945e48 2021-09-17T08:14:06+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Filtered_kernel/internal/Static_filters/Compare_y_at_x_2.h cgal-5.5/include/CGAL/Filtered_kernel/internal/Static_filters/Compare_y_at_x_2.h --- cgal-5.4.1/include/CGAL/Filtered_kernel/internal/Static_filters/Compare_y_at_x_2.h 2022-06-03 19:04:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Filtered_kernel/internal/Static_filters/Compare_y_at_x_2.h 2022-07-13 19:05:00.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Filtered_kernel/include/CGAL/Filtered_kernel/internal/Static_filters/Compare_y_at_x_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Filtered_kernel/include/CGAL/Filtered_kernel/internal/Static_filters/Compare_y_at_x_2.h $ // $Id: Compare_y_at_x_2.h 5945e48 2021-09-17T08:14:06+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Filtered_kernel/internal/Static_filters/Coplanar_3.h cgal-5.5/include/CGAL/Filtered_kernel/internal/Static_filters/Coplanar_3.h --- cgal-5.4.1/include/CGAL/Filtered_kernel/internal/Static_filters/Coplanar_3.h 2022-06-03 19:04:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Filtered_kernel/internal/Static_filters/Coplanar_3.h 2022-07-13 19:05:00.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Filtered_kernel/include/CGAL/Filtered_kernel/internal/Static_filters/Coplanar_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Filtered_kernel/include/CGAL/Filtered_kernel/internal/Static_filters/Coplanar_3.h $ // $Id: Coplanar_3.h 5945e48 2021-09-17T08:14:06+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Filtered_kernel/internal/Static_filters/Coplanar_orientation_3.h cgal-5.5/include/CGAL/Filtered_kernel/internal/Static_filters/Coplanar_orientation_3.h --- cgal-5.4.1/include/CGAL/Filtered_kernel/internal/Static_filters/Coplanar_orientation_3.h 2022-06-03 19:04:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Filtered_kernel/internal/Static_filters/Coplanar_orientation_3.h 2022-07-13 19:05:00.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Filtered_kernel/include/CGAL/Filtered_kernel/internal/Static_filters/Coplanar_orientation_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Filtered_kernel/include/CGAL/Filtered_kernel/internal/Static_filters/Coplanar_orientation_3.h $ // $Id: Coplanar_orientation_3.h 5945e48 2021-09-17T08:14:06+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Filtered_kernel/internal/Static_filters/Coplanar_side_of_bounded_circle_3.h cgal-5.5/include/CGAL/Filtered_kernel/internal/Static_filters/Coplanar_side_of_bounded_circle_3.h --- cgal-5.4.1/include/CGAL/Filtered_kernel/internal/Static_filters/Coplanar_side_of_bounded_circle_3.h 2022-06-03 19:04:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Filtered_kernel/internal/Static_filters/Coplanar_side_of_bounded_circle_3.h 2022-07-13 19:05:00.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Filtered_kernel/include/CGAL/Filtered_kernel/internal/Static_filters/Coplanar_side_of_bounded_circle_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Filtered_kernel/include/CGAL/Filtered_kernel/internal/Static_filters/Coplanar_side_of_bounded_circle_3.h $ // $Id: Coplanar_side_of_bounded_circle_3.h 5945e48 2021-09-17T08:14:06+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Filtered_kernel/internal/Static_filters/Do_intersect_2.h cgal-5.5/include/CGAL/Filtered_kernel/internal/Static_filters/Do_intersect_2.h --- cgal-5.4.1/include/CGAL/Filtered_kernel/internal/Static_filters/Do_intersect_2.h 2022-06-03 19:04:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Filtered_kernel/internal/Static_filters/Do_intersect_2.h 2022-07-13 19:05:00.000000000 +0000 @@ -5,7 +5,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Filtered_kernel/include/CGAL/Filtered_kernel/internal/Static_filters/Do_intersect_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Filtered_kernel/include/CGAL/Filtered_kernel/internal/Static_filters/Do_intersect_2.h $ // $Id: Do_intersect_2.h 5945e48 2021-09-17T08:14:06+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Filtered_kernel/internal/Static_filters/Do_intersect_3.h cgal-5.5/include/CGAL/Filtered_kernel/internal/Static_filters/Do_intersect_3.h --- cgal-5.4.1/include/CGAL/Filtered_kernel/internal/Static_filters/Do_intersect_3.h 2022-06-03 19:04:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Filtered_kernel/internal/Static_filters/Do_intersect_3.h 2022-07-13 19:05:00.000000000 +0000 @@ -5,7 +5,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Filtered_kernel/include/CGAL/Filtered_kernel/internal/Static_filters/Do_intersect_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Filtered_kernel/include/CGAL/Filtered_kernel/internal/Static_filters/Do_intersect_3.h $ // $Id: Do_intersect_3.h 381ff61 2021-10-08T21:52:32+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Filtered_kernel/internal/Static_filters/Equal_2.h cgal-5.5/include/CGAL/Filtered_kernel/internal/Static_filters/Equal_2.h --- cgal-5.4.1/include/CGAL/Filtered_kernel/internal/Static_filters/Equal_2.h 2022-06-03 19:04:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Filtered_kernel/internal/Static_filters/Equal_2.h 2022-07-13 19:05:00.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Filtered_kernel/include/CGAL/Filtered_kernel/internal/Static_filters/Equal_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Filtered_kernel/include/CGAL/Filtered_kernel/internal/Static_filters/Equal_2.h $ // $Id: Equal_2.h 5945e48 2021-09-17T08:14:06+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Filtered_kernel/internal/Static_filters/Equal_3.h cgal-5.5/include/CGAL/Filtered_kernel/internal/Static_filters/Equal_3.h --- cgal-5.4.1/include/CGAL/Filtered_kernel/internal/Static_filters/Equal_3.h 2022-06-03 19:04:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Filtered_kernel/internal/Static_filters/Equal_3.h 2022-07-13 19:05:00.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Filtered_kernel/include/CGAL/Filtered_kernel/internal/Static_filters/Equal_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Filtered_kernel/include/CGAL/Filtered_kernel/internal/Static_filters/Equal_3.h $ // $Id: Equal_3.h 5945e48 2021-09-17T08:14:06+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Filtered_kernel/internal/Static_filters/Is_degenerate_3.h cgal-5.5/include/CGAL/Filtered_kernel/internal/Static_filters/Is_degenerate_3.h --- cgal-5.4.1/include/CGAL/Filtered_kernel/internal/Static_filters/Is_degenerate_3.h 2022-06-03 19:04:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Filtered_kernel/internal/Static_filters/Is_degenerate_3.h 2022-07-13 19:05:00.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Filtered_kernel/include/CGAL/Filtered_kernel/internal/Static_filters/Is_degenerate_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Filtered_kernel/include/CGAL/Filtered_kernel/internal/Static_filters/Is_degenerate_3.h $ // $Id: Is_degenerate_3.h 5945e48 2021-09-17T08:14:06+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Filtered_kernel/internal/Static_filters/Orientation_2.h cgal-5.5/include/CGAL/Filtered_kernel/internal/Static_filters/Orientation_2.h --- cgal-5.4.1/include/CGAL/Filtered_kernel/internal/Static_filters/Orientation_2.h 2022-06-03 19:04:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Filtered_kernel/internal/Static_filters/Orientation_2.h 2022-07-13 19:05:00.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Filtered_kernel/include/CGAL/Filtered_kernel/internal/Static_filters/Orientation_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Filtered_kernel/include/CGAL/Filtered_kernel/internal/Static_filters/Orientation_2.h $ // $Id: Orientation_2.h 5945e48 2021-09-17T08:14:06+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Filtered_kernel/internal/Static_filters/Orientation_3.h cgal-5.5/include/CGAL/Filtered_kernel/internal/Static_filters/Orientation_3.h --- cgal-5.4.1/include/CGAL/Filtered_kernel/internal/Static_filters/Orientation_3.h 2022-06-03 19:04:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Filtered_kernel/internal/Static_filters/Orientation_3.h 2022-07-13 19:05:00.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Filtered_kernel/include/CGAL/Filtered_kernel/internal/Static_filters/Orientation_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Filtered_kernel/include/CGAL/Filtered_kernel/internal/Static_filters/Orientation_3.h $ // $Id: Orientation_3.h 5945e48 2021-09-17T08:14:06+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Filtered_kernel/internal/Static_filters/Power_side_of_oriented_power_sphere_3.h cgal-5.5/include/CGAL/Filtered_kernel/internal/Static_filters/Power_side_of_oriented_power_sphere_3.h --- cgal-5.4.1/include/CGAL/Filtered_kernel/internal/Static_filters/Power_side_of_oriented_power_sphere_3.h 2022-06-03 19:04:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Filtered_kernel/internal/Static_filters/Power_side_of_oriented_power_sphere_3.h 2022-07-13 19:05:00.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Filtered_kernel/include/CGAL/Filtered_kernel/internal/Static_filters/Power_side_of_oriented_power_sphere_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Filtered_kernel/include/CGAL/Filtered_kernel/internal/Static_filters/Power_side_of_oriented_power_sphere_3.h $ // $Id: Power_side_of_oriented_power_sphere_3.h 5945e48 2021-09-17T08:14:06+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Filtered_kernel/internal/Static_filters/Side_of_oriented_circle_2.h cgal-5.5/include/CGAL/Filtered_kernel/internal/Static_filters/Side_of_oriented_circle_2.h --- cgal-5.4.1/include/CGAL/Filtered_kernel/internal/Static_filters/Side_of_oriented_circle_2.h 2022-06-03 19:04:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Filtered_kernel/internal/Static_filters/Side_of_oriented_circle_2.h 2022-07-13 19:05:00.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Filtered_kernel/include/CGAL/Filtered_kernel/internal/Static_filters/Side_of_oriented_circle_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Filtered_kernel/include/CGAL/Filtered_kernel/internal/Static_filters/Side_of_oriented_circle_2.h $ // $Id: Side_of_oriented_circle_2.h 5945e48 2021-09-17T08:14:06+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Filtered_kernel/internal/Static_filters/Side_of_oriented_sphere_3.h cgal-5.5/include/CGAL/Filtered_kernel/internal/Static_filters/Side_of_oriented_sphere_3.h --- cgal-5.4.1/include/CGAL/Filtered_kernel/internal/Static_filters/Side_of_oriented_sphere_3.h 2022-06-03 19:04:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Filtered_kernel/internal/Static_filters/Side_of_oriented_sphere_3.h 2022-07-13 19:05:00.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Filtered_kernel/include/CGAL/Filtered_kernel/internal/Static_filters/Side_of_oriented_sphere_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Filtered_kernel/include/CGAL/Filtered_kernel/internal/Static_filters/Side_of_oriented_sphere_3.h $ // $Id: Side_of_oriented_sphere_3.h 5945e48 2021-09-17T08:14:06+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Filtered_kernel/internal/Static_filters/Static_filter_error.h cgal-5.5/include/CGAL/Filtered_kernel/internal/Static_filters/Static_filter_error.h --- cgal-5.4.1/include/CGAL/Filtered_kernel/internal/Static_filters/Static_filter_error.h 2022-06-03 19:04:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Filtered_kernel/internal/Static_filters/Static_filter_error.h 2022-07-13 19:05:00.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Filtered_kernel/include/CGAL/Filtered_kernel/internal/Static_filters/Static_filter_error.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Filtered_kernel/include/CGAL/Filtered_kernel/internal/Static_filters/Static_filter_error.h $ // $Id: Static_filter_error.h 5945e48 2021-09-17T08:14:06+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Filtered_kernel/internal/Static_filters/Static_filters.h cgal-5.5/include/CGAL/Filtered_kernel/internal/Static_filters/Static_filters.h --- cgal-5.4.1/include/CGAL/Filtered_kernel/internal/Static_filters/Static_filters.h 2022-06-03 19:04:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Filtered_kernel/internal/Static_filters/Static_filters.h 2022-07-13 19:05:00.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Filtered_kernel/include/CGAL/Filtered_kernel/internal/Static_filters/Static_filters.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Filtered_kernel/include/CGAL/Filtered_kernel/internal/Static_filters/Static_filters.h $ // $Id: Static_filters.h 5945e48 2021-09-17T08:14:06+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Filtered_kernel/internal/Static_filters/tools.h cgal-5.5/include/CGAL/Filtered_kernel/internal/Static_filters/tools.h --- cgal-5.4.1/include/CGAL/Filtered_kernel/internal/Static_filters/tools.h 2022-06-03 19:04:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Filtered_kernel/internal/Static_filters/tools.h 2022-07-13 19:05:00.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Filtered_kernel/include/CGAL/Filtered_kernel/internal/Static_filters/tools.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Filtered_kernel/include/CGAL/Filtered_kernel/internal/Static_filters/tools.h $ // $Id: tools.h 5945e48 2021-09-17T08:14:06+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Filtered_kernel_d.h cgal-5.5/include/CGAL/Filtered_kernel_d.h --- cgal-5.4.1/include/CGAL/Filtered_kernel_d.h 2022-06-03 19:04:38.000000000 +0000 +++ cgal-5.5/include/CGAL/Filtered_kernel_d.h 2022-07-13 19:05:29.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_d/include/CGAL/Filtered_kernel_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_d/include/CGAL/Filtered_kernel_d.h $ // $Id: Filtered_kernel_d.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Filtered_kernel_fwd.h cgal-5.5/include/CGAL/Filtered_kernel_fwd.h --- cgal-5.4.1/include/CGAL/Filtered_kernel_fwd.h 2022-06-03 19:04:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Filtered_kernel_fwd.h 2022-07-13 19:05:00.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Filtered_kernel/include/CGAL/Filtered_kernel_fwd.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Filtered_kernel/include/CGAL/Filtered_kernel_fwd.h $ // $Id: Filtered_kernel_fwd.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Filtered_kernel.h cgal-5.5/include/CGAL/Filtered_kernel.h --- cgal-5.4.1/include/CGAL/Filtered_kernel.h 2022-06-03 19:04:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Filtered_kernel.h 2022-07-13 19:04:59.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Filtered_kernel/include/CGAL/Filtered_kernel.h $ -// $Id: Filtered_kernel.h 5945e48 2021-09-17T08:14:06+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Filtered_kernel/include/CGAL/Filtered_kernel.h $ +// $Id: Filtered_kernel.h 561cc66 2022-06-29T12:30:35+02:00 Laurent Rineau // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // @@ -77,6 +77,9 @@ typedef typename T::Feature_dimension type; // maybe not the right way... }; + Exact_kernel exact_kernel() const { return {}; } + Approximate_kernel approximate_kernel() const { return {}; } + // We change the predicates. #define CGAL_Kernel_pred(P, Pf) \ typedef Filtered_predicate P; \ diff -Nru cgal-5.4.1/include/CGAL/Filtered_predicate.h cgal-5.5/include/CGAL/Filtered_predicate.h --- cgal-5.4.1/include/CGAL/Filtered_predicate.h 2022-06-03 19:04:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Filtered_predicate.h 2022-07-13 19:05:00.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Filtered_kernel/include/CGAL/Filtered_predicate.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Filtered_kernel/include/CGAL/Filtered_predicate.h $ // $Id: Filtered_predicate.h 6bae0e3 2021-09-09T11:09:16+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Filtered_predicate_with_state.h cgal-5.5/include/CGAL/Filtered_predicate_with_state.h --- cgal-5.4.1/include/CGAL/Filtered_predicate_with_state.h 2022-06-03 19:04:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Filtered_predicate_with_state.h 2022-07-13 19:05:00.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Filtered_kernel/include/CGAL/Filtered_predicate_with_state.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Filtered_kernel/include/CGAL/Filtered_predicate_with_state.h $ // $Id: Filtered_predicate_with_state.h 74c029c 2021-09-09T11:44:36+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Fixed_alpha_shape_3.h cgal-5.5/include/CGAL/Fixed_alpha_shape_3.h --- cgal-5.4.1/include/CGAL/Fixed_alpha_shape_3.h 2022-06-03 19:03:35.000000000 +0000 +++ cgal-5.5/include/CGAL/Fixed_alpha_shape_3.h 2022-07-13 19:04:18.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Alpha_shapes_3/include/CGAL/Fixed_alpha_shape_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Alpha_shapes_3/include/CGAL/Fixed_alpha_shape_3.h $ // $Id: Fixed_alpha_shape_3.h 115fa5a 2021-12-14T14:01:21+00:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Fixed_alpha_shape_cell_base_3.h cgal-5.5/include/CGAL/Fixed_alpha_shape_cell_base_3.h --- cgal-5.4.1/include/CGAL/Fixed_alpha_shape_cell_base_3.h 2022-06-03 19:03:35.000000000 +0000 +++ cgal-5.5/include/CGAL/Fixed_alpha_shape_cell_base_3.h 2022-07-13 19:04:18.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Alpha_shapes_3/include/CGAL/Fixed_alpha_shape_cell_base_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Alpha_shapes_3/include/CGAL/Fixed_alpha_shape_cell_base_3.h $ // $Id: Fixed_alpha_shape_cell_base_3.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Fixed_alpha_shape_vertex_base_3.h cgal-5.5/include/CGAL/Fixed_alpha_shape_vertex_base_3.h --- cgal-5.4.1/include/CGAL/Fixed_alpha_shape_vertex_base_3.h 2022-06-03 19:03:35.000000000 +0000 +++ cgal-5.5/include/CGAL/Fixed_alpha_shape_vertex_base_3.h 2022-07-13 19:04:18.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Alpha_shapes_3/include/CGAL/Fixed_alpha_shape_vertex_base_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Alpha_shapes_3/include/CGAL/Fixed_alpha_shape_vertex_base_3.h $ // $Id: Fixed_alpha_shape_vertex_base_3.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Flattening_iterator.h cgal-5.5/include/CGAL/Flattening_iterator.h --- cgal-5.4.1/include/CGAL/Flattening_iterator.h 2022-06-03 19:05:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Flattening_iterator.h 2022-07-13 19:06:27.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/Flattening_iterator.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/Flattening_iterator.h $ // $Id: Flattening_iterator.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/float.h cgal-5.5/include/CGAL/float.h --- cgal-5.4.1/include/CGAL/float.h 2022-06-03 19:05:01.000000000 +0000 +++ cgal-5.5/include/CGAL/float.h 2022-07-13 19:05:55.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/float.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/float.h $ // $Id: float.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/for_each.h cgal-5.5/include/CGAL/for_each.h --- cgal-5.4.1/include/CGAL/for_each.h 2022-06-03 19:05:33.000000000 +0000 +++ cgal-5.5/include/CGAL/for_each.h 2022-07-13 19:06:29.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/for_each.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/for_each.h $ // $Id: for_each.h 6ae64e7 2020-03-27T16:41:53+01:00 Andreas Fabri // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Fourtuple.h cgal-5.5/include/CGAL/Fourtuple.h --- cgal-5.4.1/include/CGAL/Fourtuple.h 2022-06-03 19:05:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Fourtuple.h 2022-07-13 19:06:27.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/Fourtuple.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/Fourtuple.h $ // $Id: Fourtuple.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/FPU_extension.h cgal-5.5/include/CGAL/FPU_extension.h --- cgal-5.4.1/include/CGAL/FPU_extension.h 2022-06-03 19:05:00.000000000 +0000 +++ cgal-5.5/include/CGAL/FPU_extension.h 2022-07-13 19:05:53.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/FPU_extension.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/FPU_extension.h $ // $Id: FPU_extension.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/FPU_gcc_i386.h cgal-5.5/include/CGAL/FPU_gcc_i386.h --- cgal-5.4.1/include/CGAL/FPU_gcc_i386.h 2022-06-03 19:05:00.000000000 +0000 +++ cgal-5.5/include/CGAL/FPU_gcc_i386.h 2022-07-13 19:05:53.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/FPU_gcc_i386.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/FPU_gcc_i386.h $ // $Id: FPU_gcc_i386.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/FPU_gcc_i386_sse2.h cgal-5.5/include/CGAL/FPU_gcc_i386_sse2.h --- cgal-5.4.1/include/CGAL/FPU_gcc_i386_sse2.h 2022-06-03 19:05:00.000000000 +0000 +++ cgal-5.5/include/CGAL/FPU_gcc_i386_sse2.h 2022-07-13 19:05:53.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/FPU_gcc_i386_sse2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/FPU_gcc_i386_sse2.h $ // $Id: FPU_gcc_i386_sse2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/FPU.h cgal-5.5/include/CGAL/FPU.h --- cgal-5.4.1/include/CGAL/FPU.h 2022-06-03 19:05:00.000000000 +0000 +++ cgal-5.5/include/CGAL/FPU.h 2022-07-13 19:05:53.000000000 +0000 @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/FPU.h $ -// $Id: FPU.h c9f5620 2021-09-20T11:20:07+01:00 Andreas Fabri +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/FPU.h $ +// $Id: FPU.h 6486844 2022-05-10T11:30:39+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // @@ -278,7 +278,7 @@ # ifdef __llvm__ return __builtin_shufflevector(x, x, 1, 0); # elif defined __GNUC__ && !defined __INTEL_COMPILER - return __builtin_shuffle(x, (__m128i){ 1, 0 }); + return __extension__ __builtin_shuffle(x, (__m128i){ 1, 0 }); # else return _mm_shuffle_pd(x, x, 1); # endif diff -Nru cgal-5.4.1/include/CGAL/FPU_msvc.h cgal-5.5/include/CGAL/FPU_msvc.h --- cgal-5.4.1/include/CGAL/FPU_msvc.h 2022-06-03 19:05:00.000000000 +0000 +++ cgal-5.5/include/CGAL/FPU_msvc.h 2022-07-13 19:05:53.000000000 +0000 @@ -5,7 +5,7 @@ // Licensees holding a valid commercial license may use this file in // accordance with the commercial license agreement provided with the software. // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/FPU_msvc.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/FPU_msvc.h $ // $Id: FPU_msvc.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Fraction_traits.h cgal-5.5/include/CGAL/Fraction_traits.h --- cgal-5.4.1/include/CGAL/Fraction_traits.h 2022-06-03 19:03:30.000000000 +0000 +++ cgal-5.5/include/CGAL/Fraction_traits.h 2022-07-13 19:04:13.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_foundations/include/CGAL/Fraction_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_foundations/include/CGAL/Fraction_traits.h $ // $Id: Fraction_traits.h 26355e2 2020-06-25T12:31:21+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/functional.h cgal-5.5/include/CGAL/functional.h --- cgal-5.4.1/include/CGAL/functional.h 2022-06-03 19:05:33.000000000 +0000 +++ cgal-5.5/include/CGAL/functional.h 2022-07-13 19:06:29.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/functional.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/functional.h $ // $Id: functional.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/function_objects.h cgal-5.5/include/CGAL/function_objects.h --- cgal-5.4.1/include/CGAL/function_objects.h 2022-06-03 19:05:33.000000000 +0000 +++ cgal-5.5/include/CGAL/function_objects.h 2022-07-13 19:06:29.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/function_objects.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/function_objects.h $ // $Id: function_objects.h 5da7e84 2021-02-02T10:58:31+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/functions_on_enums.h cgal-5.5/include/CGAL/functions_on_enums.h --- cgal-5.4.1/include/CGAL/functions_on_enums.h 2022-06-03 19:04:33.000000000 +0000 +++ cgal-5.5/include/CGAL/functions_on_enums.h 2022-07-13 19:05:24.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/functions_on_enums.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/functions_on_enums.h $ // $Id: functions_on_enums.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/functions_on_signs.h cgal-5.5/include/CGAL/functions_on_signs.h --- cgal-5.4.1/include/CGAL/functions_on_signs.h 2022-06-03 19:03:36.000000000 +0000 +++ cgal-5.5/include/CGAL/functions_on_signs.h 2022-07-13 19:04:20.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Apollonius_graph_2/include/CGAL/functions_on_signs.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Apollonius_graph_2/include/CGAL/functions_on_signs.h $ // $Id: functions_on_signs.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Fuzzy_iso_box.h cgal-5.5/include/CGAL/Fuzzy_iso_box.h --- cgal-5.4.1/include/CGAL/Fuzzy_iso_box.h 2022-06-03 19:05:47.000000000 +0000 +++ cgal-5.5/include/CGAL/Fuzzy_iso_box.h 2022-07-13 19:06:43.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Spatial_searching/include/CGAL/Fuzzy_iso_box.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Spatial_searching/include/CGAL/Fuzzy_iso_box.h $ // $Id: Fuzzy_iso_box.h 8bb22d5 2020-03-26T14:23:37+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Fuzzy_sphere.h cgal-5.5/include/CGAL/Fuzzy_sphere.h --- cgal-5.4.1/include/CGAL/Fuzzy_sphere.h 2022-06-03 19:05:47.000000000 +0000 +++ cgal-5.5/include/CGAL/Fuzzy_sphere.h 2022-07-13 19:06:43.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Spatial_searching/include/CGAL/Fuzzy_sphere.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Spatial_searching/include/CGAL/Fuzzy_sphere.h $ // $Id: Fuzzy_sphere.h 65cde3c 2019-12-03T19:18:15+01:00 Laurent Rineau // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Generalized_map/internal/Generalized_map_group_functors.h cgal-5.5/include/CGAL/Generalized_map/internal/Generalized_map_group_functors.h --- cgal-5.4.1/include/CGAL/Generalized_map/internal/Generalized_map_group_functors.h 2022-06-03 19:04:12.000000000 +0000 +++ cgal-5.5/include/CGAL/Generalized_map/internal/Generalized_map_group_functors.h 2022-07-13 19:05:00.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Generalized_map/include/CGAL/Generalized_map/internal/Generalized_map_group_functors.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Generalized_map/include/CGAL/Generalized_map/internal/Generalized_map_group_functors.h $ // $Id: Generalized_map_group_functors.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Generalized_map/internal/Generalized_map_internal_functors.h cgal-5.5/include/CGAL/Generalized_map/internal/Generalized_map_internal_functors.h --- cgal-5.4.1/include/CGAL/Generalized_map/internal/Generalized_map_internal_functors.h 2022-06-03 19:04:12.000000000 +0000 +++ cgal-5.5/include/CGAL/Generalized_map/internal/Generalized_map_internal_functors.h 2022-07-13 19:05:00.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Generalized_map/include/CGAL/Generalized_map/internal/Generalized_map_internal_functors.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Generalized_map/include/CGAL/Generalized_map/internal/Generalized_map_internal_functors.h $ // $Id: Generalized_map_internal_functors.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Generalized_map/internal/Generalized_map_sewable.h cgal-5.5/include/CGAL/Generalized_map/internal/Generalized_map_sewable.h --- cgal-5.4.1/include/CGAL/Generalized_map/internal/Generalized_map_sewable.h 2022-06-03 19:04:12.000000000 +0000 +++ cgal-5.5/include/CGAL/Generalized_map/internal/Generalized_map_sewable.h 2022-07-13 19:05:00.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Generalized_map/include/CGAL/Generalized_map/internal/Generalized_map_sewable.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Generalized_map/include/CGAL/Generalized_map/internal/Generalized_map_sewable.h $ // $Id: Generalized_map_sewable.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Generalized_map_fwd.h cgal-5.5/include/CGAL/Generalized_map_fwd.h --- cgal-5.4.1/include/CGAL/Generalized_map_fwd.h 2022-06-03 19:04:12.000000000 +0000 +++ cgal-5.5/include/CGAL/Generalized_map_fwd.h 2022-07-13 19:05:00.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Generalized_map/include/CGAL/Generalized_map_fwd.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Generalized_map/include/CGAL/Generalized_map_fwd.h $ // $Id: Generalized_map_fwd.h d6306be 2020-10-22T10:30:38+02:00 Guillaume Damiand // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Generalized_map.h cgal-5.5/include/CGAL/Generalized_map.h --- cgal-5.4.1/include/CGAL/Generalized_map.h 2022-06-03 19:04:12.000000000 +0000 +++ cgal-5.5/include/CGAL/Generalized_map.h 2022-07-13 19:05:00.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Generalized_map/include/CGAL/Generalized_map.h $ -// $Id: Generalized_map.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Generalized_map/include/CGAL/Generalized_map.h $ +// $Id: Generalized_map.h 258d704 2022-02-24T19:57:17+01:00 Laurent Rineau // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Guillaume Damiand @@ -12,6 +12,8 @@ #ifndef CGAL_GENERALIZED_MAP_H #define CGAL_GENERALIZED_MAP_H 1 +#include + #include #include #include @@ -32,10 +34,12 @@ #include #include #include +#include #include -#include #include +#include + #if defined( __INTEL_COMPILER ) // Workarounf for warning in function basic_link_beta_0 #pragma warning disable 1017 @@ -88,7 +92,6 @@ typedef Storage Base; typedef Generalized_map_base Self; typedef Refs_ Refs; - typedef typename Base::Dart Dart; typedef typename Base::Dart_handle Dart_handle; typedef typename Base::Dart_const_handle Dart_const_handle; @@ -177,7 +180,7 @@ CGAL_assertion(number_of_darts()==0); } - /** Copy the given generalized map into *this. + /** Copy the given generalized map 'amap' into *this. * Note that both GMap can have different dimensions and/or non void attributes. * Here GMap2 is necessarily non const; while Dart_handle_2 can be a const or non const handle. * This is the "generic" method, called by the different variants below. @@ -196,34 +199,39 @@ typename Converters, typename DartInfoConverter, typename PointConverter> void generic_copy(GMap2& amap, - boost::unordered_map* origin_to_copy, - boost::unordered_map* copy_to_origin, + std::unordered_map* origin_to_copy, + std::unordered_map* copy_to_origin, const Converters& converters, const DartInfoConverter& dartinfoconverter, const PointConverter& pointconverter, + bool copy_marks=true, bool copy_perforated_darts=false, size_type mark_perforated=INVALID_MARK) { - this->clear(); - - /*this->mnb_used_marks = amap.mnb_used_marks; - this->mmask_marks = amap.mmask_marks; - this->automatic_attributes_management = - amap.automatic_attributes_management; - + if(copy_marks) + { + // Reserve all marks of amap not yet reserved for (size_type i = 0; i < NB_MARKS; ++i) { - this->mfree_marks_stack[i] = amap.mfree_marks_stack[i]; - this->mused_marks_stack[i] = amap.mused_marks_stack[i]; - this->mindex_marks[i] = amap.mindex_marks[i]; - this->mnb_marked_darts[i] = amap.mnb_marked_darts[i]; - this->mnb_times_reserved_marks[i] = amap.mnb_times_reserved_marks[i]; - } */ + if(!is_reserved(i) && amap.is_reserved(i)) + { + CGAL_assertion(mnb_used_markscopies). // (here we cannot use CGAL::Unique_hash_map because it does not provide // iterators... - boost::unordered_map local_dartmap; + std::unordered_map local_dartmap; if (origin_to_copy==NULL) // Use local_dartmap if user does not provides its own unordered_map { origin_to_copy=&local_dartmap; } @@ -234,11 +242,21 @@ if (copy_perforated_darts || !amap.is_perforated(it)) { new_dart=mdarts.emplace(); - init_dart(new_dart); //, amap.get_marks(it)); + init_dart(new_dart); if (mark_perforated!=INVALID_MARK && amap.is_perforated(it)) { mark(new_dart, mark_perforated); } + if(copy_marks) + { + // Copy marks of amap + for(size_type i=0; i::iterator + typename std::unordered_map::iterator dartmap_iter, dartmap_iter_end=origin_to_copy->end(); for (dartmap_iter=origin_to_copy->begin(); dartmap_iter!=dartmap_iter_end; ++dartmap_iter) @@ -279,27 +297,28 @@ converters, pointconverter); } - CGAL_assertion(is_valid()); + CGAL_expensive_assertion(is_valid()); } // (1a) copy(amap, converters, dartinfoconverter, pointconverter) template void copy(GMap2& amap, - boost::unordered_map + std::unordered_map * origin_to_copy, - boost::unordered_map + std::unordered_map * copy_to_origin, const Converters& converters, const DartInfoConverter& dartinfoconverter, const PointConverter& pointconverter, + bool copy_marks=true, bool copy_perforated_darts=false, size_type mark_perforated=INVALID_MARK) { generic_copy (amap, origin_to_copy, copy_to_origin, - converters, dartinfoconverter, pointconverter, + converters, dartinfoconverter, pointconverter, copy_marks, copy_perforated_darts, mark_perforated); } @@ -307,120 +326,127 @@ template void copy_from_const(const GMap2& amap, - boost::unordered_map + std::unordered_map * origin_to_copy, - boost::unordered_map + std::unordered_map * copy_to_origin, const Converters& converters, const DartInfoConverter& dartinfoconverter, const PointConverter& pointconverter, + bool copy_marks=true, bool copy_perforated_darts=false, size_type mark_perforated=INVALID_MARK) { generic_copy (const_cast(amap), origin_to_copy, copy_to_origin, - converters, dartinfoconverter, pointconverter, + converters, dartinfoconverter, pointconverter, copy_marks, copy_perforated_darts, mark_perforated); } // (2a) copy(amap, converters, dartinfoconverter) template void copy(GMap2& amap, - boost::unordered_map + std::unordered_map * origin_to_copy, - boost::unordered_map + std::unordered_map * copy_to_origin, const Converters& converters, const DartInfoConverter& dartinfoconverter, + bool copy_marks=true, bool copy_perforated_darts=false, size_type mark_perforated=INVALID_MARK) { Default_converter_cmap_0attributes_with_point pointconverter; copy(amap, origin_to_copy, copy_to_origin, converters, - dartinfoconverter, pointconverter, + dartinfoconverter, pointconverter, copy_marks, copy_perforated_darts, mark_perforated); } // (2b) copy_from_const(const amap, converters, dartinfoconverter) template void copy_from_const(const GMap2& amap, - boost::unordered_map + std::unordered_map * origin_to_copy, - boost::unordered_map + std::unordered_map * copy_to_origin, const Converters& converters, const DartInfoConverter& dartinfoconverter, + bool copy_marks=true, bool copy_perforated_darts=false, size_type mark_perforated=INVALID_MARK) { Default_converter_cmap_0attributes_with_point pointconverter; copy_from_const(amap, origin_to_copy, copy_to_origin, converters, - dartinfoconverter, pointconverter, + dartinfoconverter, pointconverter, copy_marks, copy_perforated_darts, mark_perforated); } // (3a) copy(amap, converters) template void copy(GMap2& amap, - boost::unordered_map + std::unordered_map * origin_to_copy, - boost::unordered_map + std::unordered_map * copy_to_origin, const Converters& converters, + bool copy_marks=true, bool copy_perforated_darts=false, size_type mark_perforated=INVALID_MARK) { Default_converter_dart_info dartinfoconverter; copy(amap, origin_to_copy, copy_to_origin, converters, dartinfoconverter, - copy_perforated_darts, mark_perforated); + copy_marks, copy_perforated_darts, mark_perforated); } // (3b) copy_from_const(const amap, converters) template void copy_from_const(const GMap2& amap, - boost::unordered_map + std::unordered_map * origin_to_copy, - boost::unordered_map + std::unordered_map * copy_to_origin, const Converters& converters, + bool copy_marks=true, bool copy_perforated_darts=false, size_type mark_perforated=INVALID_MARK) { Default_converter_dart_info dartinfoconverter; copy_from_const(amap, origin_to_copy, copy_to_origin, converters, dartinfoconverter, - copy_perforated_darts, mark_perforated); + copy_marks, copy_perforated_darts, mark_perforated); } // (4a) copy(amap) template void copy(GMap2& amap, - boost::unordered_map + std::unordered_map * origin_to_copy=nullptr, - boost::unordered_map + std::unordered_map * copy_to_origin=nullptr, + bool copy_marks=true, bool copy_perforated_darts=false, size_type mark_perforated=INVALID_MARK) { std::tuple<> converters; - copy(amap, origin_to_copy, copy_to_origin, converters, + copy(amap, origin_to_copy, copy_to_origin, converters, copy_marks, copy_perforated_darts, mark_perforated); } // (4b) copy_from_const(const amap) template void copy_from_const(const GMap2& amap, - boost::unordered_map + std::unordered_map * origin_to_copy=nullptr, - boost::unordered_map + std::unordered_map * copy_to_origin=nullptr, + bool copy_marks=true, bool copy_perforated_darts=false, size_type mark_perforated=INVALID_MARK) { std::tuple<> converters; - copy_from_const(amap, origin_to_copy, copy_to_origin, converters, + copy_from_const(amap, origin_to_copy, copy_to_origin, converters, copy_marks, copy_perforated_darts, mark_perforated); } @@ -428,6 +454,10 @@ Generalized_map_base(const Self & amap) : Generalized_map_base() { copy_from_const(amap); } + // Move constructor + Generalized_map_base(Self && amap): Generalized_map_base() + { this->swap(amap); } + // "Copy constructor" from a map having different type. template @@ -755,14 +785,14 @@ void set_next(Dart_handle dh1, Dart_handle dh2) { - assert(!this->template is_free<0>(dh1)); + CGAL_assertion(!this->template is_free<0>(dh1)); this->template link_alpha<1>(this->template alpha<0>(dh1), dh2); } template void set_opposite(Dart_handle dh1, Dart_handle dh2) { - assert(!this->template is_free<0>(dh1)); - assert(!this->template is_free<0>(dh2)); + CGAL_assertion(!this->template is_free<0>(dh1)); + CGAL_assertion(!this->template is_free<0>(dh2)); this->template link_alpha(this->template alpha<0>(dh1), dh2); this->template link_alpha(dh1, this->template alpha<0>(dh2)); } @@ -780,7 +810,7 @@ size_type number_of_halfedges() const { - assert(is_without_boundary(0)); + CGAL_assertion(is_without_boundary(0)); return number_of_darts()/2; } @@ -1752,7 +1782,7 @@ if ( marks[acells[i]]==INVALID_MARK ) { marks[acells[i]] = get_new_mark(); - assert(is_whole_map_unmarked(marks[acells[i]])); + CGAL_assertion(is_whole_map_unmarked(marks[acells[i]])); } } @@ -2426,8 +2456,6 @@ } } - // CGAL_postcondition(amap2.is_valid()); - if ( res==amap.null_handle ) res = amap.darts().begin(); return res; } @@ -2632,9 +2660,9 @@ } } - assert(is_whole_map_unmarked(m1)); - assert(is_whole_map_unmarked(markpush)); - assert(map2.is_whole_map_unmarked(m2)); + CGAL_postcondition(is_whole_map_unmarked(m1)); + CGAL_postcondition(is_whole_map_unmarked(markpush)); + CGAL_postcondition(map2.is_whole_map_unmarked(m2)); free_mark(m1); free_mark(markpush); map2.free_mark(m2); @@ -2771,11 +2799,11 @@ if (aorientationmark==INVALID_MARK) { - assert(is_whole_map_marked(orientationmark)); + CGAL_assertion(is_whole_map_marked(orientationmark)); free_mark(orientationmark); } - assert(is_whole_map_marked(ccmark)); + CGAL_assertion(is_whole_map_marked(ccmark)); free_mark(ccmark); } @@ -2817,11 +2845,11 @@ if (aorientationmark==INVALID_MARK) { - assert(is_whole_map_unmarked(orientationmark)); + CGAL_assertion(is_whole_map_unmarked(orientationmark)); free_mark(orientationmark); } - assert(is_whole_map_unmarked(ccmark)); + CGAL_postcondition(is_whole_map_unmarked(ccmark)); free_mark(ccmark); return orientable; @@ -3854,6 +3882,9 @@ Generalized_map(const Self & amap) : Base(amap) {} + Generalized_map(Self && amap) : Base(amap) + {} + template Generalized_map(const Generalized_map_base& amap) : diff -Nru cgal-5.4.1/include/CGAL/Generalized_map_iterators_base.h cgal-5.5/include/CGAL/Generalized_map_iterators_base.h --- cgal-5.4.1/include/CGAL/Generalized_map_iterators_base.h 2022-06-03 19:04:12.000000000 +0000 +++ cgal-5.5/include/CGAL/Generalized_map_iterators_base.h 2022-07-13 19:05:00.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Generalized_map/include/CGAL/Generalized_map_iterators_base.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Generalized_map/include/CGAL/Generalized_map_iterators_base.h $ // $Id: Generalized_map_iterators_base.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Generalized_map_operations.h cgal-5.5/include/CGAL/Generalized_map_operations.h --- cgal-5.4.1/include/CGAL/Generalized_map_operations.h 2022-06-03 19:04:12.000000000 +0000 +++ cgal-5.5/include/CGAL/Generalized_map_operations.h 2022-07-13 19:05:00.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Generalized_map/include/CGAL/Generalized_map_operations.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Generalized_map/include/CGAL/Generalized_map_operations.h $ // $Id: Generalized_map_operations.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Generalized_map_save_load.h cgal-5.5/include/CGAL/Generalized_map_save_load.h --- cgal-5.4.1/include/CGAL/Generalized_map_save_load.h 2022-06-03 19:04:12.000000000 +0000 +++ cgal-5.5/include/CGAL/Generalized_map_save_load.h 2022-07-13 19:05:00.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Generalized_map/include/CGAL/Generalized_map_save_load.h $ -// $Id: Generalized_map_save_load.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Generalized_map/include/CGAL/Generalized_map_save_load.h $ +// $Id: Generalized_map_save_load.h 5c57f83 2021-10-14T17:19:33+02:00 Guillaume Damiand // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Guillaume Damiand @@ -21,7 +21,7 @@ #include #include -#include +#include #include #include #include @@ -70,12 +70,12 @@ template < class GMap > boost::property_tree::ptree gmap_save_darts (const GMap& amap, - std::map& myDarts) { CGAL_assertion( myDarts.empty() ); - // First we numbered each dart by using the std::map. + // First we numbered each dart by using the unordered_map. typename GMap::Dart_range::const_iterator it(amap.darts().begin()); for(typename GMap::size_type num=1; num<=amap.number_of_darts(); ++num, ++it) @@ -119,7 +119,7 @@ ptree tree; // map dart => number - std::map myDarts; + std::unordered_map myDarts; // Save darts ptree pt_darts=gmap_save_darts(amap, myDarts); diff -Nru cgal-5.4.1/include/CGAL/Generalized_map_storages.h cgal-5.5/include/CGAL/Generalized_map_storages.h --- cgal-5.4.1/include/CGAL/Generalized_map_storages.h 2022-06-03 19:04:12.000000000 +0000 +++ cgal-5.5/include/CGAL/Generalized_map_storages.h 2022-07-13 19:05:00.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Generalized_map/include/CGAL/Generalized_map_storages.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Generalized_map/include/CGAL/Generalized_map_storages.h $ // $Id: Generalized_map_storages.h e6c767d 2021-05-12T15:45:07+02:00 Maxime Gimeno // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/General_polygon_2.h cgal-5.5/include/CGAL/General_polygon_2.h --- cgal-5.4.1/include/CGAL/General_polygon_2.h 2022-06-03 19:03:52.000000000 +0000 +++ cgal-5.5/include/CGAL/General_polygon_2.h 2022-07-13 19:04:38.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Boolean_set_operations_2/include/CGAL/General_polygon_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Boolean_set_operations_2/include/CGAL/General_polygon_2.h $ // $Id: General_polygon_2.h 420f37a 2021-09-23T16:28:23+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/General_polygon_set_2.h cgal-5.5/include/CGAL/General_polygon_set_2.h --- cgal-5.4.1/include/CGAL/General_polygon_set_2.h 2022-06-03 19:03:52.000000000 +0000 +++ cgal-5.5/include/CGAL/General_polygon_set_2.h 2022-07-13 19:04:38.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Boolean_set_operations_2/include/CGAL/General_polygon_set_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Boolean_set_operations_2/include/CGAL/General_polygon_set_2.h $ // $Id: General_polygon_set_2.h 76f4465 2021-03-03T11:29:12+02:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/General_polygon_set_on_surface_2.h cgal-5.5/include/CGAL/General_polygon_set_on_surface_2.h --- cgal-5.4.1/include/CGAL/General_polygon_set_on_surface_2.h 2022-06-03 19:03:52.000000000 +0000 +++ cgal-5.5/include/CGAL/General_polygon_set_on_surface_2.h 2022-07-13 19:04:38.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Boolean_set_operations_2/include/CGAL/General_polygon_set_on_surface_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Boolean_set_operations_2/include/CGAL/General_polygon_set_on_surface_2.h $ // $Id: General_polygon_set_on_surface_2.h 76f4465 2021-03-03T11:29:12+02:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/General_polygon_with_holes_2.h cgal-5.5/include/CGAL/General_polygon_with_holes_2.h --- cgal-5.4.1/include/CGAL/General_polygon_with_holes_2.h 2022-06-03 19:05:13.000000000 +0000 +++ cgal-5.5/include/CGAL/General_polygon_with_holes_2.h 2022-07-13 19:06:07.000000000 +0000 @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon/include/CGAL/General_polygon_with_holes_2.h $ -// $Id: General_polygon_with_holes_2.h 78ff918 2021-06-23T23:34:14+02:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon/include/CGAL/General_polygon_with_holes_2.h $ +// $Id: General_polygon_with_holes_2.h 2a30075 2022-01-10T11:01:31+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // @@ -23,141 +23,92 @@ namespace CGAL { -/*! -\ingroup PkgPolygon2Ref - -The class `General_polygon_with_holes_2` models the concept -`GeneralPolygonWithHoles_2`. It represents a general polygon with -holes. It is parameterized with a type `Polygon` used to define -the exposed type `General_polygon_2`. This type represents the -outer boundary of the general polygon and the outer boundaries of -each hole. - -\tparam Polygon_ must have input and output operators. - -\cgalModels `GeneralPolygonWithHoles_2` - -*/ -template -class General_polygon_with_holes_2 -{ +/*! \ingroup PkgPolygon2Ref + * + * The class `General_polygon_with_holes_2` models the concept + * `GeneralPolygonWithHoles_2`. It represents a general polygon with holes. + * It is parameterized with a type `Polygon` used to define the exposed + * type `Polygon_2`. This type represents the outer boundary of the general + * polygon and each hole. + * + * \tparam Polygon_ must have input and output operators. + * + * \cgalModels `GeneralPolygonWithHoles_2` + */ +template +class General_polygon_with_holes_2 { public: - /// \name Definition /// @{ /// polygon without hole type - typedef Polygon_ General_polygon_2; + typedef Polygon_ Polygon_2; +#ifndef DOXYGEN_RUNNING + // Backward compatibility + typedef Polygon_2 General_polygon_2; +#endif /// @} - typedef std::deque Holes_container; + typedef std::deque Holes_container; typedef typename Holes_container::iterator Hole_iterator; typedef typename Holes_container::const_iterator Hole_const_iterator; - typedef unsigned int Size; + typedef unsigned int Size; - General_polygon_with_holes_2() : m_pgn() - {} + General_polygon_with_holes_2() : m_pgn() {} - explicit General_polygon_with_holes_2(const General_polygon_2& pgn_boundary) - : m_pgn(pgn_boundary) + explicit General_polygon_with_holes_2(const Polygon_2& pgn_boundary) : + m_pgn(pgn_boundary) {} - - template - General_polygon_with_holes_2(const General_polygon_2& pgn_boundary, - HolesInputIterator h_begin, - HolesInputIterator h_end) : m_pgn(pgn_boundary), - m_holes(h_begin, h_end) + template + General_polygon_with_holes_2(const Polygon_2& pgn_boundary, + HolesInputIterator h_begin, + HolesInputIterator h_end) : + m_pgn(pgn_boundary), + m_holes(h_begin, h_end) {} - Holes_container& holes() - { - return m_holes; - } + Holes_container& holes() { return m_holes; } - const Holes_container& holes() const - { - return m_holes; - } + const Holes_container& holes() const { return m_holes; } - Hole_iterator holes_begin() - { - return m_holes.begin(); - } + Hole_iterator holes_begin() { return m_holes.begin(); } - Hole_iterator holes_end() - { - return m_holes.end(); - } + Hole_iterator holes_end() { return m_holes.end(); } - Hole_const_iterator holes_begin() const - { - return m_holes.begin(); - } + Hole_const_iterator holes_begin() const { return m_holes.begin(); } - Hole_const_iterator holes_end() const - { - return m_holes.end(); - } + Hole_const_iterator holes_end() const { return m_holes.end(); } - bool is_unbounded() const - { - return m_pgn.is_empty(); - } + bool is_unbounded() const { return m_pgn.is_empty(); } - General_polygon_2& outer_boundary() - { - return m_pgn; - } + Polygon_2& outer_boundary() { return m_pgn; } - const General_polygon_2& outer_boundary() const - { - return m_pgn; - } + const Polygon_2& outer_boundary() const { return m_pgn; } - void add_hole(const General_polygon_2& pgn_hole) - { - m_holes.push_back(pgn_hole); - } + void add_hole(const Polygon_2& pgn_hole) { m_holes.push_back(pgn_hole); } - void erase_hole(Hole_iterator hit) - { - m_holes.erase(hit); - } + void erase_hole(Hole_iterator hit) { m_holes.erase(hit); } - bool has_holes() const - { - return (!m_holes.empty()); - } + bool has_holes() const { return (!m_holes.empty()); } - Size number_of_holes() const - { - return static_cast(m_holes.size()); - } + Size number_of_holes() const { return static_cast(m_holes.size()); } - void clear() - { + void clear() { m_pgn.clear(); m_holes.clear(); } - bool is_plane() const - { - return (m_pgn.is_empty() && m_holes.empty()); - } - - + bool is_plane() const { return (m_pgn.is_empty() && m_holes.empty()); } protected: - - General_polygon_2 m_pgn; - Holes_container m_holes; + Polygon_2 m_pgn; + Holes_container m_holes; }; - //-----------------------------------------------------------------------// // operator<< //-----------------------------------------------------------------------// @@ -177,10 +128,9 @@ \relates General_polygon_with_holes_2 */ -template -std::ostream -&operator<<(std::ostream &os, const General_polygon_with_holes_2& p) -{ +template +std::ostream& +operator<<(std::ostream& os, const General_polygon_with_holes_2& p) { typename General_polygon_with_holes_2::Hole_const_iterator hit; switch(IO::get_mode(os)) { @@ -225,19 +175,17 @@ \relates General_polygon_with_holes_2 */ -template -std::istream &operator>>(std::istream &is, General_polygon_with_holes_2& p) -{ +template +std::istream& +operator>>(std::istream& is, General_polygon_with_holes_2& p) { p.clear(); is >> p.outer_boundary(); unsigned int n_holes; is >> n_holes; - if (is) - { + if (is) { Polygon_ pgn_hole; - for (unsigned int i=0; i> pgn_hole; p.add_hole(pgn_hole); } diff -Nru cgal-5.4.1/include/CGAL/Generator/internal/Generic_random_point_generator.h cgal-5.5/include/CGAL/Generator/internal/Generic_random_point_generator.h --- cgal-5.4.1/include/CGAL/Generator/internal/Generic_random_point_generator.h 2022-06-03 19:04:13.000000000 +0000 +++ cgal-5.5/include/CGAL/Generator/internal/Generic_random_point_generator.h 2022-07-13 19:05:01.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Generator/include/CGAL/Generator/internal/Generic_random_point_generator.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Generator/include/CGAL/Generator/internal/Generic_random_point_generator.h $ // $Id: Generic_random_point_generator.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/generators.h cgal-5.5/include/CGAL/generators.h --- cgal-5.4.1/include/CGAL/generators.h 2022-06-03 19:04:13.000000000 +0000 +++ cgal-5.5/include/CGAL/generators.h 2022-07-13 19:05:01.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Generator/include/CGAL/generators.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Generator/include/CGAL/generators.h $ // $Id: generators.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Generic_map_min_items.h cgal-5.5/include/CGAL/Generic_map_min_items.h --- cgal-5.4.1/include/CGAL/Generic_map_min_items.h 2022-06-03 19:04:07.000000000 +0000 +++ cgal-5.5/include/CGAL/Generic_map_min_items.h 2022-07-13 19:04:54.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Combinatorial_map/include/CGAL/Generic_map_min_items.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Combinatorial_map/include/CGAL/Generic_map_min_items.h $ // $Id: Generic_map_min_items.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/generic_sweep.h cgal-5.5/include/CGAL/generic_sweep.h --- cgal-5.4.1/include/CGAL/generic_sweep.h 2022-06-03 19:04:54.000000000 +0000 +++ cgal-5.5/include/CGAL/generic_sweep.h 2022-07-13 19:05:47.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_2/include/CGAL/generic_sweep.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_2/include/CGAL/generic_sweep.h $ // $Id: generic_sweep.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Geographical_coordinates_traits_2.h cgal-5.5/include/CGAL/Geographical_coordinates_traits_2.h --- cgal-5.4.1/include/CGAL/Geographical_coordinates_traits_2.h 2022-06-03 19:06:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Geographical_coordinates_traits_2.h 2022-07-13 19:07:11.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_on_sphere_2/include/CGAL/Geographical_coordinates_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_on_sphere_2/include/CGAL/Geographical_coordinates_traits_2.h $ // $Id: Geographical_coordinates_traits_2.h 00015b0 2021-04-02T09:44:49+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Get_arithmetic_kernel.h cgal-5.5/include/CGAL/Get_arithmetic_kernel.h --- cgal-5.4.1/include/CGAL/Get_arithmetic_kernel.h 2022-06-03 19:03:37.000000000 +0000 +++ cgal-5.5/include/CGAL/Get_arithmetic_kernel.h 2022-07-13 19:04:20.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arithmetic_kernel/include/CGAL/Get_arithmetic_kernel.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arithmetic_kernel/include/CGAL/Get_arithmetic_kernel.h $ // $Id: Get_arithmetic_kernel.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/gl.h cgal-5.5/include/CGAL/gl.h --- cgal-5.4.1/include/CGAL/gl.h 2022-06-03 19:04:20.000000000 +0000 +++ cgal-5.5/include/CGAL/gl.h 2022-07-13 19:05:09.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/gl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/gl.h $ // $Id: gl.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial diff -Nru cgal-5.4.1/include/CGAL/global_functions_circular_kernel_2.h cgal-5.5/include/CGAL/global_functions_circular_kernel_2.h --- cgal-5.4.1/include/CGAL/global_functions_circular_kernel_2.h 2022-06-03 19:04:01.000000000 +0000 +++ cgal-5.5/include/CGAL/global_functions_circular_kernel_2.h 2022-07-13 19:04:48.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Circular_kernel_2/include/CGAL/global_functions_circular_kernel_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Circular_kernel_2/include/CGAL/global_functions_circular_kernel_2.h $ // $Id: global_functions_circular_kernel_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/global_functions_on_root_for_sphere_2_3.h cgal-5.5/include/CGAL/global_functions_on_root_for_sphere_2_3.h --- cgal-5.4.1/include/CGAL/global_functions_on_root_for_sphere_2_3.h 2022-06-03 19:03:34.000000000 +0000 +++ cgal-5.5/include/CGAL/global_functions_on_root_for_sphere_2_3.h 2022-07-13 19:04:17.000000000 +0000 @@ -9,7 +9,7 @@ // and a STREP (FET Open) Project under Contract No IST-006413 // (ACS -- Algorithms for Complex Shapes) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_for_spheres/include/CGAL/global_functions_on_root_for_sphere_2_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_for_spheres/include/CGAL/global_functions_on_root_for_sphere_2_3.h $ // $Id: global_functions_on_root_for_sphere_2_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/global_functions_on_roots_and_polynomials_1_3.h cgal-5.5/include/CGAL/global_functions_on_roots_and_polynomials_1_3.h --- cgal-5.4.1/include/CGAL/global_functions_on_roots_and_polynomials_1_3.h 2022-06-03 19:03:34.000000000 +0000 +++ cgal-5.5/include/CGAL/global_functions_on_roots_and_polynomials_1_3.h 2022-07-13 19:04:17.000000000 +0000 @@ -9,7 +9,7 @@ // and a STREP (FET Open) Project under Contract No IST-006413 // (ACS -- Algorithms for Complex Shapes) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_for_spheres/include/CGAL/global_functions_on_roots_and_polynomials_1_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_for_spheres/include/CGAL/global_functions_on_roots_and_polynomials_1_3.h $ // $Id: global_functions_on_roots_and_polynomials_1_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/global_functions_on_roots_and_polynomials_2_3.h cgal-5.5/include/CGAL/global_functions_on_roots_and_polynomials_2_3.h --- cgal-5.4.1/include/CGAL/global_functions_on_roots_and_polynomials_2_3.h 2022-06-03 19:03:34.000000000 +0000 +++ cgal-5.5/include/CGAL/global_functions_on_roots_and_polynomials_2_3.h 2022-07-13 19:04:17.000000000 +0000 @@ -9,7 +9,7 @@ // and a STREP (FET Open) Project under Contract No IST-006413 // (ACS -- Algorithms for Complex Shapes) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_for_spheres/include/CGAL/global_functions_on_roots_and_polynomials_2_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_for_spheres/include/CGAL/global_functions_on_roots_and_polynomials_2_3.h $ // $Id: global_functions_on_roots_and_polynomials_2_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/global_functions_spherical_kernel_3.h cgal-5.5/include/CGAL/global_functions_spherical_kernel_3.h --- cgal-5.4.1/include/CGAL/global_functions_spherical_kernel_3.h 2022-06-03 19:04:04.000000000 +0000 +++ cgal-5.5/include/CGAL/global_functions_spherical_kernel_3.h 2022-07-13 19:04:52.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Circular_kernel_3/include/CGAL/global_functions_spherical_kernel_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Circular_kernel_3/include/CGAL/global_functions_spherical_kernel_3.h $ // $Id: global_functions_spherical_kernel_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/GLPK_mixed_integer_program_traits.h cgal-5.5/include/CGAL/GLPK_mixed_integer_program_traits.h --- cgal-5.4.1/include/CGAL/GLPK_mixed_integer_program_traits.h 2022-06-03 19:05:45.000000000 +0000 +++ cgal-5.5/include/CGAL/GLPK_mixed_integer_program_traits.h 2022-07-13 19:06:42.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Solver_interface/include/CGAL/GLPK_mixed_integer_program_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Solver_interface/include/CGAL/GLPK_mixed_integer_program_traits.h $ // $Id: GLPK_mixed_integer_program_traits.h 267a641 2021-05-31T14:01:08+02:00 Dmitry Anisimov // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/glu.h cgal-5.5/include/CGAL/glu.h --- cgal-5.4.1/include/CGAL/glu.h 2022-06-03 19:04:20.000000000 +0000 +++ cgal-5.5/include/CGAL/glu.h 2022-07-13 19:05:09.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/glu.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/glu.h $ // $Id: glu.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial diff -Nru cgal-5.4.1/include/CGAL/GMap_cell_const_iterators.h cgal-5.5/include/CGAL/GMap_cell_const_iterators.h --- cgal-5.4.1/include/CGAL/GMap_cell_const_iterators.h 2022-06-03 19:04:12.000000000 +0000 +++ cgal-5.5/include/CGAL/GMap_cell_const_iterators.h 2022-07-13 19:05:00.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Generalized_map/include/CGAL/GMap_cell_const_iterators.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Generalized_map/include/CGAL/GMap_cell_const_iterators.h $ // $Id: GMap_cell_const_iterators.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/GMap_cell_iterators.h cgal-5.5/include/CGAL/GMap_cell_iterators.h --- cgal-5.4.1/include/CGAL/GMap_cell_iterators.h 2022-06-03 19:04:12.000000000 +0000 +++ cgal-5.5/include/CGAL/GMap_cell_iterators.h 2022-07-13 19:05:00.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Generalized_map/include/CGAL/GMap_cell_iterators.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Generalized_map/include/CGAL/GMap_cell_iterators.h $ // $Id: GMap_cell_iterators.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/GMap_dart_const_iterators.h cgal-5.5/include/CGAL/GMap_dart_const_iterators.h --- cgal-5.4.1/include/CGAL/GMap_dart_const_iterators.h 2022-06-03 19:04:12.000000000 +0000 +++ cgal-5.5/include/CGAL/GMap_dart_const_iterators.h 2022-07-13 19:05:00.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Generalized_map/include/CGAL/GMap_dart_const_iterators.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Generalized_map/include/CGAL/GMap_dart_const_iterators.h $ // $Id: GMap_dart_const_iterators.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/GMap_dart_iterators.h cgal-5.5/include/CGAL/GMap_dart_iterators.h --- cgal-5.4.1/include/CGAL/GMap_dart_iterators.h 2022-06-03 19:04:12.000000000 +0000 +++ cgal-5.5/include/CGAL/GMap_dart_iterators.h 2022-07-13 19:05:00.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Generalized_map/include/CGAL/GMap_dart_iterators.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Generalized_map/include/CGAL/GMap_dart_iterators.h $ // $Id: GMap_dart_iterators.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/GMap_linear_cell_complex_storages.h cgal-5.5/include/CGAL/GMap_linear_cell_complex_storages.h --- cgal-5.4.1/include/CGAL/GMap_linear_cell_complex_storages.h 2022-06-03 19:04:42.000000000 +0000 +++ cgal-5.5/include/CGAL/GMap_linear_cell_complex_storages.h 2022-07-13 19:05:34.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Linear_cell_complex/include/CGAL/GMap_linear_cell_complex_storages.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Linear_cell_complex/include/CGAL/GMap_linear_cell_complex_storages.h $ // $Id: GMap_linear_cell_complex_storages.h e6c767d 2021-05-12T15:45:07+02:00 Maxime Gimeno // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/GMP/Gmpfi_type.h cgal-5.5/include/CGAL/GMP/Gmpfi_type.h --- cgal-5.4.1/include/CGAL/GMP/Gmpfi_type.h 2022-06-03 19:05:00.000000000 +0000 +++ cgal-5.5/include/CGAL/GMP/Gmpfi_type.h 2022-07-13 19:05:53.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/GMP/Gmpfi_type.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/GMP/Gmpfi_type.h $ // $Id: Gmpfi_type.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/GMP/Gmpfi_type_static.h cgal-5.5/include/CGAL/GMP/Gmpfi_type_static.h --- cgal-5.4.1/include/CGAL/GMP/Gmpfi_type_static.h 2022-06-03 19:05:00.000000000 +0000 +++ cgal-5.5/include/CGAL/GMP/Gmpfi_type_static.h 2022-07-13 19:05:53.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/GMP/Gmpfi_type_static.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/GMP/Gmpfi_type_static.h $ // $Id: Gmpfi_type_static.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/GMP/Gmpfr_type.h cgal-5.5/include/CGAL/GMP/Gmpfr_type.h --- cgal-5.4.1/include/CGAL/GMP/Gmpfr_type.h 2022-06-03 19:05:00.000000000 +0000 +++ cgal-5.5/include/CGAL/GMP/Gmpfr_type.h 2022-07-13 19:05:53.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/GMP/Gmpfr_type.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/GMP/Gmpfr_type.h $ // $Id: Gmpfr_type.h 4e519a3 2021-05-05T13:15:37+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/GMP/Gmpfr_type_static.h cgal-5.5/include/CGAL/GMP/Gmpfr_type_static.h --- cgal-5.4.1/include/CGAL/GMP/Gmpfr_type_static.h 2022-06-03 19:05:00.000000000 +0000 +++ cgal-5.5/include/CGAL/GMP/Gmpfr_type_static.h 2022-07-13 19:05:53.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/GMP/Gmpfr_type_static.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/GMP/Gmpfr_type_static.h $ // $Id: Gmpfr_type_static.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/GMP/Gmpq_type.h cgal-5.5/include/CGAL/GMP/Gmpq_type.h --- cgal-5.4.1/include/CGAL/GMP/Gmpq_type.h 2022-06-03 19:05:00.000000000 +0000 +++ cgal-5.5/include/CGAL/GMP/Gmpq_type.h 2022-07-13 19:05:53.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/GMP/Gmpq_type.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/GMP/Gmpq_type.h $ // $Id: Gmpq_type.h ad758d0 2020-05-20T11:59:03+02:00 Marc Glisse // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/GMP/Gmpzf_type.h cgal-5.5/include/CGAL/GMP/Gmpzf_type.h --- cgal-5.4.1/include/CGAL/GMP/Gmpzf_type.h 2022-06-03 19:05:00.000000000 +0000 +++ cgal-5.5/include/CGAL/GMP/Gmpzf_type.h 2022-07-13 19:05:53.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/GMP/Gmpzf_type.h $ -// $Id: Gmpzf_type.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/GMP/Gmpzf_type.h $ +// $Id: Gmpzf_type.h 45b5fd4 2022-07-06T12:58:49+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // @@ -157,7 +157,7 @@ return; } const int p = std::numeric_limits::digits; - CGAL_assertion(CGAL_NTS is_finite(d) & is_valid(d)); + CGAL_assertion(CGAL_NTS is_finite(d) && is_valid(d)); int exp; double x = std::frexp(d, &exp); // x in [1/2, 1], x*2^exp = d mpz_init_set_d (man(), // to the following integer: diff -Nru cgal-5.4.1/include/CGAL/GMP/Gmpz_type.h cgal-5.5/include/CGAL/GMP/Gmpz_type.h --- cgal-5.4.1/include/CGAL/GMP/Gmpz_type.h 2022-06-03 19:05:00.000000000 +0000 +++ cgal-5.5/include/CGAL/GMP/Gmpz_type.h 2022-07-13 19:05:53.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/GMP/Gmpz_type.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/GMP/Gmpz_type.h $ // $Id: Gmpz_type.h eb81d59 2020-11-18T07:43:12+00:00 Giles Bathgate // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/GMP_arithmetic_kernel.h cgal-5.5/include/CGAL/GMP_arithmetic_kernel.h --- cgal-5.4.1/include/CGAL/GMP_arithmetic_kernel.h 2022-06-03 19:03:37.000000000 +0000 +++ cgal-5.5/include/CGAL/GMP_arithmetic_kernel.h 2022-07-13 19:04:20.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arithmetic_kernel/include/CGAL/GMP_arithmetic_kernel.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arithmetic_kernel/include/CGAL/GMP_arithmetic_kernel.h $ // $Id: GMP_arithmetic_kernel.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Gmp_coercion_traits.h cgal-5.5/include/CGAL/Gmp_coercion_traits.h --- cgal-5.4.1/include/CGAL/Gmp_coercion_traits.h 2022-06-03 19:05:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Gmp_coercion_traits.h 2022-07-13 19:05:54.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/Gmp_coercion_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/Gmp_coercion_traits.h $ // $Id: Gmp_coercion_traits.h 26355e2 2020-06-25T12:31:21+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Gmpfi.h cgal-5.5/include/CGAL/Gmpfi.h --- cgal-5.4.1/include/CGAL/Gmpfi.h 2022-06-03 19:05:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Gmpfi.h 2022-07-13 19:05:54.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/Gmpfi.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/Gmpfi.h $ // $Id: Gmpfi.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Gmpfr.h cgal-5.5/include/CGAL/Gmpfr.h --- cgal-5.4.1/include/CGAL/Gmpfr.h 2022-06-03 19:05:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Gmpfr.h 2022-07-13 19:05:54.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/Gmpfr.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/Gmpfr.h $ // $Id: Gmpfr.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/gmp.h cgal-5.5/include/CGAL/gmp.h --- cgal-5.4.1/include/CGAL/gmp.h 2022-06-03 19:05:01.000000000 +0000 +++ cgal-5.5/include/CGAL/gmp.h 2022-07-13 19:05:55.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/gmp.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/gmp.h $ // $Id: gmp.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Gmpq.h cgal-5.5/include/CGAL/Gmpq.h --- cgal-5.4.1/include/CGAL/Gmpq.h 2022-06-03 19:05:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Gmpq.h 2022-07-13 19:05:54.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/Gmpq.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/Gmpq.h $ // $Id: Gmpq.h 152a084 2021-09-21T13:34:58+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/GMPXX_arithmetic_kernel.h cgal-5.5/include/CGAL/GMPXX_arithmetic_kernel.h --- cgal-5.4.1/include/CGAL/GMPXX_arithmetic_kernel.h 2022-06-03 19:03:37.000000000 +0000 +++ cgal-5.5/include/CGAL/GMPXX_arithmetic_kernel.h 2022-07-13 19:04:20.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arithmetic_kernel/include/CGAL/GMPXX_arithmetic_kernel.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arithmetic_kernel/include/CGAL/GMPXX_arithmetic_kernel.h $ // $Id: GMPXX_arithmetic_kernel.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/gmpxx_coercion_traits.h cgal-5.5/include/CGAL/gmpxx_coercion_traits.h --- cgal-5.4.1/include/CGAL/gmpxx_coercion_traits.h 2022-06-03 19:05:01.000000000 +0000 +++ cgal-5.5/include/CGAL/gmpxx_coercion_traits.h 2022-07-13 19:05:55.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/gmpxx_coercion_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/gmpxx_coercion_traits.h $ // $Id: gmpxx_coercion_traits.h 26355e2 2020-06-25T12:31:21+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/gmpxx.h cgal-5.5/include/CGAL/gmpxx.h --- cgal-5.4.1/include/CGAL/gmpxx.h 2022-06-03 19:05:01.000000000 +0000 +++ cgal-5.5/include/CGAL/gmpxx.h 2022-07-13 19:05:55.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/gmpxx.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/gmpxx.h $ // $Id: gmpxx.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Gmpzf.h cgal-5.5/include/CGAL/Gmpzf.h --- cgal-5.4.1/include/CGAL/Gmpzf.h 2022-06-03 19:05:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Gmpzf.h 2022-07-13 19:05:54.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/Gmpzf.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/Gmpzf.h $ // $Id: Gmpzf.h 152a084 2021-09-21T13:34:58+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Gmpz.h cgal-5.5/include/CGAL/Gmpz.h --- cgal-5.4.1/include/CGAL/Gmpz.h 2022-06-03 19:05:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Gmpz.h 2022-07-13 19:05:54.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/Gmpz.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/Gmpz.h $ // $Id: Gmpz.h 152a084 2021-09-21T13:34:58+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/gnuplot_output_2.h cgal-5.5/include/CGAL/gnuplot_output_2.h --- cgal-5.4.1/include/CGAL/gnuplot_output_2.h 2022-06-03 19:04:07.000000000 +0000 +++ cgal-5.5/include/CGAL/gnuplot_output_2.h 2022-07-13 19:04:54.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cone_spanners_2/include/CGAL/gnuplot_output_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cone_spanners_2/include/CGAL/gnuplot_output_2.h $ // $Id: gnuplot_output_2.h 26355e2 2020-06-25T12:31:21+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Gps_circle_segment_traits_2.h cgal-5.5/include/CGAL/Gps_circle_segment_traits_2.h --- cgal-5.4.1/include/CGAL/Gps_circle_segment_traits_2.h 2022-06-03 19:03:52.000000000 +0000 +++ cgal-5.5/include/CGAL/Gps_circle_segment_traits_2.h 2022-07-13 19:04:38.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Boolean_set_operations_2/include/CGAL/Gps_circle_segment_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Boolean_set_operations_2/include/CGAL/Gps_circle_segment_traits_2.h $ // $Id: Gps_circle_segment_traits_2.h e2a77e5 2020-05-24T11:18:01+02:00 Marc Glisse // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Gps_segment_traits_2.h cgal-5.5/include/CGAL/Gps_segment_traits_2.h --- cgal-5.4.1/include/CGAL/Gps_segment_traits_2.h 2022-06-03 19:03:52.000000000 +0000 +++ cgal-5.5/include/CGAL/Gps_segment_traits_2.h 2022-07-13 19:04:38.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Boolean_set_operations_2/include/CGAL/Gps_segment_traits_2.h $ -// $Id: Gps_segment_traits_2.h 4f99fe8 2020-08-13T15:37:33+02:00 Simon Giraudot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Boolean_set_operations_2/include/CGAL/Gps_segment_traits_2.h $ +// $Id: Gps_segment_traits_2.h 04729e8 2021-11-03T18:29:58+02:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -26,20 +26,19 @@ namespace CGAL { -template < class Kernel_, - class Container_ = std::vector, - class Arr_seg_traits_ = Arr_segment_traits_2 > -class Gps_segment_traits_2 : public Arr_seg_traits_ -{ - typedef Arr_seg_traits_ Base; - typedef Gps_segment_traits_2 Self; +template , + typename ArrSegmentTraits = Arr_segment_traits_2 > +class Gps_segment_traits_2 : public ArrSegmentTraits { + typedef ArrSegmentTraits Base; + typedef Gps_segment_traits_2 Self; public: - // Polygon_2 type is required by GeneralPolygonSetTraits Concept - typedef CGAL::Polygon_2 Polygon_2; - // Polygon_2 is a model of the GeneralPolygon2 concept. - typedef Polygon_2 General_polygon_2; + typedef CGAL::Polygon_2 Polygon_2; + + // Backward compatibility + typedef Polygon_2 General_polygon_2; // Polygon_with_holes_2 can be a simple polygon , with holes that are // entirely inside him , or some vertices of the polygon and its holes @@ -48,8 +47,9 @@ // Polygon_with_holes_2 type required by GeneralPolygonSetTraits Concept. typedef CGAL::Polygon_with_holes_2 Polygon_with_holes_2; - // Polygon_with_Holes_2 is a model of the GeneralPolygonWithHoles2 concept. - typedef Polygon_with_holes_2 General_polygon_with_holes_2; + // Backward compatibility + typedef Polygon_with_holes_2 General_polygon_with_holes_2; + typedef typename Base::X_monotone_curve_2 X_monotone_curve_2; typedef Polygon_2_curve_iterator @@ -64,7 +64,7 @@ * A functor for constructing a polygon from a range of segments. */ class Construct_polygon_2 { - typedef Gps_segment_traits_2 Self; + typedef Gps_segment_traits_2 Self; typedef Gps_traits_adaptor Traits_adaptor; /*! The traits (in case it has state) */ @@ -101,11 +101,9 @@ class Construct_curves_2 { public: std::pair - operator()(const General_polygon_2& pgn) const - { + operator()(const Polygon_2& pgn) const { Curve_const_iterator c_begin(&pgn, pgn.vertex_pairs_begin()); Curve_const_iterator c_end(&pgn, pgn.vertex_pairs_end()); - return (std::make_pair(c_begin, c_end)); } }; @@ -121,42 +119,33 @@ */ class Construct_outer_boundary { public: - General_polygon_2 operator()(const General_polygon_with_holes_2& pol_wh) - const - { - return pol_wh.outer_boundary(); - } + Polygon_2 operator()(const Polygon_with_holes_2& pol_wh) const + { return pol_wh.outer_boundary(); } }; Construct_outer_boundary construct_outer_boundary_object() const - { - return Construct_outer_boundary(); - } + { return Construct_outer_boundary(); } - /* typedef from General_polygon_with_holes_2. + /* typedef from Polygon_with_holes_2. * Hole_const_iterator nested type is required by * GeneralPolygonWithHoles2 concept */ - /*A functor for constructing the container of holes of a polygon with holes. - * It returns ths begin/end iterators for the holes + /* A functor for constructing the container of holes of a polygon with holes. + * It returns the begin/end iterators for the holes */ class Construct_holes { public: std::pair - operator()(const General_polygon_with_holes_2& pol_wh) const - { - return std::make_pair(pol_wh.holes_begin(), pol_wh.holes_end()); - } + operator()(const Polygon_with_holes_2& pol_wh) const + { return std::make_pair(pol_wh.holes_begin(), pol_wh.holes_end()); } }; Construct_holes construct_holes_object() const - { - return Construct_holes(); - } + { return Construct_holes(); } - /* A functor for constructing a General_polygon_with_holes from a - * General_Polygon (and possibly a range of holes). + /* A functor for constructing a Polygon_with_holes from a polygon (and + * possibly a range of holes). * * constructs a general polygon with holes using a given general polygon * outer as the outer boundary and a given range of holes. If outer is an @@ -165,42 +154,31 @@ * polygons representing the holes must be strictly simple and pairwise * disjoint, except perhaps at the vertices. */ - class Construct_general_polygon_with_holes_2 { + class Construct_polygon_with_holes_2 { public: - General_polygon_with_holes_2 operator()(const General_polygon_2& - pgn_boundary) const - { - return General_polygon_with_holes_2(pgn_boundary); - } - template - General_polygon_with_holes_2 operator()(const General_polygon_2& - pgn_boundary, - HolesInputIterator h_begin, - HolesInputIterator h_end) const - { - return General_polygon_with_holes_2(pgn_boundary, h_begin,h_end); - } + Polygon_with_holes_2 operator()(const Polygon_2& pgn_boundary) const + { return Polygon_with_holes_2(pgn_boundary); } + + template + Polygon_with_holes_2 operator()(const Polygon_2& pgn_boundary, + HolesInputIterator h_begin, + HolesInputIterator h_end) const + { return Polygon_with_holes_2(pgn_boundary, h_begin,h_end); } }; - Construct_general_polygon_with_holes_2 construct_polygon_with_holes_2_object() - const + Construct_polygon_with_holes_2 construct_polygon_with_holes_2_object() const { - return Construct_general_polygon_with_holes_2(); + return Construct_polygon_with_holes_2(); } //functor returns true if the outer boundary is unbounded, and false otherwise. class Is_unbounded { public: - bool operator()(const General_polygon_with_holes_2& pol_wh) const - { - return pol_wh.is_unbounded(); - } + bool operator()(const Polygon_with_holes_2& pol_wh) const + { return pol_wh.is_unbounded(); } }; - Is_unbounded construct_is_unbounded_object() const - { - return Is_unbounded(); - } + Is_unbounded is_unbounded_object() const { return Is_unbounded(); } }; } //namespace CGAL diff -Nru cgal-5.4.1/include/CGAL/Gps_traits_2.h cgal-5.5/include/CGAL/Gps_traits_2.h --- cgal-5.4.1/include/CGAL/Gps_traits_2.h 2022-06-03 19:03:52.000000000 +0000 +++ cgal-5.5/include/CGAL/Gps_traits_2.h 2022-07-13 19:04:38.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Boolean_set_operations_2/include/CGAL/Gps_traits_2.h $ -// $Id: Gps_traits_2.h 27e5db1 2021-03-08T18:49:55+02:00 Efi Fogel +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Boolean_set_operations_2/include/CGAL/Gps_traits_2.h $ +// $Id: Gps_traits_2.h 4dbf509 2021-11-03T16:47:12+02:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -24,35 +24,31 @@ namespace CGAL { -template > -class Gps_traits_2 : public Arr_traits -{ - typedef Arr_traits Base; - typedef Gps_traits_2 Self; +template > +class Gps_traits_2 : public ArrTraits_2 { + typedef ArrTraits_2 Base; + typedef Gps_traits_2 Self; public: - typedef typename Base::Point_2 Point_2; typedef typename Base::X_monotone_curve_2 X_monotone_curve_2; typedef typename Base::Multiplicity Multiplicity; - //Polygon_2 type is required by GeneralPolygonSetTraits Concept - typedef General_polygon_t Polygon_2; - //Polygon_2 is a model of the GeneralPolygon2 concept + // Polygon_2 type is required by GeneralPolygonSetTraits Concept + typedef GeneralPolygon_2 Polygon_2; + // Backward compatibility typedef Polygon_2 General_polygon_2; - //Polygon_with_holes_2 type required by GeneralPolygonSetTraits Concept. - typedef CGAL::General_polygon_with_holes_2 - Polygon_with_holes_2; - //Polygon_with_Holes_2 is a model of the GeneralPolygonWithHoles2 concept. + // Polygon_with_holes_2 type required by GeneralPolygonSetTraits Concept. + typedef CGAL::General_polygon_with_holes_2 Polygon_with_holes_2; + // Backward compatibility typedef Polygon_with_holes_2 General_polygon_with_holes_2; - typedef typename General_polygon_2::Curve_const_iterator - Curve_const_iterator; + typedef typename Polygon_2::Curve_const_iterator Curve_const_iterator; - typedef typename General_polygon_with_holes_2::Hole_const_iterator + typedef typename Polygon_with_holes_2::Hole_const_iterator Hole_const_iterator; typedef typename Base::Compare_endpoints_xy_2 Compare_endpoints_xy_2; @@ -64,9 +60,9 @@ */ class Construct_polygon_2 { public: - template - void operator()(XCurveIterator begin, XCurveIterator end, - General_polygon_2& pgn) const + template + void + operator()(XCurveIterator begin, XCurveIterator end, Polygon_2& pgn) const { pgn.init(begin, end); } }; @@ -76,12 +72,10 @@ /*! * A functor for scanning all x-monotone curves that form a polygon boundary. */ - class Construct_curves_2 - { + class Construct_curves_2 { public: - std::pair - operator()(const General_polygon_2& pgn) const + operator()(const Polygon_2& pgn) const { return std::make_pair(pgn.curves_begin(), pgn.curves_end()); } }; @@ -106,30 +100,26 @@ /*A functor for constructing the outer boundary of a polygon with holes*/ class Construct_outer_boundary { public: - General_polygon_2 operator()(const General_polygon_with_holes_2& pol_wh) - const + Polygon_2 operator()(const Polygon_with_holes_2& pol_wh) const { return pol_wh.outer_boundary(); } }; Construct_outer_boundary construct_outer_boundary_object() const { return Construct_outer_boundary(); } - /* typedef from General_polygon_with_holes_2. Hole_const_iterator nested type - * is required by GeneralPolygonWithHoles2 concept + /* A functor for constructing the container of holes of a polygon with holes */ - /*A functor for constructing the container of holes of a polygon with holes*/ class Construct_holes { public: std::pair - operator()(const General_polygon_with_holes_2& pol_wh) const + operator()(const Polygon_with_holes_2& pol_wh) const { return std::make_pair(pol_wh.holes_begin(), pol_wh.holes_end()); } }; - Construct_holes construct_holes_object() const - { return Construct_holes(); } + Construct_holes construct_holes_object() const { return Construct_holes(); } - /* A functor for constructing a General_polygon_with_holes from a - * General_Polygon (and possibly a range of holes). + /* A functor for constructing a Polygon_with_holes_2 from a + * Polygon_2 (and possibly a range of holes). * * constructs a general polygon with holes using a given general polygon * outer as the outer boundary and a given range of holes. If outer is an @@ -138,32 +128,29 @@ * polygons representing the holes must be strictly simple and pairwise * disjoint, except perhaps at the vertices. */ - class Construct_general_polygon_with_holes_2 { + class Construct_polygon_with_holes_2 { public: - General_polygon_with_holes_2 - operator()(const General_polygon_2& pgn_boundary) const - { return General_polygon_with_holes_2(pgn_boundary); } + Polygon_with_holes_2 operator()(const Polygon_2& pgn_boundary) const + { return Polygon_with_holes_2(pgn_boundary); } template - General_polygon_with_holes_2 - operator()(const General_polygon_2& pgn_boundary, - HolesInputIterator h_begin, - HolesInputIterator h_end) const - { return General_polygon_with_holes_2(pgn_boundary, h_begin,h_end); } + Polygon_with_holes_2 operator()(const Polygon_2& pgn_boundary, + HolesInputIterator h_begin, + HolesInputIterator h_end) const + { return Polygon_with_holes_2(pgn_boundary, h_begin,h_end); } }; - Construct_general_polygon_with_holes_2 construct_polygon_with_holes_2_object() - const - { return Construct_general_polygon_with_holes_2(); } + Construct_polygon_with_holes_2 construct_polygon_with_holes_2_object() const + { return Construct_polygon_with_holes_2(); } // Return true if the outer boundary is empty, and false otherwise. class Is_unbounded { public: - bool operator()(const General_polygon_with_holes_2& pol_wh) const + bool operator()(const Polygon_with_holes_2& pol_wh) const { return pol_wh.is_unbounded(); } }; - Is_unbounded construct_is_unbounded_object() const { return Is_unbounded(); } + Is_unbounded is_unbounded_object() const { return Is_unbounded(); } // Equality operator class Equal_2 { @@ -202,9 +189,7 @@ { return m_traits.equal_2_object()(cv1, cv2); } //! Compare two general polygons - bool operator()(const General_polygon_2& pgn1, const General_polygon_2& pgn2) - const - { + bool operator()(const Polygon_2& pgn1, const Polygon_2& pgn2) const { if (pgn1.size() != pgn2.size()) return false; if (pgn1.is_empty() && ! pgn2.is_empty()) return false; if (pgn2.is_empty()) return false; @@ -224,9 +209,8 @@ } //! Compare two general polygons - bool operator()(const General_polygon_with_holes_2& pgn1, - const General_polygon_with_holes_2& pgn2) const { - + bool operator()(const Polygon_with_holes_2& pgn1, + const Polygon_with_holes_2& pgn2) const { if (! operator()(pgn1.outer_boundary(), pgn2.outer_boundary())) return false; if (pgn1.number_of_holes(), pgn2.number_of_holes()) return false; diff -Nru cgal-5.4.1/include/CGAL/grabbers.h cgal-5.5/include/CGAL/grabbers.h --- cgal-5.4.1/include/CGAL/grabbers.h 2022-06-03 19:03:57.000000000 +0000 +++ cgal-5.5/include/CGAL/grabbers.h 2022-07-13 19:04:43.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_ipelets/include/CGAL/grabbers.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_ipelets/include/CGAL/grabbers.h $ // $Id: grabbers.h efc0c52 2021-01-15T10:02:00+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/graph_traits_Arrangement_2.h cgal-5.5/include/CGAL/graph_traits_Arrangement_2.h --- cgal-5.4.1/include/CGAL/graph_traits_Arrangement_2.h 2022-06-03 19:03:46.000000000 +0000 +++ cgal-5.5/include/CGAL/graph_traits_Arrangement_2.h 2022-07-13 19:04:31.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/graph_traits_Arrangement_2.h $ -// $Id: graph_traits_Arrangement_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/graph_traits_Arrangement_2.h $ +// $Id: graph_traits_Arrangement_2.h 380704b 2022-05-03T15:31:09+01:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -24,9 +24,10 @@ */ // include this to avoid a VC15 warning -#include +#include #include +#include #include #include #include @@ -75,7 +76,8 @@ public virtual boost::bidirectional_graph_tag, // This tag refines the // incidence_graph_tag. public virtual boost::vertex_list_graph_tag, // Can iterate over vertices. - public virtual boost::edge_list_graph_tag // Can iterate over edges. + public virtual boost::edge_list_graph_tag, // Can iterate over edges. + public virtual boost::adjacency_graph_tag {}; /*! \class @@ -232,7 +234,7 @@ typedef typename Arrangement_on_surface_2::Size edges_size_type; // Types not required by any of these concepts: - typedef void adjacency_iterator; + typedef CGAL::Vertex_around_target_iterator adjacency_iterator; /*! Constructor. */ graph_traits (const Arrangement_on_surface_2& arr) : @@ -411,6 +413,20 @@ return std::make_pair (gt_arr.out_edges_begin (v), gt_arr.out_edges_end (v)); } +template +Iterator_range< typename + boost::graph_traits >:: + adjacency_iterator> +adjacent_vertices(typename + boost::graph_traits >:: + vertex_descriptor v, + const CGAL::Arrangement_on_surface_2& arr) +{ + return CGAL::vertices_around_target(v,arr); +} + /*! * Get the source vertex of an arrangement edge. * \param e The edge. diff -Nru cgal-5.4.1/include/CGAL/graph_traits_dual_arrangement_2.h cgal-5.5/include/CGAL/graph_traits_dual_arrangement_2.h --- cgal-5.4.1/include/CGAL/graph_traits_dual_arrangement_2.h 2022-06-03 19:03:46.000000000 +0000 +++ cgal-5.5/include/CGAL/graph_traits_dual_arrangement_2.h 2022-07-13 19:04:31.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/graph_traits_dual_arrangement_2.h $ -// $Id: graph_traits_dual_arrangement_2.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/graph_traits_dual_arrangement_2.h $ +// $Id: graph_traits_dual_arrangement_2.h 6d3176e 2022-01-07T14:42:25+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Ron Wein @@ -25,7 +25,7 @@ */ // include this to avoid a VC15 warning -#include +#include #include #include diff -Nru cgal-5.4.1/include/CGAL/graph_traits_dual_arrangement_on_surface_2.h cgal-5.5/include/CGAL/graph_traits_dual_arrangement_on_surface_2.h --- cgal-5.4.1/include/CGAL/graph_traits_dual_arrangement_on_surface_2.h 2022-06-03 19:03:46.000000000 +0000 +++ cgal-5.5/include/CGAL/graph_traits_dual_arrangement_on_surface_2.h 2022-07-13 19:04:31.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/graph_traits_dual_arrangement_on_surface_2.h $ -// $Id: graph_traits_dual_arrangement_on_surface_2.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/graph_traits_dual_arrangement_on_surface_2.h $ +// $Id: graph_traits_dual_arrangement_on_surface_2.h 6d3176e 2022-01-07T14:42:25+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Ron Wein @@ -25,7 +25,7 @@ */ // include this to avoid a VC15 warning -#include +#include #include #include diff -Nru cgal-5.4.1/include/CGAL/graph_traits_dual_arrangement_on_surface_with_history_2.h cgal-5.5/include/CGAL/graph_traits_dual_arrangement_on_surface_with_history_2.h --- cgal-5.4.1/include/CGAL/graph_traits_dual_arrangement_on_surface_with_history_2.h 2022-06-03 19:03:46.000000000 +0000 +++ cgal-5.5/include/CGAL/graph_traits_dual_arrangement_on_surface_with_history_2.h 2022-07-13 19:04:31.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/graph_traits_dual_arrangement_on_surface_with_history_2.h $ -// $Id: graph_traits_dual_arrangement_on_surface_with_history_2.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/graph_traits_dual_arrangement_on_surface_with_history_2.h $ +// $Id: graph_traits_dual_arrangement_on_surface_with_history_2.h 6d3176e 2022-01-07T14:42:25+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Ron Wein @@ -26,7 +26,7 @@ */ // include this to avoid a VC15 warning -#include +#include #include #include diff -Nru cgal-5.4.1/include/CGAL/graph_traits_dual_arrangement_with_history_2.h cgal-5.5/include/CGAL/graph_traits_dual_arrangement_with_history_2.h --- cgal-5.4.1/include/CGAL/graph_traits_dual_arrangement_with_history_2.h 2022-06-03 19:03:46.000000000 +0000 +++ cgal-5.5/include/CGAL/graph_traits_dual_arrangement_with_history_2.h 2022-07-13 19:04:31.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/graph_traits_dual_arrangement_with_history_2.h $ -// $Id: graph_traits_dual_arrangement_with_history_2.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/graph_traits_dual_arrangement_with_history_2.h $ +// $Id: graph_traits_dual_arrangement_with_history_2.h 6d3176e 2022-01-07T14:42:25+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Ron Wein @@ -26,7 +26,7 @@ */ // include this to avoid a VC15 warning -#include +#include #include #include diff -Nru cgal-5.4.1/include/CGAL/Gray_image_mesh_domain_3.h cgal-5.5/include/CGAL/Gray_image_mesh_domain_3.h --- cgal-5.4.1/include/CGAL/Gray_image_mesh_domain_3.h 2022-06-03 19:04:46.000000000 +0000 +++ cgal-5.5/include/CGAL/Gray_image_mesh_domain_3.h 2022-07-13 19:05:38.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Gray_image_mesh_domain_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Gray_image_mesh_domain_3.h $ // $Id: Gray_image_mesh_domain_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Gray_level_image_3.h cgal-5.5/include/CGAL/Gray_level_image_3.h --- cgal-5.4.1/include/CGAL/Gray_level_image_3.h 2022-06-03 19:05:59.000000000 +0000 +++ cgal-5.5/include/CGAL/Gray_level_image_3.h 2022-07-13 19:06:56.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesher/include/CGAL/Gray_level_image_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesher/include/CGAL/Gray_level_image_3.h $ // $Id: Gray_level_image_3.h 44df664 2021-10-07T11:38:06+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/grid_simplify_point_set.h cgal-5.5/include/CGAL/grid_simplify_point_set.h --- cgal-5.4.1/include/CGAL/grid_simplify_point_set.h 2022-06-03 19:05:12.000000000 +0000 +++ cgal-5.5/include/CGAL/grid_simplify_point_set.h 2022-07-13 19:06:06.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Point_set_processing_3/include/CGAL/grid_simplify_point_set.h $ -// $Id: grid_simplify_point_set.h 9939011 2020-06-21T15:54:21+02:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Point_set_processing_3/include/CGAL/grid_simplify_point_set.h $ +// $Id: grid_simplify_point_set.h 11c7c56 2022-01-18T09:11:52+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Nader Salman and Laurent Saboret @@ -23,7 +23,7 @@ #include #include -#include +#include #include #include @@ -31,6 +31,7 @@ #include #include #include +#include namespace CGAL { @@ -117,43 +118,68 @@ } }; - -} /* namespace internal */ - +template +using Epsilon_point_set_3_base += typename std::conditional + , + internal::Equal_epsilon_points_3 >, + std::unordered_set, + internal::Equal_epsilon_points_3 > >::type; /// Utility class for grid_simplify_point_set(): -/// 3D points set which allows at most 1 point per cell +/// 3D points set which allows at most 1 (or N) point per cell /// of a grid of cell size = epsilon. /// /// Warning: /// This class is a container sorted wrt points position /// => you should not modify directly the order or the position of points. -template -class Epsilon_point_set_3 - : public std::unordered_set, - internal::Equal_epsilon_points_3 > +template +class Epsilon_point_set_3 : public internal::Epsilon_point_set_3_base + { private: - // superclass - typedef std::unordered_set, - internal::Equal_epsilon_points_3 > Base; + // superclass + using Base = internal::Epsilon_point_set_3_base; + + unsigned int min_points_per_cell; public: - Epsilon_point_set_3 (double epsilon, PointMap point_map) - : Base(10, internal::Hash_epsilon_points_3(epsilon, point_map), - internal::Equal_epsilon_points_3(epsilon, point_map)) - { - CGAL_point_set_processing_precondition(epsilon > 0); - } + Epsilon_point_set_3 (double epsilon, PointMap point_map, unsigned int min_points_per_cell = 1) + : Base(10, internal::Hash_epsilon_points_3(epsilon, point_map), + internal::Equal_epsilon_points_3(epsilon, point_map)) + , min_points_per_cell (min_points_per_cell) + { + CGAL_point_set_processing_precondition(epsilon > 0); + } + + bool insert (const Point_3& p) + { + return insert (p, UseMap()); + } - // default copy constructor, operator =() and destructor are fine. +private: + + bool insert (const Point_3& p, const Tag_true&) + { + auto iter = Base::insert(std::make_pair (p, 0)); + iter.first->second ++; + return iter.first->second == min_points_per_cell; + } + + bool insert (const Point_3& p, const Tag_false&) + { + return Base::insert (p).second; + } }; +} /* namespace internal */ + /// \endcond // ---------------------------------------------------------------------------- @@ -185,17 +211,14 @@ \cgalParamDefault{`CGAL::Identity_property_map`} \cgalParamNEnd - \cgalParamNBegin{callback} - \cgalParamDescription{a mechanism to get feedback on the advancement of the algorithm - while it's running and to interrupt it if needed} - \cgalParamType{an instance of `std::function`.} - \cgalParamDefault{unused} - \cgalParamExtra{It is called regularly when the - algorithm is running: the current advancement (between 0. and - 1.) is passed as parameter. If it returns `true`, then the - algorithm continues its execution normally; if it returns - `false`, the algorithm is stopped and simplification stops with no guarantee on the output. } - \cgalParamExtra{The callback will be copied and therefore needs to be lightweight.} + \cgalParamNBegin{min_points_per_cell} + \cgalParamDescription{minimum number of points in a cell such + that a point in this cell is kept after simplification} + \cgalParamType{unsigned int} + \cgalParamDefault{1} + \cgalParamExtra{If a value greater than 1 is used, the + algorithm also acts as an outlier filtering algorithm, by removing + low-density areas.} \cgalParamNEnd \cgalParamNBegin{geom_traits} @@ -207,60 +230,40 @@ \return iterator over the first point to remove. */ -template +template typename PointRange::iterator grid_simplify_point_set( PointRange& points, double epsilon, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { using parameters::choose_parameter; using parameters::get_parameter; - typedef typename CGAL::GetPointMap::const_type PointMap; - PointMap point_map = choose_parameter(get_parameter(np, internal_np::point_map)); - const std::function& callback = choose_parameter(get_parameter(np, internal_np::callback), - std::function()); + typedef Point_set_processing_3_np_helper NP_helper; + typedef typename NP_helper::Point_map PointMap; + PointMap point_map = NP_helper::get_point_map(points, np); + + unsigned int min_points_per_cell = choose_parameter(get_parameter(np, internal_np::min_points_per_cell), 1); // actual type of input points typedef typename std::iterator_traits::value_type Enriched_point; CGAL_point_set_processing_precondition(epsilon > 0); - // Merges points which belong to the same cell of a grid of cell size = epsilon. - // points_to_keep[] will contain 1 point per cell; the others will be in points_to_remove[]. - Epsilon_point_set_3 points_to_keep(epsilon, point_map); - std::deque points_to_remove; - std::size_t nb = 0, nb_points = points.size(); - for (typename PointRange::iterator it = points.begin(); it != points.end(); it++, ++ nb) + if (min_points_per_cell == 1) { - std::pair::iterator,bool> result; - result = points_to_keep.insert(*it); - if (!result.second) // if not inserted - points_to_remove.push_back(*it); - if (callback && !callback ((nb+1) / double(nb_points))) - break; + // Merges points which belong to the same cell of a grid of cell size = epsilon. + // Keep 1 point per occupied cell + internal::Epsilon_point_set_3 point_set(epsilon, point_map); + return std::partition (points.begin(), points.end(), [&](const auto& p) -> bool { return point_set.insert(p); }); } - - // Replaces `[first, beyond)` range by the content of points_to_keep, then points_to_remove. - typename PointRange::iterator first_point_to_remove = - std::copy(points_to_keep.begin(), points_to_keep.end(), points.begin()); - std::copy(points_to_remove.begin(), points_to_remove.end(), first_point_to_remove); - - return first_point_to_remove; -} - -/// \cond SKIP_IN_MANUAL -// variant with default NP -template -typename PointRange::iterator -grid_simplify_point_set(PointRange& points, double epsilon) -{ - return grid_simplify_point_set - (points, epsilon, CGAL::Point_set_processing_3::parameters::all_default(points)); + // else + // Merges points which belong to the same cell of a grid of cell size = epsilon. + // Keep 1 point per cell occupied by at least `min_points_per_cell` points + internal::Epsilon_point_set_3 point_set(epsilon, point_map, min_points_per_cell); + return std::partition (points.begin(), points.end(), [&](const auto& p) -> bool { return point_set.insert(p); }); } -/// \endcond - } //namespace CGAL diff -Nru cgal-5.4.1/include/CGAL/halfedgeds_connected_components.h cgal-5.5/include/CGAL/halfedgeds_connected_components.h --- cgal-5.4.1/include/CGAL/halfedgeds_connected_components.h 2022-06-03 19:04:17.000000000 +0000 +++ cgal-5.5/include/CGAL/halfedgeds_connected_components.h 2022-07-13 19:05:07.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/HalfedgeDS/include/CGAL/halfedgeds_connected_components.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/HalfedgeDS/include/CGAL/halfedgeds_connected_components.h $ // $Id: halfedgeds_connected_components.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/HalfedgeDS_const_decorator.h cgal-5.5/include/CGAL/HalfedgeDS_const_decorator.h --- cgal-5.4.1/include/CGAL/HalfedgeDS_const_decorator.h 2022-06-03 19:04:17.000000000 +0000 +++ cgal-5.5/include/CGAL/HalfedgeDS_const_decorator.h 2022-07-13 19:05:06.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/HalfedgeDS/include/CGAL/HalfedgeDS_const_decorator.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/HalfedgeDS/include/CGAL/HalfedgeDS_const_decorator.h $ // $Id: HalfedgeDS_const_decorator.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/halfedgeDS_cut_component.h cgal-5.5/include/CGAL/halfedgeDS_cut_component.h --- cgal-5.4.1/include/CGAL/halfedgeDS_cut_component.h 2022-06-03 19:04:17.000000000 +0000 +++ cgal-5.5/include/CGAL/halfedgeDS_cut_component.h 2022-07-13 19:05:06.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/HalfedgeDS/include/CGAL/halfedgeDS_cut_component.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/HalfedgeDS/include/CGAL/halfedgeDS_cut_component.h $ // $Id: halfedgeDS_cut_component.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/HalfedgeDS_decorator.h cgal-5.5/include/CGAL/HalfedgeDS_decorator.h --- cgal-5.4.1/include/CGAL/HalfedgeDS_decorator.h 2022-06-03 19:04:17.000000000 +0000 +++ cgal-5.5/include/CGAL/HalfedgeDS_decorator.h 2022-07-13 19:05:06.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/HalfedgeDS/include/CGAL/HalfedgeDS_decorator.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/HalfedgeDS/include/CGAL/HalfedgeDS_decorator.h $ // $Id: HalfedgeDS_decorator.h 0d66e19 2020-07-24T17:05:10+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/HalfedgeDS_default.h cgal-5.5/include/CGAL/HalfedgeDS_default.h --- cgal-5.4.1/include/CGAL/HalfedgeDS_default.h 2022-06-03 19:04:17.000000000 +0000 +++ cgal-5.5/include/CGAL/HalfedgeDS_default.h 2022-07-13 19:05:06.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/HalfedgeDS/include/CGAL/HalfedgeDS_default.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/HalfedgeDS/include/CGAL/HalfedgeDS_default.h $ // $Id: HalfedgeDS_default.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/HalfedgeDS_face_base.h cgal-5.5/include/CGAL/HalfedgeDS_face_base.h --- cgal-5.4.1/include/CGAL/HalfedgeDS_face_base.h 2022-06-03 19:04:17.000000000 +0000 +++ cgal-5.5/include/CGAL/HalfedgeDS_face_base.h 2022-07-13 19:05:06.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/HalfedgeDS/include/CGAL/HalfedgeDS_face_base.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/HalfedgeDS/include/CGAL/HalfedgeDS_face_base.h $ // $Id: HalfedgeDS_face_base.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/HalfedgeDS_face_max_base_with_id.h cgal-5.5/include/CGAL/HalfedgeDS_face_max_base_with_id.h --- cgal-5.4.1/include/CGAL/HalfedgeDS_face_max_base_with_id.h 2022-06-03 19:04:17.000000000 +0000 +++ cgal-5.5/include/CGAL/HalfedgeDS_face_max_base_with_id.h 2022-07-13 19:05:06.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/HalfedgeDS/include/CGAL/HalfedgeDS_face_max_base_with_id.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/HalfedgeDS/include/CGAL/HalfedgeDS_face_max_base_with_id.h $ // $Id: HalfedgeDS_face_max_base_with_id.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/HalfedgeDS_face_min_base.h cgal-5.5/include/CGAL/HalfedgeDS_face_min_base.h --- cgal-5.4.1/include/CGAL/HalfedgeDS_face_min_base.h 2022-06-03 19:04:17.000000000 +0000 +++ cgal-5.5/include/CGAL/HalfedgeDS_face_min_base.h 2022-07-13 19:05:06.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/HalfedgeDS/include/CGAL/HalfedgeDS_face_min_base.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/HalfedgeDS/include/CGAL/HalfedgeDS_face_min_base.h $ // $Id: HalfedgeDS_face_min_base.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/HalfedgeDS_halfedge_base.h cgal-5.5/include/CGAL/HalfedgeDS_halfedge_base.h --- cgal-5.4.1/include/CGAL/HalfedgeDS_halfedge_base.h 2022-06-03 19:04:17.000000000 +0000 +++ cgal-5.5/include/CGAL/HalfedgeDS_halfedge_base.h 2022-07-13 19:05:06.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/HalfedgeDS/include/CGAL/HalfedgeDS_halfedge_base.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/HalfedgeDS/include/CGAL/HalfedgeDS_halfedge_base.h $ // $Id: HalfedgeDS_halfedge_base.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/HalfedgeDS_halfedge_max_base_with_id.h cgal-5.5/include/CGAL/HalfedgeDS_halfedge_max_base_with_id.h --- cgal-5.4.1/include/CGAL/HalfedgeDS_halfedge_max_base_with_id.h 2022-06-03 19:04:17.000000000 +0000 +++ cgal-5.5/include/CGAL/HalfedgeDS_halfedge_max_base_with_id.h 2022-07-13 19:05:06.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/HalfedgeDS/include/CGAL/HalfedgeDS_halfedge_max_base_with_id.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/HalfedgeDS/include/CGAL/HalfedgeDS_halfedge_max_base_with_id.h $ // $Id: HalfedgeDS_halfedge_max_base_with_id.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/HalfedgeDS_halfedge_min_base.h cgal-5.5/include/CGAL/HalfedgeDS_halfedge_min_base.h --- cgal-5.4.1/include/CGAL/HalfedgeDS_halfedge_min_base.h 2022-06-03 19:04:17.000000000 +0000 +++ cgal-5.5/include/CGAL/HalfedgeDS_halfedge_min_base.h 2022-07-13 19:05:06.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/HalfedgeDS/include/CGAL/HalfedgeDS_halfedge_min_base.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/HalfedgeDS/include/CGAL/HalfedgeDS_halfedge_min_base.h $ // $Id: HalfedgeDS_halfedge_min_base.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/HalfedgeDS_items_2.h cgal-5.5/include/CGAL/HalfedgeDS_items_2.h --- cgal-5.4.1/include/CGAL/HalfedgeDS_items_2.h 2022-06-03 19:04:17.000000000 +0000 +++ cgal-5.5/include/CGAL/HalfedgeDS_items_2.h 2022-07-13 19:05:06.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/HalfedgeDS/include/CGAL/HalfedgeDS_items_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/HalfedgeDS/include/CGAL/HalfedgeDS_items_2.h $ // $Id: HalfedgeDS_items_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/HalfedgeDS_items_decorator.h cgal-5.5/include/CGAL/HalfedgeDS_items_decorator.h --- cgal-5.4.1/include/CGAL/HalfedgeDS_items_decorator.h 2022-06-03 19:04:17.000000000 +0000 +++ cgal-5.5/include/CGAL/HalfedgeDS_items_decorator.h 2022-07-13 19:05:06.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/HalfedgeDS/include/CGAL/HalfedgeDS_items_decorator.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/HalfedgeDS/include/CGAL/HalfedgeDS_items_decorator.h $ // $Id: HalfedgeDS_items_decorator.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/HalfedgeDS_iterator_adaptor.h cgal-5.5/include/CGAL/HalfedgeDS_iterator_adaptor.h --- cgal-5.4.1/include/CGAL/HalfedgeDS_iterator_adaptor.h 2022-06-03 19:04:17.000000000 +0000 +++ cgal-5.5/include/CGAL/HalfedgeDS_iterator_adaptor.h 2022-07-13 19:05:06.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/HalfedgeDS/include/CGAL/HalfedgeDS_iterator_adaptor.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/HalfedgeDS/include/CGAL/HalfedgeDS_iterator_adaptor.h $ // $Id: HalfedgeDS_iterator_adaptor.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/HalfedgeDS_iterator.h cgal-5.5/include/CGAL/HalfedgeDS_iterator.h --- cgal-5.4.1/include/CGAL/HalfedgeDS_iterator.h 2022-06-03 19:04:17.000000000 +0000 +++ cgal-5.5/include/CGAL/HalfedgeDS_iterator.h 2022-07-13 19:05:06.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/HalfedgeDS/include/CGAL/HalfedgeDS_iterator.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/HalfedgeDS/include/CGAL/HalfedgeDS_iterator.h $ // $Id: HalfedgeDS_iterator.h 4e4a93d 2021-03-31T15:48:05+02:00 Simon Giraudot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/HalfedgeDS_list.h cgal-5.5/include/CGAL/HalfedgeDS_list.h --- cgal-5.4.1/include/CGAL/HalfedgeDS_list.h 2022-06-03 19:04:17.000000000 +0000 +++ cgal-5.5/include/CGAL/HalfedgeDS_list.h 2022-07-13 19:05:06.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/HalfedgeDS/include/CGAL/HalfedgeDS_list.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/HalfedgeDS/include/CGAL/HalfedgeDS_list.h $ // $Id: HalfedgeDS_list.h 1373150 2020-11-29T14:42:55+00:00 Giles Bathgate // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/HalfedgeDS_min_items.h cgal-5.5/include/CGAL/HalfedgeDS_min_items.h --- cgal-5.4.1/include/CGAL/HalfedgeDS_min_items.h 2022-06-03 19:04:17.000000000 +0000 +++ cgal-5.5/include/CGAL/HalfedgeDS_min_items.h 2022-07-13 19:05:06.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/HalfedgeDS/include/CGAL/HalfedgeDS_min_items.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/HalfedgeDS/include/CGAL/HalfedgeDS_min_items.h $ // $Id: HalfedgeDS_min_items.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/HalfedgeDS_vector.h cgal-5.5/include/CGAL/HalfedgeDS_vector.h --- cgal-5.4.1/include/CGAL/HalfedgeDS_vector.h 2022-06-03 19:04:17.000000000 +0000 +++ cgal-5.5/include/CGAL/HalfedgeDS_vector.h 2022-07-13 19:05:06.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/HalfedgeDS/include/CGAL/HalfedgeDS_vector.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/HalfedgeDS/include/CGAL/HalfedgeDS_vector.h $ // $Id: HalfedgeDS_vector.h 0d0c5d2 2020-07-15T17:03:18+02:00 Dmitry Anisimov // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/HalfedgeDS_vertex_base.h cgal-5.5/include/CGAL/HalfedgeDS_vertex_base.h --- cgal-5.4.1/include/CGAL/HalfedgeDS_vertex_base.h 2022-06-03 19:04:17.000000000 +0000 +++ cgal-5.5/include/CGAL/HalfedgeDS_vertex_base.h 2022-07-13 19:05:06.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/HalfedgeDS/include/CGAL/HalfedgeDS_vertex_base.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/HalfedgeDS/include/CGAL/HalfedgeDS_vertex_base.h $ // $Id: HalfedgeDS_vertex_base.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/HalfedgeDS_vertex_max_base_with_id.h cgal-5.5/include/CGAL/HalfedgeDS_vertex_max_base_with_id.h --- cgal-5.4.1/include/CGAL/HalfedgeDS_vertex_max_base_with_id.h 2022-06-03 19:04:17.000000000 +0000 +++ cgal-5.5/include/CGAL/HalfedgeDS_vertex_max_base_with_id.h 2022-07-13 19:05:06.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/HalfedgeDS/include/CGAL/HalfedgeDS_vertex_max_base_with_id.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/HalfedgeDS/include/CGAL/HalfedgeDS_vertex_max_base_with_id.h $ // $Id: HalfedgeDS_vertex_max_base_with_id.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/HalfedgeDS_vertex_min_base.h cgal-5.5/include/CGAL/HalfedgeDS_vertex_min_base.h --- cgal-5.4.1/include/CGAL/HalfedgeDS_vertex_min_base.h 2022-06-03 19:04:17.000000000 +0000 +++ cgal-5.5/include/CGAL/HalfedgeDS_vertex_min_base.h 2022-07-13 19:05:06.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/HalfedgeDS/include/CGAL/HalfedgeDS_vertex_min_base.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/HalfedgeDS/include/CGAL/HalfedgeDS_vertex_min_base.h $ // $Id: HalfedgeDS_vertex_min_base.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Handle_for.h cgal-5.5/include/CGAL/Handle_for.h --- cgal-5.4.1/include/CGAL/Handle_for.h 2022-06-03 19:05:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Handle_for.h 2022-07-13 19:06:27.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/Handle_for.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/Handle_for.h $ // $Id: Handle_for.h 8fa0f55 2021-05-27T10:27:38+02:00 Laurent Rineau // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Handle_for_virtual.h cgal-5.5/include/CGAL/Handle_for_virtual.h --- cgal-5.4.1/include/CGAL/Handle_for_virtual.h 2022-06-03 19:05:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Handle_for_virtual.h 2022-07-13 19:06:27.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/Handle_for_virtual.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/Handle_for_virtual.h $ // $Id: Handle_for_virtual.h 2ceedcf 2021-01-08T19:44:01+00:00 Giles Bathgate // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Handle.h cgal-5.5/include/CGAL/Handle.h --- cgal-5.4.1/include/CGAL/Handle.h 2022-06-03 19:05:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Handle.h 2022-07-13 19:06:27.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/Handle.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/Handle.h $ // $Id: Handle.h 8fa0f55 2021-05-27T10:27:38+02:00 Laurent Rineau // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Handle_hash_function.h cgal-5.5/include/CGAL/Handle_hash_function.h --- cgal-5.4.1/include/CGAL/Handle_hash_function.h 2022-06-03 19:04:17.000000000 +0000 +++ cgal-5.5/include/CGAL/Handle_hash_function.h 2022-07-13 19:05:07.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Hash_map/include/CGAL/Handle_hash_function.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Hash_map/include/CGAL/Handle_hash_function.h $ // $Id: Handle_hash_function.h cec93d0 2021-05-27T14:36:55+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Handle_with_policy.h cgal-5.5/include/CGAL/Handle_with_policy.h --- cgal-5.4.1/include/CGAL/Handle_with_policy.h 2022-06-03 19:05:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Handle_with_policy.h 2022-07-13 19:06:27.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/Handle_with_policy.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/Handle_with_policy.h $ // $Id: Handle_with_policy.h 521c72d 2021-10-04T13:22:00+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Has_conversion.h cgal-5.5/include/CGAL/Has_conversion.h --- cgal-5.4.1/include/CGAL/Has_conversion.h 2022-06-03 19:04:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Has_conversion.h 2022-07-13 19:05:23.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Has_conversion.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Has_conversion.h $ // $Id: Has_conversion.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Hash_map/internal/chained_map.h cgal-5.5/include/CGAL/Hash_map/internal/chained_map.h --- cgal-5.4.1/include/CGAL/Hash_map/internal/chained_map.h 1970-01-01 00:00:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Hash_map/internal/chained_map.h 2022-07-13 19:05:07.000000000 +0000 @@ -0,0 +1,317 @@ +// Copyright (c) 1997-2000 +// Utrecht University (The Netherlands), +// ETH Zurich (Switzerland), +// INRIA Sophia-Antipolis (France), +// Max-Planck-Institute Saarbruecken (Germany), +// and Tel-Aviv University (Israel). All rights reserved. +// +// This file is part of CGAL (www.cgal.org) +// +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Hash_map/include/CGAL/Hash_map/internal/chained_map.h $ +// $Id: chained_map.h 4334028 2022-05-03T18:10:39+02:00 Sébastien Loriot +// SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial +// +// +// Author(s) : Courtesy of LEDA +#ifndef CGAL_HASH_MAP_INTERNAL_CHAINED_MAP_H +#define CGAL_HASH_MAP_INTERNAL_CHAINED_MAP_H + +#include +#include +#include + +namespace CGAL { + +namespace internal { + +template class chained_map; +template class chained_map_elem; + +template +class chained_map_elem +{ + template friend class chained_map; + std::size_t k; T i; + chained_map_elem* succ; +}; + +template +class chained_map +{ + static constexpr std::size_t nullkey = (std::numeric_limits::max)(); + + chained_map_elem* table; + chained_map_elem* table_end; + chained_map_elem* free; + std::size_t table_size; + std::size_t table_size_1; + + typedef std::allocator_traits Allocator_traits; + typedef typename Allocator_traits::template rebind_alloc > allocator_type; + + allocator_type alloc; + std::size_t reserved_size; + T def; + +public: + T& xdef() { return def; } + const T& cxdef() const { return def; } +private: + void init_inf(T& x) const { x = def; } + + + chained_map_elem* HASH(std::size_t x) const + { return table + (x & table_size_1); } + + void init_table(std::size_t n); + void rehash(); + + inline void insert(std::size_t x, T y); + + void destroy(chained_map_elem* item) + { + typedef std::allocator_traits Allocator_type_traits; + Allocator_type_traits::destroy(alloc,item); + } + +public: + static constexpr std::size_t min_size = 32; + static constexpr std::size_t default_size = 512; + typedef chained_map_elem* Item; + + std::size_t index(Item it) const { return it->k; } + T& inf(Item it) const { return it->i; } + + chained_map(std::size_t n = default_size, const T& d = T()); + chained_map(const chained_map& D); + chained_map& operator=(const chained_map& D); + + void reserve(std::size_t n); + void clear(); + ~chained_map() + { + if(!table) + return; + for (Item item = table ; item != table_end ; ++item) + destroy(item); + alloc.deallocate(table, table_end - table); + } + + T& access(Item p, std::size_t x); + T& access(std::size_t x); + Item lookup(std::size_t x) const; + void statistics() const; +}; + +template +inline T& chained_map::access(std::size_t x) +{ + if(!table) + init_table(reserved_size); + + Item p = HASH(x); + + if ( p->k == x ) { + return p->i; + } + else { + if ( p->k == nullkey ) { + p->k = x; + init_inf(p->i); // initializes p->i to xdef + return p->i; + } else + return access(p,x); + } +} + +template +void chained_map::init_table(std::size_t n) +{ + std::size_t t = min_size; + while (t < n) t <<= 1; + + table_size = t; + table_size_1 = t-1; + table = alloc.allocate(t + t/2); + for (std::size_t i = 0 ; i < t + t/2 ; ++i){ + std::allocator_traits::construct(alloc,table + i); + } + + free = table + t; + table_end = table + t + t/2; + + for (Item p = table; p < free; ++p) + { p->succ = nullptr; + p->k = nullkey; + } +} + + +template +inline void chained_map::insert(std::size_t x, T y) +{ Item q = HASH(x); + if ( q->k == nullkey ) { + q->k = x; + q->i = y; + } else { + free->k = x; + free->i = y; + free->succ = q->succ; + q->succ = free++; + } +} + + +template +void chained_map::rehash() +{ + chained_map_elem* old_table = table; + chained_map_elem* old_table_end = table_end; + + Item old_table_mid = table + table_size; + + init_table(2*table_size); + + Item p; + + for(p = old_table; p < old_table_mid; ++p) + { std::size_t x = p->k; + if ( x != nullkey ) // list p is non-empty + { Item q = HASH(x); + q->k = x; + q->i = p->i; + } + } + + while (p < old_table_end) + { std::size_t x = p->k; + insert(x,p->i); + ++p; + } + + for (Item item = old_table ; item != old_table_end ; ++item) + destroy(item); + alloc.deallocate(old_table, old_table_end - old_table); +} + + +template +T& chained_map::access(Item p, std::size_t x) +{ + Item q = p->succ; + while (q && q->k != x) q = q->succ; + if (q) + { + return q->i; + } + + // index x not present, insert it + + if (free == table_end) // table full: rehash + { rehash(); + p = HASH(x); + } + + if (p->k == nullkey) + { p->k = x; + init_inf(p->i); // initializes p->i to xdef + return p->i; + } + + q = free++; + q->k = x; + init_inf(q->i); // initializes q->i to xdef + q->succ = p->succ; + p->succ = q; + return q->i; +} + + +template +chained_map::chained_map(std::size_t n, const T& d) + : table(nullptr), reserved_size(n), def(d) +{ +} + + +template +chained_map::chained_map(const chained_map& D) +{ + init_table(D.table_size); + + for(Item p = D.table; p < D.free; ++p) + { if (p->k != nullkey || p >= D.table + D.table_size) + { insert(p->k,p->i); + //D.copy_inf(p->i); // see chapter Implementation + } + } +} + +template +chained_map& chained_map::operator=(const chained_map& D) +{ + clear(); + + init_table(D.table_size); + + for(Item p = D.table; p < D.free; ++p) + { if (p->k != nullkey || p >= D.table + D.table_size) + { insert(p->k,p->i); + //copy_inf(p->i); // see chapter Implementation + } + } + return *this; +} + +template +void chained_map::reserve(std::size_t n) +{ + CGAL_assertion(!table); + reserved_size = n; +} + +template +void chained_map::clear() +{ + if(!table) + return; + + for (Item item = table ; item != table_end ; ++item) + destroy(item); + alloc.deallocate(table, table_end - table); + + table = nullptr; +} + +template +typename chained_map::Item +chained_map::lookup(std::size_t x) const +{ + if(!table) + return nullptr; + + Item p = HASH(x); + while (p && p->k != x) + { p = p->succ; } + return p; +} + +template +void chained_map::statistics() const +{ std::cout << "table_size: " << table_size <<"\n"; + std::size_t n = 0; + for (Item p = table; p < table + table_size; ++p) + if (p ->k != nullkey) ++n; + std::size_t used_in_overflow = free - (table + table_size ); + n += used_in_overflow; + std::cout << "number of entries: " << n << "\n"; + std::cout << "fraction of entries in first position: " << + ((double) (n - used_in_overflow))/n <<"\n"; + std::cout << "fraction of empty lists: " << + ((double) (n - used_in_overflow))/table_size<<"\n"; +} + +} // namespace internal +} //namespace CGAL + +#endif // CGAL_HASH_MAP_INTERNAL_CHAINED_MAP_H diff -Nru cgal-5.4.1/include/CGAL/hash_openmesh.h cgal-5.5/include/CGAL/hash_openmesh.h --- cgal-5.4.1/include/CGAL/hash_openmesh.h 2022-06-03 19:05:33.000000000 +0000 +++ cgal-5.5/include/CGAL/hash_openmesh.h 2022-07-13 19:06:29.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/hash_openmesh.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/hash_openmesh.h $ // $Id: hash_openmesh.h b2ed4e5 2021-03-10T11:33:30+01:00 Laurent Rineau // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Has_member.h cgal-5.5/include/CGAL/Has_member.h --- cgal-5.4.1/include/CGAL/Has_member.h 2022-06-03 19:05:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Has_member.h 2022-07-13 19:06:27.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/Has_member.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/Has_member.h $ // $Id: Has_member.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Has_timestamp.h cgal-5.5/include/CGAL/Has_timestamp.h --- cgal-5.4.1/include/CGAL/Has_timestamp.h 2022-06-03 19:05:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Has_timestamp.h 2022-07-13 19:06:27.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/Has_timestamp.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/Has_timestamp.h $ // $Id: Has_timestamp.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Heat_method_3/internal/Intrinsic_Delaunay_triangulation_3.h cgal-5.5/include/CGAL/Heat_method_3/internal/Intrinsic_Delaunay_triangulation_3.h --- cgal-5.4.1/include/CGAL/Heat_method_3/internal/Intrinsic_Delaunay_triangulation_3.h 2022-06-03 19:04:17.000000000 +0000 +++ cgal-5.5/include/CGAL/Heat_method_3/internal/Intrinsic_Delaunay_triangulation_3.h 2022-07-13 19:05:07.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Heat_method_3/include/CGAL/Heat_method_3/internal/Intrinsic_Delaunay_triangulation_3.h $ -// $Id: Intrinsic_Delaunay_triangulation_3.h f60d0c2 2021-12-14T18:07:55+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Heat_method_3/include/CGAL/Heat_method_3/internal/Intrinsic_Delaunay_triangulation_3.h $ +// $Id: Intrinsic_Delaunay_triangulation_3.h 58d759b 2022-02-04T09:44:36+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -32,11 +32,12 @@ #include -#include +#include #include #include #include +#include #ifndef DOXYGEN_RUNNING @@ -485,7 +486,7 @@ std::vector mark_edges; public: - boost::unordered_map v2v, vtov; + std::unordered_map v2v, vtov; }; } // namespace Heat_method_3 diff -Nru cgal-5.4.1/include/CGAL/Heat_method_3/internal/V2V.h cgal-5.5/include/CGAL/Heat_method_3/internal/V2V.h --- cgal-5.4.1/include/CGAL/Heat_method_3/internal/V2V.h 2022-06-03 19:04:17.000000000 +0000 +++ cgal-5.5/include/CGAL/Heat_method_3/internal/V2V.h 2022-07-13 19:05:07.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Heat_method_3/include/CGAL/Heat_method_3/internal/V2V.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Heat_method_3/include/CGAL/Heat_method_3/internal/V2V.h $ // $Id: V2V.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Heat_method_3/Surface_mesh_geodesic_distances_3.h cgal-5.5/include/CGAL/Heat_method_3/Surface_mesh_geodesic_distances_3.h --- cgal-5.4.1/include/CGAL/Heat_method_3/Surface_mesh_geodesic_distances_3.h 2022-06-03 19:04:17.000000000 +0000 +++ cgal-5.5/include/CGAL/Heat_method_3/Surface_mesh_geodesic_distances_3.h 2022-07-13 19:05:07.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Heat_method_3/include/CGAL/Heat_method_3/Surface_mesh_geodesic_distances_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Heat_method_3/include/CGAL/Heat_method_3/Surface_mesh_geodesic_distances_3.h $ // $Id: Surface_mesh_geodesic_distances_3.h 2a8a173 2021-12-20T18:06:19+01:00 Laurent Rineau // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Hidden_point_memory_policy.h cgal-5.5/include/CGAL/Hidden_point_memory_policy.h --- cgal-5.4.1/include/CGAL/Hidden_point_memory_policy.h 2022-06-03 19:05:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Hidden_point_memory_policy.h 2022-07-13 19:06:27.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/Hidden_point_memory_policy.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/Hidden_point_memory_policy.h $ // $Id: Hidden_point_memory_policy.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/hierarchy_simplify_point_set.h cgal-5.5/include/CGAL/hierarchy_simplify_point_set.h --- cgal-5.4.1/include/CGAL/hierarchy_simplify_point_set.h 2022-06-03 19:05:12.000000000 +0000 +++ cgal-5.5/include/CGAL/hierarchy_simplify_point_set.h 2022-07-13 19:06:06.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Point_set_processing_3/include/CGAL/hierarchy_simplify_point_set.h $ -// $Id: hierarchy_simplify_point_set.h 1f45360 2021-01-26T09:05:24+01:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Point_set_processing_3/include/CGAL/hierarchy_simplify_point_set.h $ +// $Id: hierarchy_simplify_point_set.h 11c7c56 2022-01-18T09:11:52+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Simon Giraudot, Pierre Alliez @@ -32,7 +32,7 @@ #include #include -#include +#include #include namespace CGAL { @@ -116,7 +116,7 @@ and returns an iterator over the first point to remove (see erase-remove idiom). For this reason it should not be called on sorted containers. - \pre `0 < maximum_variation < 1/3` + \pre `0 < maximum_variation <= 1/3` \pre `size > 0` \tparam PointRange is a model of `Range`. The value type of @@ -176,24 +176,25 @@ \return iterator over the first point to remove. */ template + typename NamedParameters = parameters::Default_named_parameters> typename PointRange::iterator hierarchy_simplify_point_set (PointRange& points, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { using parameters::choose_parameter; using parameters::get_parameter; // basic geometric types - typedef typename CGAL::GetPointMap::type PointMap; - typedef typename Point_set_processing_3::GetK::Kernel Kernel; + typedef Point_set_processing_3_np_helper NP_helper; + typedef typename NP_helper::Point_map PointMap; + typedef typename NP_helper::Geom_traits Kernel; typedef typename GetDiagonalizeTraits::type DiagonalizeTraits; typedef typename Kernel::Point_3 Point; typedef typename Kernel::Vector_3 Vector; typedef typename Kernel::FT FT; - PointMap point_map = choose_parameter(get_parameter(np, internal_np::point_map)); + PointMap point_map = NP_helper::get_point_map(points, np); unsigned int size = choose_parameter(get_parameter(np, internal_np::size), 10); double var_max = choose_parameter(get_parameter(np, internal_np::maximum_variation), 1./3.); const std::function& callback = choose_parameter(get_parameter(np, internal_np::callback), @@ -372,18 +373,6 @@ } - - /// \cond SKIP_IN_MANUAL - // variant with default NP - template - typename PointRange::iterator - hierarchy_simplify_point_set (PointRange& points) - { - return hierarchy_simplify_point_set - (points, CGAL::Point_set_processing_3::parameters::all_default(points)); - } - /// \endcond - } // namespace CGAL #include diff -Nru cgal-5.4.1/include/CGAL/Hilbert_policy_tags.h cgal-5.5/include/CGAL/Hilbert_policy_tags.h --- cgal-5.4.1/include/CGAL/Hilbert_policy_tags.h 2022-06-03 19:05:48.000000000 +0000 +++ cgal-5.5/include/CGAL/Hilbert_policy_tags.h 2022-07-13 19:06:45.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Spatial_sorting/include/CGAL/Hilbert_policy_tags.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Spatial_sorting/include/CGAL/Hilbert_policy_tags.h $ // $Id: Hilbert_policy_tags.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Hilbert_sort_2.h cgal-5.5/include/CGAL/Hilbert_sort_2.h --- cgal-5.4.1/include/CGAL/Hilbert_sort_2.h 2022-06-03 19:05:48.000000000 +0000 +++ cgal-5.5/include/CGAL/Hilbert_sort_2.h 2022-07-13 19:06:45.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Spatial_sorting/include/CGAL/Hilbert_sort_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Spatial_sorting/include/CGAL/Hilbert_sort_2.h $ // $Id: Hilbert_sort_2.h 5c41b10 2020-01-02T10:26:44+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Hilbert_sort_3.h cgal-5.5/include/CGAL/Hilbert_sort_3.h --- cgal-5.4.1/include/CGAL/Hilbert_sort_3.h 2022-06-03 19:05:48.000000000 +0000 +++ cgal-5.5/include/CGAL/Hilbert_sort_3.h 2022-07-13 19:06:45.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Spatial_sorting/include/CGAL/Hilbert_sort_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Spatial_sorting/include/CGAL/Hilbert_sort_3.h $ // $Id: Hilbert_sort_3.h 5c41b10 2020-01-02T10:26:44+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Hilbert_sort_base.h cgal-5.5/include/CGAL/Hilbert_sort_base.h --- cgal-5.4.1/include/CGAL/Hilbert_sort_base.h 2022-06-03 19:05:48.000000000 +0000 +++ cgal-5.5/include/CGAL/Hilbert_sort_base.h 2022-07-13 19:06:45.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Spatial_sorting/include/CGAL/Hilbert_sort_base.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Spatial_sorting/include/CGAL/Hilbert_sort_base.h $ // $Id: Hilbert_sort_base.h 5c41b10 2020-01-02T10:26:44+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Hilbert_sort_d.h cgal-5.5/include/CGAL/Hilbert_sort_d.h --- cgal-5.4.1/include/CGAL/Hilbert_sort_d.h 2022-06-03 19:05:48.000000000 +0000 +++ cgal-5.5/include/CGAL/Hilbert_sort_d.h 2022-07-13 19:06:45.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Spatial_sorting/include/CGAL/Hilbert_sort_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Spatial_sorting/include/CGAL/Hilbert_sort_d.h $ // $Id: Hilbert_sort_d.h 8bb22d5 2020-03-26T14:23:37+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/hilbert_sort.h cgal-5.5/include/CGAL/hilbert_sort.h --- cgal-5.4.1/include/CGAL/hilbert_sort.h 2022-06-03 19:05:48.000000000 +0000 +++ cgal-5.5/include/CGAL/hilbert_sort.h 2022-07-13 19:06:45.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Spatial_sorting/include/CGAL/hilbert_sort.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Spatial_sorting/include/CGAL/hilbert_sort.h $ // $Id: hilbert_sort.h f5d2fb2 2021-09-01T16:41:36+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Hilbert_sort_median_2.h cgal-5.5/include/CGAL/Hilbert_sort_median_2.h --- cgal-5.4.1/include/CGAL/Hilbert_sort_median_2.h 2022-06-03 19:05:48.000000000 +0000 +++ cgal-5.5/include/CGAL/Hilbert_sort_median_2.h 2022-07-13 19:06:45.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Spatial_sorting/include/CGAL/Hilbert_sort_median_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Spatial_sorting/include/CGAL/Hilbert_sort_median_2.h $ // $Id: Hilbert_sort_median_2.h f60dfa8 2022-04-04T10:00:16+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Hilbert_sort_median_3.h cgal-5.5/include/CGAL/Hilbert_sort_median_3.h --- cgal-5.4.1/include/CGAL/Hilbert_sort_median_3.h 2022-06-03 19:05:48.000000000 +0000 +++ cgal-5.5/include/CGAL/Hilbert_sort_median_3.h 2022-07-13 19:06:45.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Spatial_sorting/include/CGAL/Hilbert_sort_median_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Spatial_sorting/include/CGAL/Hilbert_sort_median_3.h $ // $Id: Hilbert_sort_median_3.h f60dfa8 2022-04-04T10:00:16+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Hilbert_sort_median_d.h cgal-5.5/include/CGAL/Hilbert_sort_median_d.h --- cgal-5.4.1/include/CGAL/Hilbert_sort_median_d.h 2022-06-03 19:05:48.000000000 +0000 +++ cgal-5.5/include/CGAL/Hilbert_sort_median_d.h 2022-07-13 19:06:45.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Spatial_sorting/include/CGAL/Hilbert_sort_median_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Spatial_sorting/include/CGAL/Hilbert_sort_median_d.h $ // $Id: Hilbert_sort_median_d.h f60dfa8 2022-04-04T10:00:16+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Hilbert_sort_middle_2.h cgal-5.5/include/CGAL/Hilbert_sort_middle_2.h --- cgal-5.4.1/include/CGAL/Hilbert_sort_middle_2.h 2022-06-03 19:05:48.000000000 +0000 +++ cgal-5.5/include/CGAL/Hilbert_sort_middle_2.h 2022-07-13 19:06:45.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Spatial_sorting/include/CGAL/Hilbert_sort_middle_2.h $ -// $Id: Hilbert_sort_middle_2.h 9cd8ca6 2022-04-12T16:34:33+02:00 Laurent Rineau +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Spatial_sorting/include/CGAL/Hilbert_sort_middle_2.h $ +// $Id: Hilbert_sort_middle_2.h 9144020 2022-04-12T16:35:01+02:00 Laurent Rineau // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Olivier Devillers diff -Nru cgal-5.4.1/include/CGAL/Hilbert_sort_middle_3.h cgal-5.5/include/CGAL/Hilbert_sort_middle_3.h --- cgal-5.4.1/include/CGAL/Hilbert_sort_middle_3.h 2022-06-03 19:05:48.000000000 +0000 +++ cgal-5.5/include/CGAL/Hilbert_sort_middle_3.h 2022-07-13 19:06:45.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Spatial_sorting/include/CGAL/Hilbert_sort_middle_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Spatial_sorting/include/CGAL/Hilbert_sort_middle_3.h $ // $Id: Hilbert_sort_middle_3.h f60dfa8 2022-04-04T10:00:16+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Hilbert_sort_middle_base.h cgal-5.5/include/CGAL/Hilbert_sort_middle_base.h --- cgal-5.4.1/include/CGAL/Hilbert_sort_middle_base.h 2022-06-03 19:05:48.000000000 +0000 +++ cgal-5.5/include/CGAL/Hilbert_sort_middle_base.h 2022-07-13 19:06:45.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Spatial_sorting/include/CGAL/Hilbert_sort_middle_base.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Spatial_sorting/include/CGAL/Hilbert_sort_middle_base.h $ // $Id: Hilbert_sort_middle_base.h 5c41b10 2020-01-02T10:26:44+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Hilbert_sort_middle_d.h cgal-5.5/include/CGAL/Hilbert_sort_middle_d.h --- cgal-5.4.1/include/CGAL/Hilbert_sort_middle_d.h 2022-06-03 19:05:48.000000000 +0000 +++ cgal-5.5/include/CGAL/Hilbert_sort_middle_d.h 2022-07-13 19:06:45.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Spatial_sorting/include/CGAL/Hilbert_sort_middle_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Spatial_sorting/include/CGAL/Hilbert_sort_middle_d.h $ // $Id: Hilbert_sort_middle_d.h f60dfa8 2022-04-04T10:00:16+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Hilbert_sort_on_sphere_3.h cgal-5.5/include/CGAL/Hilbert_sort_on_sphere_3.h --- cgal-5.4.1/include/CGAL/Hilbert_sort_on_sphere_3.h 2022-06-03 19:05:48.000000000 +0000 +++ cgal-5.5/include/CGAL/Hilbert_sort_on_sphere_3.h 2022-07-13 19:06:45.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Spatial_sorting/include/CGAL/Hilbert_sort_on_sphere_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Spatial_sorting/include/CGAL/Hilbert_sort_on_sphere_3.h $ // $Id: Hilbert_sort_on_sphere_3.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/hilbert_sort_on_sphere.h cgal-5.5/include/CGAL/hilbert_sort_on_sphere.h --- cgal-5.4.1/include/CGAL/hilbert_sort_on_sphere.h 2022-06-03 19:05:49.000000000 +0000 +++ cgal-5.5/include/CGAL/hilbert_sort_on_sphere.h 2022-07-13 19:06:45.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Spatial_sorting/include/CGAL/hilbert_sort_on_sphere.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Spatial_sorting/include/CGAL/hilbert_sort_on_sphere.h $ // $Id: hilbert_sort_on_sphere.h 5c41b10 2020-01-02T10:26:44+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Homogeneous/Aff_transformationH2.h cgal-5.5/include/CGAL/Homogeneous/Aff_transformationH2.h --- cgal-5.4.1/include/CGAL/Homogeneous/Aff_transformationH2.h 2022-06-03 19:04:17.000000000 +0000 +++ cgal-5.5/include/CGAL/Homogeneous/Aff_transformationH2.h 2022-07-13 19:05:07.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Homogeneous_kernel/include/CGAL/Homogeneous/Aff_transformationH2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Homogeneous_kernel/include/CGAL/Homogeneous/Aff_transformationH2.h $ // $Id: Aff_transformationH2.h d370326 2021-10-27T14:45:10+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Homogeneous/Aff_transformationH3.h cgal-5.5/include/CGAL/Homogeneous/Aff_transformationH3.h --- cgal-5.4.1/include/CGAL/Homogeneous/Aff_transformationH3.h 2022-06-03 19:04:17.000000000 +0000 +++ cgal-5.5/include/CGAL/Homogeneous/Aff_transformationH3.h 2022-07-13 19:05:07.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Homogeneous_kernel/include/CGAL/Homogeneous/Aff_transformationH3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Homogeneous_kernel/include/CGAL/Homogeneous/Aff_transformationH3.h $ // $Id: Aff_transformationH3.h d370326 2021-10-27T14:45:10+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Homogeneous/basic_constructionsH2.h cgal-5.5/include/CGAL/Homogeneous/basic_constructionsH2.h --- cgal-5.4.1/include/CGAL/Homogeneous/basic_constructionsH2.h 2022-06-03 19:04:18.000000000 +0000 +++ cgal-5.5/include/CGAL/Homogeneous/basic_constructionsH2.h 2022-07-13 19:05:07.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Homogeneous_kernel/include/CGAL/Homogeneous/basic_constructionsH2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Homogeneous_kernel/include/CGAL/Homogeneous/basic_constructionsH2.h $ // $Id: basic_constructionsH2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Homogeneous/basic_constructionsH3.h cgal-5.5/include/CGAL/Homogeneous/basic_constructionsH3.h --- cgal-5.4.1/include/CGAL/Homogeneous/basic_constructionsH3.h 2022-06-03 19:04:18.000000000 +0000 +++ cgal-5.5/include/CGAL/Homogeneous/basic_constructionsH3.h 2022-07-13 19:05:07.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Homogeneous_kernel/include/CGAL/Homogeneous/basic_constructionsH3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Homogeneous_kernel/include/CGAL/Homogeneous/basic_constructionsH3.h $ // $Id: basic_constructionsH3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Homogeneous/CircleH2.h cgal-5.5/include/CGAL/Homogeneous/CircleH2.h --- cgal-5.4.1/include/CGAL/Homogeneous/CircleH2.h 2022-06-03 19:04:18.000000000 +0000 +++ cgal-5.5/include/CGAL/Homogeneous/CircleH2.h 2022-07-13 19:05:07.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Homogeneous_kernel/include/CGAL/Homogeneous/CircleH2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Homogeneous_kernel/include/CGAL/Homogeneous/CircleH2.h $ // $Id: CircleH2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Homogeneous/ConicHPA2.h cgal-5.5/include/CGAL/Homogeneous/ConicHPA2.h --- cgal-5.4.1/include/CGAL/Homogeneous/ConicHPA2.h 2022-06-03 19:04:18.000000000 +0000 +++ cgal-5.5/include/CGAL/Homogeneous/ConicHPA2.h 2022-07-13 19:05:07.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Homogeneous_kernel/include/CGAL/Homogeneous/ConicHPA2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Homogeneous_kernel/include/CGAL/Homogeneous/ConicHPA2.h $ // $Id: ConicHPA2.h 29b2957 2020-04-06T21:46:00+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Homogeneous/Data_accessorH2.h cgal-5.5/include/CGAL/Homogeneous/Data_accessorH2.h --- cgal-5.4.1/include/CGAL/Homogeneous/Data_accessorH2.h 2022-06-03 19:04:18.000000000 +0000 +++ cgal-5.5/include/CGAL/Homogeneous/Data_accessorH2.h 2022-07-13 19:05:07.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Homogeneous_kernel/include/CGAL/Homogeneous/Data_accessorH2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Homogeneous_kernel/include/CGAL/Homogeneous/Data_accessorH2.h $ // $Id: Data_accessorH2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Homogeneous/DirectionH2.h cgal-5.5/include/CGAL/Homogeneous/DirectionH2.h --- cgal-5.4.1/include/CGAL/Homogeneous/DirectionH2.h 2022-06-03 19:04:18.000000000 +0000 +++ cgal-5.5/include/CGAL/Homogeneous/DirectionH2.h 2022-07-13 19:05:07.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Homogeneous_kernel/include/CGAL/Homogeneous/DirectionH2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Homogeneous_kernel/include/CGAL/Homogeneous/DirectionH2.h $ // $Id: DirectionH2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Homogeneous/DirectionH3.h cgal-5.5/include/CGAL/Homogeneous/DirectionH3.h --- cgal-5.4.1/include/CGAL/Homogeneous/DirectionH3.h 2022-06-03 19:04:18.000000000 +0000 +++ cgal-5.5/include/CGAL/Homogeneous/DirectionH3.h 2022-07-13 19:05:07.000000000 +0000 @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Homogeneous_kernel/include/CGAL/Homogeneous/DirectionH3.h $ -// $Id: DirectionH3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Homogeneous_kernel/include/CGAL/Homogeneous/DirectionH3.h $ +// $Id: DirectionH3.h d39c774 2022-03-17T12:14:43+01:00 Andreas Fabri // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // @@ -49,16 +49,16 @@ //: base(p) {} DirectionH3(const Vector_3 & v ) - { *this = v.direction(); } + { *this = v.rep().direction(); } DirectionH3(const Line_3 & l ) { *this = l.rep().direction(); } DirectionH3(const Ray_3 & r ) - { *this = r.direction(); } + { *this = r.rep().direction(); } DirectionH3(const Segment_3 & s ) - { *this = s.direction(); } + { *this = s.rep().direction(); } // the fourth argument is not documented. Should go away ? DirectionH3(const RT& x, const RT& y, diff -Nru cgal-5.4.1/include/CGAL/Homogeneous/distance_predicatesH2.h cgal-5.5/include/CGAL/Homogeneous/distance_predicatesH2.h --- cgal-5.4.1/include/CGAL/Homogeneous/distance_predicatesH2.h 2022-06-03 19:04:18.000000000 +0000 +++ cgal-5.5/include/CGAL/Homogeneous/distance_predicatesH2.h 2022-07-13 19:05:07.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Homogeneous_kernel/include/CGAL/Homogeneous/distance_predicatesH2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Homogeneous_kernel/include/CGAL/Homogeneous/distance_predicatesH2.h $ // $Id: distance_predicatesH2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Homogeneous/distance_predicatesH3.h cgal-5.5/include/CGAL/Homogeneous/distance_predicatesH3.h --- cgal-5.4.1/include/CGAL/Homogeneous/distance_predicatesH3.h 2022-06-03 19:04:18.000000000 +0000 +++ cgal-5.5/include/CGAL/Homogeneous/distance_predicatesH3.h 2022-07-13 19:05:07.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Homogeneous_kernel/include/CGAL/Homogeneous/distance_predicatesH3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Homogeneous_kernel/include/CGAL/Homogeneous/distance_predicatesH3.h $ // $Id: distance_predicatesH3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Homogeneous/function_objects.h cgal-5.5/include/CGAL/Homogeneous/function_objects.h --- cgal-5.4.1/include/CGAL/Homogeneous/function_objects.h 2022-06-03 19:04:18.000000000 +0000 +++ cgal-5.5/include/CGAL/Homogeneous/function_objects.h 2022-07-13 19:05:07.000000000 +0000 @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Homogeneous_kernel/include/CGAL/Homogeneous/function_objects.h $ -// $Id: function_objects.h 1fb32e7 2021-10-27T17:20:28+02:00 Laurent Rineau +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Homogeneous_kernel/include/CGAL/Homogeneous/function_objects.h $ +// $Id: function_objects.h d39c774 2022-03-17T12:14:43+01:00 Andreas Fabri // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // @@ -4090,7 +4090,7 @@ result_type operator()( const Segment_3& s, const Point_3& p) const - { return s.has_on(p); } + { return s.rep().has_on(p); } result_type operator()( const Plane_3& pl, const Point_3& p) const diff -Nru cgal-5.4.1/include/CGAL/Homogeneous/Homogeneous_base.h cgal-5.5/include/CGAL/Homogeneous/Homogeneous_base.h --- cgal-5.4.1/include/CGAL/Homogeneous/Homogeneous_base.h 2022-06-03 19:04:18.000000000 +0000 +++ cgal-5.5/include/CGAL/Homogeneous/Homogeneous_base.h 2022-07-13 19:05:07.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Homogeneous_kernel/include/CGAL/Homogeneous/Homogeneous_base.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Homogeneous_kernel/include/CGAL/Homogeneous/Homogeneous_base.h $ // $Id: Homogeneous_base.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Homogeneous/Iso_cuboidH3.h cgal-5.5/include/CGAL/Homogeneous/Iso_cuboidH3.h --- cgal-5.4.1/include/CGAL/Homogeneous/Iso_cuboidH3.h 2022-06-03 19:04:18.000000000 +0000 +++ cgal-5.5/include/CGAL/Homogeneous/Iso_cuboidH3.h 2022-07-13 19:05:07.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Homogeneous_kernel/include/CGAL/Homogeneous/Iso_cuboidH3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Homogeneous_kernel/include/CGAL/Homogeneous/Iso_cuboidH3.h $ // $Id: Iso_cuboidH3.h 22f5d89 2021-06-25T20:15:56+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Homogeneous/Iso_rectangleH2.h cgal-5.5/include/CGAL/Homogeneous/Iso_rectangleH2.h --- cgal-5.4.1/include/CGAL/Homogeneous/Iso_rectangleH2.h 2022-06-03 19:04:18.000000000 +0000 +++ cgal-5.5/include/CGAL/Homogeneous/Iso_rectangleH2.h 2022-07-13 19:05:07.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Homogeneous_kernel/include/CGAL/Homogeneous/Iso_rectangleH2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Homogeneous_kernel/include/CGAL/Homogeneous/Iso_rectangleH2.h $ // $Id: Iso_rectangleH2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Homogeneous/LineH2.h cgal-5.5/include/CGAL/Homogeneous/LineH2.h --- cgal-5.4.1/include/CGAL/Homogeneous/LineH2.h 2022-06-03 19:04:18.000000000 +0000 +++ cgal-5.5/include/CGAL/Homogeneous/LineH2.h 2022-07-13 19:05:07.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Homogeneous_kernel/include/CGAL/Homogeneous/LineH2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Homogeneous_kernel/include/CGAL/Homogeneous/LineH2.h $ // $Id: LineH2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Homogeneous/PlaneH3.h cgal-5.5/include/CGAL/Homogeneous/PlaneH3.h --- cgal-5.4.1/include/CGAL/Homogeneous/PlaneH3.h 2022-06-03 19:04:18.000000000 +0000 +++ cgal-5.5/include/CGAL/Homogeneous/PlaneH3.h 2022-07-13 19:05:07.000000000 +0000 @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Homogeneous_kernel/include/CGAL/Homogeneous/PlaneH3.h $ -// $Id: PlaneH3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Homogeneous_kernel/include/CGAL/Homogeneous/PlaneH3.h $ +// $Id: PlaneH3.h 71bba3e 2022-03-17T22:35:09+01:00 Andreas Fabri // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // @@ -58,6 +58,7 @@ PlaneH3(const Ray_3&, const Point_3& ); PlaneH3(const Point_3&, const Direction_3& ); PlaneH3(const Point_3&, const Vector_3& ); + PlaneH3(Origin, const Vector_3& ); PlaneH3(const Point_3&, const Direction_3&, const Direction_3& ); const RT & a() const; @@ -240,6 +241,17 @@ } template < class R > +CGAL_KERNEL_INLINE +PlaneH3::PlaneH3(Origin, + const typename PlaneH3::Vector_3& ov) +{ + new_rep( ov.hx(), + ov.hy(), + ov.hz(), + RT(0) ); +} + +template < class R > CGAL_KERNEL_INLINE PlaneH3::PlaneH3(const typename PlaneH3::Point_3& p, const typename PlaneH3::Direction_3& d1, diff -Nru cgal-5.4.1/include/CGAL/Homogeneous/PointH2.h cgal-5.5/include/CGAL/Homogeneous/PointH2.h --- cgal-5.4.1/include/CGAL/Homogeneous/PointH2.h 2022-06-03 19:04:18.000000000 +0000 +++ cgal-5.5/include/CGAL/Homogeneous/PointH2.h 2022-07-13 19:05:07.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Homogeneous_kernel/include/CGAL/Homogeneous/PointH2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Homogeneous_kernel/include/CGAL/Homogeneous/PointH2.h $ // $Id: PointH2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Homogeneous/PointH3.h cgal-5.5/include/CGAL/Homogeneous/PointH3.h --- cgal-5.4.1/include/CGAL/Homogeneous/PointH3.h 2022-06-03 19:04:18.000000000 +0000 +++ cgal-5.5/include/CGAL/Homogeneous/PointH3.h 2022-07-13 19:05:07.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Homogeneous_kernel/include/CGAL/Homogeneous/PointH3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Homogeneous_kernel/include/CGAL/Homogeneous/PointH3.h $ // $Id: PointH3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Homogeneous/predicates_on_directionsH2.h cgal-5.5/include/CGAL/Homogeneous/predicates_on_directionsH2.h --- cgal-5.4.1/include/CGAL/Homogeneous/predicates_on_directionsH2.h 2022-06-03 19:04:18.000000000 +0000 +++ cgal-5.5/include/CGAL/Homogeneous/predicates_on_directionsH2.h 2022-07-13 19:05:07.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Homogeneous_kernel/include/CGAL/Homogeneous/predicates_on_directionsH2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Homogeneous_kernel/include/CGAL/Homogeneous/predicates_on_directionsH2.h $ // $Id: predicates_on_directionsH2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Homogeneous/predicates_on_pointsH2.h cgal-5.5/include/CGAL/Homogeneous/predicates_on_pointsH2.h --- cgal-5.4.1/include/CGAL/Homogeneous/predicates_on_pointsH2.h 2022-06-03 19:04:18.000000000 +0000 +++ cgal-5.5/include/CGAL/Homogeneous/predicates_on_pointsH2.h 2022-07-13 19:05:07.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Homogeneous_kernel/include/CGAL/Homogeneous/predicates_on_pointsH2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Homogeneous_kernel/include/CGAL/Homogeneous/predicates_on_pointsH2.h $ // $Id: predicates_on_pointsH2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Homogeneous/predicates_on_pointsH3.h cgal-5.5/include/CGAL/Homogeneous/predicates_on_pointsH3.h --- cgal-5.4.1/include/CGAL/Homogeneous/predicates_on_pointsH3.h 2022-06-03 19:04:18.000000000 +0000 +++ cgal-5.5/include/CGAL/Homogeneous/predicates_on_pointsH3.h 2022-07-13 19:05:07.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Homogeneous_kernel/include/CGAL/Homogeneous/predicates_on_pointsH3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Homogeneous_kernel/include/CGAL/Homogeneous/predicates_on_pointsH3.h $ // $Id: predicates_on_pointsH3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Homogeneous/RayH3.h cgal-5.5/include/CGAL/Homogeneous/RayH3.h --- cgal-5.4.1/include/CGAL/Homogeneous/RayH3.h 2022-06-03 19:04:18.000000000 +0000 +++ cgal-5.5/include/CGAL/Homogeneous/RayH3.h 2022-07-13 19:05:07.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Homogeneous_kernel/include/CGAL/Homogeneous/RayH3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Homogeneous_kernel/include/CGAL/Homogeneous/RayH3.h $ // $Id: RayH3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Homogeneous/SphereH3.h cgal-5.5/include/CGAL/Homogeneous/SphereH3.h --- cgal-5.4.1/include/CGAL/Homogeneous/SphereH3.h 2022-06-03 19:04:18.000000000 +0000 +++ cgal-5.5/include/CGAL/Homogeneous/SphereH3.h 2022-07-13 19:05:07.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Homogeneous_kernel/include/CGAL/Homogeneous/SphereH3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Homogeneous_kernel/include/CGAL/Homogeneous/SphereH3.h $ // $Id: SphereH3.h 3640099 2021-09-28T15:36:51+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Homogeneous/VectorH2.h cgal-5.5/include/CGAL/Homogeneous/VectorH2.h --- cgal-5.4.1/include/CGAL/Homogeneous/VectorH2.h 2022-06-03 19:04:18.000000000 +0000 +++ cgal-5.5/include/CGAL/Homogeneous/VectorH2.h 2022-07-13 19:05:07.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Homogeneous_kernel/include/CGAL/Homogeneous/VectorH2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Homogeneous_kernel/include/CGAL/Homogeneous/VectorH2.h $ // $Id: VectorH2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Homogeneous/VectorH3.h cgal-5.5/include/CGAL/Homogeneous/VectorH3.h --- cgal-5.4.1/include/CGAL/Homogeneous/VectorH3.h 2022-06-03 19:04:18.000000000 +0000 +++ cgal-5.5/include/CGAL/Homogeneous/VectorH3.h 2022-07-13 19:05:07.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Homogeneous_kernel/include/CGAL/Homogeneous/VectorH3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Homogeneous_kernel/include/CGAL/Homogeneous/VectorH3.h $ // $Id: VectorH3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Homogeneous/Weighted_point_2.h cgal-5.5/include/CGAL/Homogeneous/Weighted_point_2.h --- cgal-5.4.1/include/CGAL/Homogeneous/Weighted_point_2.h 2022-06-03 19:04:18.000000000 +0000 +++ cgal-5.5/include/CGAL/Homogeneous/Weighted_point_2.h 2022-07-13 19:05:07.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Homogeneous_kernel/include/CGAL/Homogeneous/Weighted_point_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Homogeneous_kernel/include/CGAL/Homogeneous/Weighted_point_2.h $ // $Id: Weighted_point_2.h 4e519a3 2021-05-05T13:15:37+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Homogeneous/Weighted_point_3.h cgal-5.5/include/CGAL/Homogeneous/Weighted_point_3.h --- cgal-5.4.1/include/CGAL/Homogeneous/Weighted_point_3.h 2022-06-03 19:04:18.000000000 +0000 +++ cgal-5.5/include/CGAL/Homogeneous/Weighted_point_3.h 2022-07-13 19:05:07.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Homogeneous_kernel/include/CGAL/Homogeneous/Weighted_point_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Homogeneous_kernel/include/CGAL/Homogeneous/Weighted_point_3.h $ // $Id: Weighted_point_3.h 4e519a3 2021-05-05T13:15:37+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Homogeneous_converter.h cgal-5.5/include/CGAL/Homogeneous_converter.h --- cgal-5.4.1/include/CGAL/Homogeneous_converter.h 2022-06-03 19:04:18.000000000 +0000 +++ cgal-5.5/include/CGAL/Homogeneous_converter.h 2022-07-13 19:05:07.000000000 +0000 @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Homogeneous_kernel/include/CGAL/Homogeneous_converter.h $ -// $Id: Homogeneous_converter.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Homogeneous_kernel/include/CGAL/Homogeneous_converter.h $ +// $Id: Homogeneous_converter.h 3a0a4a6 2021-12-17T12:22:40+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // @@ -28,6 +28,9 @@ #include #include #include +#include + +#include namespace CGAL { @@ -47,13 +50,25 @@ using Base::operator(); - Bbox_2 + Origin + operator()(Origin o) const + { + return o; + } + + Null_vector + operator()(Null_vector n) const + { + return n; + } + + const Bbox_2& operator()(const Bbox_2& b) { return b; } - Bbox_3 + const Bbox_3& operator()(const Bbox_3& b) { return b; @@ -62,13 +77,21 @@ typename K2::RT operator()(const typename K1::RT &a) const { - return c(a); + return rc(a); } typename K2::FT operator()(const typename K1::FT &a) const { - return c(a); + return fc(a); + } + + template + T + operator()(const T t, + typename std::enable_if::value>::type* = nullptr) const + { + return t; } typename K2::Point_2 diff -Nru cgal-5.4.1/include/CGAL/Homogeneous_d.h cgal-5.5/include/CGAL/Homogeneous_d.h --- cgal-5.4.1/include/CGAL/Homogeneous_d.h 2022-06-03 19:04:38.000000000 +0000 +++ cgal-5.5/include/CGAL/Homogeneous_d.h 2022-07-13 19:05:29.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_d/include/CGAL/Homogeneous_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_d/include/CGAL/Homogeneous_d.h $ // $Id: Homogeneous_d.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Homogeneous.h cgal-5.5/include/CGAL/Homogeneous.h --- cgal-5.4.1/include/CGAL/Homogeneous.h 2022-06-03 19:04:17.000000000 +0000 +++ cgal-5.5/include/CGAL/Homogeneous.h 2022-07-13 19:05:07.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Homogeneous_kernel/include/CGAL/Homogeneous.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Homogeneous_kernel/include/CGAL/Homogeneous.h $ // $Id: Homogeneous.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Hyperbola_2.h cgal-5.5/include/CGAL/Hyperbola_2.h --- cgal-5.4.1/include/CGAL/Hyperbola_2.h 2022-06-03 19:03:36.000000000 +0000 +++ cgal-5.5/include/CGAL/Hyperbola_2.h 2022-07-13 19:04:20.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Apollonius_graph_2/include/CGAL/Hyperbola_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Apollonius_graph_2/include/CGAL/Hyperbola_2.h $ // $Id: Hyperbola_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Hyperbola_ray_2.h cgal-5.5/include/CGAL/Hyperbola_ray_2.h --- cgal-5.4.1/include/CGAL/Hyperbola_ray_2.h 2022-06-03 19:03:36.000000000 +0000 +++ cgal-5.5/include/CGAL/Hyperbola_ray_2.h 2022-07-13 19:04:20.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Apollonius_graph_2/include/CGAL/Hyperbola_ray_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Apollonius_graph_2/include/CGAL/Hyperbola_ray_2.h $ // $Id: Hyperbola_ray_2.h 45b73ad 2021-05-12T15:45:07+02:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Hyperbola_segment_2.h cgal-5.5/include/CGAL/Hyperbola_segment_2.h --- cgal-5.4.1/include/CGAL/Hyperbola_segment_2.h 2022-06-03 19:03:36.000000000 +0000 +++ cgal-5.5/include/CGAL/Hyperbola_segment_2.h 2022-07-13 19:04:20.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Apollonius_graph_2/include/CGAL/Hyperbola_segment_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Apollonius_graph_2/include/CGAL/Hyperbola_segment_2.h $ // $Id: Hyperbola_segment_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Hyperbolic_Delaunay_triangulation_2.h cgal-5.5/include/CGAL/Hyperbolic_Delaunay_triangulation_2.h --- cgal-5.4.1/include/CGAL/Hyperbolic_Delaunay_triangulation_2.h 2022-06-03 19:04:19.000000000 +0000 +++ cgal-5.5/include/CGAL/Hyperbolic_Delaunay_triangulation_2.h 2022-07-13 19:05:08.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Hyperbolic_triangulation_2/include/CGAL/Hyperbolic_Delaunay_triangulation_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Hyperbolic_triangulation_2/include/CGAL/Hyperbolic_Delaunay_triangulation_2.h $ // $Id: Hyperbolic_Delaunay_triangulation_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Hyperbolic_Delaunay_triangulation_CK_traits_2.h cgal-5.5/include/CGAL/Hyperbolic_Delaunay_triangulation_CK_traits_2.h --- cgal-5.4.1/include/CGAL/Hyperbolic_Delaunay_triangulation_CK_traits_2.h 2022-06-03 19:04:19.000000000 +0000 +++ cgal-5.5/include/CGAL/Hyperbolic_Delaunay_triangulation_CK_traits_2.h 2022-07-13 19:05:08.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Hyperbolic_triangulation_2/include/CGAL/Hyperbolic_Delaunay_triangulation_CK_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Hyperbolic_triangulation_2/include/CGAL/Hyperbolic_Delaunay_triangulation_CK_traits_2.h $ // $Id: Hyperbolic_Delaunay_triangulation_CK_traits_2.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Hyperbolic_Delaunay_triangulation_traits_2.h cgal-5.5/include/CGAL/Hyperbolic_Delaunay_triangulation_traits_2.h --- cgal-5.4.1/include/CGAL/Hyperbolic_Delaunay_triangulation_traits_2.h 2022-06-03 19:04:19.000000000 +0000 +++ cgal-5.5/include/CGAL/Hyperbolic_Delaunay_triangulation_traits_2.h 2022-07-13 19:05:08.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Hyperbolic_triangulation_2/include/CGAL/Hyperbolic_Delaunay_triangulation_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Hyperbolic_triangulation_2/include/CGAL/Hyperbolic_Delaunay_triangulation_traits_2.h $ // $Id: Hyperbolic_Delaunay_triangulation_traits_2.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Hyperbolic_octagon_translation.h cgal-5.5/include/CGAL/Hyperbolic_octagon_translation.h --- cgal-5.4.1/include/CGAL/Hyperbolic_octagon_translation.h 2022-06-03 19:05:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Hyperbolic_octagon_translation.h 2022-07-13 19:06:05.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_4_hyperbolic_triangulation_2/include/CGAL/Hyperbolic_octagon_translation.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_4_hyperbolic_triangulation_2/include/CGAL/Hyperbolic_octagon_translation.h $ // $Id: Hyperbolic_octagon_translation.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Hyperbolic_triangulation_2/internal/Exact_complex.h cgal-5.5/include/CGAL/Hyperbolic_triangulation_2/internal/Exact_complex.h --- cgal-5.4.1/include/CGAL/Hyperbolic_triangulation_2/internal/Exact_complex.h 2022-06-03 19:04:19.000000000 +0000 +++ cgal-5.5/include/CGAL/Hyperbolic_triangulation_2/internal/Exact_complex.h 2022-07-13 19:05:08.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Hyperbolic_triangulation_2/include/CGAL/Hyperbolic_triangulation_2/internal/Exact_complex.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Hyperbolic_triangulation_2/include/CGAL/Hyperbolic_triangulation_2/internal/Exact_complex.h $ // $Id: Exact_complex.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Hyperbolic_triangulation_2/internal/Hyperbolic_Delaunay_triangulation_traits_2_functions.h cgal-5.5/include/CGAL/Hyperbolic_triangulation_2/internal/Hyperbolic_Delaunay_triangulation_traits_2_functions.h --- cgal-5.4.1/include/CGAL/Hyperbolic_triangulation_2/internal/Hyperbolic_Delaunay_triangulation_traits_2_functions.h 2022-06-03 19:04:19.000000000 +0000 +++ cgal-5.5/include/CGAL/Hyperbolic_triangulation_2/internal/Hyperbolic_Delaunay_triangulation_traits_2_functions.h 2022-07-13 19:05:08.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Hyperbolic_triangulation_2/include/CGAL/Hyperbolic_triangulation_2/internal/Hyperbolic_Delaunay_triangulation_traits_2_functions.h $ -// $Id: Hyperbolic_Delaunay_triangulation_traits_2_functions.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Hyperbolic_triangulation_2/include/CGAL/Hyperbolic_triangulation_2/internal/Hyperbolic_Delaunay_triangulation_traits_2_functions.h $ +// $Id: Hyperbolic_Delaunay_triangulation_traits_2_functions.h 440a8df 2022-02-03T08:41:04+00:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Mikhail Bogdanov @@ -17,6 +17,7 @@ #include #include +#include namespace CGAL { @@ -123,7 +124,7 @@ Circle_2 circle = _gt.construct_circle_2_object()(center, sq_radius); // uncomment!!! - //assert(circle.has_on_boundary(p) && circle.has_on_boundary(q)); + // CGAL_assertion(circle.has_on_boundary(p) && circle.has_on_boundary(q)); if(_gt.orientation_2_object()(p, q, center) == LEFT_TURN) return Circular_arc_2(circle, p, q); diff -Nru cgal-5.4.1/include/CGAL/Hyperbolic_triangulation_face_base_2.h cgal-5.5/include/CGAL/Hyperbolic_triangulation_face_base_2.h --- cgal-5.4.1/include/CGAL/Hyperbolic_triangulation_face_base_2.h 2022-06-03 19:04:19.000000000 +0000 +++ cgal-5.5/include/CGAL/Hyperbolic_triangulation_face_base_2.h 2022-07-13 19:05:08.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Hyperbolic_triangulation_2/include/CGAL/Hyperbolic_triangulation_face_base_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Hyperbolic_triangulation_2/include/CGAL/Hyperbolic_triangulation_face_base_2.h $ // $Id: Hyperbolic_triangulation_face_base_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Identity_policy_2.h cgal-5.5/include/CGAL/Identity_policy_2.h --- cgal-5.4.1/include/CGAL/Identity_policy_2.h 2022-06-03 19:06:13.000000000 +0000 +++ cgal-5.5/include/CGAL/Identity_policy_2.h 2022-07-13 19:07:12.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Voronoi_diagram_2/include/CGAL/Identity_policy_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Voronoi_diagram_2/include/CGAL/Identity_policy_2.h $ // $Id: Identity_policy_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IEEE_754_unions.h cgal-5.5/include/CGAL/IEEE_754_unions.h --- cgal-5.4.1/include/CGAL/IEEE_754_unions.h 2022-06-03 19:05:00.000000000 +0000 +++ cgal-5.5/include/CGAL/IEEE_754_unions.h 2022-07-13 19:05:54.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/IEEE_754_unions.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/IEEE_754_unions.h $ // $Id: IEEE_754_unions.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Image_3.h cgal-5.5/include/CGAL/Image_3.h --- cgal-5.4.1/include/CGAL/Image_3.h 2022-06-03 19:03:56.000000000 +0000 +++ cgal-5.5/include/CGAL/Image_3.h 2022-07-13 19:04:43.000000000 +0000 @@ -4,8 +4,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_ImageIO/include/CGAL/Image_3.h $ -// $Id: Image_3.h ca89949 2021-10-29T17:01:33+02:00 Laurent Rineau +// $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_ImageIO/include/CGAL/Image_3.h $ +// $Id: Image_3.h 4ffc949 2022-02-03T17:11:20+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // @@ -21,7 +21,6 @@ #include #include -#include #include #include diff -Nru cgal-5.4.1/include/CGAL/Image_3_impl.h cgal-5.5/include/CGAL/Image_3_impl.h --- cgal-5.4.1/include/CGAL/Image_3_impl.h 2022-06-03 19:03:56.000000000 +0000 +++ cgal-5.5/include/CGAL/Image_3_impl.h 2022-07-13 19:04:43.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_ImageIO/include/CGAL/Image_3_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_ImageIO/include/CGAL/Image_3_impl.h $ // $Id: Image_3_impl.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Image_3_vtk_interface.h cgal-5.5/include/CGAL/Image_3_vtk_interface.h --- cgal-5.4.1/include/CGAL/Image_3_vtk_interface.h 2022-06-03 19:03:56.000000000 +0000 +++ cgal-5.5/include/CGAL/Image_3_vtk_interface.h 2022-07-13 19:04:43.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_ImageIO/include/CGAL/Image_3_vtk_interface.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_ImageIO/include/CGAL/Image_3_vtk_interface.h $ // $Id: Image_3_vtk_interface.h 91d6635 2021-06-16T15:04:45+02:00 Laurent Rineau // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/ImageIO/analyze.h cgal-5.5/include/CGAL/ImageIO/analyze.h --- cgal-5.4.1/include/CGAL/ImageIO/analyze.h 2022-06-03 19:03:55.000000000 +0000 +++ cgal-5.5/include/CGAL/ImageIO/analyze.h 2022-07-13 19:04:42.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of the ImageIO Library, and as been adapted for CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_ImageIO/include/CGAL/ImageIO/analyze.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_ImageIO/include/CGAL/ImageIO/analyze.h $ // $Id: analyze.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later // diff -Nru cgal-5.4.1/include/CGAL/ImageIO/analyze_impl.h cgal-5.5/include/CGAL/ImageIO/analyze_impl.h --- cgal-5.4.1/include/CGAL/ImageIO/analyze_impl.h 2022-06-03 19:03:55.000000000 +0000 +++ cgal-5.5/include/CGAL/ImageIO/analyze_impl.h 2022-07-13 19:04:42.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of the ImageIO Library, and as been adapted for CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_ImageIO/include/CGAL/ImageIO/analyze_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_ImageIO/include/CGAL/ImageIO/analyze_impl.h $ // $Id: analyze_impl.h 6acef1b 2020-10-20T14:18:12+02:00 Raphael Grimm // SPDX-License-Identifier: LGPL-3.0-or-later // diff -Nru cgal-5.4.1/include/CGAL/ImageIO/bmpendian.h cgal-5.5/include/CGAL/ImageIO/bmpendian.h --- cgal-5.4.1/include/CGAL/ImageIO/bmpendian.h 2022-06-03 19:03:55.000000000 +0000 +++ cgal-5.5/include/CGAL/ImageIO/bmpendian.h 2022-07-13 19:04:42.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of the ImageIO Library, and as been adapted for CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_ImageIO/include/CGAL/ImageIO/bmpendian.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_ImageIO/include/CGAL/ImageIO/bmpendian.h $ // $Id: bmpendian.h 07c4ada 2019-10-19T15:50:09+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later // diff -Nru cgal-5.4.1/include/CGAL/ImageIO/bmpendian_impl.h cgal-5.5/include/CGAL/ImageIO/bmpendian_impl.h --- cgal-5.4.1/include/CGAL/ImageIO/bmpendian_impl.h 2022-06-03 19:03:55.000000000 +0000 +++ cgal-5.5/include/CGAL/ImageIO/bmpendian_impl.h 2022-07-13 19:04:42.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of the ImageIO Library, and as been adapted for CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_ImageIO/include/CGAL/ImageIO/bmpendian_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_ImageIO/include/CGAL/ImageIO/bmpendian_impl.h $ // $Id: bmpendian_impl.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later // diff -Nru cgal-5.4.1/include/CGAL/ImageIO/bmp.h cgal-5.5/include/CGAL/ImageIO/bmp.h --- cgal-5.4.1/include/CGAL/ImageIO/bmp.h 2022-06-03 19:03:55.000000000 +0000 +++ cgal-5.5/include/CGAL/ImageIO/bmp.h 2022-07-13 19:04:42.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of the ImageIO Library, and as been adapted for CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_ImageIO/include/CGAL/ImageIO/bmp.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_ImageIO/include/CGAL/ImageIO/bmp.h $ // $Id: bmp.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later // diff -Nru cgal-5.4.1/include/CGAL/ImageIO/bmp_impl.h cgal-5.5/include/CGAL/ImageIO/bmp_impl.h --- cgal-5.4.1/include/CGAL/ImageIO/bmp_impl.h 2022-06-03 19:03:55.000000000 +0000 +++ cgal-5.5/include/CGAL/ImageIO/bmp_impl.h 2022-07-13 19:04:42.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of the ImageIO Library, and as been adapted for CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_ImageIO/include/CGAL/ImageIO/bmp_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_ImageIO/include/CGAL/ImageIO/bmp_impl.h $ // $Id: bmp_impl.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later // diff -Nru cgal-5.4.1/include/CGAL/ImageIO/bmpread.h cgal-5.5/include/CGAL/ImageIO/bmpread.h --- cgal-5.4.1/include/CGAL/ImageIO/bmpread.h 2022-06-03 19:03:56.000000000 +0000 +++ cgal-5.5/include/CGAL/ImageIO/bmpread.h 2022-07-13 19:04:42.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of the ImageIO Library, and as been adapted for CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_ImageIO/include/CGAL/ImageIO/bmpread.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_ImageIO/include/CGAL/ImageIO/bmpread.h $ // $Id: bmpread.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later // diff -Nru cgal-5.4.1/include/CGAL/ImageIO/bmpread_impl.h cgal-5.5/include/CGAL/ImageIO/bmpread_impl.h --- cgal-5.4.1/include/CGAL/ImageIO/bmpread_impl.h 2022-06-03 19:03:56.000000000 +0000 +++ cgal-5.5/include/CGAL/ImageIO/bmpread_impl.h 2022-07-13 19:04:42.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of the ImageIO Library, and as been adapted for CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_ImageIO/include/CGAL/ImageIO/bmpread_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_ImageIO/include/CGAL/ImageIO/bmpread_impl.h $ // $Id: bmpread_impl.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later // diff -Nru cgal-5.4.1/include/CGAL/ImageIO/bmptypes.h cgal-5.5/include/CGAL/ImageIO/bmptypes.h --- cgal-5.4.1/include/CGAL/ImageIO/bmptypes.h 2022-06-03 19:03:56.000000000 +0000 +++ cgal-5.5/include/CGAL/ImageIO/bmptypes.h 2022-07-13 19:04:42.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of the ImageIO Library, and as been adapted for CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_ImageIO/include/CGAL/ImageIO/bmptypes.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_ImageIO/include/CGAL/ImageIO/bmptypes.h $ // $Id: bmptypes.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later // diff -Nru cgal-5.4.1/include/CGAL/ImageIO/convert.h cgal-5.5/include/CGAL/ImageIO/convert.h --- cgal-5.4.1/include/CGAL/ImageIO/convert.h 2022-06-03 19:03:56.000000000 +0000 +++ cgal-5.5/include/CGAL/ImageIO/convert.h 2022-07-13 19:04:42.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of the ImageIO Library, and as been adapted for CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_ImageIO/include/CGAL/ImageIO/convert.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_ImageIO/include/CGAL/ImageIO/convert.h $ // $Id: convert.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later // diff -Nru cgal-5.4.1/include/CGAL/ImageIO/convert_impl.h cgal-5.5/include/CGAL/ImageIO/convert_impl.h --- cgal-5.4.1/include/CGAL/ImageIO/convert_impl.h 2022-06-03 19:03:56.000000000 +0000 +++ cgal-5.5/include/CGAL/ImageIO/convert_impl.h 2022-07-13 19:04:42.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of the ImageIO Library, and as been adapted for CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_ImageIO/include/CGAL/ImageIO/convert_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_ImageIO/include/CGAL/ImageIO/convert_impl.h $ // $Id: convert_impl.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later // diff -Nru cgal-5.4.1/include/CGAL/ImageIO/fgetns.h cgal-5.5/include/CGAL/ImageIO/fgetns.h --- cgal-5.4.1/include/CGAL/ImageIO/fgetns.h 2022-06-03 19:03:56.000000000 +0000 +++ cgal-5.5/include/CGAL/ImageIO/fgetns.h 2022-07-13 19:04:42.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of the ImageIO Library, and as been adapted for CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_ImageIO/include/CGAL/ImageIO/fgetns.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_ImageIO/include/CGAL/ImageIO/fgetns.h $ // $Id: fgetns.h 07c4ada 2019-10-19T15:50:09+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later // diff -Nru cgal-5.4.1/include/CGAL/ImageIO/fgetns_impl.h cgal-5.5/include/CGAL/ImageIO/fgetns_impl.h --- cgal-5.4.1/include/CGAL/ImageIO/fgetns_impl.h 2022-06-03 19:03:56.000000000 +0000 +++ cgal-5.5/include/CGAL/ImageIO/fgetns_impl.h 2022-07-13 19:04:42.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of the ImageIO Library, and as been adapted for CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_ImageIO/include/CGAL/ImageIO/fgetns_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_ImageIO/include/CGAL/ImageIO/fgetns_impl.h $ // $Id: fgetns_impl.h 07c4ada 2019-10-19T15:50:09+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later // diff -Nru cgal-5.4.1/include/CGAL/ImageIO/gif.h cgal-5.5/include/CGAL/ImageIO/gif.h --- cgal-5.4.1/include/CGAL/ImageIO/gif.h 2022-06-03 19:03:56.000000000 +0000 +++ cgal-5.5/include/CGAL/ImageIO/gif.h 2022-07-13 19:04:42.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of the ImageIO Library, and as been adapted for CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_ImageIO/include/CGAL/ImageIO/gif.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_ImageIO/include/CGAL/ImageIO/gif.h $ // $Id: gif.h 07c4ada 2019-10-19T15:50:09+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later // diff -Nru cgal-5.4.1/include/CGAL/ImageIO/gif_impl.h cgal-5.5/include/CGAL/ImageIO/gif_impl.h --- cgal-5.4.1/include/CGAL/ImageIO/gif_impl.h 2022-06-03 19:03:56.000000000 +0000 +++ cgal-5.5/include/CGAL/ImageIO/gif_impl.h 2022-07-13 19:04:42.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of the ImageIO Library, and as been adapted for CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_ImageIO/include/CGAL/ImageIO/gif_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_ImageIO/include/CGAL/ImageIO/gif_impl.h $ // $Id: gif_impl.h bdecbc9 2020-10-16T10:47:54+02:00 Raphael Grimm // SPDX-License-Identifier: LGPL-3.0-or-later // diff -Nru cgal-5.4.1/include/CGAL/ImageIO/gis.h cgal-5.5/include/CGAL/ImageIO/gis.h --- cgal-5.4.1/include/CGAL/ImageIO/gis.h 2022-06-03 19:03:56.000000000 +0000 +++ cgal-5.5/include/CGAL/ImageIO/gis.h 2022-07-13 19:04:42.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of the ImageIO Library, and as been adapted for CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_ImageIO/include/CGAL/ImageIO/gis.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_ImageIO/include/CGAL/ImageIO/gis.h $ // $Id: gis.h 78ff918 2021-06-23T23:34:14+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later // diff -Nru cgal-5.4.1/include/CGAL/ImageIO/gis_impl.h cgal-5.5/include/CGAL/ImageIO/gis_impl.h --- cgal-5.4.1/include/CGAL/ImageIO/gis_impl.h 2022-06-03 19:03:56.000000000 +0000 +++ cgal-5.5/include/CGAL/ImageIO/gis_impl.h 2022-07-13 19:04:42.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of the ImageIO Library, and as been adapted for CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_ImageIO/include/CGAL/ImageIO/gis_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_ImageIO/include/CGAL/ImageIO/gis_impl.h $ // $Id: gis_impl.h 78ff918 2021-06-23T23:34:14+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later // diff -Nru cgal-5.4.1/include/CGAL/ImageIO/inr.h cgal-5.5/include/CGAL/ImageIO/inr.h --- cgal-5.4.1/include/CGAL/ImageIO/inr.h 2022-06-03 19:03:56.000000000 +0000 +++ cgal-5.5/include/CGAL/ImageIO/inr.h 2022-07-13 19:04:42.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of the ImageIO Library, and as been adapted for CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_ImageIO/include/CGAL/ImageIO/inr.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_ImageIO/include/CGAL/ImageIO/inr.h $ // $Id: inr.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later // diff -Nru cgal-5.4.1/include/CGAL/ImageIO/inr_impl.h cgal-5.5/include/CGAL/ImageIO/inr_impl.h --- cgal-5.4.1/include/CGAL/ImageIO/inr_impl.h 2022-06-03 19:03:56.000000000 +0000 +++ cgal-5.5/include/CGAL/ImageIO/inr_impl.h 2022-07-13 19:04:42.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of the ImageIO Library, and as been adapted for CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_ImageIO/include/CGAL/ImageIO/inr_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_ImageIO/include/CGAL/ImageIO/inr_impl.h $ // $Id: inr_impl.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later // diff -Nru cgal-5.4.1/include/CGAL/ImageIO/iris.h cgal-5.5/include/CGAL/ImageIO/iris.h --- cgal-5.4.1/include/CGAL/ImageIO/iris.h 2022-06-03 19:03:56.000000000 +0000 +++ cgal-5.5/include/CGAL/ImageIO/iris.h 2022-07-13 19:04:42.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of the ImageIO Library, and as been adapted for CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_ImageIO/include/CGAL/ImageIO/iris.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_ImageIO/include/CGAL/ImageIO/iris.h $ // $Id: iris.h 07c4ada 2019-10-19T15:50:09+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later // diff -Nru cgal-5.4.1/include/CGAL/ImageIO/iris_impl.h cgal-5.5/include/CGAL/ImageIO/iris_impl.h --- cgal-5.4.1/include/CGAL/ImageIO/iris_impl.h 2022-06-03 19:03:56.000000000 +0000 +++ cgal-5.5/include/CGAL/ImageIO/iris_impl.h 2022-07-13 19:04:42.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of the ImageIO Library, and as been adapted for CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_ImageIO/include/CGAL/ImageIO/iris_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_ImageIO/include/CGAL/ImageIO/iris_impl.h $ // $Id: iris_impl.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later // diff -Nru cgal-5.4.1/include/CGAL/ImageIO/mincio.h cgal-5.5/include/CGAL/ImageIO/mincio.h --- cgal-5.4.1/include/CGAL/ImageIO/mincio.h 2022-06-03 19:03:56.000000000 +0000 +++ cgal-5.5/include/CGAL/ImageIO/mincio.h 2022-07-13 19:04:42.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of the ImageIO Library, and as been adapted for CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_ImageIO/include/CGAL/ImageIO/mincio.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_ImageIO/include/CGAL/ImageIO/mincio.h $ // $Id: mincio.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later // diff -Nru cgal-5.4.1/include/CGAL/ImageIO/mincio_impl.h cgal-5.5/include/CGAL/ImageIO/mincio_impl.h --- cgal-5.4.1/include/CGAL/ImageIO/mincio_impl.h 2022-06-03 19:03:56.000000000 +0000 +++ cgal-5.5/include/CGAL/ImageIO/mincio_impl.h 2022-07-13 19:04:42.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of the ImageIO Library, and as been adapted for CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_ImageIO/include/CGAL/ImageIO/mincio_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_ImageIO/include/CGAL/ImageIO/mincio_impl.h $ // $Id: mincio_impl.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later // diff -Nru cgal-5.4.1/include/CGAL/ImageIO/pnm.h cgal-5.5/include/CGAL/ImageIO/pnm.h --- cgal-5.4.1/include/CGAL/ImageIO/pnm.h 2022-06-03 19:03:56.000000000 +0000 +++ cgal-5.5/include/CGAL/ImageIO/pnm.h 2022-07-13 19:04:43.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of the ImageIO Library, and as been adapted for CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_ImageIO/include/CGAL/ImageIO/pnm.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_ImageIO/include/CGAL/ImageIO/pnm.h $ // $Id: pnm.h 07c4ada 2019-10-19T15:50:09+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later // diff -Nru cgal-5.4.1/include/CGAL/ImageIO/pnm_impl.h cgal-5.5/include/CGAL/ImageIO/pnm_impl.h --- cgal-5.4.1/include/CGAL/ImageIO/pnm_impl.h 2022-06-03 19:03:56.000000000 +0000 +++ cgal-5.5/include/CGAL/ImageIO/pnm_impl.h 2022-07-13 19:04:43.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of the ImageIO Library, and as been adapted for CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_ImageIO/include/CGAL/ImageIO/pnm_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_ImageIO/include/CGAL/ImageIO/pnm_impl.h $ // $Id: pnm_impl.h 78ff918 2021-06-23T23:34:14+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later // diff -Nru cgal-5.4.1/include/CGAL/ImageIO/recbuffer.h cgal-5.5/include/CGAL/ImageIO/recbuffer.h --- cgal-5.4.1/include/CGAL/ImageIO/recbuffer.h 2022-06-03 19:03:56.000000000 +0000 +++ cgal-5.5/include/CGAL/ImageIO/recbuffer.h 2022-07-13 19:04:43.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of the ImageIO Library, and as been adapted for CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_ImageIO/include/CGAL/ImageIO/recbuffer.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_ImageIO/include/CGAL/ImageIO/recbuffer.h $ // $Id: recbuffer.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later // diff -Nru cgal-5.4.1/include/CGAL/ImageIO/recbuffer_impl.h cgal-5.5/include/CGAL/ImageIO/recbuffer_impl.h --- cgal-5.4.1/include/CGAL/ImageIO/recbuffer_impl.h 2022-06-03 19:03:56.000000000 +0000 +++ cgal-5.5/include/CGAL/ImageIO/recbuffer_impl.h 2022-07-13 19:04:43.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of the ImageIO Library, and as been adapted for CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_ImageIO/include/CGAL/ImageIO/recbuffer_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_ImageIO/include/CGAL/ImageIO/recbuffer_impl.h $ // $Id: recbuffer_impl.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later // diff -Nru cgal-5.4.1/include/CGAL/ImageIO/recline.h cgal-5.5/include/CGAL/ImageIO/recline.h --- cgal-5.4.1/include/CGAL/ImageIO/recline.h 2022-06-03 19:03:56.000000000 +0000 +++ cgal-5.5/include/CGAL/ImageIO/recline.h 2022-07-13 19:04:43.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of the ImageIO Library, and as been adapted for CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_ImageIO/include/CGAL/ImageIO/recline.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_ImageIO/include/CGAL/ImageIO/recline.h $ // $Id: recline.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later // diff -Nru cgal-5.4.1/include/CGAL/ImageIO/recline_impl.h cgal-5.5/include/CGAL/ImageIO/recline_impl.h --- cgal-5.4.1/include/CGAL/ImageIO/recline_impl.h 2022-06-03 19:03:56.000000000 +0000 +++ cgal-5.5/include/CGAL/ImageIO/recline_impl.h 2022-07-13 19:04:43.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of the ImageIO Library, and as been adapted for CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_ImageIO/include/CGAL/ImageIO/recline_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_ImageIO/include/CGAL/ImageIO/recline_impl.h $ // $Id: recline_impl.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later // diff -Nru cgal-5.4.1/include/CGAL/ImageIO/reech4x4.h cgal-5.5/include/CGAL/ImageIO/reech4x4.h --- cgal-5.4.1/include/CGAL/ImageIO/reech4x4.h 2022-06-03 19:03:56.000000000 +0000 +++ cgal-5.5/include/CGAL/ImageIO/reech4x4.h 2022-07-13 19:04:43.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of the ImageIO Library, and as been adapted for CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_ImageIO/include/CGAL/ImageIO/reech4x4.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_ImageIO/include/CGAL/ImageIO/reech4x4.h $ // $Id: reech4x4.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later // diff -Nru cgal-5.4.1/include/CGAL/ImageIO/reech4x4_impl.h cgal-5.5/include/CGAL/ImageIO/reech4x4_impl.h --- cgal-5.4.1/include/CGAL/ImageIO/reech4x4_impl.h 2022-06-03 19:03:56.000000000 +0000 +++ cgal-5.5/include/CGAL/ImageIO/reech4x4_impl.h 2022-07-13 19:04:43.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of the ImageIO Library, and as been adapted for CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_ImageIO/include/CGAL/ImageIO/reech4x4_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_ImageIO/include/CGAL/ImageIO/reech4x4_impl.h $ // $Id: reech4x4_impl.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later // diff -Nru cgal-5.4.1/include/CGAL/ImageIO/typedefs.h cgal-5.5/include/CGAL/ImageIO/typedefs.h --- cgal-5.4.1/include/CGAL/ImageIO/typedefs.h 2022-06-03 19:03:56.000000000 +0000 +++ cgal-5.5/include/CGAL/ImageIO/typedefs.h 2022-07-13 19:04:43.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of the ImageIO Library, and as been adapted for CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_ImageIO/include/CGAL/ImageIO/typedefs.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_ImageIO/include/CGAL/ImageIO/typedefs.h $ // $Id: typedefs.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later // diff -Nru cgal-5.4.1/include/CGAL/ImageIO.h cgal-5.5/include/CGAL/ImageIO.h --- cgal-5.4.1/include/CGAL/ImageIO.h 2022-06-03 19:03:55.000000000 +0000 +++ cgal-5.5/include/CGAL/ImageIO.h 2022-07-13 19:04:42.000000000 +0000 @@ -5,7 +5,7 @@ // // This file is part of the ImageIO Library, and as been adapted for CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_ImageIO/include/CGAL/ImageIO.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_ImageIO/include/CGAL/ImageIO.h $ // $Id: ImageIO.h 78ff918 2021-06-23T23:34:14+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later // diff -Nru cgal-5.4.1/include/CGAL/ImageIO_impl.h cgal-5.5/include/CGAL/ImageIO_impl.h --- cgal-5.4.1/include/CGAL/ImageIO_impl.h 2022-06-03 19:03:56.000000000 +0000 +++ cgal-5.5/include/CGAL/ImageIO_impl.h 2022-07-13 19:04:43.000000000 +0000 @@ -5,7 +5,7 @@ // // This file is part of the ImageIO Library, and as been adapted for CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_ImageIO/include/CGAL/ImageIO_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_ImageIO/include/CGAL/ImageIO_impl.h $ // $Id: ImageIO_impl.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later // diff -Nru cgal-5.4.1/include/CGAL/Implicit_mesh_domain_3.h cgal-5.5/include/CGAL/Implicit_mesh_domain_3.h --- cgal-5.4.1/include/CGAL/Implicit_mesh_domain_3.h 2022-06-03 19:04:46.000000000 +0000 +++ cgal-5.5/include/CGAL/Implicit_mesh_domain_3.h 2022-07-13 19:05:38.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Implicit_mesh_domain_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Implicit_mesh_domain_3.h $ // $Id: Implicit_mesh_domain_3.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Implicit_surface_3.h cgal-5.5/include/CGAL/Implicit_surface_3.h --- cgal-5.4.1/include/CGAL/Implicit_surface_3.h 2022-06-03 19:05:59.000000000 +0000 +++ cgal-5.5/include/CGAL/Implicit_surface_3.h 2022-07-13 19:06:56.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesher/include/CGAL/Implicit_surface_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesher/include/CGAL/Implicit_surface_3.h $ // $Id: Implicit_surface_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Implicit_to_labeled_subdomains_function_wrapper.h cgal-5.5/include/CGAL/Implicit_to_labeled_subdomains_function_wrapper.h --- cgal-5.4.1/include/CGAL/Implicit_to_labeled_subdomains_function_wrapper.h 2022-06-03 19:05:09.000000000 +0000 +++ cgal-5.5/include/CGAL/Implicit_to_labeled_subdomains_function_wrapper.h 2022-07-13 19:06:02.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_3_mesh_3/include/CGAL/Implicit_to_labeled_subdomains_function_wrapper.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_3_mesh_3/include/CGAL/Implicit_to_labeled_subdomains_function_wrapper.h $ // $Id: Implicit_to_labeled_subdomains_function_wrapper.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Implicit_to_labeling_function_wrapper.h cgal-5.5/include/CGAL/Implicit_to_labeling_function_wrapper.h --- cgal-5.4.1/include/CGAL/Implicit_to_labeling_function_wrapper.h 2022-06-03 19:04:46.000000000 +0000 +++ cgal-5.5/include/CGAL/Implicit_to_labeling_function_wrapper.h 2022-07-13 19:05:38.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Implicit_to_labeling_function_wrapper.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Implicit_to_labeling_function_wrapper.h $ // $Id: Implicit_to_labeling_function_wrapper.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Incremental_neighbor_search.h cgal-5.5/include/CGAL/Incremental_neighbor_search.h --- cgal-5.4.1/include/CGAL/Incremental_neighbor_search.h 2022-06-03 19:05:47.000000000 +0000 +++ cgal-5.5/include/CGAL/Incremental_neighbor_search.h 2022-07-13 19:06:43.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Spatial_searching/include/CGAL/Incremental_neighbor_search.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Spatial_searching/include/CGAL/Incremental_neighbor_search.h $ // $Id: Incremental_neighbor_search.h 9888d44 2022-01-31T09:44:04+00:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Index_property_map.h cgal-5.5/include/CGAL/Index_property_map.h --- cgal-5.4.1/include/CGAL/Index_property_map.h 2022-06-03 19:05:28.000000000 +0000 +++ cgal-5.5/include/CGAL/Index_property_map.h 2022-07-13 19:06:23.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Property_map/include/CGAL/Index_property_map.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Property_map/include/CGAL/Index_property_map.h $ // $Id: Index_property_map.h 8166579 2021-10-11T19:58:07+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/in_place_edge_list.h cgal-5.5/include/CGAL/in_place_edge_list.h --- cgal-5.4.1/include/CGAL/in_place_edge_list.h 2022-06-03 19:03:36.000000000 +0000 +++ cgal-5.5/include/CGAL/in_place_edge_list.h 2022-07-13 19:04:20.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Apollonius_graph_2/include/CGAL/in_place_edge_list.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Apollonius_graph_2/include/CGAL/in_place_edge_list.h $ // $Id: in_place_edge_list.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/In_place_list.h cgal-5.5/include/CGAL/In_place_list.h --- cgal-5.4.1/include/CGAL/In_place_list.h 2022-06-03 19:05:32.000000000 +0000 +++ cgal-5.5/include/CGAL/In_place_list.h 2022-07-13 19:06:27.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/In_place_list.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/In_place_list.h $ // $Id: In_place_list.h 18ca811 2021-05-27T12:36:17+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Installation/internal/deprecation_warning.h cgal-5.5/include/CGAL/Installation/internal/deprecation_warning.h --- cgal-5.4.1/include/CGAL/Installation/internal/deprecation_warning.h 2022-06-03 19:04:19.000000000 +0000 +++ cgal-5.5/include/CGAL/Installation/internal/deprecation_warning.h 2022-07-13 19:05:08.000000000 +0000 @@ -6,7 +6,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/Installation/internal/deprecation_warning.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/Installation/internal/deprecation_warning.h $ // $Id: deprecation_warning.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Installation/internal/disable_deprecation_warnings_and_errors.h cgal-5.5/include/CGAL/Installation/internal/disable_deprecation_warnings_and_errors.h --- cgal-5.4.1/include/CGAL/Installation/internal/disable_deprecation_warnings_and_errors.h 2022-06-03 19:04:19.000000000 +0000 +++ cgal-5.5/include/CGAL/Installation/internal/disable_deprecation_warnings_and_errors.h 2022-07-13 19:05:09.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/Installation/internal/disable_deprecation_warnings_and_errors.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/Installation/internal/disable_deprecation_warnings_and_errors.h $ // $Id: disable_deprecation_warnings_and_errors.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Installation/internal/enable_third_party_libraries.h cgal-5.5/include/CGAL/Installation/internal/enable_third_party_libraries.h --- cgal-5.4.1/include/CGAL/Installation/internal/enable_third_party_libraries.h 2022-06-03 19:04:19.000000000 +0000 +++ cgal-5.5/include/CGAL/Installation/internal/enable_third_party_libraries.h 2022-07-13 19:05:09.000000000 +0000 @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/Installation/internal/enable_third_party_libraries.h $ -// $Id: enable_third_party_libraries.h 3dd497f 2021-11-03T22:24:51+01:00 Andreas Fabri +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/Installation/internal/enable_third_party_libraries.h $ +// $Id: enable_third_party_libraries.h 2455db6 2022-01-18T11:39:00+00:00 Andreas Fabri // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // @@ -25,13 +25,13 @@ # undef CGAL_USE_GMP #endif -#if defined(__has_include) +#if defined(__has_include) && ( ! defined _MSC_VER || _MSC_VER > 1900) # if CGAL_USE_GMP && ! __has_include() -# pragma CGAL_WARNING( cannot be found. Less efficient number types will be used instead. Define CGAL_NO_GMP=1 if that is on purpose.) +# pragma CGAL_WARNING(" cannot be found. Less efficient number types will be used instead. Define CGAL_NO_GMP=1 if that is on purpose.") # undef CGAL_USE_GMP # undef CGAL_USE_MPFR # elif CGAL_USE_MPFR && ! __has_include() -# pragma CGAL_WARNING( cannot be found and the GMP support in CGAL requires it. Less efficient number types will be used instead. Define CGAL_NO_GMP=1 if that is on purpose.) +# pragma CGAL_WARNING(" cannot be found and the GMP support in CGAL requires it. Less efficient number types will be used instead. Define CGAL_NO_GMP=1 if that is on purpose.") # undef CGAL_USE_GMP # undef CGAL_USE_MPFR # endif // CGAL_USE_MPFR and no diff -Nru cgal-5.4.1/include/CGAL/Interpolation/internal/helpers.h cgal-5.5/include/CGAL/Interpolation/internal/helpers.h --- cgal-5.4.1/include/CGAL/Interpolation/internal/helpers.h 2022-06-03 19:04:25.000000000 +0000 +++ cgal-5.5/include/CGAL/Interpolation/internal/helpers.h 2022-07-13 19:05:14.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Interpolation/include/CGAL/Interpolation/internal/helpers.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Interpolation/include/CGAL/Interpolation/internal/helpers.h $ // $Id: helpers.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/interpolation_functions.h cgal-5.5/include/CGAL/interpolation_functions.h --- cgal-5.4.1/include/CGAL/interpolation_functions.h 2022-06-03 19:04:25.000000000 +0000 +++ cgal-5.5/include/CGAL/interpolation_functions.h 2022-07-13 19:05:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Interpolation/include/CGAL/interpolation_functions.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Interpolation/include/CGAL/interpolation_functions.h $ // $Id: interpolation_functions.h d7224e5 2020-05-24T11:08:44+02:00 Marc Glisse // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Interpolation_gradient_fitting_traits_2.h cgal-5.5/include/CGAL/Interpolation_gradient_fitting_traits_2.h --- cgal-5.4.1/include/CGAL/Interpolation_gradient_fitting_traits_2.h 2022-06-03 19:04:25.000000000 +0000 +++ cgal-5.5/include/CGAL/Interpolation_gradient_fitting_traits_2.h 2022-07-13 19:05:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Interpolation/include/CGAL/Interpolation_gradient_fitting_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Interpolation/include/CGAL/Interpolation_gradient_fitting_traits_2.h $ // $Id: Interpolation_gradient_fitting_traits_2.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Interpolation_traits_2.h cgal-5.5/include/CGAL/Interpolation_traits_2.h --- cgal-5.4.1/include/CGAL/Interpolation_traits_2.h 2022-06-03 19:04:25.000000000 +0000 +++ cgal-5.5/include/CGAL/Interpolation_traits_2.h 2022-07-13 19:05:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Interpolation/include/CGAL/Interpolation_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Interpolation/include/CGAL/Interpolation_traits_2.h $ // $Id: Interpolation_traits_2.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/intersection_2.h cgal-5.5/include/CGAL/intersection_2.h --- cgal-5.4.1/include/CGAL/intersection_2.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/intersection_2.h 2022-07-13 19:05:16.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_2/include/CGAL/intersection_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_2/include/CGAL/intersection_2.h $ // $Id: intersection_2.h 8b41189 2020-03-26T18:58:21+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/intersection_3.h cgal-5.5/include/CGAL/intersection_3.h --- cgal-5.4.1/include/CGAL/intersection_3.h 2022-06-03 19:04:28.000000000 +0000 +++ cgal-5.5/include/CGAL/intersection_3.h 2022-07-13 19:05:19.000000000 +0000 @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/intersection_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/intersection_3.h $ // $Id: intersection_3.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_2/Bbox_2_Bbox_2.h cgal-5.5/include/CGAL/Intersections_2/Bbox_2_Bbox_2.h --- cgal-5.4.1/include/CGAL/Intersections_2/Bbox_2_Bbox_2.h 2022-06-03 19:04:25.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_2/Bbox_2_Bbox_2.h 2022-07-13 19:05:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_2/include/CGAL/Intersections_2/Bbox_2_Bbox_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_2/include/CGAL/Intersections_2/Bbox_2_Bbox_2.h $ // $Id: Bbox_2_Bbox_2.h ce4cbe6 2020-03-19T11:41:57+01:00 Maxime Gimeno // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_2/Bbox_2_Circle_2.h cgal-5.5/include/CGAL/Intersections_2/Bbox_2_Circle_2.h --- cgal-5.4.1/include/CGAL/Intersections_2/Bbox_2_Circle_2.h 2022-06-03 19:04:25.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_2/Bbox_2_Circle_2.h 2022-07-13 19:05:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_2/include/CGAL/Intersections_2/Bbox_2_Circle_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_2/include/CGAL/Intersections_2/Bbox_2_Circle_2.h $ // $Id: Bbox_2_Circle_2.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_2/Bbox_2_Iso_rectangle_2.h cgal-5.5/include/CGAL/Intersections_2/Bbox_2_Iso_rectangle_2.h --- cgal-5.4.1/include/CGAL/Intersections_2/Bbox_2_Iso_rectangle_2.h 2022-06-03 19:04:25.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_2/Bbox_2_Iso_rectangle_2.h 2022-07-13 19:05:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_2/include/CGAL/Intersections_2/Bbox_2_Iso_rectangle_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_2/include/CGAL/Intersections_2/Bbox_2_Iso_rectangle_2.h $ // $Id: Bbox_2_Iso_rectangle_2.h ce4cbe6 2020-03-19T11:41:57+01:00 Maxime Gimeno // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_2/Bbox_2_Line_2.h cgal-5.5/include/CGAL/Intersections_2/Bbox_2_Line_2.h --- cgal-5.4.1/include/CGAL/Intersections_2/Bbox_2_Line_2.h 2022-06-03 19:04:25.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_2/Bbox_2_Line_2.h 2022-07-13 19:05:15.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_2/include/CGAL/Intersections_2/Bbox_2_Line_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_2/include/CGAL/Intersections_2/Bbox_2_Line_2.h $ // $Id: Bbox_2_Line_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_2/Bbox_2_Point_2.h cgal-5.5/include/CGAL/Intersections_2/Bbox_2_Point_2.h --- cgal-5.4.1/include/CGAL/Intersections_2/Bbox_2_Point_2.h 2022-06-03 19:04:25.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_2/Bbox_2_Point_2.h 2022-07-13 19:05:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_2/include/CGAL/Intersections_2/Bbox_2_Point_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_2/include/CGAL/Intersections_2/Bbox_2_Point_2.h $ // $Id: Bbox_2_Point_2.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_2/Bbox_2_Ray_2.h cgal-5.5/include/CGAL/Intersections_2/Bbox_2_Ray_2.h --- cgal-5.4.1/include/CGAL/Intersections_2/Bbox_2_Ray_2.h 2022-06-03 19:04:25.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_2/Bbox_2_Ray_2.h 2022-07-13 19:05:15.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_2/include/CGAL/Intersections_2/Bbox_2_Ray_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_2/include/CGAL/Intersections_2/Bbox_2_Ray_2.h $ // $Id: Bbox_2_Ray_2.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_2/Bbox_2_Segment_2.h cgal-5.5/include/CGAL/Intersections_2/Bbox_2_Segment_2.h --- cgal-5.4.1/include/CGAL/Intersections_2/Bbox_2_Segment_2.h 2022-06-03 19:04:25.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_2/Bbox_2_Segment_2.h 2022-07-13 19:05:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_2/include/CGAL/Intersections_2/Bbox_2_Segment_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_2/include/CGAL/Intersections_2/Bbox_2_Segment_2.h $ // $Id: Bbox_2_Segment_2.h ce4cbe6 2020-03-19T11:41:57+01:00 Maxime Gimeno // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_2/Bbox_2_Triangle_2.h cgal-5.5/include/CGAL/Intersections_2/Bbox_2_Triangle_2.h --- cgal-5.4.1/include/CGAL/Intersections_2/Bbox_2_Triangle_2.h 2022-06-03 19:04:25.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_2/Bbox_2_Triangle_2.h 2022-07-13 19:05:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_2/include/CGAL/Intersections_2/Bbox_2_Triangle_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_2/include/CGAL/Intersections_2/Bbox_2_Triangle_2.h $ // $Id: Bbox_2_Triangle_2.h ce4cbe6 2020-03-19T11:41:57+01:00 Maxime Gimeno // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_2/Circle_2_Circle_2.h cgal-5.5/include/CGAL/Intersections_2/Circle_2_Circle_2.h --- cgal-5.4.1/include/CGAL/Intersections_2/Circle_2_Circle_2.h 2022-06-03 19:04:25.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_2/Circle_2_Circle_2.h 2022-07-13 19:05:15.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_2/include/CGAL/Intersections_2/Circle_2_Circle_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_2/include/CGAL/Intersections_2/Circle_2_Circle_2.h $ // $Id: Circle_2_Circle_2.h 7e62c02 2021-04-12T14:02:37+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_2/Circle_2_Iso_rectangle_2.h cgal-5.5/include/CGAL/Intersections_2/Circle_2_Iso_rectangle_2.h --- cgal-5.4.1/include/CGAL/Intersections_2/Circle_2_Iso_rectangle_2.h 2022-06-03 19:04:25.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_2/Circle_2_Iso_rectangle_2.h 2022-07-13 19:05:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_2/include/CGAL/Intersections_2/Circle_2_Iso_rectangle_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_2/include/CGAL/Intersections_2/Circle_2_Iso_rectangle_2.h $ // $Id: Circle_2_Iso_rectangle_2.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_2/Circle_2_Line_2.h cgal-5.5/include/CGAL/Intersections_2/Circle_2_Line_2.h --- cgal-5.4.1/include/CGAL/Intersections_2/Circle_2_Line_2.h 2022-06-03 19:04:25.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_2/Circle_2_Line_2.h 2022-07-13 19:05:15.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_2/include/CGAL/Intersections_2/Circle_2_Line_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_2/include/CGAL/Intersections_2/Circle_2_Line_2.h $ // $Id: Circle_2_Line_2.h 7e62c02 2021-04-12T14:02:37+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_2/Circle_2_Point_2.h cgal-5.5/include/CGAL/Intersections_2/Circle_2_Point_2.h --- cgal-5.4.1/include/CGAL/Intersections_2/Circle_2_Point_2.h 2022-06-03 19:04:25.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_2/Circle_2_Point_2.h 2022-07-13 19:05:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_2/include/CGAL/Intersections_2/Circle_2_Point_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_2/include/CGAL/Intersections_2/Circle_2_Point_2.h $ // $Id: Circle_2_Point_2.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_2/Circle_2_Ray_2.h cgal-5.5/include/CGAL/Intersections_2/Circle_2_Ray_2.h --- cgal-5.4.1/include/CGAL/Intersections_2/Circle_2_Ray_2.h 2022-06-03 19:04:25.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_2/Circle_2_Ray_2.h 2022-07-13 19:05:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_2/include/CGAL/Intersections_2/Circle_2_Ray_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_2/include/CGAL/Intersections_2/Circle_2_Ray_2.h $ // $Id: Circle_2_Ray_2.h 7e62c02 2021-04-12T14:02:37+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_2/Circle_2_Segment_2.h cgal-5.5/include/CGAL/Intersections_2/Circle_2_Segment_2.h --- cgal-5.4.1/include/CGAL/Intersections_2/Circle_2_Segment_2.h 2022-06-03 19:04:25.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_2/Circle_2_Segment_2.h 2022-07-13 19:05:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_2/include/CGAL/Intersections_2/Circle_2_Segment_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_2/include/CGAL/Intersections_2/Circle_2_Segment_2.h $ // $Id: Circle_2_Segment_2.h 7e62c02 2021-04-12T14:02:37+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_2/Circle_2_Triangle_2.h cgal-5.5/include/CGAL/Intersections_2/Circle_2_Triangle_2.h --- cgal-5.4.1/include/CGAL/Intersections_2/Circle_2_Triangle_2.h 2022-06-03 19:04:25.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_2/Circle_2_Triangle_2.h 2022-07-13 19:05:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_2/include/CGAL/Intersections_2/Circle_2_Triangle_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_2/include/CGAL/Intersections_2/Circle_2_Triangle_2.h $ // $Id: Circle_2_Triangle_2.h 7e62c02 2021-04-12T14:02:37+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_2/internal/Straight_2.h cgal-5.5/include/CGAL/Intersections_2/internal/Straight_2.h --- cgal-5.4.1/include/CGAL/Intersections_2/internal/Straight_2.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_2/internal/Straight_2.h 2022-07-13 19:05:16.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_2/include/CGAL/Intersections_2/internal/Straight_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_2/include/CGAL/Intersections_2/internal/Straight_2.h $ // $Id: Straight_2.h 7e62c02 2021-04-12T14:02:37+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_2/internal/Triangle_2_Triangle_2_do_intersect_impl.h cgal-5.5/include/CGAL/Intersections_2/internal/Triangle_2_Triangle_2_do_intersect_impl.h --- cgal-5.4.1/include/CGAL/Intersections_2/internal/Triangle_2_Triangle_2_do_intersect_impl.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_2/internal/Triangle_2_Triangle_2_do_intersect_impl.h 2022-07-13 19:05:16.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_2/include/CGAL/Intersections_2/internal/Triangle_2_Triangle_2_do_intersect_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_2/include/CGAL/Intersections_2/internal/Triangle_2_Triangle_2_do_intersect_impl.h $ // $Id: Triangle_2_Triangle_2_do_intersect_impl.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_2/internal/Triangle_2_Triangle_2_intersection_impl.h cgal-5.5/include/CGAL/Intersections_2/internal/Triangle_2_Triangle_2_intersection_impl.h --- cgal-5.4.1/include/CGAL/Intersections_2/internal/Triangle_2_Triangle_2_intersection_impl.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_2/internal/Triangle_2_Triangle_2_intersection_impl.h 2022-07-13 19:05:16.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_2/include/CGAL/Intersections_2/internal/Triangle_2_Triangle_2_intersection_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_2/include/CGAL/Intersections_2/internal/Triangle_2_Triangle_2_intersection_impl.h $ // $Id: Triangle_2_Triangle_2_intersection_impl.h fb37f69 2021-09-23T13:15:28+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_2/Iso_rectangle_2_Iso_rectangle_2.h cgal-5.5/include/CGAL/Intersections_2/Iso_rectangle_2_Iso_rectangle_2.h --- cgal-5.4.1/include/CGAL/Intersections_2/Iso_rectangle_2_Iso_rectangle_2.h 2022-06-03 19:04:25.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_2/Iso_rectangle_2_Iso_rectangle_2.h 2022-07-13 19:05:15.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_2/include/CGAL/Intersections_2/Iso_rectangle_2_Iso_rectangle_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_2/include/CGAL/Intersections_2/Iso_rectangle_2_Iso_rectangle_2.h $ // $Id: Iso_rectangle_2_Iso_rectangle_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_2/Iso_rectangle_2_Line_2.h cgal-5.5/include/CGAL/Intersections_2/Iso_rectangle_2_Line_2.h --- cgal-5.4.1/include/CGAL/Intersections_2/Iso_rectangle_2_Line_2.h 2022-06-03 19:04:25.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_2/Iso_rectangle_2_Line_2.h 2022-07-13 19:05:15.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_2/include/CGAL/Intersections_2/Iso_rectangle_2_Line_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_2/include/CGAL/Intersections_2/Iso_rectangle_2_Line_2.h $ // $Id: Iso_rectangle_2_Line_2.h fb37f69 2021-09-23T13:15:28+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_2/Iso_rectangle_2_Point_2.h cgal-5.5/include/CGAL/Intersections_2/Iso_rectangle_2_Point_2.h --- cgal-5.4.1/include/CGAL/Intersections_2/Iso_rectangle_2_Point_2.h 2022-06-03 19:04:25.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_2/Iso_rectangle_2_Point_2.h 2022-07-13 19:05:16.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_2/include/CGAL/Intersections_2/Iso_rectangle_2_Point_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_2/include/CGAL/Intersections_2/Iso_rectangle_2_Point_2.h $ // $Id: Iso_rectangle_2_Point_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_2/Iso_rectangle_2_Ray_2.h cgal-5.5/include/CGAL/Intersections_2/Iso_rectangle_2_Ray_2.h --- cgal-5.4.1/include/CGAL/Intersections_2/Iso_rectangle_2_Ray_2.h 2022-06-03 19:04:25.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_2/Iso_rectangle_2_Ray_2.h 2022-07-13 19:05:16.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_2/include/CGAL/Intersections_2/Iso_rectangle_2_Ray_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_2/include/CGAL/Intersections_2/Iso_rectangle_2_Ray_2.h $ // $Id: Iso_rectangle_2_Ray_2.h fb37f69 2021-09-23T13:15:28+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_2/Iso_rectangle_2_Segment_2.h cgal-5.5/include/CGAL/Intersections_2/Iso_rectangle_2_Segment_2.h --- cgal-5.4.1/include/CGAL/Intersections_2/Iso_rectangle_2_Segment_2.h 2022-06-03 19:04:25.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_2/Iso_rectangle_2_Segment_2.h 2022-07-13 19:05:16.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_2/include/CGAL/Intersections_2/Iso_rectangle_2_Segment_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_2/include/CGAL/Intersections_2/Iso_rectangle_2_Segment_2.h $ // $Id: Iso_rectangle_2_Segment_2.h fb37f69 2021-09-23T13:15:28+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_2/Iso_rectangle_2_Triangle_2.h cgal-5.5/include/CGAL/Intersections_2/Iso_rectangle_2_Triangle_2.h --- cgal-5.4.1/include/CGAL/Intersections_2/Iso_rectangle_2_Triangle_2.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_2/Iso_rectangle_2_Triangle_2.h 2022-07-13 19:05:16.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_2/include/CGAL/Intersections_2/Iso_rectangle_2_Triangle_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_2/include/CGAL/Intersections_2/Iso_rectangle_2_Triangle_2.h $ // $Id: Iso_rectangle_2_Triangle_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_2/Line_2_Line_2.h cgal-5.5/include/CGAL/Intersections_2/Line_2_Line_2.h --- cgal-5.4.1/include/CGAL/Intersections_2/Line_2_Line_2.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_2/Line_2_Line_2.h 2022-07-13 19:05:16.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_2/include/CGAL/Intersections_2/Line_2_Line_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_2/include/CGAL/Intersections_2/Line_2_Line_2.h $ // $Id: Line_2_Line_2.h 9b19c5f 2021-09-23T15:11:18+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_2/Line_2_Point_2.h cgal-5.5/include/CGAL/Intersections_2/Line_2_Point_2.h --- cgal-5.4.1/include/CGAL/Intersections_2/Line_2_Point_2.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_2/Line_2_Point_2.h 2022-07-13 19:05:16.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_2/include/CGAL/Intersections_2/Line_2_Point_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_2/include/CGAL/Intersections_2/Line_2_Point_2.h $ // $Id: Line_2_Point_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_2/Line_2_Ray_2.h cgal-5.5/include/CGAL/Intersections_2/Line_2_Ray_2.h --- cgal-5.4.1/include/CGAL/Intersections_2/Line_2_Ray_2.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_2/Line_2_Ray_2.h 2022-07-13 19:05:16.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_2/include/CGAL/Intersections_2/Line_2_Ray_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_2/include/CGAL/Intersections_2/Line_2_Ray_2.h $ // $Id: Line_2_Ray_2.h 9b19c5f 2021-09-23T15:11:18+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_2/Line_2_Segment_2.h cgal-5.5/include/CGAL/Intersections_2/Line_2_Segment_2.h --- cgal-5.4.1/include/CGAL/Intersections_2/Line_2_Segment_2.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_2/Line_2_Segment_2.h 2022-07-13 19:05:16.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_2/include/CGAL/Intersections_2/Line_2_Segment_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_2/include/CGAL/Intersections_2/Line_2_Segment_2.h $ // $Id: Line_2_Segment_2.h d370326 2021-10-27T14:45:10+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_2/Line_2_Triangle_2.h cgal-5.5/include/CGAL/Intersections_2/Line_2_Triangle_2.h --- cgal-5.4.1/include/CGAL/Intersections_2/Line_2_Triangle_2.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_2/Line_2_Triangle_2.h 2022-07-13 19:05:16.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_2/include/CGAL/Intersections_2/Line_2_Triangle_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_2/include/CGAL/Intersections_2/Line_2_Triangle_2.h $ // $Id: Line_2_Triangle_2.h fb37f69 2021-09-23T13:15:28+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_2/Point_2_Point_2.h cgal-5.5/include/CGAL/Intersections_2/Point_2_Point_2.h --- cgal-5.4.1/include/CGAL/Intersections_2/Point_2_Point_2.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_2/Point_2_Point_2.h 2022-07-13 19:05:16.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_2/include/CGAL/Intersections_2/Point_2_Point_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_2/include/CGAL/Intersections_2/Point_2_Point_2.h $ // $Id: Point_2_Point_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_2/Point_2_Ray_2.h cgal-5.5/include/CGAL/Intersections_2/Point_2_Ray_2.h --- cgal-5.4.1/include/CGAL/Intersections_2/Point_2_Ray_2.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_2/Point_2_Ray_2.h 2022-07-13 19:05:16.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_2/include/CGAL/Intersections_2/Point_2_Ray_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_2/include/CGAL/Intersections_2/Point_2_Ray_2.h $ // $Id: Point_2_Ray_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_2/Point_2_Segment_2.h cgal-5.5/include/CGAL/Intersections_2/Point_2_Segment_2.h --- cgal-5.4.1/include/CGAL/Intersections_2/Point_2_Segment_2.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_2/Point_2_Segment_2.h 2022-07-13 19:05:16.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_2/include/CGAL/Intersections_2/Point_2_Segment_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_2/include/CGAL/Intersections_2/Point_2_Segment_2.h $ // $Id: Point_2_Segment_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_2/Point_2_Triangle_2.h cgal-5.5/include/CGAL/Intersections_2/Point_2_Triangle_2.h --- cgal-5.4.1/include/CGAL/Intersections_2/Point_2_Triangle_2.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_2/Point_2_Triangle_2.h 2022-07-13 19:05:16.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_2/include/CGAL/Intersections_2/Point_2_Triangle_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_2/include/CGAL/Intersections_2/Point_2_Triangle_2.h $ // $Id: Point_2_Triangle_2.h fb37f69 2021-09-23T13:15:28+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_2/Ray_2_Ray_2.h cgal-5.5/include/CGAL/Intersections_2/Ray_2_Ray_2.h --- cgal-5.4.1/include/CGAL/Intersections_2/Ray_2_Ray_2.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_2/Ray_2_Ray_2.h 2022-07-13 19:05:16.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_2/include/CGAL/Intersections_2/Ray_2_Ray_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_2/include/CGAL/Intersections_2/Ray_2_Ray_2.h $ // $Id: Ray_2_Ray_2.h fb37f69 2021-09-23T13:15:28+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_2/Ray_2_Segment_2.h cgal-5.5/include/CGAL/Intersections_2/Ray_2_Segment_2.h --- cgal-5.4.1/include/CGAL/Intersections_2/Ray_2_Segment_2.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_2/Ray_2_Segment_2.h 2022-07-13 19:05:16.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_2/include/CGAL/Intersections_2/Ray_2_Segment_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_2/include/CGAL/Intersections_2/Ray_2_Segment_2.h $ // $Id: Ray_2_Segment_2.h fb37f69 2021-09-23T13:15:28+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_2/Ray_2_Triangle_2.h cgal-5.5/include/CGAL/Intersections_2/Ray_2_Triangle_2.h --- cgal-5.4.1/include/CGAL/Intersections_2/Ray_2_Triangle_2.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_2/Ray_2_Triangle_2.h 2022-07-13 19:05:16.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_2/include/CGAL/Intersections_2/Ray_2_Triangle_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_2/include/CGAL/Intersections_2/Ray_2_Triangle_2.h $ // $Id: Ray_2_Triangle_2.h fb37f69 2021-09-23T13:15:28+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_2/Segment_2_Segment_2.h cgal-5.5/include/CGAL/Intersections_2/Segment_2_Segment_2.h --- cgal-5.4.1/include/CGAL/Intersections_2/Segment_2_Segment_2.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_2/Segment_2_Segment_2.h 2022-07-13 19:05:16.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_2/include/CGAL/Intersections_2/Segment_2_Segment_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_2/include/CGAL/Intersections_2/Segment_2_Segment_2.h $ // $Id: Segment_2_Segment_2.h 3909bfe 2022-05-30T15:53:15+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_2/Segment_2_Triangle_2.h cgal-5.5/include/CGAL/Intersections_2/Segment_2_Triangle_2.h --- cgal-5.4.1/include/CGAL/Intersections_2/Segment_2_Triangle_2.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_2/Segment_2_Triangle_2.h 2022-07-13 19:05:16.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_2/include/CGAL/Intersections_2/Segment_2_Triangle_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_2/include/CGAL/Intersections_2/Segment_2_Triangle_2.h $ // $Id: Segment_2_Triangle_2.h fb37f69 2021-09-23T13:15:28+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_2/Triangle_2_Triangle_2.h cgal-5.5/include/CGAL/Intersections_2/Triangle_2_Triangle_2.h --- cgal-5.4.1/include/CGAL/Intersections_2/Triangle_2_Triangle_2.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_2/Triangle_2_Triangle_2.h 2022-07-13 19:05:16.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_2/include/CGAL/Intersections_2/Triangle_2_Triangle_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_2/include/CGAL/Intersections_2/Triangle_2_Triangle_2.h $ // $Id: Triangle_2_Triangle_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/Bbox_3_Bbox_3.h cgal-5.5/include/CGAL/Intersections_3/Bbox_3_Bbox_3.h --- cgal-5.4.1/include/CGAL/Intersections_3/Bbox_3_Bbox_3.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/Bbox_3_Bbox_3.h 2022-07-13 19:05:16.000000000 +0000 @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/Bbox_3_Bbox_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/Bbox_3_Bbox_3.h $ // $Id: Bbox_3_Bbox_3.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/Bbox_3_Iso_cuboid_3.h cgal-5.5/include/CGAL/Intersections_3/Bbox_3_Iso_cuboid_3.h --- cgal-5.4.1/include/CGAL/Intersections_3/Bbox_3_Iso_cuboid_3.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/Bbox_3_Iso_cuboid_3.h 2022-07-13 19:05:16.000000000 +0000 @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/Bbox_3_Iso_cuboid_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/Bbox_3_Iso_cuboid_3.h $ // $Id: Bbox_3_Iso_cuboid_3.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/Bbox_3_Line_3.h cgal-5.5/include/CGAL/Intersections_3/Bbox_3_Line_3.h --- cgal-5.4.1/include/CGAL/Intersections_3/Bbox_3_Line_3.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/Bbox_3_Line_3.h 2022-07-13 19:05:16.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/Bbox_3_Line_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/Bbox_3_Line_3.h $ // $Id: Bbox_3_Line_3.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/Bbox_3_Plane_3.h cgal-5.5/include/CGAL/Intersections_3/Bbox_3_Plane_3.h --- cgal-5.4.1/include/CGAL/Intersections_3/Bbox_3_Plane_3.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/Bbox_3_Plane_3.h 2022-07-13 19:05:16.000000000 +0000 @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/Bbox_3_Plane_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/Bbox_3_Plane_3.h $ // $Id: Bbox_3_Plane_3.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/Bbox_3_Point_3.h cgal-5.5/include/CGAL/Intersections_3/Bbox_3_Point_3.h --- cgal-5.4.1/include/CGAL/Intersections_3/Bbox_3_Point_3.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/Bbox_3_Point_3.h 2022-07-13 19:05:16.000000000 +0000 @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/Bbox_3_Point_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/Bbox_3_Point_3.h $ // $Id: Bbox_3_Point_3.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/Bbox_3_Ray_3.h cgal-5.5/include/CGAL/Intersections_3/Bbox_3_Ray_3.h --- cgal-5.4.1/include/CGAL/Intersections_3/Bbox_3_Ray_3.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/Bbox_3_Ray_3.h 2022-07-13 19:05:16.000000000 +0000 @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/Bbox_3_Ray_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/Bbox_3_Ray_3.h $ // $Id: Bbox_3_Ray_3.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/Bbox_3_Segment_3.h cgal-5.5/include/CGAL/Intersections_3/Bbox_3_Segment_3.h --- cgal-5.4.1/include/CGAL/Intersections_3/Bbox_3_Segment_3.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/Bbox_3_Segment_3.h 2022-07-13 19:05:16.000000000 +0000 @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/Bbox_3_Segment_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/Bbox_3_Segment_3.h $ // $Id: Bbox_3_Segment_3.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/Bbox_3_Sphere_3.h cgal-5.5/include/CGAL/Intersections_3/Bbox_3_Sphere_3.h --- cgal-5.4.1/include/CGAL/Intersections_3/Bbox_3_Sphere_3.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/Bbox_3_Sphere_3.h 2022-07-13 19:05:16.000000000 +0000 @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/Bbox_3_Sphere_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/Bbox_3_Sphere_3.h $ // $Id: Bbox_3_Sphere_3.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/Bbox_3_Tetrahedron_3.h cgal-5.5/include/CGAL/Intersections_3/Bbox_3_Tetrahedron_3.h --- cgal-5.4.1/include/CGAL/Intersections_3/Bbox_3_Tetrahedron_3.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/Bbox_3_Tetrahedron_3.h 2022-07-13 19:05:16.000000000 +0000 @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/Bbox_3_Tetrahedron_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/Bbox_3_Tetrahedron_3.h $ // $Id: Bbox_3_Tetrahedron_3.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/Bbox_3_Triangle_3.h cgal-5.5/include/CGAL/Intersections_3/Bbox_3_Triangle_3.h --- cgal-5.4.1/include/CGAL/Intersections_3/Bbox_3_Triangle_3.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/Bbox_3_Triangle_3.h 2022-07-13 19:05:16.000000000 +0000 @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/Bbox_3_Triangle_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/Bbox_3_Triangle_3.h $ // $Id: Bbox_3_Triangle_3.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Bbox_3_Iso_cuboid_3_do_intersect.h cgal-5.5/include/CGAL/Intersections_3/internal/Bbox_3_Iso_cuboid_3_do_intersect.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Bbox_3_Iso_cuboid_3_do_intersect.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Bbox_3_Iso_cuboid_3_do_intersect.h 2022-07-13 19:05:17.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Bbox_3_Iso_cuboid_3_do_intersect.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Bbox_3_Iso_cuboid_3_do_intersect.h $ // $Id: Bbox_3_Iso_cuboid_3_do_intersect.h 9c6456f 2021-07-29T14:23:40+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Bbox_3_Iso_cuboid_3_intersection.h cgal-5.5/include/CGAL/Intersections_3/internal/Bbox_3_Iso_cuboid_3_intersection.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Bbox_3_Iso_cuboid_3_intersection.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Bbox_3_Iso_cuboid_3_intersection.h 2022-07-13 19:05:17.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Bbox_3_Iso_cuboid_3_intersection.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Bbox_3_Iso_cuboid_3_intersection.h $ // $Id: Bbox_3_Iso_cuboid_3_intersection.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Bbox_3_Line_3_do_intersect.h cgal-5.5/include/CGAL/Intersections_3/internal/Bbox_3_Line_3_do_intersect.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Bbox_3_Line_3_do_intersect.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Bbox_3_Line_3_do_intersect.h 2022-07-13 19:05:17.000000000 +0000 @@ -4,8 +4,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Bbox_3_Line_3_do_intersect.h $ -// $Id: Bbox_3_Line_3_do_intersect.h 9c6456f 2021-07-29T14:23:40+02:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Bbox_3_Line_3_do_intersect.h $ +// $Id: Bbox_3_Line_3_do_intersect.h a7ff075 2022-02-03T13:21:11+00:00 Andreas Fabri // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // @@ -63,7 +63,7 @@ } //if px is not in the x-slab - if(dmin == FT(0) && (tmin > FT(0) || tmax < FT(0))) + if(is_zero(dmin) && (is_positive(tmin) || is_negative(tmax))) return false; FT dmax = dmin; diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Bbox_3_Line_3_intersection.h cgal-5.5/include/CGAL/Intersections_3/internal/Bbox_3_Line_3_intersection.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Bbox_3_Line_3_intersection.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Bbox_3_Line_3_intersection.h 2022-07-13 19:05:17.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Bbox_3_Line_3_intersection.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Bbox_3_Line_3_intersection.h $ // $Id: Bbox_3_Line_3_intersection.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Bbox_3_Plane_3_do_intersect.h cgal-5.5/include/CGAL/Intersections_3/internal/Bbox_3_Plane_3_do_intersect.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Bbox_3_Plane_3_do_intersect.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Bbox_3_Plane_3_do_intersect.h 2022-07-13 19:05:17.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Bbox_3_Plane_3_do_intersect.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Bbox_3_Plane_3_do_intersect.h $ // $Id: Bbox_3_Plane_3_do_intersect.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Bbox_3_Ray_3_do_intersect.h cgal-5.5/include/CGAL/Intersections_3/internal/Bbox_3_Ray_3_do_intersect.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Bbox_3_Ray_3_do_intersect.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Bbox_3_Ray_3_do_intersect.h 2022-07-13 19:05:17.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Bbox_3_Ray_3_do_intersect.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Bbox_3_Ray_3_do_intersect.h $ // $Id: Bbox_3_Ray_3_do_intersect.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Bbox_3_Ray_3_intersection.h cgal-5.5/include/CGAL/Intersections_3/internal/Bbox_3_Ray_3_intersection.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Bbox_3_Ray_3_intersection.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Bbox_3_Ray_3_intersection.h 2022-07-13 19:05:17.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Bbox_3_Ray_3_intersection.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Bbox_3_Ray_3_intersection.h $ // $Id: Bbox_3_Ray_3_intersection.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Bbox_3_Segment_3_do_intersect.h cgal-5.5/include/CGAL/Intersections_3/internal/Bbox_3_Segment_3_do_intersect.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Bbox_3_Segment_3_do_intersect.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Bbox_3_Segment_3_do_intersect.h 2022-07-13 19:05:17.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Bbox_3_Segment_3_do_intersect.h $ -// $Id: Bbox_3_Segment_3_do_intersect.h e70a62a 2021-06-25T20:16:29+02:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Bbox_3_Segment_3_do_intersect.h $ +// $Id: Bbox_3_Segment_3_do_intersect.h 35eee1b 2022-02-03T15:47:17+00:00 Andreas Fabri // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // @@ -157,13 +157,14 @@ // ----------------------------------- // treat x coord // ----------------------------------- - typedef typename Coercion_traits::Type CFT; + typedef typename Coercion_traits::Type CFT; + typename Coercion_traits::Cast to_CFT; CFT dmin, tmin, tmax, dmax; if(qx >= px) { - if(bounded_0 && px > bxmax) + if(bounded_0 && compare(px, bxmax) == LARGER) return false; // segment on the right of bbox - if(bounded_1 && qx < bxmin) + if(bounded_1 && compare(qx, bxmin) == SMALLER) return false; // segment on the left of bbox if(bounded_1 && bxmax > qx) @@ -173,32 +174,32 @@ } else { - tmax = bxmax - px; + tmax = to_CFT(bxmax) - px; dmax = qx - px; } - tmin = bxmin - px; + tmin = CFT(bxmin) - px; dmin = qx - px; } else { - if(bounded_1 && qx > bxmax) + if(bounded_1 && compare(qx, bxmax) == LARGER) return false; // segment on the right of bbox - if(bounded_0 && px < bxmin) + if(bounded_0 && compare(px, bxmin) == SMALLER) return false; // segment on the left of bbox - if(bounded_1 && bxmin < qx) + if(bounded_1 && compare(bxmin, qx) == SMALLER) { tmax = 1; dmax = 1; } else { - tmax = px - bxmin; + tmax = px - to_CFT(bxmin); dmax = px - qx; } - tmin = px - bxmax; + tmin = px - to_CFT(bxmax); dmin = px - qx; } @@ -210,7 +211,7 @@ if((px == qx) && // <=> (dmin == 0) (!(bounded_0 && bounded_1))) // do not check for a segment { - if(px > bxmax || px < bxmin) + if(compare(px, bxmax) == LARGER || compare(px, bxmin) == SMALLER) return false; // Note: for a segment the condition has already been tested by the two @@ -221,11 +222,11 @@ // is a NaN. But the case with NaNs is treated as if the interval // [t1, t2] was ]-inf, +inf[. - CGAL_assertion(dmin >= 0); - CGAL_assertion(dmax >= 0); + CGAL_assertion(! is_negative(dmin)); + CGAL_assertion(! is_negative(dmax)); if(bounded_0) { - CGAL_assertion(tmin >= 0); - CGAL_assertion(tmax >= 0); + CGAL_assertion(! is_negative(tmin)); + CGAL_assertion(! is_negative(tmax)); } // ----------------------------------- @@ -234,44 +235,44 @@ CFT dymin, tymin, tymax, dymax; if(qy >= py) { - if(bounded_0 && py > bymax) + if(bounded_0 && compare(py, bymax) == LARGER) return false; // segment on the right of bbox - if(bounded_1 && qy < bymin) + if(bounded_1 && compare(qy, bymin) == SMALLER) return false; // segment on the left of bbox - if(bounded_1 && bymax > qy) + if(bounded_1 && compare(bymax, qy) == LARGER) { tymax = 1; dymax = 1; } else { - tymax = bymax - py; + tymax = to_CFT(bymax) - py; dymax = qy - py; } - tymin = bymin - py; + tymin = to_CFT(bymin) - py; dymin = qy - py; } else { - if(bounded_1 && qy > bymax) + if(bounded_1 && compare(qy, bymax) == LARGER) return false; // segment on the right of bbox - if(bounded_0 && py < bymin) + if(bounded_0 && compare(py, bymin) == SMALLER) return false; // segment on the left of bbox - if(bounded_1 && bymin < qy) + if(bounded_1 && compare(bymin, qy) == SMALLER) { tymax = 1; dymax = 1; } else { - tymax = py - bymin; + tymax = py - to_CFT(bymin); dymax = py - qy; } - tymin = py - bymax; + tymin = py - CFT(bymax); dymin = py - qy; } @@ -283,7 +284,7 @@ if((py == qy) && // <=> (dmin == 0) (! (bounded_0 && bounded_1))) // do not check for a segment { - if(py > bymax || py < bymin) + if(py > to_CFT(bymax) || compare(py, bymin) == SMALLER) return false; } @@ -291,12 +292,12 @@ // is a NaN. But the case with NaNs is treated as if the interval // [t1, t2] was ]-inf, +inf[. - CGAL_assertion(dymin >= 0); - CGAL_assertion(dymax >= 0); + CGAL_assertion(! is_negative(dymin)); + CGAL_assertion(! is_negative(dymax)); if(bounded_0) { - CGAL_assertion(tymin >= 0); - CGAL_assertion(tymax >= 0); + CGAL_assertion(! is_negative(tymin)); + CGAL_assertion(! is_negative(tymax)); } // ----------------------------------- @@ -305,44 +306,44 @@ CFT dzmin, tzmin, tzmax, dzmax; if(qz >= pz) { - if(bounded_0 && pz > bzmax) + if(bounded_0 && compare(pz, bzmax)== LARGER) return false; // segment on the right of bbox - if(bounded_1 && qz < bzmin) + if(bounded_1 && compare(qz, bzmin) == SMALLER) return false; // segment on the left of bbox - if(bounded_1 && bzmax > qz) + if(bounded_1 && compare(bzmax, qz) == LARGER) { tzmax = 1; dzmax = 1; } else { - tzmax = bzmax - pz; + tzmax = to_CFT(bzmax) - pz; dzmax = qz - pz; } - tzmin = bzmin - pz; + tzmin = to_CFT(bzmin) - pz; dzmin = qz - pz; } else { - if(bounded_1 && qz > bzmax) + if(bounded_1 && compare(qz, bzmax) == LARGER) return false; // segment on the right of bbox - if(bounded_0 && pz < bzmin) - return false; // segment on the left of bbox + if(bounded_0 && compare(pz, bzmin) == SMALLER) + return false; // segment on the left of bbox - if(bounded_1 && bzmin < qz) + if(bounded_1 && compare(bzmin, qz) == SMALLER) { tzmax = 1; dzmax = 1; } else { - tzmax = pz - bzmin; + tzmax = pz - to_CFT(bzmin); dzmax = pz - qz; } - tzmin = pz - bzmax; + tzmin = pz - to_CFT(bzmax); dzmin = pz - qz; } @@ -354,7 +355,7 @@ if((pz == qz) && // <=> (dmin == 0) (! (bounded_0 && bounded_1))) // do not check for a segment { - if(pz > bzmax || pz < bzmin) + if(compare(pz, bzmax) == LARGER || compare(pz, bzmin) == SMALLER) return false; } @@ -362,12 +363,12 @@ // is a NaN. But the case with NaNs is treated as if the interval // [t1, t2] was ]-inf, +inf[. - CGAL_assertion(dzmin >= 0); - CGAL_assertion(dzmax >= 0); + CGAL_assertion(! is_negative(dzmin)); + CGAL_assertion(! is_negative(dzmax)); if(bounded_0) { - CGAL_assertion(tzmin >= 0); - CGAL_assertion(tzmax >= 0); + CGAL_assertion(! is_negative(tzmin)); + CGAL_assertion(! is_negative(tzmax)); } typedef Do_intersect_bbox_segment_aux_is_greater Is_greater; @@ -421,8 +422,8 @@ if(is_indeterminate(b)) return b; - CGAL_assertion(dmin >= 0); - CGAL_assertion(dmax >= 0); + CGAL_assertion(! is_negative(dmin)); + CGAL_assertion(! is_negative(dmax)); // If t1 > tzmax || tzmin > t2, return false. if((px != qx || py != qy) && diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Bbox_3_Segment_3_intersection.h cgal-5.5/include/CGAL/Intersections_3/internal/Bbox_3_Segment_3_intersection.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Bbox_3_Segment_3_intersection.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Bbox_3_Segment_3_intersection.h 2022-07-13 19:05:17.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Bbox_3_Segment_3_intersection.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Bbox_3_Segment_3_intersection.h $ // $Id: Bbox_3_Segment_3_intersection.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Bbox_3_Sphere_3_do_intersect.h cgal-5.5/include/CGAL/Intersections_3/internal/Bbox_3_Sphere_3_do_intersect.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Bbox_3_Sphere_3_do_intersect.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Bbox_3_Sphere_3_do_intersect.h 2022-07-13 19:05:17.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Bbox_3_Sphere_3_do_intersect.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Bbox_3_Sphere_3_do_intersect.h $ // $Id: Bbox_3_Sphere_3_do_intersect.h 9c6456f 2021-07-29T14:23:40+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Bbox_3_Tetrahedron_3_do_intersect.h cgal-5.5/include/CGAL/Intersections_3/internal/Bbox_3_Tetrahedron_3_do_intersect.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Bbox_3_Tetrahedron_3_do_intersect.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Bbox_3_Tetrahedron_3_do_intersect.h 2022-07-13 19:05:17.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Bbox_3_Tetrahedron_3_do_intersect.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Bbox_3_Tetrahedron_3_do_intersect.h $ // $Id: Bbox_3_Tetrahedron_3_do_intersect.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Bbox_3_Triangle_3_do_intersect.h cgal-5.5/include/CGAL/Intersections_3/internal/Bbox_3_Triangle_3_do_intersect.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Bbox_3_Triangle_3_do_intersect.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Bbox_3_Triangle_3_do_intersect.h 2022-07-13 19:05:17.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Bbox_3_Triangle_3_do_intersect.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Bbox_3_Triangle_3_do_intersect.h $ // $Id: Bbox_3_Triangle_3_do_intersect.h 1e9cad9 2021-09-14T09:32:40+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Iso_cuboid_3_do_intersect.h cgal-5.5/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Iso_cuboid_3_do_intersect.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Iso_cuboid_3_do_intersect.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Iso_cuboid_3_do_intersect.h 2022-07-13 19:05:17.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Iso_cuboid_3_do_intersect.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Iso_cuboid_3_do_intersect.h $ // $Id: Iso_cuboid_3_Iso_cuboid_3_do_intersect.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Iso_cuboid_3_intersection.h cgal-5.5/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Iso_cuboid_3_intersection.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Iso_cuboid_3_intersection.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Iso_cuboid_3_intersection.h 2022-07-13 19:05:17.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Iso_cuboid_3_intersection.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Iso_cuboid_3_intersection.h $ // $Id: Iso_cuboid_3_Iso_cuboid_3_intersection.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Line_3_do_intersect.h cgal-5.5/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Line_3_do_intersect.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Line_3_do_intersect.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Line_3_do_intersect.h 2022-07-13 19:05:17.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Line_3_do_intersect.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Line_3_do_intersect.h $ // $Id: Iso_cuboid_3_Line_3_do_intersect.h e70a62a 2021-06-25T20:16:29+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Line_3_intersection.h cgal-5.5/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Line_3_intersection.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Line_3_intersection.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Line_3_intersection.h 2022-07-13 19:05:17.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Line_3_intersection.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Line_3_intersection.h $ // $Id: Iso_cuboid_3_Line_3_intersection.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Plane_3_do_intersect.h cgal-5.5/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Plane_3_do_intersect.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Plane_3_do_intersect.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Plane_3_do_intersect.h 2022-07-13 19:05:17.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Plane_3_do_intersect.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Plane_3_do_intersect.h $ // $Id: Iso_cuboid_3_Plane_3_do_intersect.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Plane_3_intersection.h cgal-5.5/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Plane_3_intersection.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Plane_3_intersection.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Plane_3_intersection.h 2022-07-13 19:05:17.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Plane_3_intersection.h $ -// $Id: Iso_cuboid_3_Plane_3_intersection.h eb86d35 2022-02-24T09:44:47+01:00 Laurent Rineau +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Plane_3_intersection.h $ +// $Id: Iso_cuboid_3_Plane_3_intersection.h ba00534 2022-02-24T09:49:38+01:00 Laurent Rineau // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Point_3_do_intersect.h cgal-5.5/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Point_3_do_intersect.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Point_3_do_intersect.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Point_3_do_intersect.h 2022-07-13 19:05:17.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Point_3_do_intersect.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Point_3_do_intersect.h $ // $Id: Iso_cuboid_3_Point_3_do_intersect.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Point_3_intersection.h cgal-5.5/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Point_3_intersection.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Point_3_intersection.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Point_3_intersection.h 2022-07-13 19:05:17.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Point_3_intersection.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Point_3_intersection.h $ // $Id: Iso_cuboid_3_Point_3_intersection.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Ray_3_do_intersect.h cgal-5.5/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Ray_3_do_intersect.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Ray_3_do_intersect.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Ray_3_do_intersect.h 2022-07-13 19:05:17.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Ray_3_do_intersect.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Ray_3_do_intersect.h $ // $Id: Iso_cuboid_3_Ray_3_do_intersect.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Ray_3_intersection.h cgal-5.5/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Ray_3_intersection.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Ray_3_intersection.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Ray_3_intersection.h 2022-07-13 19:05:17.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Ray_3_intersection.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Ray_3_intersection.h $ // $Id: Iso_cuboid_3_Ray_3_intersection.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Segment_3_do_intersect.h cgal-5.5/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Segment_3_do_intersect.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Segment_3_do_intersect.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Segment_3_do_intersect.h 2022-07-13 19:05:17.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Segment_3_do_intersect.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Segment_3_do_intersect.h $ // $Id: Iso_cuboid_3_Segment_3_do_intersect.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Segment_3_intersection.h cgal-5.5/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Segment_3_intersection.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Segment_3_intersection.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Segment_3_intersection.h 2022-07-13 19:05:17.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Segment_3_intersection.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Segment_3_intersection.h $ // $Id: Iso_cuboid_3_Segment_3_intersection.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Sphere_3_do_intersect.h cgal-5.5/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Sphere_3_do_intersect.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Sphere_3_do_intersect.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Sphere_3_do_intersect.h 2022-07-13 19:05:17.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Sphere_3_do_intersect.h $ -// $Id: Iso_cuboid_3_Sphere_3_do_intersect.h 9c6456f 2021-07-29T14:23:40+02:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Sphere_3_do_intersect.h $ +// $Id: Iso_cuboid_3_Sphere_3_do_intersect.h a7ff075 2022-02-03T13:21:11+00:00 Andreas Fabri // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // @@ -28,7 +28,7 @@ const K&) { typedef typename K::FT SFT; - typedef typename Coercion_traits::Type FT; + typedef typename Coercion_traits::Type FT; typedef typename K::Point_3 Point; typename Coercion_traits::Cast to_FT; diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Tetrahedron_3_do_intersect.h cgal-5.5/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Tetrahedron_3_do_intersect.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Tetrahedron_3_do_intersect.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Tetrahedron_3_do_intersect.h 2022-07-13 19:05:17.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Tetrahedron_3_do_intersect.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Tetrahedron_3_do_intersect.h $ // $Id: Iso_cuboid_3_Tetrahedron_3_do_intersect.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Triangle_3_do_intersect.h cgal-5.5/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Triangle_3_do_intersect.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Triangle_3_do_intersect.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Triangle_3_do_intersect.h 2022-07-13 19:05:17.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Triangle_3_do_intersect.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Triangle_3_do_intersect.h $ // $Id: Iso_cuboid_3_Triangle_3_do_intersect.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Triangle_3_intersection.h cgal-5.5/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Triangle_3_intersection.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Triangle_3_intersection.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Triangle_3_intersection.h 2022-07-13 19:05:17.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Triangle_3_intersection.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Triangle_3_intersection.h $ // $Id: Iso_cuboid_3_Triangle_3_intersection.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Line_3_Line_3_do_intersect.h cgal-5.5/include/CGAL/Intersections_3/internal/Line_3_Line_3_do_intersect.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Line_3_Line_3_do_intersect.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Line_3_Line_3_do_intersect.h 2022-07-13 19:05:17.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Line_3_Line_3_do_intersect.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Line_3_Line_3_do_intersect.h $ // $Id: Line_3_Line_3_do_intersect.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Line_3_Line_3_intersection.h cgal-5.5/include/CGAL/Intersections_3/internal/Line_3_Line_3_intersection.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Line_3_Line_3_intersection.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Line_3_Line_3_intersection.h 2022-07-13 19:05:18.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Line_3_Line_3_intersection.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Line_3_Line_3_intersection.h $ // $Id: Line_3_Line_3_intersection.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Line_3_Plane_3_do_intersect.h cgal-5.5/include/CGAL/Intersections_3/internal/Line_3_Plane_3_do_intersect.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Line_3_Plane_3_do_intersect.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Line_3_Plane_3_do_intersect.h 2022-07-13 19:05:18.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Line_3_Plane_3_do_intersect.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Line_3_Plane_3_do_intersect.h $ // $Id: Line_3_Plane_3_do_intersect.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Line_3_Plane_3_intersection.h cgal-5.5/include/CGAL/Intersections_3/internal/Line_3_Plane_3_intersection.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Line_3_Plane_3_intersection.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Line_3_Plane_3_intersection.h 2022-07-13 19:05:18.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Line_3_Plane_3_intersection.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Line_3_Plane_3_intersection.h $ // $Id: Line_3_Plane_3_intersection.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Line_3_Point_3_do_intersect.h cgal-5.5/include/CGAL/Intersections_3/internal/Line_3_Point_3_do_intersect.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Line_3_Point_3_do_intersect.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Line_3_Point_3_do_intersect.h 2022-07-13 19:05:18.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Line_3_Point_3_do_intersect.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Line_3_Point_3_do_intersect.h $ // $Id: Line_3_Point_3_do_intersect.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Line_3_Point_3_intersection.h cgal-5.5/include/CGAL/Intersections_3/internal/Line_3_Point_3_intersection.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Line_3_Point_3_intersection.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Line_3_Point_3_intersection.h 2022-07-13 19:05:18.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Line_3_Point_3_intersection.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Line_3_Point_3_intersection.h $ // $Id: Line_3_Point_3_intersection.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Line_3_Ray_3_do_intersect.h cgal-5.5/include/CGAL/Intersections_3/internal/Line_3_Ray_3_do_intersect.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Line_3_Ray_3_do_intersect.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Line_3_Ray_3_do_intersect.h 2022-07-13 19:05:18.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Line_3_Ray_3_do_intersect.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Line_3_Ray_3_do_intersect.h $ // $Id: Line_3_Ray_3_do_intersect.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Line_3_Ray_3_intersection.h cgal-5.5/include/CGAL/Intersections_3/internal/Line_3_Ray_3_intersection.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Line_3_Ray_3_intersection.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Line_3_Ray_3_intersection.h 2022-07-13 19:05:18.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Line_3_Ray_3_intersection.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Line_3_Ray_3_intersection.h $ // $Id: Line_3_Ray_3_intersection.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Line_3_Segment_3_do_intersect.h cgal-5.5/include/CGAL/Intersections_3/internal/Line_3_Segment_3_do_intersect.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Line_3_Segment_3_do_intersect.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Line_3_Segment_3_do_intersect.h 2022-07-13 19:05:18.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Line_3_Segment_3_do_intersect.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Line_3_Segment_3_do_intersect.h $ // $Id: Line_3_Segment_3_do_intersect.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Line_3_Segment_3_intersection.h cgal-5.5/include/CGAL/Intersections_3/internal/Line_3_Segment_3_intersection.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Line_3_Segment_3_intersection.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Line_3_Segment_3_intersection.h 2022-07-13 19:05:18.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Line_3_Segment_3_intersection.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Line_3_Segment_3_intersection.h $ // $Id: Line_3_Segment_3_intersection.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Line_3_Sphere_3_do_intersect.h cgal-5.5/include/CGAL/Intersections_3/internal/Line_3_Sphere_3_do_intersect.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Line_3_Sphere_3_do_intersect.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Line_3_Sphere_3_do_intersect.h 2022-07-13 19:05:18.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Line_3_Sphere_3_do_intersect.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Line_3_Sphere_3_do_intersect.h $ // $Id: Line_3_Sphere_3_do_intersect.h 9f32bd1 2021-09-02T17:36:44+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Line_3_Tetrahedron_3_do_intersect.h cgal-5.5/include/CGAL/Intersections_3/internal/Line_3_Tetrahedron_3_do_intersect.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Line_3_Tetrahedron_3_do_intersect.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Line_3_Tetrahedron_3_do_intersect.h 2022-07-13 19:05:18.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Line_3_Tetrahedron_3_do_intersect.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Line_3_Tetrahedron_3_do_intersect.h $ // $Id: Line_3_Tetrahedron_3_do_intersect.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Line_3_Tetrahedron_3_intersection.h cgal-5.5/include/CGAL/Intersections_3/internal/Line_3_Tetrahedron_3_intersection.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Line_3_Tetrahedron_3_intersection.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Line_3_Tetrahedron_3_intersection.h 2022-07-13 19:05:18.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Line_3_Tetrahedron_3_intersection.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Line_3_Tetrahedron_3_intersection.h $ // $Id: Line_3_Tetrahedron_3_intersection.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Line_3_Triangle_3_do_intersect.h cgal-5.5/include/CGAL/Intersections_3/internal/Line_3_Triangle_3_do_intersect.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Line_3_Triangle_3_do_intersect.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Line_3_Triangle_3_do_intersect.h 2022-07-13 19:05:18.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Line_3_Triangle_3_do_intersect.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Line_3_Triangle_3_do_intersect.h $ // $Id: Line_3_Triangle_3_do_intersect.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Line_3_Triangle_3_intersection.h cgal-5.5/include/CGAL/Intersections_3/internal/Line_3_Triangle_3_intersection.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Line_3_Triangle_3_intersection.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Line_3_Triangle_3_intersection.h 2022-07-13 19:05:18.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Line_3_Triangle_3_intersection.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Line_3_Triangle_3_intersection.h $ // $Id: Line_3_Triangle_3_intersection.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Plane_3_Plane_3_do_intersect.h cgal-5.5/include/CGAL/Intersections_3/internal/Plane_3_Plane_3_do_intersect.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Plane_3_Plane_3_do_intersect.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Plane_3_Plane_3_do_intersect.h 2022-07-13 19:05:18.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Plane_3_Plane_3_do_intersect.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Plane_3_Plane_3_do_intersect.h $ // $Id: Plane_3_Plane_3_do_intersect.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Plane_3_Plane_3_intersection.h cgal-5.5/include/CGAL/Intersections_3/internal/Plane_3_Plane_3_intersection.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Plane_3_Plane_3_intersection.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Plane_3_Plane_3_intersection.h 2022-07-13 19:05:18.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Plane_3_Plane_3_intersection.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Plane_3_Plane_3_intersection.h $ // $Id: Plane_3_Plane_3_intersection.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Plane_3_Plane_3_Plane_3_do_intersect.h cgal-5.5/include/CGAL/Intersections_3/internal/Plane_3_Plane_3_Plane_3_do_intersect.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Plane_3_Plane_3_Plane_3_do_intersect.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Plane_3_Plane_3_Plane_3_do_intersect.h 2022-07-13 19:05:18.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Plane_3_Plane_3_Plane_3_do_intersect.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Plane_3_Plane_3_Plane_3_do_intersect.h $ // $Id: Plane_3_Plane_3_Plane_3_do_intersect.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Plane_3_Plane_3_Plane_3_intersection.h cgal-5.5/include/CGAL/Intersections_3/internal/Plane_3_Plane_3_Plane_3_intersection.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Plane_3_Plane_3_Plane_3_intersection.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Plane_3_Plane_3_Plane_3_intersection.h 2022-07-13 19:05:18.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Plane_3_Plane_3_Plane_3_intersection.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Plane_3_Plane_3_Plane_3_intersection.h $ // $Id: Plane_3_Plane_3_Plane_3_intersection.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Plane_3_Point_3_do_intersect.h cgal-5.5/include/CGAL/Intersections_3/internal/Plane_3_Point_3_do_intersect.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Plane_3_Point_3_do_intersect.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Plane_3_Point_3_do_intersect.h 2022-07-13 19:05:18.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Plane_3_Point_3_do_intersect.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Plane_3_Point_3_do_intersect.h $ // $Id: Plane_3_Point_3_do_intersect.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Plane_3_Point_3_intersection.h cgal-5.5/include/CGAL/Intersections_3/internal/Plane_3_Point_3_intersection.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Plane_3_Point_3_intersection.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Plane_3_Point_3_intersection.h 2022-07-13 19:05:18.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Plane_3_Point_3_intersection.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Plane_3_Point_3_intersection.h $ // $Id: Plane_3_Point_3_intersection.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Plane_3_Ray_3_do_intersect.h cgal-5.5/include/CGAL/Intersections_3/internal/Plane_3_Ray_3_do_intersect.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Plane_3_Ray_3_do_intersect.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Plane_3_Ray_3_do_intersect.h 2022-07-13 19:05:18.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Plane_3_Ray_3_do_intersect.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Plane_3_Ray_3_do_intersect.h $ // $Id: Plane_3_Ray_3_do_intersect.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Plane_3_Ray_3_intersection.h cgal-5.5/include/CGAL/Intersections_3/internal/Plane_3_Ray_3_intersection.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Plane_3_Ray_3_intersection.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Plane_3_Ray_3_intersection.h 2022-07-13 19:05:18.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Plane_3_Ray_3_intersection.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Plane_3_Ray_3_intersection.h $ // $Id: Plane_3_Ray_3_intersection.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Plane_3_Segment_3_do_intersect.h cgal-5.5/include/CGAL/Intersections_3/internal/Plane_3_Segment_3_do_intersect.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Plane_3_Segment_3_do_intersect.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Plane_3_Segment_3_do_intersect.h 2022-07-13 19:05:18.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Plane_3_Segment_3_do_intersect.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Plane_3_Segment_3_do_intersect.h $ // $Id: Plane_3_Segment_3_do_intersect.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Plane_3_Segment_3_intersection.h cgal-5.5/include/CGAL/Intersections_3/internal/Plane_3_Segment_3_intersection.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Plane_3_Segment_3_intersection.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Plane_3_Segment_3_intersection.h 2022-07-13 19:05:18.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Plane_3_Segment_3_intersection.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Plane_3_Segment_3_intersection.h $ // $Id: Plane_3_Segment_3_intersection.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Plane_3_Sphere_3_do_intersect.h cgal-5.5/include/CGAL/Intersections_3/internal/Plane_3_Sphere_3_do_intersect.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Plane_3_Sphere_3_do_intersect.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Plane_3_Sphere_3_do_intersect.h 2022-07-13 19:05:18.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Plane_3_Sphere_3_do_intersect.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Plane_3_Sphere_3_do_intersect.h $ // $Id: Plane_3_Sphere_3_do_intersect.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Plane_3_Sphere_3_intersection.h cgal-5.5/include/CGAL/Intersections_3/internal/Plane_3_Sphere_3_intersection.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Plane_3_Sphere_3_intersection.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Plane_3_Sphere_3_intersection.h 2022-07-13 19:05:18.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Plane_3_Sphere_3_intersection.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Plane_3_Sphere_3_intersection.h $ // $Id: Plane_3_Sphere_3_intersection.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Plane_3_Tetrahedron_3_do_intersect.h cgal-5.5/include/CGAL/Intersections_3/internal/Plane_3_Tetrahedron_3_do_intersect.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Plane_3_Tetrahedron_3_do_intersect.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Plane_3_Tetrahedron_3_do_intersect.h 2022-07-13 19:05:18.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Plane_3_Tetrahedron_3_do_intersect.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Plane_3_Tetrahedron_3_do_intersect.h $ // $Id: Plane_3_Tetrahedron_3_do_intersect.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Plane_3_Tetrahedron_3_intersection.h cgal-5.5/include/CGAL/Intersections_3/internal/Plane_3_Tetrahedron_3_intersection.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Plane_3_Tetrahedron_3_intersection.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Plane_3_Tetrahedron_3_intersection.h 2022-07-13 19:05:18.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Plane_3_Tetrahedron_3_intersection.h $ -// $Id: Plane_3_Tetrahedron_3_intersection.h eb86d35 2022-02-24T09:44:47+01:00 Laurent Rineau +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Plane_3_Tetrahedron_3_intersection.h $ +// $Id: Plane_3_Tetrahedron_3_intersection.h ba00534 2022-02-24T09:49:38+01:00 Laurent Rineau // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Plane_3_Triangle_3_do_intersect.h cgal-5.5/include/CGAL/Intersections_3/internal/Plane_3_Triangle_3_do_intersect.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Plane_3_Triangle_3_do_intersect.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Plane_3_Triangle_3_do_intersect.h 2022-07-13 19:05:18.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Plane_3_Triangle_3_do_intersect.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Plane_3_Triangle_3_do_intersect.h $ // $Id: Plane_3_Triangle_3_do_intersect.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Plane_3_Triangle_3_intersection.h cgal-5.5/include/CGAL/Intersections_3/internal/Plane_3_Triangle_3_intersection.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Plane_3_Triangle_3_intersection.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Plane_3_Triangle_3_intersection.h 2022-07-13 19:05:18.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Plane_3_Triangle_3_intersection.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Plane_3_Triangle_3_intersection.h $ // $Id: Plane_3_Triangle_3_intersection.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Point_3_Point_3_do_intersect.h cgal-5.5/include/CGAL/Intersections_3/internal/Point_3_Point_3_do_intersect.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Point_3_Point_3_do_intersect.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Point_3_Point_3_do_intersect.h 2022-07-13 19:05:18.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Point_3_Point_3_do_intersect.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Point_3_Point_3_do_intersect.h $ // $Id: Point_3_Point_3_do_intersect.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Point_3_Point_3_intersection.h cgal-5.5/include/CGAL/Intersections_3/internal/Point_3_Point_3_intersection.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Point_3_Point_3_intersection.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Point_3_Point_3_intersection.h 2022-07-13 19:05:18.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Point_3_Point_3_intersection.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Point_3_Point_3_intersection.h $ // $Id: Point_3_Point_3_intersection.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Point_3_Ray_3_do_intersect.h cgal-5.5/include/CGAL/Intersections_3/internal/Point_3_Ray_3_do_intersect.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Point_3_Ray_3_do_intersect.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Point_3_Ray_3_do_intersect.h 2022-07-13 19:05:18.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Point_3_Ray_3_do_intersect.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Point_3_Ray_3_do_intersect.h $ // $Id: Point_3_Ray_3_do_intersect.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Point_3_Ray_3_intersection.h cgal-5.5/include/CGAL/Intersections_3/internal/Point_3_Ray_3_intersection.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Point_3_Ray_3_intersection.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Point_3_Ray_3_intersection.h 2022-07-13 19:05:18.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Point_3_Ray_3_intersection.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Point_3_Ray_3_intersection.h $ // $Id: Point_3_Ray_3_intersection.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Point_3_Segment_3_do_intersect.h cgal-5.5/include/CGAL/Intersections_3/internal/Point_3_Segment_3_do_intersect.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Point_3_Segment_3_do_intersect.h 2022-06-03 19:04:28.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Point_3_Segment_3_do_intersect.h 2022-07-13 19:05:18.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Point_3_Segment_3_do_intersect.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Point_3_Segment_3_do_intersect.h $ // $Id: Point_3_Segment_3_do_intersect.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Point_3_Segment_3_intersection.h cgal-5.5/include/CGAL/Intersections_3/internal/Point_3_Segment_3_intersection.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Point_3_Segment_3_intersection.h 2022-06-03 19:04:28.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Point_3_Segment_3_intersection.h 2022-07-13 19:05:18.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Point_3_Segment_3_intersection.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Point_3_Segment_3_intersection.h $ // $Id: Point_3_Segment_3_intersection.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Point_3_Sphere_3_do_intersect.h cgal-5.5/include/CGAL/Intersections_3/internal/Point_3_Sphere_3_do_intersect.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Point_3_Sphere_3_do_intersect.h 2022-06-03 19:04:28.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Point_3_Sphere_3_do_intersect.h 2022-07-13 19:05:18.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Point_3_Sphere_3_do_intersect.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Point_3_Sphere_3_do_intersect.h $ // $Id: Point_3_Sphere_3_do_intersect.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Point_3_Sphere_3_intersection.h cgal-5.5/include/CGAL/Intersections_3/internal/Point_3_Sphere_3_intersection.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Point_3_Sphere_3_intersection.h 2022-06-03 19:04:28.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Point_3_Sphere_3_intersection.h 2022-07-13 19:05:18.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Point_3_Sphere_3_intersection.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Point_3_Sphere_3_intersection.h $ // $Id: Point_3_Sphere_3_intersection.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Point_3_Tetrahedron_3_do_intersect.h cgal-5.5/include/CGAL/Intersections_3/internal/Point_3_Tetrahedron_3_do_intersect.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Point_3_Tetrahedron_3_do_intersect.h 2022-06-03 19:04:28.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Point_3_Tetrahedron_3_do_intersect.h 2022-07-13 19:05:18.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Point_3_Tetrahedron_3_do_intersect.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Point_3_Tetrahedron_3_do_intersect.h $ // $Id: Point_3_Tetrahedron_3_do_intersect.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Point_3_Tetrahedron_3_intersection.h cgal-5.5/include/CGAL/Intersections_3/internal/Point_3_Tetrahedron_3_intersection.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Point_3_Tetrahedron_3_intersection.h 2022-06-03 19:04:28.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Point_3_Tetrahedron_3_intersection.h 2022-07-13 19:05:18.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Point_3_Tetrahedron_3_intersection.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Point_3_Tetrahedron_3_intersection.h $ // $Id: Point_3_Tetrahedron_3_intersection.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Point_3_Triangle_3_do_intersect.h cgal-5.5/include/CGAL/Intersections_3/internal/Point_3_Triangle_3_do_intersect.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Point_3_Triangle_3_do_intersect.h 2022-06-03 19:04:28.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Point_3_Triangle_3_do_intersect.h 2022-07-13 19:05:18.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Point_3_Triangle_3_do_intersect.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Point_3_Triangle_3_do_intersect.h $ // $Id: Point_3_Triangle_3_do_intersect.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Point_3_Triangle_3_intersection.h cgal-5.5/include/CGAL/Intersections_3/internal/Point_3_Triangle_3_intersection.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Point_3_Triangle_3_intersection.h 2022-06-03 19:04:28.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Point_3_Triangle_3_intersection.h 2022-07-13 19:05:18.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Point_3_Triangle_3_intersection.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Point_3_Triangle_3_intersection.h $ // $Id: Point_3_Triangle_3_intersection.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Ray_3_Ray_3_do_intersect.h cgal-5.5/include/CGAL/Intersections_3/internal/Ray_3_Ray_3_do_intersect.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Ray_3_Ray_3_do_intersect.h 2022-06-03 19:04:28.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Ray_3_Ray_3_do_intersect.h 2022-07-13 19:05:18.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Ray_3_Ray_3_do_intersect.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Ray_3_Ray_3_do_intersect.h $ // $Id: Ray_3_Ray_3_do_intersect.h 3afa3b5 2021-06-29T09:25:40+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Ray_3_Ray_3_intersection.h cgal-5.5/include/CGAL/Intersections_3/internal/Ray_3_Ray_3_intersection.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Ray_3_Ray_3_intersection.h 2022-06-03 19:04:28.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Ray_3_Ray_3_intersection.h 2022-07-13 19:05:18.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Ray_3_Ray_3_intersection.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Ray_3_Ray_3_intersection.h $ // $Id: Ray_3_Ray_3_intersection.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Ray_3_Segment_3_do_intersect.h cgal-5.5/include/CGAL/Intersections_3/internal/Ray_3_Segment_3_do_intersect.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Ray_3_Segment_3_do_intersect.h 2022-06-03 19:04:28.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Ray_3_Segment_3_do_intersect.h 2022-07-13 19:05:18.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Ray_3_Segment_3_do_intersect.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Ray_3_Segment_3_do_intersect.h $ // $Id: Ray_3_Segment_3_do_intersect.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Ray_3_Segment_3_intersection.h cgal-5.5/include/CGAL/Intersections_3/internal/Ray_3_Segment_3_intersection.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Ray_3_Segment_3_intersection.h 2022-06-03 19:04:28.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Ray_3_Segment_3_intersection.h 2022-07-13 19:05:18.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Ray_3_Segment_3_intersection.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Ray_3_Segment_3_intersection.h $ // $Id: Ray_3_Segment_3_intersection.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Ray_3_Sphere_3_do_intersect.h cgal-5.5/include/CGAL/Intersections_3/internal/Ray_3_Sphere_3_do_intersect.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Ray_3_Sphere_3_do_intersect.h 2022-06-03 19:04:28.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Ray_3_Sphere_3_do_intersect.h 2022-07-13 19:05:18.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Ray_3_Sphere_3_do_intersect.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Ray_3_Sphere_3_do_intersect.h $ // $Id: Ray_3_Sphere_3_do_intersect.h 9f32bd1 2021-09-02T17:36:44+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Ray_3_Tetrahedron_3_do_intersect.h cgal-5.5/include/CGAL/Intersections_3/internal/Ray_3_Tetrahedron_3_do_intersect.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Ray_3_Tetrahedron_3_do_intersect.h 2022-06-03 19:04:28.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Ray_3_Tetrahedron_3_do_intersect.h 2022-07-13 19:05:18.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Ray_3_Tetrahedron_3_do_intersect.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Ray_3_Tetrahedron_3_do_intersect.h $ // $Id: Ray_3_Tetrahedron_3_do_intersect.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Ray_3_Tetrahedron_3_intersection.h cgal-5.5/include/CGAL/Intersections_3/internal/Ray_3_Tetrahedron_3_intersection.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Ray_3_Tetrahedron_3_intersection.h 2022-06-03 19:04:28.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Ray_3_Tetrahedron_3_intersection.h 2022-07-13 19:05:18.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Ray_3_Tetrahedron_3_intersection.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Ray_3_Tetrahedron_3_intersection.h $ // $Id: Ray_3_Tetrahedron_3_intersection.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Ray_3_Triangle_3_do_intersect.h cgal-5.5/include/CGAL/Intersections_3/internal/Ray_3_Triangle_3_do_intersect.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Ray_3_Triangle_3_do_intersect.h 2022-06-03 19:04:28.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Ray_3_Triangle_3_do_intersect.h 2022-07-13 19:05:18.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Ray_3_Triangle_3_do_intersect.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Ray_3_Triangle_3_do_intersect.h $ // $Id: Ray_3_Triangle_3_do_intersect.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Ray_3_Triangle_3_intersection.h cgal-5.5/include/CGAL/Intersections_3/internal/Ray_3_Triangle_3_intersection.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Ray_3_Triangle_3_intersection.h 2022-06-03 19:04:28.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Ray_3_Triangle_3_intersection.h 2022-07-13 19:05:18.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Ray_3_Triangle_3_intersection.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Ray_3_Triangle_3_intersection.h $ // $Id: Ray_3_Triangle_3_intersection.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Segment_3_Segment_3_do_intersect.h cgal-5.5/include/CGAL/Intersections_3/internal/Segment_3_Segment_3_do_intersect.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Segment_3_Segment_3_do_intersect.h 2022-06-03 19:04:28.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Segment_3_Segment_3_do_intersect.h 2022-07-13 19:05:18.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Segment_3_Segment_3_do_intersect.h $ -// $Id: Segment_3_Segment_3_do_intersect.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Segment_3_Segment_3_do_intersect.h $ +// $Id: Segment_3_Segment_3_do_intersect.h 45c5ef7 2022-06-04T13:17:02+09:00 Brian Spilsbury // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // @@ -30,7 +30,7 @@ { CGAL_precondition(!s1.is_degenerate() && !s2.is_degenerate()); - bool b = do_intersect(s1.supporting_line(), s2.supporting_line(), k); + bool b = internal::do_intersect(s1.supporting_line(), s2.supporting_line(), k); if(b) { // supporting_line intersects: points are coplanar diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Segment_3_Segment_3_intersection.h cgal-5.5/include/CGAL/Intersections_3/internal/Segment_3_Segment_3_intersection.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Segment_3_Segment_3_intersection.h 2022-06-03 19:04:28.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Segment_3_Segment_3_intersection.h 2022-07-13 19:05:18.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Segment_3_Segment_3_intersection.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Segment_3_Segment_3_intersection.h $ // $Id: Segment_3_Segment_3_intersection.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Segment_3_Sphere_3_do_intersect.h cgal-5.5/include/CGAL/Intersections_3/internal/Segment_3_Sphere_3_do_intersect.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Segment_3_Sphere_3_do_intersect.h 2022-06-03 19:04:28.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Segment_3_Sphere_3_do_intersect.h 2022-07-13 19:05:18.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Segment_3_Sphere_3_do_intersect.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Segment_3_Sphere_3_do_intersect.h $ // $Id: Segment_3_Sphere_3_do_intersect.h 9f32bd1 2021-09-02T17:36:44+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Segment_3_Tetrahedron_3_do_intersect.h cgal-5.5/include/CGAL/Intersections_3/internal/Segment_3_Tetrahedron_3_do_intersect.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Segment_3_Tetrahedron_3_do_intersect.h 2022-06-03 19:04:28.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Segment_3_Tetrahedron_3_do_intersect.h 2022-07-13 19:05:18.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Segment_3_Tetrahedron_3_do_intersect.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Segment_3_Tetrahedron_3_do_intersect.h $ // $Id: Segment_3_Tetrahedron_3_do_intersect.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Segment_3_Tetrahedron_3_intersection.h cgal-5.5/include/CGAL/Intersections_3/internal/Segment_3_Tetrahedron_3_intersection.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Segment_3_Tetrahedron_3_intersection.h 2022-06-03 19:04:28.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Segment_3_Tetrahedron_3_intersection.h 2022-07-13 19:05:18.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Segment_3_Tetrahedron_3_intersection.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Segment_3_Tetrahedron_3_intersection.h $ // $Id: Segment_3_Tetrahedron_3_intersection.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Segment_3_Triangle_3_do_intersect.h cgal-5.5/include/CGAL/Intersections_3/internal/Segment_3_Triangle_3_do_intersect.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Segment_3_Triangle_3_do_intersect.h 2022-06-03 19:04:28.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Segment_3_Triangle_3_do_intersect.h 2022-07-13 19:05:18.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Segment_3_Triangle_3_do_intersect.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Segment_3_Triangle_3_do_intersect.h $ // $Id: Segment_3_Triangle_3_do_intersect.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Segment_3_Triangle_3_intersection.h cgal-5.5/include/CGAL/Intersections_3/internal/Segment_3_Triangle_3_intersection.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Segment_3_Triangle_3_intersection.h 2022-06-03 19:04:28.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Segment_3_Triangle_3_intersection.h 2022-07-13 19:05:19.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Segment_3_Triangle_3_intersection.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Segment_3_Triangle_3_intersection.h $ // $Id: Segment_3_Triangle_3_intersection.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Sphere_3_Sphere_3_do_intersect.h cgal-5.5/include/CGAL/Intersections_3/internal/Sphere_3_Sphere_3_do_intersect.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Sphere_3_Sphere_3_do_intersect.h 2022-06-03 19:04:28.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Sphere_3_Sphere_3_do_intersect.h 2022-07-13 19:05:19.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Sphere_3_Sphere_3_do_intersect.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Sphere_3_Sphere_3_do_intersect.h $ // $Id: Sphere_3_Sphere_3_do_intersect.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Sphere_3_Sphere_3_intersection.h cgal-5.5/include/CGAL/Intersections_3/internal/Sphere_3_Sphere_3_intersection.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Sphere_3_Sphere_3_intersection.h 2022-06-03 19:04:28.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Sphere_3_Sphere_3_intersection.h 2022-07-13 19:05:19.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Sphere_3_Sphere_3_intersection.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Sphere_3_Sphere_3_intersection.h $ // $Id: Sphere_3_Sphere_3_intersection.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Sphere_3_Tetrahedron_3_do_intersect.h cgal-5.5/include/CGAL/Intersections_3/internal/Sphere_3_Tetrahedron_3_do_intersect.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Sphere_3_Tetrahedron_3_do_intersect.h 2022-06-03 19:04:28.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Sphere_3_Tetrahedron_3_do_intersect.h 2022-07-13 19:05:19.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Sphere_3_Tetrahedron_3_do_intersect.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Sphere_3_Tetrahedron_3_do_intersect.h $ // $Id: Sphere_3_Tetrahedron_3_do_intersect.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Sphere_3_Triangle_3_do_intersect.h cgal-5.5/include/CGAL/Intersections_3/internal/Sphere_3_Triangle_3_do_intersect.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Sphere_3_Triangle_3_do_intersect.h 2022-06-03 19:04:28.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Sphere_3_Triangle_3_do_intersect.h 2022-07-13 19:05:19.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Sphere_3_Triangle_3_do_intersect.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Sphere_3_Triangle_3_do_intersect.h $ // $Id: Sphere_3_Triangle_3_do_intersect.h 9f32bd1 2021-09-02T17:36:44+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Tetrahedron_3_Bounded_3_do_intersect.h cgal-5.5/include/CGAL/Intersections_3/internal/Tetrahedron_3_Bounded_3_do_intersect.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Tetrahedron_3_Bounded_3_do_intersect.h 2022-06-03 19:04:28.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Tetrahedron_3_Bounded_3_do_intersect.h 2022-07-13 19:05:19.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Tetrahedron_3_Bounded_3_do_intersect.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Tetrahedron_3_Bounded_3_do_intersect.h $ // $Id: Tetrahedron_3_Bounded_3_do_intersect.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Tetrahedron_3_Tetrahedron_3_do_intersect.h cgal-5.5/include/CGAL/Intersections_3/internal/Tetrahedron_3_Tetrahedron_3_do_intersect.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Tetrahedron_3_Tetrahedron_3_do_intersect.h 2022-06-03 19:04:28.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Tetrahedron_3_Tetrahedron_3_do_intersect.h 2022-07-13 19:05:19.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Tetrahedron_3_Tetrahedron_3_do_intersect.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Tetrahedron_3_Tetrahedron_3_do_intersect.h $ // $Id: Tetrahedron_3_Tetrahedron_3_do_intersect.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Tetrahedron_3_Triangle_3_do_intersect.h cgal-5.5/include/CGAL/Intersections_3/internal/Tetrahedron_3_Triangle_3_do_intersect.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Tetrahedron_3_Triangle_3_do_intersect.h 2022-06-03 19:04:28.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Tetrahedron_3_Triangle_3_do_intersect.h 2022-07-13 19:05:19.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Tetrahedron_3_Triangle_3_do_intersect.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Tetrahedron_3_Triangle_3_do_intersect.h $ // $Id: Tetrahedron_3_Triangle_3_do_intersect.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Tetrahedron_3_Triangle_3_intersection.h cgal-5.5/include/CGAL/Intersections_3/internal/Tetrahedron_3_Triangle_3_intersection.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Tetrahedron_3_Triangle_3_intersection.h 2022-06-03 19:04:28.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Tetrahedron_3_Triangle_3_intersection.h 2022-07-13 19:05:19.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Tetrahedron_3_Triangle_3_intersection.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Tetrahedron_3_Triangle_3_intersection.h $ // $Id: Tetrahedron_3_Triangle_3_intersection.h 5b94d2d 2021-08-25T14:52:22+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Tetrahedron_3_Unbounded_3_do_intersect.h cgal-5.5/include/CGAL/Intersections_3/internal/Tetrahedron_3_Unbounded_3_do_intersect.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Tetrahedron_3_Unbounded_3_do_intersect.h 2022-06-03 19:04:28.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Tetrahedron_3_Unbounded_3_do_intersect.h 2022-07-13 19:05:19.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Tetrahedron_3_Unbounded_3_do_intersect.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Tetrahedron_3_Unbounded_3_do_intersect.h $ // $Id: Tetrahedron_3_Unbounded_3_do_intersect.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/tetrahedron_lines_intersections_3.h cgal-5.5/include/CGAL/Intersections_3/internal/tetrahedron_lines_intersections_3.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/tetrahedron_lines_intersections_3.h 2022-06-03 19:04:28.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/tetrahedron_lines_intersections_3.h 2022-07-13 19:05:19.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/tetrahedron_lines_intersections_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/tetrahedron_lines_intersections_3.h $ // $Id: tetrahedron_lines_intersections_3.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Triangle_3_Triangle_3_do_intersect.h cgal-5.5/include/CGAL/Intersections_3/internal/Triangle_3_Triangle_3_do_intersect.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Triangle_3_Triangle_3_do_intersect.h 2022-06-03 19:04:28.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Triangle_3_Triangle_3_do_intersect.h 2022-07-13 19:05:19.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Triangle_3_Triangle_3_do_intersect.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Triangle_3_Triangle_3_do_intersect.h $ // $Id: Triangle_3_Triangle_3_do_intersect.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/internal/Triangle_3_Triangle_3_intersection.h cgal-5.5/include/CGAL/Intersections_3/internal/Triangle_3_Triangle_3_intersection.h --- cgal-5.4.1/include/CGAL/Intersections_3/internal/Triangle_3_Triangle_3_intersection.h 2022-06-03 19:04:28.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/internal/Triangle_3_Triangle_3_intersection.h 2022-07-13 19:05:19.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/internal/Triangle_3_Triangle_3_intersection.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/internal/Triangle_3_Triangle_3_intersection.h $ // $Id: Triangle_3_Triangle_3_intersection.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/Iso_cuboid_3_Iso_cuboid_3.h cgal-5.5/include/CGAL/Intersections_3/Iso_cuboid_3_Iso_cuboid_3.h --- cgal-5.4.1/include/CGAL/Intersections_3/Iso_cuboid_3_Iso_cuboid_3.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/Iso_cuboid_3_Iso_cuboid_3.h 2022-07-13 19:05:16.000000000 +0000 @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/Iso_cuboid_3_Iso_cuboid_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/Iso_cuboid_3_Iso_cuboid_3.h $ // $Id: Iso_cuboid_3_Iso_cuboid_3.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/Iso_cuboid_3_Line_3.h cgal-5.5/include/CGAL/Intersections_3/Iso_cuboid_3_Line_3.h --- cgal-5.4.1/include/CGAL/Intersections_3/Iso_cuboid_3_Line_3.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/Iso_cuboid_3_Line_3.h 2022-07-13 19:05:16.000000000 +0000 @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/Iso_cuboid_3_Line_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/Iso_cuboid_3_Line_3.h $ // $Id: Iso_cuboid_3_Line_3.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/Iso_cuboid_3_Plane_3.h cgal-5.5/include/CGAL/Intersections_3/Iso_cuboid_3_Plane_3.h --- cgal-5.4.1/include/CGAL/Intersections_3/Iso_cuboid_3_Plane_3.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/Iso_cuboid_3_Plane_3.h 2022-07-13 19:05:16.000000000 +0000 @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/Iso_cuboid_3_Plane_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/Iso_cuboid_3_Plane_3.h $ // $Id: Iso_cuboid_3_Plane_3.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/Iso_cuboid_3_Point_3.h cgal-5.5/include/CGAL/Intersections_3/Iso_cuboid_3_Point_3.h --- cgal-5.4.1/include/CGAL/Intersections_3/Iso_cuboid_3_Point_3.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/Iso_cuboid_3_Point_3.h 2022-07-13 19:05:16.000000000 +0000 @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/Iso_cuboid_3_Point_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/Iso_cuboid_3_Point_3.h $ // $Id: Iso_cuboid_3_Point_3.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/Iso_cuboid_3_Ray_3.h cgal-5.5/include/CGAL/Intersections_3/Iso_cuboid_3_Ray_3.h --- cgal-5.4.1/include/CGAL/Intersections_3/Iso_cuboid_3_Ray_3.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/Iso_cuboid_3_Ray_3.h 2022-07-13 19:05:16.000000000 +0000 @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/Iso_cuboid_3_Ray_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/Iso_cuboid_3_Ray_3.h $ // $Id: Iso_cuboid_3_Ray_3.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/Iso_cuboid_3_Segment_3.h cgal-5.5/include/CGAL/Intersections_3/Iso_cuboid_3_Segment_3.h --- cgal-5.4.1/include/CGAL/Intersections_3/Iso_cuboid_3_Segment_3.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/Iso_cuboid_3_Segment_3.h 2022-07-13 19:05:16.000000000 +0000 @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/Iso_cuboid_3_Segment_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/Iso_cuboid_3_Segment_3.h $ // $Id: Iso_cuboid_3_Segment_3.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/Iso_cuboid_3_Sphere_3.h cgal-5.5/include/CGAL/Intersections_3/Iso_cuboid_3_Sphere_3.h --- cgal-5.4.1/include/CGAL/Intersections_3/Iso_cuboid_3_Sphere_3.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/Iso_cuboid_3_Sphere_3.h 2022-07-13 19:05:16.000000000 +0000 @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/Iso_cuboid_3_Sphere_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/Iso_cuboid_3_Sphere_3.h $ // $Id: Iso_cuboid_3_Sphere_3.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/Iso_cuboid_3_Tetrahedron_3.h cgal-5.5/include/CGAL/Intersections_3/Iso_cuboid_3_Tetrahedron_3.h --- cgal-5.4.1/include/CGAL/Intersections_3/Iso_cuboid_3_Tetrahedron_3.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/Iso_cuboid_3_Tetrahedron_3.h 2022-07-13 19:05:16.000000000 +0000 @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/Iso_cuboid_3_Tetrahedron_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/Iso_cuboid_3_Tetrahedron_3.h $ // $Id: Iso_cuboid_3_Tetrahedron_3.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/Iso_cuboid_3_Triangle_3.h cgal-5.5/include/CGAL/Intersections_3/Iso_cuboid_3_Triangle_3.h --- cgal-5.4.1/include/CGAL/Intersections_3/Iso_cuboid_3_Triangle_3.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/Iso_cuboid_3_Triangle_3.h 2022-07-13 19:05:16.000000000 +0000 @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/Iso_cuboid_3_Triangle_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/Iso_cuboid_3_Triangle_3.h $ // $Id: Iso_cuboid_3_Triangle_3.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/Line_3_Line_3.h cgal-5.5/include/CGAL/Intersections_3/Line_3_Line_3.h --- cgal-5.4.1/include/CGAL/Intersections_3/Line_3_Line_3.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/Line_3_Line_3.h 2022-07-13 19:05:16.000000000 +0000 @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/Line_3_Line_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/Line_3_Line_3.h $ // $Id: Line_3_Line_3.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/Line_3_Plane_3.h cgal-5.5/include/CGAL/Intersections_3/Line_3_Plane_3.h --- cgal-5.4.1/include/CGAL/Intersections_3/Line_3_Plane_3.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/Line_3_Plane_3.h 2022-07-13 19:05:16.000000000 +0000 @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/Line_3_Plane_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/Line_3_Plane_3.h $ // $Id: Line_3_Plane_3.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/Line_3_Point_3.h cgal-5.5/include/CGAL/Intersections_3/Line_3_Point_3.h --- cgal-5.4.1/include/CGAL/Intersections_3/Line_3_Point_3.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/Line_3_Point_3.h 2022-07-13 19:05:16.000000000 +0000 @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/Line_3_Point_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/Line_3_Point_3.h $ // $Id: Line_3_Point_3.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/Line_3_Ray_3.h cgal-5.5/include/CGAL/Intersections_3/Line_3_Ray_3.h --- cgal-5.4.1/include/CGAL/Intersections_3/Line_3_Ray_3.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/Line_3_Ray_3.h 2022-07-13 19:05:16.000000000 +0000 @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/Line_3_Ray_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/Line_3_Ray_3.h $ // $Id: Line_3_Ray_3.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/Line_3_Segment_3.h cgal-5.5/include/CGAL/Intersections_3/Line_3_Segment_3.h --- cgal-5.4.1/include/CGAL/Intersections_3/Line_3_Segment_3.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/Line_3_Segment_3.h 2022-07-13 19:05:16.000000000 +0000 @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/Line_3_Segment_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/Line_3_Segment_3.h $ // $Id: Line_3_Segment_3.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/Line_3_Sphere_3.h cgal-5.5/include/CGAL/Intersections_3/Line_3_Sphere_3.h --- cgal-5.4.1/include/CGAL/Intersections_3/Line_3_Sphere_3.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/Line_3_Sphere_3.h 2022-07-13 19:05:16.000000000 +0000 @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/Line_3_Sphere_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/Line_3_Sphere_3.h $ // $Id: Line_3_Sphere_3.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/Line_3_Tetrahedron_3.h cgal-5.5/include/CGAL/Intersections_3/Line_3_Tetrahedron_3.h --- cgal-5.4.1/include/CGAL/Intersections_3/Line_3_Tetrahedron_3.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/Line_3_Tetrahedron_3.h 2022-07-13 19:05:16.000000000 +0000 @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/Line_3_Tetrahedron_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/Line_3_Tetrahedron_3.h $ // $Id: Line_3_Tetrahedron_3.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/Line_3_Triangle_3.h cgal-5.5/include/CGAL/Intersections_3/Line_3_Triangle_3.h --- cgal-5.4.1/include/CGAL/Intersections_3/Line_3_Triangle_3.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/Line_3_Triangle_3.h 2022-07-13 19:05:17.000000000 +0000 @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/Line_3_Triangle_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/Line_3_Triangle_3.h $ // $Id: Line_3_Triangle_3.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/Plane_3_Plane_3.h cgal-5.5/include/CGAL/Intersections_3/Plane_3_Plane_3.h --- cgal-5.4.1/include/CGAL/Intersections_3/Plane_3_Plane_3.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/Plane_3_Plane_3.h 2022-07-13 19:05:17.000000000 +0000 @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/Plane_3_Plane_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/Plane_3_Plane_3.h $ // $Id: Plane_3_Plane_3.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/Plane_3_Plane_3_Plane_3.h cgal-5.5/include/CGAL/Intersections_3/Plane_3_Plane_3_Plane_3.h --- cgal-5.4.1/include/CGAL/Intersections_3/Plane_3_Plane_3_Plane_3.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/Plane_3_Plane_3_Plane_3.h 2022-07-13 19:05:17.000000000 +0000 @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/Plane_3_Plane_3_Plane_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/Plane_3_Plane_3_Plane_3.h $ // $Id: Plane_3_Plane_3_Plane_3.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/Plane_3_Point_3.h cgal-5.5/include/CGAL/Intersections_3/Plane_3_Point_3.h --- cgal-5.4.1/include/CGAL/Intersections_3/Plane_3_Point_3.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/Plane_3_Point_3.h 2022-07-13 19:05:17.000000000 +0000 @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/Plane_3_Point_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/Plane_3_Point_3.h $ // $Id: Plane_3_Point_3.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/Plane_3_Ray_3.h cgal-5.5/include/CGAL/Intersections_3/Plane_3_Ray_3.h --- cgal-5.4.1/include/CGAL/Intersections_3/Plane_3_Ray_3.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/Plane_3_Ray_3.h 2022-07-13 19:05:17.000000000 +0000 @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/Plane_3_Ray_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/Plane_3_Ray_3.h $ // $Id: Plane_3_Ray_3.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/Plane_3_Segment_3.h cgal-5.5/include/CGAL/Intersections_3/Plane_3_Segment_3.h --- cgal-5.4.1/include/CGAL/Intersections_3/Plane_3_Segment_3.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/Plane_3_Segment_3.h 2022-07-13 19:05:17.000000000 +0000 @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/Plane_3_Segment_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/Plane_3_Segment_3.h $ // $Id: Plane_3_Segment_3.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/Plane_3_Sphere_3.h cgal-5.5/include/CGAL/Intersections_3/Plane_3_Sphere_3.h --- cgal-5.4.1/include/CGAL/Intersections_3/Plane_3_Sphere_3.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/Plane_3_Sphere_3.h 2022-07-13 19:05:17.000000000 +0000 @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/Plane_3_Sphere_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/Plane_3_Sphere_3.h $ // $Id: Plane_3_Sphere_3.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/Plane_3_Tetrahedron_3.h cgal-5.5/include/CGAL/Intersections_3/Plane_3_Tetrahedron_3.h --- cgal-5.4.1/include/CGAL/Intersections_3/Plane_3_Tetrahedron_3.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/Plane_3_Tetrahedron_3.h 2022-07-13 19:05:17.000000000 +0000 @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/Plane_3_Tetrahedron_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/Plane_3_Tetrahedron_3.h $ // $Id: Plane_3_Tetrahedron_3.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/Plane_3_Triangle_3.h cgal-5.5/include/CGAL/Intersections_3/Plane_3_Triangle_3.h --- cgal-5.4.1/include/CGAL/Intersections_3/Plane_3_Triangle_3.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/Plane_3_Triangle_3.h 2022-07-13 19:05:17.000000000 +0000 @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/Plane_3_Triangle_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/Plane_3_Triangle_3.h $ // $Id: Plane_3_Triangle_3.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/Point_3_Point_3.h cgal-5.5/include/CGAL/Intersections_3/Point_3_Point_3.h --- cgal-5.4.1/include/CGAL/Intersections_3/Point_3_Point_3.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/Point_3_Point_3.h 2022-07-13 19:05:17.000000000 +0000 @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/Point_3_Point_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/Point_3_Point_3.h $ // $Id: Point_3_Point_3.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/Point_3_Ray_3.h cgal-5.5/include/CGAL/Intersections_3/Point_3_Ray_3.h --- cgal-5.4.1/include/CGAL/Intersections_3/Point_3_Ray_3.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/Point_3_Ray_3.h 2022-07-13 19:05:17.000000000 +0000 @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/Point_3_Ray_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/Point_3_Ray_3.h $ // $Id: Point_3_Ray_3.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/Point_3_Segment_3.h cgal-5.5/include/CGAL/Intersections_3/Point_3_Segment_3.h --- cgal-5.4.1/include/CGAL/Intersections_3/Point_3_Segment_3.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/Point_3_Segment_3.h 2022-07-13 19:05:17.000000000 +0000 @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/Point_3_Segment_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/Point_3_Segment_3.h $ // $Id: Point_3_Segment_3.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/Point_3_Sphere_3.h cgal-5.5/include/CGAL/Intersections_3/Point_3_Sphere_3.h --- cgal-5.4.1/include/CGAL/Intersections_3/Point_3_Sphere_3.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/Point_3_Sphere_3.h 2022-07-13 19:05:17.000000000 +0000 @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/Point_3_Sphere_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/Point_3_Sphere_3.h $ // $Id: Point_3_Sphere_3.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/Point_3_Tetrahedron_3.h cgal-5.5/include/CGAL/Intersections_3/Point_3_Tetrahedron_3.h --- cgal-5.4.1/include/CGAL/Intersections_3/Point_3_Tetrahedron_3.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/Point_3_Tetrahedron_3.h 2022-07-13 19:05:17.000000000 +0000 @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/Point_3_Tetrahedron_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/Point_3_Tetrahedron_3.h $ // $Id: Point_3_Tetrahedron_3.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/Point_3_Triangle_3.h cgal-5.5/include/CGAL/Intersections_3/Point_3_Triangle_3.h --- cgal-5.4.1/include/CGAL/Intersections_3/Point_3_Triangle_3.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/Point_3_Triangle_3.h 2022-07-13 19:05:17.000000000 +0000 @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/Point_3_Triangle_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/Point_3_Triangle_3.h $ // $Id: Point_3_Triangle_3.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/Ray_3_Ray_3.h cgal-5.5/include/CGAL/Intersections_3/Ray_3_Ray_3.h --- cgal-5.4.1/include/CGAL/Intersections_3/Ray_3_Ray_3.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/Ray_3_Ray_3.h 2022-07-13 19:05:17.000000000 +0000 @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/Ray_3_Ray_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/Ray_3_Ray_3.h $ // $Id: Ray_3_Ray_3.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/Ray_3_Segment_3.h cgal-5.5/include/CGAL/Intersections_3/Ray_3_Segment_3.h --- cgal-5.4.1/include/CGAL/Intersections_3/Ray_3_Segment_3.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/Ray_3_Segment_3.h 2022-07-13 19:05:17.000000000 +0000 @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/Ray_3_Segment_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/Ray_3_Segment_3.h $ // $Id: Ray_3_Segment_3.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/Ray_3_Sphere_3.h cgal-5.5/include/CGAL/Intersections_3/Ray_3_Sphere_3.h --- cgal-5.4.1/include/CGAL/Intersections_3/Ray_3_Sphere_3.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/Ray_3_Sphere_3.h 2022-07-13 19:05:17.000000000 +0000 @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/Ray_3_Sphere_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/Ray_3_Sphere_3.h $ // $Id: Ray_3_Sphere_3.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/Ray_3_Tetrahedron_3.h cgal-5.5/include/CGAL/Intersections_3/Ray_3_Tetrahedron_3.h --- cgal-5.4.1/include/CGAL/Intersections_3/Ray_3_Tetrahedron_3.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/Ray_3_Tetrahedron_3.h 2022-07-13 19:05:17.000000000 +0000 @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/Ray_3_Tetrahedron_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/Ray_3_Tetrahedron_3.h $ // $Id: Ray_3_Tetrahedron_3.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/Ray_3_Triangle_3.h cgal-5.5/include/CGAL/Intersections_3/Ray_3_Triangle_3.h --- cgal-5.4.1/include/CGAL/Intersections_3/Ray_3_Triangle_3.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/Ray_3_Triangle_3.h 2022-07-13 19:05:17.000000000 +0000 @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/Ray_3_Triangle_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/Ray_3_Triangle_3.h $ // $Id: Ray_3_Triangle_3.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/Segment_3_Segment_3.h cgal-5.5/include/CGAL/Intersections_3/Segment_3_Segment_3.h --- cgal-5.4.1/include/CGAL/Intersections_3/Segment_3_Segment_3.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/Segment_3_Segment_3.h 2022-07-13 19:05:17.000000000 +0000 @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/Segment_3_Segment_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/Segment_3_Segment_3.h $ // $Id: Segment_3_Segment_3.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/Segment_3_Sphere_3.h cgal-5.5/include/CGAL/Intersections_3/Segment_3_Sphere_3.h --- cgal-5.4.1/include/CGAL/Intersections_3/Segment_3_Sphere_3.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/Segment_3_Sphere_3.h 2022-07-13 19:05:17.000000000 +0000 @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/Segment_3_Sphere_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/Segment_3_Sphere_3.h $ // $Id: Segment_3_Sphere_3.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/Segment_3_Tetrahedron_3.h cgal-5.5/include/CGAL/Intersections_3/Segment_3_Tetrahedron_3.h --- cgal-5.4.1/include/CGAL/Intersections_3/Segment_3_Tetrahedron_3.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/Segment_3_Tetrahedron_3.h 2022-07-13 19:05:17.000000000 +0000 @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/Segment_3_Tetrahedron_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/Segment_3_Tetrahedron_3.h $ // $Id: Segment_3_Tetrahedron_3.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/Segment_3_Triangle_3.h cgal-5.5/include/CGAL/Intersections_3/Segment_3_Triangle_3.h --- cgal-5.4.1/include/CGAL/Intersections_3/Segment_3_Triangle_3.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/Segment_3_Triangle_3.h 2022-07-13 19:05:17.000000000 +0000 @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/Segment_3_Triangle_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/Segment_3_Triangle_3.h $ // $Id: Segment_3_Triangle_3.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/Sphere_3_Sphere_3.h cgal-5.5/include/CGAL/Intersections_3/Sphere_3_Sphere_3.h --- cgal-5.4.1/include/CGAL/Intersections_3/Sphere_3_Sphere_3.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/Sphere_3_Sphere_3.h 2022-07-13 19:05:17.000000000 +0000 @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/Sphere_3_Sphere_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/Sphere_3_Sphere_3.h $ // $Id: Sphere_3_Sphere_3.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/Sphere_3_Tetrahedron_3.h cgal-5.5/include/CGAL/Intersections_3/Sphere_3_Tetrahedron_3.h --- cgal-5.4.1/include/CGAL/Intersections_3/Sphere_3_Tetrahedron_3.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/Sphere_3_Tetrahedron_3.h 2022-07-13 19:05:17.000000000 +0000 @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/Sphere_3_Tetrahedron_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/Sphere_3_Tetrahedron_3.h $ // $Id: Sphere_3_Tetrahedron_3.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/Sphere_3_Triangle_3.h cgal-5.5/include/CGAL/Intersections_3/Sphere_3_Triangle_3.h --- cgal-5.4.1/include/CGAL/Intersections_3/Sphere_3_Triangle_3.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/Sphere_3_Triangle_3.h 2022-07-13 19:05:17.000000000 +0000 @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/Sphere_3_Triangle_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/Sphere_3_Triangle_3.h $ // $Id: Sphere_3_Triangle_3.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/Tetrahedron_3_Tetrahedron_3.h cgal-5.5/include/CGAL/Intersections_3/Tetrahedron_3_Tetrahedron_3.h --- cgal-5.4.1/include/CGAL/Intersections_3/Tetrahedron_3_Tetrahedron_3.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/Tetrahedron_3_Tetrahedron_3.h 2022-07-13 19:05:17.000000000 +0000 @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/Tetrahedron_3_Tetrahedron_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/Tetrahedron_3_Tetrahedron_3.h $ // $Id: Tetrahedron_3_Tetrahedron_3.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/Tetrahedron_3_Triangle_3.h cgal-5.5/include/CGAL/Intersections_3/Tetrahedron_3_Triangle_3.h --- cgal-5.4.1/include/CGAL/Intersections_3/Tetrahedron_3_Triangle_3.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/Tetrahedron_3_Triangle_3.h 2022-07-13 19:05:17.000000000 +0000 @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/Tetrahedron_3_Triangle_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/Tetrahedron_3_Triangle_3.h $ // $Id: Tetrahedron_3_Triangle_3.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersections_3/Triangle_3_Triangle_3.h cgal-5.5/include/CGAL/Intersections_3/Triangle_3_Triangle_3.h --- cgal-5.4.1/include/CGAL/Intersections_3/Triangle_3_Triangle_3.h 2022-06-03 19:04:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersections_3/Triangle_3_Triangle_3.h 2022-07-13 19:05:17.000000000 +0000 @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersections_3/Triangle_3_Triangle_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersections_3/Triangle_3_Triangle_3.h $ // $Id: Triangle_3_Triangle_3.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/intersections_d.h cgal-5.5/include/CGAL/intersections_d.h --- cgal-5.4.1/include/CGAL/intersections_d.h 2022-06-03 19:04:39.000000000 +0000 +++ cgal-5.5/include/CGAL/intersections_d.h 2022-07-13 19:05:31.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_d/include/CGAL/intersections_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_d/include/CGAL/intersections_d.h $ // $Id: intersections_d.h e4f5d0b 2020-07-22T16:28:40+02:00 Dmitry Anisimov // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/intersections.h cgal-5.5/include/CGAL/intersections.h --- cgal-5.4.1/include/CGAL/intersections.h 2022-06-03 19:04:28.000000000 +0000 +++ cgal-5.5/include/CGAL/intersections.h 2022-07-13 19:05:19.000000000 +0000 @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/intersections.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/intersections.h $ // $Id: intersections.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Intersection_traits_2.h cgal-5.5/include/CGAL/Intersection_traits_2.h --- cgal-5.4.1/include/CGAL/Intersection_traits_2.h 2022-06-03 19:04:25.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersection_traits_2.h 2022-07-13 19:05:15.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_2/include/CGAL/Intersection_traits_2.h $ -// $Id: Intersection_traits_2.h 8b41189 2020-03-26T18:58:21+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_2/include/CGAL/Intersection_traits_2.h $ +// $Id: Intersection_traits_2.h 1491983 2022-01-18T11:36:56+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // @@ -14,6 +14,7 @@ #define CGAL_INTERSECTION_TRAITS_2_H #include +#include #include #include diff -Nru cgal-5.4.1/include/CGAL/Intersection_traits_3.h cgal-5.5/include/CGAL/Intersection_traits_3.h --- cgal-5.4.1/include/CGAL/Intersection_traits_3.h 2022-06-03 19:04:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersection_traits_3.h 2022-07-13 19:05:16.000000000 +0000 @@ -9,8 +9,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_3/include/CGAL/Intersection_traits_3.h $ -// $Id: Intersection_traits_3.h c2d1adf 2021-06-23T17:34:48+02:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_3/include/CGAL/Intersection_traits_3.h $ +// $Id: Intersection_traits_3.h 1491983 2022-01-18T11:36:56+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // @@ -20,6 +20,7 @@ #define CGAL_INTERSECTION_TRAITS_3_H #include +#include #include #include diff -Nru cgal-5.4.1/include/CGAL/Intersection_traits.h cgal-5.5/include/CGAL/Intersection_traits.h --- cgal-5.4.1/include/CGAL/Intersection_traits.h 2022-06-03 19:04:25.000000000 +0000 +++ cgal-5.5/include/CGAL/Intersection_traits.h 2022-07-13 19:05:15.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Intersections_2/include/CGAL/Intersection_traits.h $ -// $Id: Intersection_traits.h 9ed943e 2021-06-23T17:38:22+02:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Intersections_2/include/CGAL/Intersection_traits.h $ +// $Id: Intersection_traits.h 1d01b0d 2022-01-18T09:20:03+00:00 Andreas Fabri // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // @@ -88,28 +88,6 @@ }; -// Alias that gets the Kernel automatically and does some error checking. -// Including corresponding specialization for Bbox, as it has no Kernel. -template -class IT : public Intersection_traits< typename Kernel_traits::Kernel, A, B > { - typedef typename Kernel_traits::Kernel A_Kernel; - typedef typename Kernel_traits::Kernel B_Kernel; - // CGAL_static_assertion_msg( (boost::is_same< A_Kernel, B_Kernel>::value), - // "IT instantiated with objects from two different Kernels"); -}; - -class Bbox_2; -class Bbox_3; - -template -class IT : public Intersection_traits< typename Kernel_traits::Kernel, CGAL::Bbox_2, B > -{ }; - -template -class IT : public Intersection_traits< typename Kernel_traits::Kernel, CGAL::Bbox_3, B > -{ }; - - namespace Intersections { namespace internal { diff -Nru cgal-5.4.1/include/CGAL/Interval_arithmetic.h cgal-5.5/include/CGAL/Interval_arithmetic.h --- cgal-5.4.1/include/CGAL/Interval_arithmetic.h 2022-06-03 19:05:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Interval_arithmetic.h 2022-07-13 19:05:54.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/Interval_arithmetic.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/Interval_arithmetic.h $ // $Id: Interval_arithmetic.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Interval_arithmetic_impl.h cgal-5.5/include/CGAL/Interval_arithmetic_impl.h --- cgal-5.4.1/include/CGAL/Interval_arithmetic_impl.h 2022-06-03 19:05:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Interval_arithmetic_impl.h 2022-07-13 19:05:54.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/Interval_arithmetic_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/Interval_arithmetic_impl.h $ // $Id: Interval_arithmetic_impl.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Interval_nt.h cgal-5.5/include/CGAL/Interval_nt.h --- cgal-5.4.1/include/CGAL/Interval_nt.h 2022-06-03 19:05:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Interval_nt.h 2022-07-13 19:05:54.000000000 +0000 @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/Interval_nt.h $ -// $Id: Interval_nt.h 4e519a3 2021-05-05T13:15:37+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/Interval_nt.h $ +// $Id: Interval_nt.h 6486844 2022-05-10T11:30:39+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // @@ -49,7 +49,7 @@ // gcc's __builtin_constant_p does not like arguments with side effects. Be // careful not to use this macro for something that the compiler will have // trouble eliminating as dead code. -# define CGAL_CST_TRUE(X) ({ bool _ugly_ = (X); __builtin_constant_p(_ugly_) && _ugly_; }) +# define CGAL_CST_TRUE(X) __extension__ ({ bool _ugly_ = (X); __builtin_constant_p(_ugly_) && _ugly_; }) #else # define CGAL_CST_TRUE(X) false #endif @@ -110,6 +110,8 @@ bool exact = ((unsigned long long)d == i) || (i <= safe); if (!CGAL_CST_TRUE(exact)) #endif + // This requires a suitable rounding mode, which we always set for + // arithmetic, but not always for a conversion... *this += smallest(); } @@ -146,22 +148,28 @@ explicit Interval_nt(__m128d v) : val(v) {} #endif - Interval_nt(double i, double s) + // Unchecked version for Lazy_rep in Lazy.h. + struct no_check_t {}; + Interval_nt(double i, double s, no_check_t) #ifdef CGAL_USE_SSE2 : val(_mm_setr_pd(-i, s)) #else : _inf(-i), _sup(s) #endif { +#ifndef CGAL_DISABLE_ROUNDING_MATH_CHECK + CGAL_assertion_code((void) tester;) // Necessary to trigger a runtime test of rounding modes. +#endif + } + + Interval_nt(double i, double s) : Interval_nt(i, s, no_check_t()) + { // Previously it was: // CGAL_assertion_msg(!(i>s); // But MSVC++ 2012 optimizes the test "!(i>s)" to "i<=s", even with // /fp:strict. If 'i' or 's' is a NaN, that makes a difference. CGAL_assertion_msg( (!is_valid(i)) || (!is_valid(s)) || (!(i>s)), " Variable used before being initialized (or CGAL bug)"); -#ifndef CGAL_DISABLE_ROUNDING_MATH_CHECK - CGAL_assertion_code((void) tester;) // Necessary to trigger a runtime test of rounding modes. -#endif } Interval_nt(const Pair & p) diff -Nru cgal-5.4.1/include/CGAL/Interval_skip_list.h cgal-5.5/include/CGAL/Interval_skip_list.h --- cgal-5.4.1/include/CGAL/Interval_skip_list.h 2022-06-03 19:04:28.000000000 +0000 +++ cgal-5.5/include/CGAL/Interval_skip_list.h 2022-07-13 19:05:19.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Interval_skip_list/include/CGAL/Interval_skip_list.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Interval_skip_list/include/CGAL/Interval_skip_list.h $ // $Id: Interval_skip_list.h d1a323c 2020-03-26T19:24:14+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Interval_skip_list_interval.h cgal-5.5/include/CGAL/Interval_skip_list_interval.h --- cgal-5.4.1/include/CGAL/Interval_skip_list_interval.h 2022-06-03 19:04:28.000000000 +0000 +++ cgal-5.5/include/CGAL/Interval_skip_list_interval.h 2022-07-13 19:05:19.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Interval_skip_list/include/CGAL/Interval_skip_list_interval.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Interval_skip_list/include/CGAL/Interval_skip_list_interval.h $ // $Id: Interval_skip_list_interval.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Interval_traits.h cgal-5.5/include/CGAL/Interval_traits.h --- cgal-5.4.1/include/CGAL/Interval_traits.h 2022-06-03 19:04:28.000000000 +0000 +++ cgal-5.5/include/CGAL/Interval_traits.h 2022-07-13 19:05:19.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Interval_support/include/CGAL/Interval_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Interval_support/include/CGAL/Interval_traits.h $ // $Id: Interval_traits.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/int.h cgal-5.5/include/CGAL/int.h --- cgal-5.4.1/include/CGAL/int.h 2022-06-03 19:05:01.000000000 +0000 +++ cgal-5.5/include/CGAL/int.h 2022-07-13 19:05:55.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/int.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/int.h $ // $Id: int.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Inverse_index.h cgal-5.5/include/CGAL/Inverse_index.h --- cgal-5.4.1/include/CGAL/Inverse_index.h 2022-06-03 19:05:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Inverse_index.h 2022-07-13 19:06:27.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/Inverse_index.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/Inverse_index.h $ // $Id: Inverse_index.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/3MF/read_3mf.h cgal-5.5/include/CGAL/IO/3MF/read_3mf.h --- cgal-5.4.1/include/CGAL/IO/3MF/read_3mf.h 2022-06-03 19:05:51.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/3MF/read_3mf.h 2022-07-13 19:06:48.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Stream_support/include/CGAL/IO/3MF/read_3mf.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Stream_support/include/CGAL/IO/3MF/read_3mf.h $ // $Id: read_3mf.h fb6f703 2021-05-04T14:07:49+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/3MF/write_3mf.h cgal-5.5/include/CGAL/IO/3MF/write_3mf.h --- cgal-5.4.1/include/CGAL/IO/3MF/write_3mf.h 2022-06-03 19:05:51.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/3MF/write_3mf.h 2022-07-13 19:06:48.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Stream_support/include/CGAL/IO/3MF/write_3mf.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Stream_support/include/CGAL/IO/3MF/write_3mf.h $ // $Id: write_3mf.h 1f45360 2021-01-26T09:05:24+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/3MF.h cgal-5.5/include/CGAL/IO/3MF.h --- cgal-5.4.1/include/CGAL/IO/3MF.h 2022-06-03 19:05:51.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/3MF.h 2022-07-13 19:06:48.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org); // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Stream_support/include/CGAL/IO/3MF.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Stream_support/include/CGAL/IO/3MF.h $ // $Id: 3MF.h fb6f703 2021-05-04T14:07:49+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/Arrangement_2_reader.h cgal-5.5/include/CGAL/IO/Arrangement_2_reader.h --- cgal-5.4.1/include/CGAL/IO/Arrangement_2_reader.h 2022-06-03 19:03:45.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/Arrangement_2_reader.h 2022-07-13 19:04:31.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/IO/Arrangement_2_reader.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/IO/Arrangement_2_reader.h $ // $Id: Arrangement_2_reader.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/Arrangement_2_writer.h cgal-5.5/include/CGAL/IO/Arrangement_2_writer.h --- cgal-5.4.1/include/CGAL/IO/Arrangement_2_writer.h 2022-06-03 19:03:45.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/Arrangement_2_writer.h 2022-07-13 19:04:31.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/IO/Arrangement_2_writer.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/IO/Arrangement_2_writer.h $ // $Id: Arrangement_2_writer.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/Arr_iostream.h cgal-5.5/include/CGAL/IO/Arr_iostream.h --- cgal-5.4.1/include/CGAL/IO/Arr_iostream.h 2022-06-03 19:03:45.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/Arr_iostream.h 2022-07-13 19:04:30.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/IO/Arr_iostream.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/IO/Arr_iostream.h $ // $Id: Arr_iostream.h 755693b 2021-05-03T13:25:26+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/Arr_text_formatter.h cgal-5.5/include/CGAL/IO/Arr_text_formatter.h --- cgal-5.4.1/include/CGAL/IO/Arr_text_formatter.h 2022-06-03 19:03:45.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/Arr_text_formatter.h 2022-07-13 19:04:30.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/IO/Arr_text_formatter.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/IO/Arr_text_formatter.h $ // $Id: Arr_text_formatter.h 5e73fe1 2021-08-04T12:22:09+03:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/Arr_with_history_2_reader.h cgal-5.5/include/CGAL/IO/Arr_with_history_2_reader.h --- cgal-5.4.1/include/CGAL/IO/Arr_with_history_2_reader.h 2022-06-03 19:03:45.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/Arr_with_history_2_reader.h 2022-07-13 19:04:30.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/IO/Arr_with_history_2_reader.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/IO/Arr_with_history_2_reader.h $ // $Id: Arr_with_history_2_reader.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/Arr_with_history_2_writer.h cgal-5.5/include/CGAL/IO/Arr_with_history_2_writer.h --- cgal-5.4.1/include/CGAL/IO/Arr_with_history_2_writer.h 2022-06-03 19:03:45.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/Arr_with_history_2_writer.h 2022-07-13 19:04:30.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/IO/Arr_with_history_2_writer.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/IO/Arr_with_history_2_writer.h $ // $Id: Arr_with_history_2_writer.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/Arr_with_history_iostream.h cgal-5.5/include/CGAL/IO/Arr_with_history_iostream.h --- cgal-5.4.1/include/CGAL/IO/Arr_with_history_iostream.h 2022-06-03 19:03:45.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/Arr_with_history_iostream.h 2022-07-13 19:04:30.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/IO/Arr_with_history_iostream.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/IO/Arr_with_history_iostream.h $ // $Id: Arr_with_history_iostream.h 755693b 2021-05-03T13:25:26+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/Arr_with_history_text_formatter.h cgal-5.5/include/CGAL/IO/Arr_with_history_text_formatter.h --- cgal-5.4.1/include/CGAL/IO/Arr_with_history_text_formatter.h 2022-06-03 19:03:45.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/Arr_with_history_text_formatter.h 2022-07-13 19:04:31.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/IO/Arr_with_history_text_formatter.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/IO/Arr_with_history_text_formatter.h $ // $Id: Arr_with_history_text_formatter.h 78ff918 2021-06-23T23:34:14+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/binary_file_io.h cgal-5.5/include/CGAL/IO/binary_file_io.h --- cgal-5.4.1/include/CGAL/IO/binary_file_io.h 2022-06-03 19:05:52.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/binary_file_io.h 2022-07-13 19:06:49.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Stream_support/include/CGAL/IO/binary_file_io.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Stream_support/include/CGAL/IO/binary_file_io.h $ // $Id: binary_file_io.h a34debc 2021-06-23T22:56:35+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/Color.h cgal-5.5/include/CGAL/IO/Color.h --- cgal-5.4.1/include/CGAL/IO/Color.h 2022-06-03 19:05:51.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/Color.h 2022-07-13 19:06:48.000000000 +0000 @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Stream_support/include/CGAL/IO/Color.h $ -// $Id: Color.h 115fa5a 2021-12-14T14:01:21+00:00 Andreas Fabri +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Stream_support/include/CGAL/IO/Color.h $ +// $Id: Color.h 98ee8d7 2022-02-25T14:54:48+01:00 Charrière Maxime // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // @@ -132,6 +132,11 @@ return !( (*this) == c); } + bool operator<(const Color& c) const + { + return m_data < c.to_rgba(); + } + unsigned char r() const { return red(); } unsigned char g() const { return green(); } unsigned char b() const { return blue(); } @@ -206,7 +211,7 @@ /*! replaces the rgb values of the colors by the one given as parameters. */ - void set_rgb (unsigned char red, + Color& set_rgb (unsigned char red, unsigned char green, unsigned char blue, unsigned char alpha = 255) @@ -215,13 +220,15 @@ m_data[1] = green; m_data[2] = blue; m_data[3] = alpha; + + return *this; } /*! replaces the rgb values of the colors by the conversion to rgb of the hsv values given as parameters. */ - void set_hsv (double hue, + Color& set_hsv (double hue, double saturation, double value, unsigned char alpha = 255) @@ -275,6 +282,8 @@ m_data[1] = (unsigned char)g; m_data[2] = (unsigned char)b; m_data[3] = alpha; + + return *this; } /// @} diff -Nru cgal-5.4.1/include/CGAL/IO/Complex_2_in_triangulation_3_file_writer.h cgal-5.5/include/CGAL/IO/Complex_2_in_triangulation_3_file_writer.h --- cgal-5.4.1/include/CGAL/IO/Complex_2_in_triangulation_3_file_writer.h 2022-06-03 19:05:59.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/Complex_2_in_triangulation_3_file_writer.h 2022-07-13 19:06:56.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesher/include/CGAL/IO/Complex_2_in_triangulation_3_file_writer.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesher/include/CGAL/IO/Complex_2_in_triangulation_3_file_writer.h $ // $Id: Complex_2_in_triangulation_3_file_writer.h 580a1ef 2020-05-22T15:31:50+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/Complex_2_in_triangulation_3_polyhedron_builder.h cgal-5.5/include/CGAL/IO/Complex_2_in_triangulation_3_polyhedron_builder.h --- cgal-5.4.1/include/CGAL/IO/Complex_2_in_triangulation_3_polyhedron_builder.h 2022-06-03 19:05:59.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/Complex_2_in_triangulation_3_polyhedron_builder.h 2022-07-13 19:06:56.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesher/include/CGAL/IO/Complex_2_in_triangulation_3_polyhedron_builder.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesher/include/CGAL/IO/Complex_2_in_triangulation_3_polyhedron_builder.h $ // $Id: Complex_2_in_triangulation_3_polyhedron_builder.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/Complex_2_in_triangulation_3_to_medit.h cgal-5.5/include/CGAL/IO/Complex_2_in_triangulation_3_to_medit.h --- cgal-5.4.1/include/CGAL/IO/Complex_2_in_triangulation_3_to_medit.h 2022-06-03 19:05:59.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/Complex_2_in_triangulation_3_to_medit.h 2022-07-13 19:06:56.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesher/include/CGAL/IO/Complex_2_in_triangulation_3_to_medit.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesher/include/CGAL/IO/Complex_2_in_triangulation_3_to_medit.h $ // $Id: Complex_2_in_triangulation_3_to_medit.h 2402f3f 2020-09-10T16:14:58+01:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/Complex_2_in_triangulation_3_to_vtk.h cgal-5.5/include/CGAL/IO/Complex_2_in_triangulation_3_to_vtk.h --- cgal-5.4.1/include/CGAL/IO/Complex_2_in_triangulation_3_to_vtk.h 2022-06-03 19:05:59.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/Complex_2_in_triangulation_3_to_vtk.h 2022-07-13 19:06:56.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesher/include/CGAL/IO/Complex_2_in_triangulation_3_to_vtk.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesher/include/CGAL/IO/Complex_2_in_triangulation_3_to_vtk.h $ // $Id: Complex_2_in_triangulation_3_to_vtk.h 2402f3f 2020-09-10T16:14:58+01:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/Complex_3_in_triangulation_3_to_vtk.h cgal-5.5/include/CGAL/IO/Complex_3_in_triangulation_3_to_vtk.h --- cgal-5.4.1/include/CGAL/IO/Complex_3_in_triangulation_3_to_vtk.h 2022-06-03 19:04:46.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/Complex_3_in_triangulation_3_to_vtk.h 2022-07-13 19:05:38.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/IO/Complex_3_in_triangulation_3_to_vtk.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/IO/Complex_3_in_triangulation_3_to_vtk.h $ // $Id: Complex_3_in_triangulation_3_to_vtk.h 70058db 2021-05-03T15:30:52+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/Dxf_bsop_reader.h cgal-5.5/include/CGAL/IO/Dxf_bsop_reader.h --- cgal-5.4.1/include/CGAL/IO/Dxf_bsop_reader.h 2022-06-03 19:03:52.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/Dxf_bsop_reader.h 2022-07-13 19:04:38.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Boolean_set_operations_2/include/CGAL/IO/Dxf_bsop_reader.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Boolean_set_operations_2/include/CGAL/IO/Dxf_bsop_reader.h $ // $Id: Dxf_bsop_reader.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/Dxf_reader_doubles.h cgal-5.5/include/CGAL/IO/Dxf_reader_doubles.h --- cgal-5.4.1/include/CGAL/IO/Dxf_reader_doubles.h 2022-06-03 19:04:01.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/Dxf_reader_doubles.h 2022-07-13 19:04:48.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Circular_kernel_2/include/CGAL/IO/Dxf_reader_doubles.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Circular_kernel_2/include/CGAL/IO/Dxf_reader_doubles.h $ // $Id: Dxf_reader_doubles.h 4e519a3 2021-05-05T13:15:37+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/Dxf_reader.h cgal-5.5/include/CGAL/IO/Dxf_reader.h --- cgal-5.4.1/include/CGAL/IO/Dxf_reader.h 2022-06-03 19:04:01.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/Dxf_reader.h 2022-07-13 19:04:48.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Circular_kernel_2/include/CGAL/IO/Dxf_reader.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Circular_kernel_2/include/CGAL/IO/Dxf_reader.h $ // $Id: Dxf_reader.h 4e519a3 2021-05-05T13:15:37+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/Dxf_stream.h cgal-5.5/include/CGAL/IO/Dxf_stream.h --- cgal-5.4.1/include/CGAL/IO/Dxf_stream.h 2022-06-03 19:05:49.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/Dxf_stream.h 2022-07-13 19:06:46.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Straight_skeleton_2/include/CGAL/IO/Dxf_stream.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Straight_skeleton_2/include/CGAL/IO/Dxf_stream.h $ // $Id: Dxf_stream.h cfc0fee 2021-05-04T14:58:55+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/Dxf_variant_reader.h cgal-5.5/include/CGAL/IO/Dxf_variant_reader.h --- cgal-5.4.1/include/CGAL/IO/Dxf_variant_reader.h 2022-06-03 19:04:01.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/Dxf_variant_reader.h 2022-07-13 19:04:48.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Circular_kernel_2/include/CGAL/IO/Dxf_variant_reader.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Circular_kernel_2/include/CGAL/IO/Dxf_variant_reader.h $ // $Id: Dxf_variant_reader.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/Dxf_writer.h cgal-5.5/include/CGAL/IO/Dxf_writer.h --- cgal-5.4.1/include/CGAL/IO/Dxf_writer.h 2022-06-03 19:05:49.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/Dxf_writer.h 2022-07-13 19:06:46.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Straight_skeleton_2/include/CGAL/IO/Dxf_writer.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Straight_skeleton_2/include/CGAL/IO/Dxf_writer.h $ // $Id: Dxf_writer.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/facets_in_complex_2_to_triangle_mesh.h cgal-5.5/include/CGAL/IO/facets_in_complex_2_to_triangle_mesh.h --- cgal-5.4.1/include/CGAL/IO/facets_in_complex_2_to_triangle_mesh.h 2022-06-03 19:05:59.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/facets_in_complex_2_to_triangle_mesh.h 2022-07-13 19:06:56.000000000 +0000 @@ -4,8 +4,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesher/include/CGAL/IO/facets_in_complex_2_to_triangle_mesh.h $ -// $Id: facets_in_complex_2_to_triangle_mesh.h 7652091 2020-10-02T15:15:31+02:00 Sebastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesher/include/CGAL/IO/facets_in_complex_2_to_triangle_mesh.h $ +// $Id: facets_in_complex_2_to_triangle_mesh.h e7bf5b6 2022-02-04T10:22:26+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Maxime Gimeno, Pierre Alliez @@ -19,6 +19,7 @@ #include #include +#include #include namespace CGAL{ diff -Nru cgal-5.4.1/include/CGAL/IO/facets_in_complex_3_to_triangle_mesh.h cgal-5.5/include/CGAL/IO/facets_in_complex_3_to_triangle_mesh.h --- cgal-5.4.1/include/CGAL/IO/facets_in_complex_3_to_triangle_mesh.h 2022-06-03 19:04:46.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/facets_in_complex_3_to_triangle_mesh.h 2022-07-13 19:05:38.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/IO/facets_in_complex_3_to_triangle_mesh.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/IO/facets_in_complex_3_to_triangle_mesh.h $ // $Id: facets_in_complex_3_to_triangle_mesh.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/Fig_stream_Conic_arc_2.h cgal-5.5/include/CGAL/IO/Fig_stream_Conic_arc_2.h --- cgal-5.4.1/include/CGAL/IO/Fig_stream_Conic_arc_2.h 2022-06-03 19:03:45.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/Fig_stream_Conic_arc_2.h 2022-07-13 19:04:31.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/IO/Fig_stream_Conic_arc_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/IO/Fig_stream_Conic_arc_2.h $ // $Id: Fig_stream_Conic_arc_2.h 625848e 2021-10-04T13:21:47+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/Fig_stream.h cgal-5.5/include/CGAL/IO/Fig_stream.h --- cgal-5.4.1/include/CGAL/IO/Fig_stream.h 2022-06-03 19:03:45.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/Fig_stream.h 2022-07-13 19:04:31.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/IO/Fig_stream.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/IO/Fig_stream.h $ // $Id: Fig_stream.h c3d4306 2021-09-15T14:23:46+01:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/File_avizo.h cgal-5.5/include/CGAL/IO/File_avizo.h --- cgal-5.4.1/include/CGAL/IO/File_avizo.h 2022-06-03 19:04:46.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/File_avizo.h 2022-07-13 19:05:38.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/IO/File_avizo.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/IO/File_avizo.h $ // $Id: File_avizo.h 70058db 2021-05-03T15:30:52+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/File_binary_mesh_3.h cgal-5.5/include/CGAL/IO/File_binary_mesh_3.h --- cgal-5.4.1/include/CGAL/IO/File_binary_mesh_3.h 2022-06-03 19:04:46.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/File_binary_mesh_3.h 2022-07-13 19:05:38.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/IO/File_binary_mesh_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/IO/File_binary_mesh_3.h $ // $Id: File_binary_mesh_3.h 4e519a3 2021-05-05T13:15:37+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/File_maya.h cgal-5.5/include/CGAL/IO/File_maya.h --- cgal-5.4.1/include/CGAL/IO/File_maya.h 2022-06-03 19:04:46.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/File_maya.h 2022-07-13 19:05:38.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/IO/File_maya.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/IO/File_maya.h $ // $Id: File_maya.h 70058db 2021-05-03T15:30:52+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/File_medit.h cgal-5.5/include/CGAL/IO/File_medit.h --- cgal-5.4.1/include/CGAL/IO/File_medit.h 2022-06-03 19:04:46.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/File_medit.h 2022-07-13 19:05:38.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/IO/File_medit.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/IO/File_medit.h $ // $Id: File_medit.h 70058db 2021-05-03T15:30:52+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/File_poly.h cgal-5.5/include/CGAL/IO/File_poly.h --- cgal-5.4.1/include/CGAL/IO/File_poly.h 2022-06-03 19:04:43.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/File_poly.h 2022-07-13 19:05:35.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_2/include/CGAL/IO/File_poly.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_2/include/CGAL/IO/File_poly.h $ // $Id: File_poly.h 625a335 2021-05-06T09:38:31+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/File_tetgen.h cgal-5.5/include/CGAL/IO/File_tetgen.h --- cgal-5.4.1/include/CGAL/IO/File_tetgen.h 2022-06-03 19:04:46.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/File_tetgen.h 2022-07-13 19:05:38.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/IO/File_tetgen.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/IO/File_tetgen.h $ // $Id: File_tetgen.h fb6f703 2021-05-04T14:07:49+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/Generic_writer.h cgal-5.5/include/CGAL/IO/Generic_writer.h --- cgal-5.4.1/include/CGAL/IO/Generic_writer.h 2022-06-03 19:05:51.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/Generic_writer.h 2022-07-13 19:06:48.000000000 +0000 @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Stream_support/include/CGAL/IO/Generic_writer.h $ -// $Id: Generic_writer.h 4eb1464 2021-11-09T11:21:24+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Stream_support/include/CGAL/IO/Generic_writer.h $ +// $Id: Generic_writer.h 75b03e6 2022-01-10T15:33:04+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // @@ -17,7 +17,7 @@ #ifndef CGAL_IO_GENERIC_WRITER_H #define CGAL_IO_GENERIC_WRITER_H -#include +#include #include #include @@ -36,7 +36,7 @@ template bool operator()(const PointRange& points, const PolygonRange& polygons, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { typedef typename boost::range_value::type Poly; @@ -74,13 +74,6 @@ return m_os.good(); } - template - bool operator()(const PointRange& points, - const PolygonRange& polygons) - { - return this->operator()(points, polygons, parameters::all_default()); - } - protected: Stream& m_os; FileWriter m_writer; diff -Nru cgal-5.4.1/include/CGAL/IO/GOCAD.h cgal-5.5/include/CGAL/IO/GOCAD.h --- cgal-5.4.1/include/CGAL/IO/GOCAD.h 2022-06-03 19:05:51.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/GOCAD.h 2022-07-13 19:06:48.000000000 +0000 @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org); // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Stream_support/include/CGAL/IO/GOCAD.h $ -// $Id: GOCAD.h e481ec1 2022-01-03T16:25:59+01:00 Laurent Rineau +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Stream_support/include/CGAL/IO/GOCAD.h $ +// $Id: GOCAD.h 10b0af3 2022-01-13T14:43:34+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Andreas Fabri @@ -17,7 +17,7 @@ #include #include -#include +#include #include #include #include @@ -40,12 +40,12 @@ /// \cond SKIP_IN_MANUAL -template +template bool read_GOCAD(std::istream& is, std::pair& name_and_color, PointRange& points, PolygonRange& polygons, - const CGAL_BGL_NP_CLASS& np) + const CGAL_NP_CLASS& np) { typedef typename boost::range_value::type Point; typedef typename boost::range_value::type Poly; @@ -189,11 +189,11 @@ * * \returns `true` if the reading was successful, `false` otherwise. */ -template +template bool read_GOCAD(std::istream& is, PointRange& points, PolygonRange& polygons, - const CGAL_BGL_NP_CLASS& np + const CGAL_NP_CLASS& np = parameters::default_values() #ifndef DOXYGEN_RUNNING , typename boost::enable_if >::type* = nullptr #endif @@ -203,18 +203,6 @@ return read_GOCAD(is, dummy, points, polygons, np); } -/// \cond SKIP_IN_MANUAL - -template -bool read_GOCAD(std::istream& is, PointRange& points, PolygonRange& polygons, - typename boost::enable_if >::type* = nullptr) -{ - std::pair dummy; - return read_GOCAD(is, dummy, points, polygons, parameters::all_default()); -} - -/// \endcond - /*! * \ingroup PkgStreamSupportIoFuncsGOCAD * @@ -246,11 +234,11 @@ * * \returns `true` if the reading was successful, `false` otherwise. */ -template +template bool read_GOCAD(const std::string& fname, PointRange& points, PolygonRange& polygons, - const CGAL_BGL_NP_CLASS& np + const CGAL_NP_CLASS& np = parameters::default_values() #ifndef DOXYGEN_RUNNING , typename boost::enable_if >::type* = nullptr #endif @@ -262,17 +250,6 @@ return read_GOCAD(is, dummy, points, polygons, np); } -/// \cond SKIP_IN_MANUAL - -template -bool read_GOCAD(const std::string& fname, PointRange& points, PolygonRange& polygons, - typename boost::enable_if >::type* = nullptr) -{ - return read_GOCAD(fname, points, polygons, parameters::all_default()); -} - -/// \endcond - //////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////// // Write @@ -281,19 +258,19 @@ template + typename CGAL_NP_TEMPLATE_PARAMETERS> bool write_GOCAD(std::ostream& os, const char* fname, const PointRange& points, const PolygonRange& polygons, - const CGAL_BGL_NP_CLASS& np) + const CGAL_NP_CLASS& np) { typedef typename boost::range_value::type Poly; using parameters::choose_parameter; using parameters::get_parameter; - typedef typename CGAL::GetPointMap::type PointMap; + typedef typename CGAL::GetPointMap::type PointMap; PointMap point_map = choose_parameter(get_parameter(np, internal_np::point_map)); if(!os.good()) @@ -365,11 +342,11 @@ */ template + typename CGAL_NP_TEMPLATE_PARAMETERS> bool write_GOCAD(std::ostream& os, const PointRange& points, const PolygonRange& polygons, - const CGAL_BGL_NP_CLASS& np + const CGAL_NP_CLASS& np = parameters::default_values() #ifndef DOXYGEN_RUNNING , typename boost::enable_if >::type* = nullptr #endif @@ -378,17 +355,6 @@ return internal::write_GOCAD(os, "anonymous", points, polygons, np); } -/// \cond SKIP_IN_MANUAL - -template -bool write_GOCAD(std::ostream& os, const PointRange& points, const PolygonRange& polygons, - typename boost::enable_if >::type* = nullptr) -{ - return internal::write_GOCAD(os, "anonymous", points, polygons, parameters::all_default()); -} - -/// \endcond - /*! * \ingroup PkgStreamSupportIoFuncsGOCAD * @@ -418,11 +384,11 @@ */ template + typename CGAL_NP_TEMPLATE_PARAMETERS> bool write_GOCAD(const std::string& fname, const PointRange& points, const PolygonRange& polygons, - const CGAL_BGL_NP_CLASS& np + const CGAL_NP_CLASS& np = parameters::default_values() #ifndef DOXYGEN_RUNNING , typename boost::enable_if >::type* = nullptr #endif @@ -433,18 +399,6 @@ return internal::write_GOCAD(os, fname.c_str(), points, polygons, np); } -/// \cond SKIP_IN_MANUAL - - -template -bool write_GOCAD(const std::string& fname, const PointRange& points, const PolygonRange& polygons, - typename boost::enable_if >::type* = nullptr) -{ - return write_GOCAD(fname, points, polygons, parameters::all_default()); -} - -/// \endcond - } // namespace IO } // namespace CGAL diff -Nru cgal-5.4.1/include/CGAL/IO/Gps_iostream.h cgal-5.5/include/CGAL/IO/Gps_iostream.h --- cgal-5.4.1/include/CGAL/IO/Gps_iostream.h 2022-06-03 19:03:52.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/Gps_iostream.h 2022-07-13 19:04:38.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Boolean_set_operations_2/include/CGAL/IO/Gps_iostream.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Boolean_set_operations_2/include/CGAL/IO/Gps_iostream.h $ // $Id: Gps_iostream.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/helpers.h cgal-5.5/include/CGAL/IO/helpers.h --- cgal-5.4.1/include/CGAL/IO/helpers.h 2022-06-03 19:05:52.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/helpers.h 2022-07-13 19:06:49.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Stream_support/include/CGAL/IO/helpers.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Stream_support/include/CGAL/IO/helpers.h $ // $Id: helpers.h 31a0557 2021-08-13T16:45:28+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/io.h cgal-5.5/include/CGAL/IO/io.h --- cgal-5.4.1/include/CGAL/IO/io.h 2022-06-03 19:05:52.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/io.h 2022-07-13 19:06:49.000000000 +0000 @@ -8,7 +8,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Stream_support/include/CGAL/IO/io.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Stream_support/include/CGAL/IO/io.h $ // $Id: io.h 01b2f07 2021-07-06T10:37:07+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/io_tags.h cgal-5.5/include/CGAL/IO/io_tags.h --- cgal-5.4.1/include/CGAL/IO/io_tags.h 2022-06-03 19:05:52.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/io_tags.h 2022-07-13 19:06:49.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Stream_support/include/CGAL/IO/io_tags.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Stream_support/include/CGAL/IO/io_tags.h $ // $Id: io_tags.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/Istream_iterator.h cgal-5.5/include/CGAL/IO/Istream_iterator.h --- cgal-5.4.1/include/CGAL/IO/Istream_iterator.h 2022-06-03 19:05:51.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/Istream_iterator.h 2022-07-13 19:06:48.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Stream_support/include/CGAL/IO/Istream_iterator.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Stream_support/include/CGAL/IO/Istream_iterator.h $ // $Id: Istream_iterator.h 580a1ef 2020-05-22T15:31:50+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/Nef_polyhedron_2_PS_stream.h cgal-5.5/include/CGAL/IO/Nef_polyhedron_2_PS_stream.h --- cgal-5.4.1/include/CGAL/IO/Nef_polyhedron_2_PS_stream.h 2022-06-03 19:04:54.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/Nef_polyhedron_2_PS_stream.h 2022-07-13 19:05:46.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_2/include/CGAL/IO/Nef_polyhedron_2_PS_stream.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_2/include/CGAL/IO/Nef_polyhedron_2_PS_stream.h $ // $Id: Nef_polyhedron_2_PS_stream.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/Nef_polyhedron_iostream_3.h cgal-5.5/include/CGAL/IO/Nef_polyhedron_iostream_3.h --- cgal-5.4.1/include/CGAL/IO/Nef_polyhedron_iostream_3.h 2022-06-03 19:04:55.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/Nef_polyhedron_iostream_3.h 2022-07-13 19:05:47.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_3/include/CGAL/IO/Nef_polyhedron_iostream_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_3/include/CGAL/IO/Nef_polyhedron_iostream_3.h $ // $Id: Nef_polyhedron_iostream_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/OBJ/File_writer_wavefront.h cgal-5.5/include/CGAL/IO/OBJ/File_writer_wavefront.h --- cgal-5.4.1/include/CGAL/IO/OBJ/File_writer_wavefront.h 2022-06-03 19:05:51.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/OBJ/File_writer_wavefront.h 2022-07-13 19:06:48.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org); // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Stream_support/include/CGAL/IO/OBJ/File_writer_wavefront.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Stream_support/include/CGAL/IO/OBJ/File_writer_wavefront.h $ // $Id: File_writer_wavefront.h 4e519a3 2021-05-05T13:15:37+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/OBJ.h cgal-5.5/include/CGAL/IO/OBJ.h --- cgal-5.4.1/include/CGAL/IO/OBJ.h 2022-06-03 19:05:51.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/OBJ.h 2022-07-13 19:06:48.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Stream_support/include/CGAL/IO/OBJ.h $ -// $Id: OBJ.h a34debc 2021-06-23T22:56:35+02:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Stream_support/include/CGAL/IO/OBJ.h $ +// $Id: OBJ.h 10b0af3 2022-01-13T14:43:34+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Lutz Kettner @@ -23,7 +23,7 @@ #include #include -#include +#include #include #include @@ -31,11 +31,6 @@ #include #include -#ifdef DOXYGEN_RUNNING -#define CGAL_BGL_NP_TEMPLATE_PARAMETERS NamedParameters -#define CGAL_BGL_NP_CLASS NamedParameters -#endif - namespace CGAL { //////////////////////////////////////////////////////////////////////////////////////////////////// @@ -211,11 +206,11 @@ /// \cgalNamedParamsEnd /// /// \returns `true` if the reading was successful, `false` otherwise. -template +template bool read_OBJ(std::istream& is, PointRange& points, PolygonRange& polygons, - const CGAL_BGL_NP_CLASS& np + const CGAL_NP_CLASS& np = parameters::default_values() #ifndef DOXYGEN_RUNNING , typename boost::enable_if >::type* = nullptr #endif @@ -228,17 +223,6 @@ verbose); } -/// \cond SKIP_IN_MANUAL - -template -bool read_OBJ(std::istream& is, PointRange& points, PolygonRange& polygons, - typename boost::enable_if >::type* = nullptr) -{ - return read_OBJ(is, points, polygons, parameters::all_default()); -} - -/// \endcond - /// \ingroup PkgStreamSupportIoFuncsOBJ /// /// \brief reads the content of the file `fname` into `points` and `polygons`, using the \ref IOStreamOBJ. @@ -267,11 +251,11 @@ /// \cgalNamedParamsEnd /// /// \returns `true` if the reading was successful, `false` otherwise. -template +template bool read_OBJ(const std::string& fname, PointRange& points, PolygonRange& polygons, - const CGAL_BGL_NP_CLASS& np + const CGAL_NP_CLASS& np = parameters::default_values() #ifndef DOXYGEN_RUNNING , typename boost::enable_if >::type* = nullptr #endif @@ -282,17 +266,6 @@ return read_OBJ(is, points, polygons, np); } -/// \cond SKIP_IN_MANUAL - -template -bool read_OBJ(const std::string& fname, PointRange& points, PolygonRange& polygons, - typename boost::enable_if >::type* = nullptr) -{ - return read_OBJ(fname, points, polygons, parameters::all_default()); -} - -/// \endcond - //////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////// // Write @@ -326,11 +299,11 @@ */ template + typename CGAL_NP_TEMPLATE_PARAMETERS> bool write_OBJ(std::ostream& os, const PointRange& points, const PolygonRange& polygons, - const CGAL_BGL_NP_CLASS& np + const CGAL_NP_CLASS& np = parameters::default_values() #ifndef DOXYGEN_RUNNING , typename boost::enable_if >::type* = nullptr #endif @@ -341,17 +314,6 @@ return writer(points, polygons, np); } -/// \cond SKIP_IN_MANUAL - -template -bool write_OBJ(std::ostream& os, const PointRange& points, const PolygonRange& polygons, - typename boost::enable_if >::type* = nullptr) -{ - return write_OBJ(os, points, polygons, parameters::all_default()); -} - -/// \endcond - /*! * \ingroup PkgStreamSupportIoFuncsOBJ * @@ -381,11 +343,11 @@ */ template + typename CGAL_NP_TEMPLATE_PARAMETERS> bool write_OBJ(const std::string& fname, const PointRange& points, const PolygonRange& polygons, - const CGAL_BGL_NP_CLASS& np + const CGAL_NP_CLASS& np = parameters::default_values() #ifndef DOXYGEN_RUNNING , typename boost::enable_if >::type* = nullptr #endif @@ -397,17 +359,6 @@ return write_OBJ(os, points, polygons, np); } -/// \cond SKIP_IN_MANUAL - -template -bool write_OBJ(const std::string& fname, const PointRange& points, const PolygonRange& polygons, - typename boost::enable_if >::type* = nullptr) -{ - return write_OBJ(fname, points, polygons, parameters::all_default()); -} - -/// \endcond - } // namespace IO } // namespace CGAL diff -Nru cgal-5.4.1/include/CGAL/IO/OFF/File_header_extended_OFF.h cgal-5.5/include/CGAL/IO/OFF/File_header_extended_OFF.h --- cgal-5.4.1/include/CGAL/IO/OFF/File_header_extended_OFF.h 2022-06-03 19:05:51.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/OFF/File_header_extended_OFF.h 2022-07-13 19:06:48.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Stream_support/include/CGAL/IO/OFF/File_header_extended_OFF.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Stream_support/include/CGAL/IO/OFF/File_header_extended_OFF.h $ // $Id: File_header_extended_OFF.h 580a1ef 2020-05-22T15:31:50+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/OFF/File_header_extended_OFF_impl.h cgal-5.5/include/CGAL/IO/OFF/File_header_extended_OFF_impl.h --- cgal-5.4.1/include/CGAL/IO/OFF/File_header_extended_OFF_impl.h 2022-06-03 19:05:51.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/OFF/File_header_extended_OFF_impl.h 2022-07-13 19:06:48.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Stream_support/include/CGAL/IO/OFF/File_header_extended_OFF_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Stream_support/include/CGAL/IO/OFF/File_header_extended_OFF_impl.h $ // $Id: File_header_extended_OFF_impl.h ae75594 2021-03-10T13:54:09+01:00 Maxime Gimeno // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/OFF/File_header_OFF.h cgal-5.5/include/CGAL/IO/OFF/File_header_OFF.h --- cgal-5.4.1/include/CGAL/IO/OFF/File_header_OFF.h 2022-06-03 19:05:51.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/OFF/File_header_OFF.h 2022-07-13 19:06:48.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org); // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Stream_support/include/CGAL/IO/OFF/File_header_OFF.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Stream_support/include/CGAL/IO/OFF/File_header_OFF.h $ // $Id: File_header_OFF.h 277b8cc 2020-11-25T13:20:26+01:00 Maxime Gimeno // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/OFF/File_header_OFF_impl.h cgal-5.5/include/CGAL/IO/OFF/File_header_OFF_impl.h --- cgal-5.4.1/include/CGAL/IO/OFF/File_header_OFF_impl.h 2022-06-03 19:05:51.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/OFF/File_header_OFF_impl.h 2022-07-13 19:06:48.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Stream_support/include/CGAL/IO/OFF/File_header_OFF_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Stream_support/include/CGAL/IO/OFF/File_header_OFF_impl.h $ // $Id: File_header_OFF_impl.h ab49226 2021-04-09T13:13:56+02:00 Maxime Gimeno // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/OFF/File_scanner_OFF.h cgal-5.5/include/CGAL/IO/OFF/File_scanner_OFF.h --- cgal-5.4.1/include/CGAL/IO/OFF/File_scanner_OFF.h 2022-06-03 19:05:51.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/OFF/File_scanner_OFF.h 2022-07-13 19:06:48.000000000 +0000 @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org); // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Stream_support/include/CGAL/IO/OFF/File_scanner_OFF.h $ -// $Id: File_scanner_OFF.h 4fa136d 2022-01-17T09:06:57+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Stream_support/include/CGAL/IO/OFF/File_scanner_OFF.h $ +// $Id: File_scanner_OFF.h 299a8a9 2022-04-28T12:08:39+02:00 Laurent Rineau // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // @@ -28,6 +28,7 @@ #include #include #include +#include namespace CGAL { @@ -37,6 +38,7 @@ std::vector entries; std::size_t color_entries; std::size_t first_color_index; + std::string line; std::istream& m_in; bool normals_read; @@ -78,7 +80,7 @@ else { skip_comment(); - std::string line; + line.clear(); std::getline(m_in, line); // First remove the comment if there is one std::size_t pos = line.find('#'); @@ -692,7 +694,7 @@ else { skip_comment(); - std::string line; + line.clear(); std::getline(m_in, line); // First remove the comment if there is one std::size_t pos = line.find('#'); @@ -710,6 +712,7 @@ if(entries.empty()) { m_in.clear(std::ios::badbit); + size = 0; return; } size = static_cast(entries[0]); diff -Nru cgal-5.4.1/include/CGAL/IO/OFF/File_writer_OFF.h cgal-5.5/include/CGAL/IO/OFF/File_writer_OFF.h --- cgal-5.4.1/include/CGAL/IO/OFF/File_writer_OFF.h 2022-06-03 19:05:51.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/OFF/File_writer_OFF.h 2022-07-13 19:06:48.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org); // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Stream_support/include/CGAL/IO/OFF/File_writer_OFF.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Stream_support/include/CGAL/IO/OFF/File_writer_OFF.h $ // $Id: File_writer_OFF.h 4e519a3 2021-05-05T13:15:37+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/OFF/generic_copy_OFF.h cgal-5.5/include/CGAL/IO/OFF/generic_copy_OFF.h --- cgal-5.4.1/include/CGAL/IO/OFF/generic_copy_OFF.h 2022-06-03 19:05:51.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/OFF/generic_copy_OFF.h 2022-07-13 19:06:48.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org); // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Stream_support/include/CGAL/IO/OFF/generic_copy_OFF.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Stream_support/include/CGAL/IO/OFF/generic_copy_OFF.h $ // $Id: generic_copy_OFF.h 32f40d8 2021-11-11T15:19:28+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/OFF/Scanner_OFF.h cgal-5.5/include/CGAL/IO/OFF/Scanner_OFF.h --- cgal-5.4.1/include/CGAL/IO/OFF/Scanner_OFF.h 2022-06-03 19:05:51.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/OFF/Scanner_OFF.h 2022-07-13 19:06:48.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Stream_support/include/CGAL/IO/OFF/Scanner_OFF.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Stream_support/include/CGAL/IO/OFF/Scanner_OFF.h $ // $Id: Scanner_OFF.h 277b8cc 2020-11-25T13:20:26+01:00 Maxime Gimeno // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/OFF.h cgal-5.5/include/CGAL/IO/OFF.h --- cgal-5.4.1/include/CGAL/IO/OFF.h 2022-06-03 19:05:51.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/OFF.h 2022-07-13 19:06:48.000000000 +0000 @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org); // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Stream_support/include/CGAL/IO/OFF.h $ -// $Id: OFF.h a34debc 2021-06-23T22:56:35+02:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Stream_support/include/CGAL/IO/OFF.h $ +// $Id: OFF.h 10b0af3 2022-01-13T14:43:34+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Laurent Rineau and Sebastien Loriot @@ -20,7 +20,7 @@ #include #include -#include +#include #include #include #include @@ -32,11 +32,6 @@ #include #include -#ifdef DOXYGEN_RUNNING -#define CGAL_BGL_NP_TEMPLATE_PARAMETERS NamedParameters -#define CGAL_BGL_NP_CLASS NamedParameters -#endif - namespace CGAL { //////////////////////////////////////////////////////////////////////////////////////////////////// @@ -183,11 +178,11 @@ * * \returns `true` if the reading was successful, `false` otherwise. */ -template +template bool read_OFF(std::istream& is, PointRange& points, PolygonRange& polygons, - const CGAL_BGL_NP_CLASS& np + const CGAL_NP_CLASS& np = parameters::default_values() #ifndef DOXYGEN_RUNNING , typename boost::enable_if >::type* = nullptr #endif @@ -208,17 +203,6 @@ choose_parameter(get_parameter(np, internal_np::verbose), true)); } -/// \cond SKIP_IN_MANUAL - -template -bool read_OFF(std::istream& is, PointRange& points, PolygonRange& polygons, - typename boost::enable_if >::type* = nullptr) -{ - return read_OFF(is, points, polygons, parameters::all_default()); -} - -/// \endcond - /*! * \ingroup PkgStreamSupportIoFuncsOFF * @@ -247,11 +231,11 @@ * * \returns `true` if the reading was successful, `false` otherwise. */ -template +template bool read_OFF(const std::string& fname, PointRange& points, PolygonRange& polygons, - const CGAL_BGL_NP_CLASS& np + const CGAL_NP_CLASS& np = parameters::default_values() #ifndef DOXYGEN_RUNNING , typename boost::enable_if >::type* = nullptr #endif @@ -261,17 +245,6 @@ return read_OFF(in, points, polygons, np); } -/// \cond SKIP_IN_MANUAL - -template -bool read_OFF(const std::string& fname, PointRange& points, PolygonRange& polygons, - typename boost::enable_if >::type* = nullptr) -{ - return read_OFF(fname, points, polygons, parameters::all_default()); -} - -/// \endcond - //////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////// // Write @@ -303,11 +276,11 @@ * * \return `true` if the writing was successful, `false` otherwise. */ -template +template bool write_OFF(std::ostream& os, const PointRange& points, const PolygonRange& polygons, - const CGAL_BGL_NP_CLASS& np + const CGAL_NP_CLASS& np = parameters::default_values() #ifndef DOXYGEN_RUNNING , typename boost::enable_if >::type* = nullptr #endif @@ -317,17 +290,6 @@ return writer(points, polygons, np); } -/// \cond SKIP_IN_MANUAL - -template -bool write_OFF(std::ostream& os, const PointRange& points, const PolygonRange& polygons - , typename boost::enable_if >::type* = nullptr) -{ - return write_OFF(os, points, polygons, parameters::all_default()); -} - -/// \endcond - /*! * \ingroup PkgStreamSupportIoFuncsOFF * @@ -355,11 +317,11 @@ * * \return `true` if the writing was successful, `false` otherwise. */ -template +template bool write_OFF(const std::string& fname, const PointRange& points, const PolygonRange& polygons, - const CGAL_BGL_NP_CLASS& np + const CGAL_NP_CLASS& np = parameters::default_values() #ifndef DOXYGEN_RUNNING , typename boost::enable_if >::type* = nullptr #endif @@ -370,17 +332,6 @@ return writer(points, polygons, np); } -/// \cond SKIP_IN_MANUAL - -template -bool write_OFF(const std::string& fname, const PointRange& points, const PolygonRange& polygons, - typename boost::enable_if >::type* = nullptr) -{ - return write_OFF(fname, points, polygons, parameters::all_default()); -} - -/// \endcond - } // namespace IO } // namespace CGAL diff -Nru cgal-5.4.1/include/CGAL/IO/OI/File_writer_inventor.h cgal-5.5/include/CGAL/IO/OI/File_writer_inventor.h --- cgal-5.4.1/include/CGAL/IO/OI/File_writer_inventor.h 2022-06-03 19:05:51.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/OI/File_writer_inventor.h 2022-07-13 19:06:48.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Stream_support/include/CGAL/IO/OI/File_writer_inventor.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Stream_support/include/CGAL/IO/OI/File_writer_inventor.h $ // $Id: File_writer_inventor.h 4e519a3 2021-05-05T13:15:37+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/OI/Inventor_ostream.h cgal-5.5/include/CGAL/IO/OI/Inventor_ostream.h --- cgal-5.4.1/include/CGAL/IO/OI/Inventor_ostream.h 2022-06-03 19:05:51.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/OI/Inventor_ostream.h 2022-07-13 19:06:48.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org); // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Stream_support/include/CGAL/IO/OI/Inventor_ostream.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Stream_support/include/CGAL/IO/OI/Inventor_ostream.h $ // $Id: Inventor_ostream.h 2dac31f 2021-02-05T14:14:11+01:00 Maxime Gimeno // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/OI.h cgal-5.5/include/CGAL/IO/OI.h --- cgal-5.4.1/include/CGAL/IO/OI.h 2022-06-03 19:05:51.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/OI.h 2022-07-13 19:06:48.000000000 +0000 @@ -6,7 +6,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Stream_support/include/CGAL/IO/OI.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Stream_support/include/CGAL/IO/OI.h $ // $Id: OI.h 220a445 2020-01-17T17:10:02+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/Ostream_iterator.h cgal-5.5/include/CGAL/IO/Ostream_iterator.h --- cgal-5.4.1/include/CGAL/IO/Ostream_iterator.h 2022-06-03 19:05:52.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/Ostream_iterator.h 2022-07-13 19:06:48.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Stream_support/include/CGAL/IO/Ostream_iterator.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Stream_support/include/CGAL/IO/Ostream_iterator.h $ // $Id: Ostream_iterator.h 580a1ef 2020-05-22T15:31:50+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/output_surface_facets_to_polyhedron.h cgal-5.5/include/CGAL/IO/output_surface_facets_to_polyhedron.h --- cgal-5.4.1/include/CGAL/IO/output_surface_facets_to_polyhedron.h 2022-06-03 19:05:59.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/output_surface_facets_to_polyhedron.h 2022-07-13 19:06:56.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesher/include/CGAL/IO/output_surface_facets_to_polyhedron.h $ -// $Id: output_surface_facets_to_polyhedron.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesher/include/CGAL/IO/output_surface_facets_to_polyhedron.h $ +// $Id: output_surface_facets_to_polyhedron.h 4968d21 2022-05-17T10:31:07+01:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Pierre Alliez @@ -23,17 +23,17 @@ namespace CGAL { -/// \deprecated Gets reconstructed surface out of a SurfaceMeshComplex_2InTriangulation_3 object. +/// \deprecated Gets reconstructed surface out of a `SurfaceMeshComplex_2InTriangulation_3` object. /// /// This variant exports the surface as a polyhedron. /// It requires the surface to be manifold. For this purpose, -/// you may call make_surface_mesh() with Manifold_tag or Manifold_with_boundary_tag parameter. +/// you may call `make_surface_mesh()` with `Manifold_tag` or `Manifold_with_boundary_tag` parameter. /// -/// @commentheading Template Parameters: -/// @param SurfaceMeshComplex_2InTriangulation_3 model of the SurfaceMeshComplex_2InTriangulation_3 concept. -/// @param Polyhedron an instance of CGAL::Polyhedron_3. +/// *Template Parameters:* +/// @tparam SurfaceMeshComplex_2InTriangulation_3 model of the `SurfaceMeshComplex_2InTriangulation_3` concept. +/// @tparam Polyhedron an instance of `CGAL::Polyhedron_3`. /// -/// @return true if the surface is manifold and orientable. +/// @return `true` if the surface is manifold and orientable. template CGAL_DEPRECATED_MSG( diff -Nru cgal-5.4.1/include/CGAL/IO/output_surface_facets_to_triangle_soup.h cgal-5.5/include/CGAL/IO/output_surface_facets_to_triangle_soup.h --- cgal-5.4.1/include/CGAL/IO/output_surface_facets_to_triangle_soup.h 2022-06-03 19:05:13.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/output_surface_facets_to_triangle_soup.h 2022-07-13 19:06:07.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Poisson_surface_reconstruction_3/include/CGAL/IO/output_surface_facets_to_triangle_soup.h $ -// $Id: output_surface_facets_to_triangle_soup.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Poisson_surface_reconstruction_3/include/CGAL/IO/output_surface_facets_to_triangle_soup.h $ +// $Id: output_surface_facets_to_triangle_soup.h 47f0eb4 2022-05-26T19:06:01+02:00 albert-github // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Pierre Alliez @@ -26,7 +26,6 @@ /// /// This variant exports the surface as a triangle soup. /// -/// @commentheading Template Parameters: /// @tparam OutputIteratorValueType value_type of OutputIterator. /// It is default to value_type_traits::type, and can be omitted when the default is fine. /// @tparam SurfaceMeshComplex_2InTriangulation_3 model of the SurfaceMeshComplex_2InTriangulation_3 concept. diff -Nru cgal-5.4.1/include/CGAL/IO/output_to_vtu.h cgal-5.5/include/CGAL/IO/output_to_vtu.h --- cgal-5.4.1/include/CGAL/IO/output_to_vtu.h 2022-06-03 19:04:46.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/output_to_vtu.h 2022-07-13 19:05:38.000000000 +0000 @@ -5,7 +5,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/IO/output_to_vtu.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/IO/output_to_vtu.h $ // $Id: output_to_vtu.h fb6f703 2021-05-04T14:07:49+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/PLY/PLY_reader.h cgal-5.5/include/CGAL/IO/PLY/PLY_reader.h --- cgal-5.4.1/include/CGAL/IO/PLY/PLY_reader.h 2022-06-03 19:05:52.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/PLY/PLY_reader.h 2022-07-13 19:06:48.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org); // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Stream_support/include/CGAL/IO/PLY/PLY_reader.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Stream_support/include/CGAL/IO/PLY/PLY_reader.h $ // $Id: PLY_reader.h 4e519a3 2021-05-05T13:15:37+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/PLY/PLY_writer.h cgal-5.5/include/CGAL/IO/PLY/PLY_writer.h --- cgal-5.4.1/include/CGAL/IO/PLY/PLY_writer.h 2022-06-03 19:05:52.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/PLY/PLY_writer.h 2022-07-13 19:06:48.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org); // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Stream_support/include/CGAL/IO/PLY/PLY_writer.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Stream_support/include/CGAL/IO/PLY/PLY_writer.h $ // $Id: PLY_writer.h 4eb1464 2021-11-09T11:21:24+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/PLY.h cgal-5.5/include/CGAL/IO/PLY.h --- cgal-5.4.1/include/CGAL/IO/PLY.h 2022-06-03 19:05:52.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/PLY.h 2022-07-13 19:06:48.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Stream_support/include/CGAL/IO/PLY.h $ -// $Id: PLY.h ad79d37 2021-09-29T11:46:30+02:00 Laurent Rineau +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Stream_support/include/CGAL/IO/PLY.h $ +// $Id: PLY.h 10b0af3 2022-01-13T14:43:34+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Simon Giraudot @@ -16,7 +16,7 @@ #include #include -#include +#include #include #include #include @@ -32,11 +32,6 @@ #include #include -#ifdef DOXYGEN_RUNNING -#define CGAL_BGL_NP_TEMPLATE_PARAMETERS NamedParameters -#define CGAL_BGL_NP_CLASS NamedParameters -#endif - namespace CGAL { //////////////////////////////////////////////////////////////////////////////////////////////////// @@ -308,11 +303,11 @@ * * \returns `true` if the reading was successful, `false` otherwise. */ -template +template bool read_PLY(std::istream& is, PointRange& points, PolygonRange& polygons, - const CGAL_BGL_NP_CLASS& np + const CGAL_NP_CLASS& np = parameters::default_values() #ifndef DOXYGEN_RUNNING , typename boost::enable_if >::type* = nullptr #endif @@ -333,17 +328,6 @@ choose_parameter(get_parameter(np, internal_np::verbose), true)); } -/// \cond SKIP_IN_MANUAL - -template -bool read_PLY(std::istream& is, PointRange& points, PolygonRange& polygons, - typename boost::enable_if >::type* = nullptr) -{ - return read_PLY(is, points, polygons, parameters::all_default()); -} - -/// \endcond - /*! * \ingroup PkgStreamSupportIoFuncsPLY * @@ -379,11 +363,11 @@ * * \returns `true` if the reading was successful, `false` otherwise. */ -template +template bool read_PLY(const std::string& fname, PointRange& points, PolygonRange& polygons, - const CGAL_BGL_NP_CLASS& np + const CGAL_NP_CLASS& np = parameters::default_values() #ifndef DOXYGEN_RUNNING , typename boost::enable_if >::type* = nullptr #endif @@ -404,17 +388,6 @@ } } -/// \cond SKIP_IN_MANUAL - -template -bool read_PLY(const std::string& fname, PointRange& points, PolygonRange& polygons, - typename boost::enable_if >::type* = nullptr) -{ - return read_PLY(fname, points, polygons, parameters::all_default()); -} - -/// \endcond - //////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////// // Write @@ -453,11 +426,11 @@ * * \return `true` if the writing was successful, `false` otherwise. */ -template +template bool write_PLY(std::ostream& out, const PointRange& points, const PolygonRange& polygons, - const CGAL_BGL_NP_CLASS& np + const CGAL_NP_CLASS& np = parameters::default_values() #ifndef DOXYGEN_RUNNING , typename boost::enable_if >::type* = nullptr #endif @@ -498,17 +471,6 @@ return out.good(); } -/// \cond SKIP_IN_MANUAL - -template -bool write_PLY(std::ostream& out, const PointRange& points, const PolygonRange& polygons, - typename boost::enable_if >::type* = nullptr) -{ - return write_PLY(out, points, polygons, parameters::all_default()); -} - -/// \endcond - /*! * \ingroup PkgStreamSupportIoFuncsPLY * @@ -543,11 +505,11 @@ * * \return `true` if the writing was successful, `false` otherwise. */ -template +template bool write_PLY(const std::string& fname, const PointRange& points, const PolygonRange& polygons, - const CGAL_BGL_NP_CLASS& np + const CGAL_NP_CLASS& np = parameters::default_values() #ifndef DOXYGEN_RUNNING , typename boost::enable_if >::type* = nullptr #endif @@ -568,17 +530,6 @@ } } -/// \cond SKIP_IN_MANUAL - -template -bool write_PLY(const std::string& fname, const PointRange& points, const PolygonRange& polygons, - typename boost::enable_if >::type* = nullptr) -{ - return write_PLY(fname, points, polygons, parameters::all_default()); -} - -/// \endcond - } // namespace IO } // namespace CGAL diff -Nru cgal-5.4.1/include/CGAL/IO/polygon_soup_io.h cgal-5.5/include/CGAL/IO/polygon_soup_io.h --- cgal-5.4.1/include/CGAL/IO/polygon_soup_io.h 2022-06-03 19:05:52.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/polygon_soup_io.h 2022-07-13 19:06:49.000000000 +0000 @@ -6,8 +6,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Stream_support/include/CGAL/IO/polygon_soup_io.h $ -// $Id: polygon_soup_io.h fb6f703 2021-05-04T14:07:49+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Stream_support/include/CGAL/IO/polygon_soup_io.h $ +// $Id: polygon_soup_io.h 10b0af3 2022-01-13T14:43:34+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Mael Rouxel-Labbé @@ -52,8 +52,8 @@ * The format is detected from the filename extension (letter case is not important). * * \tparam PointRange a model of the concept `RandomAccessContainer` whose value type is the point type. - * \tparam PolygonRange a model of the concepts `SequenceContainer` and `BackInsertionSequence` - * whose `value_type` is itself a model of the concepts `SequenceContainer` + * \tparam PolygonRange a model of the concepts `RandomAccessContainer` and `BackInsertionSequence` + * whose `value_type` is itself a model of the concepts `RandomAccessContainer` * and `BackInsertionSequence` whose `value_type` is an unsigned integer type * convertible to `std::size_t` * \tparam NamedParameters a sequence of \ref bgl_namedparameters "Named Parameters" @@ -73,11 +73,11 @@ * * \return `true` if reading was successful, `false` otherwise. */ -template +template bool read_polygon_soup(const std::string& fname, PointRange& points, PolygonRange& polygons, - const CGAL_BGL_NP_CLASS& np) + const CGAL_NP_CLASS& np = parameters::default_values()) { const bool verbose = parameters::choose_parameter(parameters::get_parameter(np, internal_np::verbose), false); @@ -113,16 +113,6 @@ return false; } -/// \cond SKIP_IN_MANUAL - -template -bool read_polygon_soup(const std::string& fname, PointRange& points, PolygonRange& polygons) -{ - return read_polygon_soup(fname, points, polygons, parameters::all_default()); -} - -/// \endcond - //////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////// // Write @@ -163,11 +153,11 @@ * * \return `true` if writing was successful, `false` otherwise. */ -template +template bool write_polygon_soup(const std::string& fname, const PointRange& points, const PolygonRange& polygons, - const CGAL_BGL_NP_CLASS& np) + const CGAL_NP_CLASS& np = parameters::default_values()) { const bool verbose = parameters::choose_parameter(parameters::get_parameter(np, internal_np::verbose), false); @@ -207,16 +197,6 @@ return false; } -/// \cond SKIP_IN_MANUAL - -template -bool write_polygon_soup(const std::string& fname, PointRange& points, PolygonRange& polygons) -{ - return write_polygon_soup(fname, points, polygons, parameters::all_default()); -} - -/// \endcond - } // namespace IO } // namespace CGAL diff -Nru cgal-5.4.1/include/CGAL/IO/Polyhedron_inventor_ostream.h cgal-5.5/include/CGAL/IO/Polyhedron_inventor_ostream.h --- cgal-5.4.1/include/CGAL/IO/Polyhedron_inventor_ostream.h 2022-06-03 19:05:22.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/Polyhedron_inventor_ostream.h 2022-07-13 19:06:16.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polyhedron/include/CGAL/IO/Polyhedron_inventor_ostream.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polyhedron/include/CGAL/IO/Polyhedron_inventor_ostream.h $ // $Id: Polyhedron_inventor_ostream.h 580a1ef 2020-05-22T15:31:50+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/Polyhedron_iostream.h cgal-5.5/include/CGAL/IO/Polyhedron_iostream.h --- cgal-5.4.1/include/CGAL/IO/Polyhedron_iostream.h 2022-06-03 19:05:22.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/Polyhedron_iostream.h 2022-07-13 19:06:16.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polyhedron/include/CGAL/IO/Polyhedron_iostream.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polyhedron/include/CGAL/IO/Polyhedron_iostream.h $ // $Id: Polyhedron_iostream.h 115fa5a 2021-12-14T14:01:21+00:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/Polyhedron_OFF_iostream.h cgal-5.5/include/CGAL/IO/Polyhedron_OFF_iostream.h --- cgal-5.4.1/include/CGAL/IO/Polyhedron_OFF_iostream.h 2022-06-03 19:05:22.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/Polyhedron_OFF_iostream.h 2022-07-13 19:06:16.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polyhedron/include/CGAL/IO/Polyhedron_OFF_iostream.h $ -// $Id: Polyhedron_OFF_iostream.h 0a13731 2021-05-06T10:27:12+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polyhedron/include/CGAL/IO/Polyhedron_OFF_iostream.h $ +// $Id: Polyhedron_OFF_iostream.h 477353d 2022-04-20T15:55:50+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -21,7 +21,7 @@ #include #include -#include +#include #include #include #include @@ -40,10 +40,10 @@ template class HDS, - class Alloc, class CGAL_BGL_NP_TEMPLATE_PARAMETERS> + class Alloc, class CGAL_NP_TEMPLATE_PARAMETERS> bool read_OFF(std::istream& in, Polyhedron_3& P, - const CGAL_BGL_NP_CLASS& np) + const CGAL_NP_CLASS& np = parameters::default_values()) { typedef typename boost::graph_traits >::vertex_descriptor Vertex; @@ -54,7 +54,7 @@ typedef typename Kernel_traits::Kernel Def_kernel; typedef typename CGAL::GetVertexPointMap, - CGAL_BGL_NP_CLASS>::type VPM; + CGAL_NP_CLASS>::type VPM; typedef typename boost::property_traits::value_type Point; typedef typename Kernel_traits::Kernel Kernel; @@ -66,17 +66,17 @@ const bool verbose = choose_parameter(get_parameter(np, internal_np::verbose), true); - if(!(is_default_parameter(get_parameter(np, internal_np::vertex_color_map))) || - !(is_default_parameter(get_parameter(np, internal_np::face_color_map))) || - !(is_default_parameter(get_parameter(np, internal_np::vertex_normal_map))) || - !(is_default_parameter(get_parameter(np, internal_np::vertex_texture_map)))) + if(!(is_default_parameter::value) || + !(is_default_parameter::value) || + !(is_default_parameter::value) || + !(is_default_parameter::value)) { return CGAL::IO::internal::read_OFF_BGL(in, P, np); } CGAL::scan_OFF(in, P, verbose); - if(!parameters::is_default_parameter(get_parameter(np, internal_np::vertex_point))) + if(!parameters::is_default_parameter::value) { Def_VPM def_vpm = get_property_map(CGAL::vertex_point, P); VPM vpm = choose_parameter(get_parameter(np, internal_np::vertex_point), @@ -93,34 +93,15 @@ template class HDS, - class Alloc> -bool read_OFF(std::istream& in, Polyhedron_3& P) -{ - return read_OFF(in, P, parameters::all_default()); -} - -template class HDS, - class Alloc, class CGAL_BGL_NP_TEMPLATE_PARAMETERS> + class Alloc, class CGAL_NP_TEMPLATE_PARAMETERS> bool read_OFF(const std::string& fname, Polyhedron_3& P, - const CGAL_BGL_NP_CLASS& np) + const CGAL_NP_CLASS& np = parameters::default_values()) { std::ifstream in(fname); return read_OFF(in, P, np); } -template class HDS, - class Alloc> -bool read_OFF(const std::string& fname, Polyhedron_3& P) -{ - std::ifstream in(fname); - return read_OFF(in, P, parameters::all_default()); -} - } // namespace IO template class HDS, - class Alloc, class CGAL_BGL_NP_TEMPLATE_PARAMETERS> + class Alloc, class CGAL_NP_TEMPLATE_PARAMETERS> bool write_OFF(std::ostream& out, const Polyhedron_3& P, - const CGAL_BGL_NP_CLASS& np) + const CGAL_NP_CLASS& np = parameters::default_values()) { using parameters::choose_parameter; using parameters::get_parameter; using parameters::is_default_parameter; - if(!(is_default_parameter(get_parameter(np, internal_np::vertex_color_map))) || - !(is_default_parameter(get_parameter(np, internal_np::face_color_map))) || - !(is_default_parameter(get_parameter(np, internal_np::vertex_normal_map))) || - !(is_default_parameter(get_parameter(np, internal_np::vertex_texture_map)))) + if(!(is_default_parameter::value) || + !(is_default_parameter::value) || + !(is_default_parameter::value) || + !(is_default_parameter::value)) { return CGAL::IO::internal::write_OFF_BGL(out, P, np); } // writes P to `out' in PRETTY, ASCII or BINARY format as the stream indicates. File_header_OFF header(is_binary(out), ! is_pretty(out), false); - typename CGAL::GetVertexPointMap, CGAL_BGL_NP_CLASS>::const_type + typename CGAL::GetVertexPointMap, CGAL_NP_CLASS>::const_type vpm = choose_parameter(get_parameter(np, internal_np::vertex_point), get_const_property_map(CGAL::vertex_point, P)); return CGAL::print_polyhedron_with_header_OFF(out, P, header, vpm); } -template class HDS, - class Alloc> -bool write_OFF(std::ostream& out, const Polyhedron_3& P) -{ - return write_OFF(out, P, parameters::all_default()); -} - } // namespace IO template #include -#include +#include #include #include @@ -56,12 +56,6 @@ # pragma warning(pop) #endif -#ifdef DOXYGEN_RUNNING -#define CGAL_BGL_NP_TEMPLATE_PARAMETERS NamedParameters -#define CGAL_BGL_NP_CLASS NamedParameters -#define CGAL_DEPRECATED -#endif - namespace CGAL { namespace IO { @@ -462,17 +456,17 @@ */ template + typename CGAL_NP_TEMPLATE_PARAMETERS> bool read_LAS(std::istream& is, PointOutputIterator output, - const CGAL_BGL_NP_CLASS& np) + const CGAL_NP_CLASS& np = parameters::default_values()) { using parameters::choose_parameter; using parameters::get_parameter; typedef Point_set_processing_3::Fake_point_range PointRange; - typedef typename CGAL::GetPointMap::type PointMap; + typedef typename CGAL::GetPointMap::type PointMap; PointMap point_map = choose_parameter(get_parameter(np, internal_np::point_map)); return read_LAS_with_properties(is, output, make_las_point_reader(point_map)); @@ -480,27 +474,13 @@ /// \cond SKIP_IN_MANUAL -template -bool read_LAS(std::istream& is, OutputIterator output, const CGAL_BGL_NP_CLASS& np, +template +bool read_LAS(std::istream& is, OutputIterator output, const CGAL_NP_CLASS& np = parameters::default_values(), typename std::enable_if::value>::type* = nullptr) { return read_LAS::type>(is, output, np); } -template -bool read_LAS(std::istream& is, OutputIterator output, - typename std::enable_if::value>::type* = nullptr) -{ - return read_LAS(is, output, CGAL::parameters::all_default()); -} - -template -bool read_LAS(std::istream& is, OutputIterator output, - typename std::enable_if::value>::type* = nullptr) -{ - return read_LAS::type>(is, output, parameters::all_default()); -} - /// \endcond /** @@ -540,10 +520,10 @@ */ template + typename CGAL_NP_TEMPLATE_PARAMETERS> bool read_LAS(const std::string& filename, PointOutputIterator output, - const CGAL_BGL_NP_CLASS& np) + const CGAL_NP_CLASS& np = parameters::default_values()) { std::ifstream is(filename, std::ios::binary); CGAL::IO::set_mode(is, CGAL::IO::BINARY); @@ -552,26 +532,14 @@ /// \cond SKIP_IN_MANUAL -template -bool read_LAS(const std::string& fname, OutputIterator output, const CGAL_BGL_NP_CLASS& np) +template +bool read_LAS(const std::string& fname, OutputIterator output, const CGAL_NP_CLASS& np = parameters::default_values()) { std::ifstream is(fname, std::ios::binary); CGAL::IO::set_mode(is, CGAL::IO::BINARY); return read_LAS::type>(is, output, np); } -template -bool read_LAS(const std::string& fname, OutputIterator output) -{ - return read_LAS(fname, output, parameters::all_default()); -} - -template -bool read_LAS(const std::string& fname, OutputIterator output) -{ - return read_LAS::type>(fname, output, parameters::all_default()); -} - /// \endcond } // namespace IO @@ -642,43 +610,30 @@ */ template + typename CGAL_NP_TEMPLATE_PARAMETERS> CGAL_DEPRECATED bool read_las_points(std::istream& is, OutputIterator output, - const CGAL_BGL_NP_CLASS& np) + const CGAL_NP_CLASS& np = parameters::default_values()) { using parameters::choose_parameter; using parameters::get_parameter; - typename CGAL::GetPointMap, CGAL_BGL_NP_CLASS>::type point_map = - choose_parameter, CGAL_BGL_NP_CLASS>::type>(get_parameter(np, internal_np::point_map)); + typename CGAL::GetPointMap, CGAL_NP_CLASS>::type point_map = + choose_parameter, CGAL_NP_CLASS>::type>(get_parameter(np, internal_np::point_map)); return IO::read_LAS(is, output, make_las_point_reader(point_map)); } /// \cond SKIP_IN_MANUAL -// variant with default NP -template -CGAL_DEPRECATED bool read_las_points(std::istream& is, OutputIterator output) -{ - return IO::read_LAS(is, output, CGAL::parameters::all_default()); -} // variant with default output iterator value type -template -CGAL_DEPRECATED bool read_las_points(std::istream& is, OutputIterator output, const CGAL_BGL_NP_CLASS& np) +template +CGAL_DEPRECATED bool read_las_points(std::istream& is, OutputIterator output, const CGAL_NP_CLASS& np = parameters::default_values()) { return IO::read_LAS::type>(is, output, np); } -// variant with default NP and output iterator value type -template -CGAL_DEPRECATED bool read_las_points(std::istream& is, OutputIterator output) -{ - return IO::read_LAS::type>(is, output, CGAL::parameters::all_default()); -} - /// \endcond #endif // CGAL_NO_DEPRECATED_CODE diff -Nru cgal-5.4.1/include/CGAL/IO/read_off_points.h cgal-5.5/include/CGAL/IO/read_off_points.h --- cgal-5.4.1/include/CGAL/IO/read_off_points.h 2022-06-03 19:05:12.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/read_off_points.h 2022-07-13 19:06:06.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Point_set_processing_3/include/CGAL/IO/read_off_points.h $ -// $Id: read_off_points.h 27f55f1 2021-11-17T09:46:29+01:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Point_set_processing_3/include/CGAL/IO/read_off_points.h $ +// $Id: read_off_points.h 10b0af3 2022-01-13T14:43:34+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Pierre Alliez and Laurent Saboret @@ -23,7 +23,7 @@ #include #include -#include +#include #include #include @@ -32,12 +32,6 @@ #include #include -#ifdef DOXYGEN_RUNNING -#define CGAL_BGL_NP_TEMPLATE_PARAMETERS NamedParameters -#define CGAL_BGL_NP_CLASS NamedParameters -#define CGAL_DEPRECATED -#endif - namespace CGAL { namespace IO { @@ -83,10 +77,10 @@ */ template + typename CGAL_NP_TEMPLATE_PARAMETERS> bool read_OFF(std::istream& is, PointOutputIterator output, - const CGAL_BGL_NP_CLASS& np + const CGAL_NP_CLASS& np = parameters::default_values() #ifndef DOXYGEN_RUNNING , typename std::enable_if::value>::type* = nullptr #endif @@ -98,16 +92,16 @@ typedef Point_set_processing_3::Fake_point_range PointRange; // basic geometric types - typedef typename CGAL::GetPointMap::type PointMap; - typedef typename Point_set_processing_3::GetNormalMap::type NormalMap; - typedef typename Point_set_processing_3::GetK::Kernel Kernel; - typedef typename Kernel::FT FT; + typedef Point_set_processing_3_np_helper NP_helper; + typedef typename NP_helper::Point_map PointMap; + typedef typename NP_helper::Normal_map NormalMap; + typedef typename NP_helper::Geom_traits Kernel; + typedef typename Kernel::FT FT; - bool has_normals = !(boost::is_same::NoMap>::value); + bool has_normals = NP_helper::has_normal_map(); - PointMap point_map = choose_parameter(get_parameter(np, internal_np::point_map)); - NormalMap normal_map = choose_parameter(get_parameter(np, internal_np::normal_map)); + PointMap point_map = NP_helper::get_point_map(np); + NormalMap normal_map = NP_helper::get_normal_map(np); // value_type_traits is a workaround as back_insert_iterator's value_type is void // typedef typename value_type_traits::type Enriched_point; @@ -245,10 +239,10 @@ */ template + typename CGAL_NP_TEMPLATE_PARAMETERS> bool read_OFF(const std::string& fname, PointOutputIterator output, - const CGAL_BGL_NP_CLASS& np + const CGAL_NP_CLASS& np = parameters::default_values() #ifndef DOXYGEN_RUNNING , typename std::enable_if::value>::type* = nullptr #endif @@ -260,54 +254,23 @@ /// \cond SKIP_IN_MANUAL -// variants with default NP -template -bool read_OFF(std::istream& is, OutputIterator output, - typename std::enable_if::value>::type* = nullptr) -{ - return read_OFF(is, output, CGAL::parameters::all_default()); -} - -template -bool read_OFF(const std::string& fname, OutputIterator output, - typename std::enable_if::value>::type* = nullptr) -{ - return read_OFF(fname, output, parameters::all_default()); -} - // variants with default output iterator value type template -bool read_OFF(std::istream& is, OutputIterator output, const CGAL_BGL_NP_CLASS& np, + typename CGAL_NP_TEMPLATE_PARAMETERS> +bool read_OFF(std::istream& is, OutputIterator output, const CGAL_NP_CLASS& np = parameters::default_values(), typename std::enable_if::value>::type* = nullptr) { return read_OFF::type>(is, output, np); } -template -bool read_OFF(const std::string& fname, OutputIterator output, const CGAL_BGL_NP_CLASS& np, +template +bool read_OFF(const std::string& fname, OutputIterator output, const CGAL_NP_CLASS& np = parameters::default_values(), typename std::enable_if::value>::type* = nullptr) { std::ifstream is(fname); return read_OFF::type>(is, output, np); } -// variants with default NP and output iterator value type -template -bool read_OFF(std::istream& is, OutputIterator output, - typename std::enable_if::value>::type* = nullptr) -{ - return read_OFF::type>(is, output, CGAL::parameters::all_default()); -} - -template -bool read_OFF(const std::string& fname, OutputIterator output, - typename std::enable_if::value>::type* = nullptr) -{ - return read_OFF::type>(fname, output, parameters::all_default()); -} - /// \endcond } // namespace IO @@ -459,10 +422,10 @@ */ template + typename CGAL_NP_TEMPLATE_PARAMETERS> CGAL_DEPRECATED bool read_off_points(std::istream& is, OutputIterator output, - const CGAL_BGL_NP_CLASS& np) + const CGAL_NP_CLASS& np = parameters::default_values()) { return IO::read_OFF(is, output, np); } @@ -476,19 +439,12 @@ } // variant with default output iterator value type -template -CGAL_DEPRECATED bool read_off_points(std::istream& is, OutputIterator output, const CGAL_BGL_NP_CLASS& np) +template +CGAL_DEPRECATED bool read_off_points(std::istream& is, OutputIterator output, const CGAL_NP_CLASS& np = parameters::default_values()) { return IO::read_OFF(is, output, np); } -// variant with default NP and output iterator value type -template -CGAL_DEPRECATED bool read_off_points(std::istream& is, OutputIterator output) -{ - return IO::read_OFF(is, output, CGAL::parameters::all_default()); -} - /// \endcond #endif //CGAL_NO_DEPRECATED_CODE diff -Nru cgal-5.4.1/include/CGAL/IO/read_ply_points.h cgal-5.5/include/CGAL/IO/read_ply_points.h --- cgal-5.4.1/include/CGAL/IO/read_ply_points.h 2022-06-03 19:05:12.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/read_ply_points.h 2022-07-13 19:06:06.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Point_set_processing_3/include/CGAL/IO/read_ply_points.h $ -// $Id: read_ply_points.h ad79d37 2021-09-29T11:46:30+02:00 Laurent Rineau +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Point_set_processing_3/include/CGAL/IO/read_ply_points.h $ +// $Id: read_ply_points.h 10b0af3 2022-01-13T14:43:34+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Simon Giraudot @@ -23,7 +23,7 @@ #include #include -#include +#include #include #include @@ -35,12 +35,6 @@ #include #include -#ifdef DOXYGEN_RUNNING -#define CGAL_BGL_NP_TEMPLATE_PARAMETERS NamedParameters -#define CGAL_BGL_NP_CLASS NamedParameters -#define CGAL_DEPRECATED -#endif - namespace CGAL { namespace IO { @@ -245,10 +239,10 @@ */ template + typename CGAL_NP_TEMPLATE_PARAMETERS> bool read_PLY(std::istream& is, PointOutputIterator output, - const CGAL_BGL_NP_CLASS& np + const CGAL_NP_CLASS& np = parameters::default_values() #ifndef DOXYGEN_RUNNING , typename std::enable_if::value>::type* = nullptr #endif @@ -260,14 +254,14 @@ typedef Point_set_processing_3::Fake_point_range PointRange; // basic geometric types - typedef typename CGAL::GetPointMap::type PointMap; - typedef typename Point_set_processing_3::GetNormalMap::type NormalMap; + typedef Point_set_processing_3_np_helper NP_helper; + typedef typename NP_helper::Point_map PointMap; + typedef typename NP_helper::Normal_map NormalMap; - bool has_normals = !(boost::is_same::NoMap>::value); + bool has_normals = NP_helper::has_normal_map(); - PointMap point_map = choose_parameter(get_parameter(np, internal_np::point_map)); - NormalMap normal_map = choose_parameter(get_parameter(np, internal_np::normal_map)); + PointMap point_map = NP_helper::get_point_map(np); + NormalMap normal_map = NP_helper::get_normal_map(np); if(has_normals) return read_PLY_with_properties(is, output, @@ -327,10 +321,10 @@ */ template + typename CGAL_NP_TEMPLATE_PARAMETERS> bool read_PLY(const std::string& fname, PointOutputIterator output, - const CGAL_BGL_NP_CLASS& np + const CGAL_NP_CLASS& np = parameters::default_values() #ifndef DOXYGEN_RUNNING , typename std::enable_if::value>::type* = nullptr #endif @@ -353,51 +347,21 @@ /// \cond SKIP_IN_MANUAL -// variants with default NP -template -bool read_PLY(std::istream& is, OutputIterator output, - typename std::enable_if::value>::type* = nullptr) -{ - return read_PLY(is, output, parameters::all_default()); -} - -template -bool read_PLY(const std::string& fname, OutputIterator output, - typename std::enable_if::value>::type* = nullptr) -{ - return read_PLY(fname, output, parameters::all_default()); -} - // variants with default output iterator value type -template -bool read_PLY(std::istream& is, OutputIterator output, const CGAL_BGL_NP_CLASS& np, +template +bool read_PLY(std::istream& is, OutputIterator output, const CGAL_NP_CLASS& np = parameters::default_values(), typename std::enable_if::value>::type* = nullptr) { return read_PLY::type>(is, output, np); } -template -bool read_PLY(const std::string& fname, OutputIterator output, const CGAL_BGL_NP_CLASS& np, +template +bool read_PLY(const std::string& fname, OutputIterator output, const CGAL_NP_CLASS& np = parameters::default_values(), typename std::enable_if::value>::type* = nullptr) { return read_PLY::type>(fname, output, np); } -// variants with default NP and output iterator value type -template -bool read_PLY(std::istream& is, OutputIterator output, - typename std::enable_if::value>::type* = nullptr) -{ - return read_PLY::type>(is, output, parameters::all_default()); -} - -template -bool read_PLY(const std::string& fname, OutputIterator output, - typename std::enable_if::value>::type* = nullptr) -{ - return read_PLY::type>(fname, output, parameters::all_default()); -} - /// \endcond } // namespace IO @@ -494,8 +458,8 @@ \deprecated This function is deprecated since \cgal 5.3, \link PkgPointSetProcessing3IOPly `CGAL::IO::read_PLY()` \endlink should be used instead. */ -template -CGAL_DEPRECATED bool read_ply_points(std::istream& is, OutputIterator output, const CGAL_BGL_NP_CLASS& np) +template +CGAL_DEPRECATED bool read_ply_points(std::istream& is, OutputIterator output, const CGAL_NP_CLASS& np = parameters::default_values()) { return IO::read_PLY(is, output, np); } @@ -509,28 +473,14 @@ return IO::read_PLY_with_properties::type>(is, output, std::forward(properties)...); } -template -CGAL_DEPRECATED bool read_ply_points(std::istream& is, OutputIterator output) -{ - return IO::read_PLY(is, output, parameters::all_default()); -} - // variant with default output iterator value type template -CGAL_DEPRECATED bool read_ply_points(std::istream& is, OutputIterator output, const CGAL_BGL_NP_CLASS& np) + typename CGAL_NP_TEMPLATE_PARAMETERS> +CGAL_DEPRECATED bool read_ply_points(std::istream& is, OutputIterator output, const CGAL_NP_CLASS& np = parameters::default_values()) { return IO::read_PLY::type>(is, output, np); } -// variant with default NP and output iterator value type -template -CGAL_DEPRECATED bool read_ply_points(std::istream& is, OutputIterator output) -{ - return IO::read_PLY::type>(is, output, parameters::all_default()); -} - /// \endcond #endif // CGAL_NO_DEPRECATED_CODE diff -Nru cgal-5.4.1/include/CGAL/IO/read_points.h cgal-5.5/include/CGAL/IO/read_points.h --- cgal-5.4.1/include/CGAL/IO/read_points.h 2022-06-03 19:05:12.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/read_points.h 2022-07-13 19:06:06.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Point_set_processing_3/include/CGAL/IO/read_points.h $ -// $Id: read_points.h 78ff918 2021-06-23T23:34:14+02:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Point_set_processing_3/include/CGAL/IO/read_points.h $ +// $Id: read_points.h 75b03e6 2022-01-10T15:33:04+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Maxime Gimeno @@ -85,10 +85,10 @@ */ template + typename NamedParameters = parameters::Default_named_parameters> bool read_points(const std::string& fname, PointOutputIterator output, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { const std::string ext = internal::get_file_extension(fname); @@ -109,24 +109,12 @@ /// \cond SKIP_IN_MANUAL // variant with default OutputIteratorType -template -bool read_points(const std::string& fname, OutputIterator output, const NamedParameters& np) +template +bool read_points(const std::string& fname, OutputIterator output, const NamedParameters& np = parameters::default_values()) { return read_points::type>(fname, output, np); } -template -bool read_points(const std::string& fname, OutputIterator output) -{ - return read_points(fname, output, parameters::all_default()); -} - -// variant with all default -template -bool read_points(const std::string& fname, OutputIterator output) -{ - return read_points::type>(fname, output, parameters::all_default()); -} /// \endcond diff -Nru cgal-5.4.1/include/CGAL/IO/read_vtk_image_data.h cgal-5.5/include/CGAL/IO/read_vtk_image_data.h --- cgal-5.4.1/include/CGAL/IO/read_vtk_image_data.h 2022-06-03 19:03:55.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/read_vtk_image_data.h 2022-07-13 19:04:42.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_ImageIO/include/CGAL/IO/read_vtk_image_data.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_ImageIO/include/CGAL/IO/read_vtk_image_data.h $ // $Id: read_vtk_image_data.h 22be867 2021-05-04T14:59:28+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/read_xyz_points.h cgal-5.5/include/CGAL/IO/read_xyz_points.h --- cgal-5.4.1/include/CGAL/IO/read_xyz_points.h 2022-06-03 19:05:12.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/read_xyz_points.h 2022-07-13 19:06:06.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Point_set_processing_3/include/CGAL/IO/read_xyz_points.h $ -// $Id: read_xyz_points.h 862f3ee 2021-11-17T09:46:17+01:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Point_set_processing_3/include/CGAL/IO/read_xyz_points.h $ +// $Id: read_xyz_points.h 10b0af3 2022-01-13T14:43:34+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Pierre Alliez and Laurent Saboret @@ -21,7 +21,7 @@ #include #include -#include +#include #include #include @@ -29,12 +29,6 @@ #include #include -#ifdef DOXYGEN_RUNNING -#define CGAL_BGL_NP_TEMPLATE_PARAMETERS NamedParameters -#define CGAL_BGL_NP_CLASS NamedParameters -#define CGAL_DEPRECATED -#endif - namespace CGAL { namespace IO { @@ -80,10 +74,10 @@ */ template + typename CGAL_NP_TEMPLATE_PARAMETERS> bool read_XYZ(std::istream& is, OutputIterator output, - const CGAL_BGL_NP_CLASS& np) + const CGAL_NP_CLASS& np = parameters::default_values()) { using parameters::choose_parameter; using parameters::get_parameter; @@ -91,15 +85,15 @@ typedef Point_set_processing_3::Fake_point_range PointRange; // basic geometric types - typedef typename CGAL::GetPointMap::type PointMap; - typedef typename Point_set_processing_3::GetNormalMap::type NormalMap; - typedef typename Point_set_processing_3::GetK::Kernel Kernel; + typedef Point_set_processing_3_np_helper NP_helper; + typedef typename NP_helper::Point_map PointMap; + typedef typename NP_helper::Normal_map NormalMap; + typedef typename NP_helper::Geom_traits Kernel; - bool has_normals = !(boost::is_same::NoMap>::value); + bool has_normals = NP_helper::has_normal_map(); - PointMap point_map = choose_parameter(get_parameter(np, internal_np::point_map)); - NormalMap normal_map = choose_parameter(get_parameter(np, internal_np::normal_map)); + PointMap point_map = NP_helper::get_point_map(np); + NormalMap normal_map = NP_helper::get_normal_map(np); // value_type_traits is a workaround as back_insert_iterator's value_type is void //typedef typename value_type_traits::type Enriched_point; @@ -229,10 +223,10 @@ */ template + typename CGAL_NP_TEMPLATE_PARAMETERS> bool read_XYZ(const std::string& fname, OutputIterator output, - const CGAL_BGL_NP_CLASS& np) + const CGAL_NP_CLASS& np = parameters::default_values()) { std::ifstream is(fname); return read_XYZ(is, output, np); @@ -240,48 +234,21 @@ /// \cond SKIP_IN_MANUAL -// variants with default NP -template -bool read_XYZ(std::istream& is, OutputIterator output) -{ - return read_XYZ(is, output, parameters::all_default()); -} - -template -bool read_XYZ(const std::string& fname, OutputIterator output) -{ - return read_XYZ(fname, output, parameters::all_default()); -} - // variants with default output iterator value type -template -bool read_XYZ(std::istream& is, OutputIterator output, const CGAL_BGL_NP_CLASS& np) +template +bool read_XYZ(std::istream& is, OutputIterator output, const CGAL_NP_CLASS& np = parameters::default_values(), + typename std::enable_if::value>::type* = nullptr) { return read_XYZ::type>(is, output, np); } -template -bool read_XYZ(const std::string& fname, OutputIterator output, const CGAL_BGL_NP_CLASS& np) +template +bool read_XYZ(const std::string& fname, OutputIterator output, const CGAL_NP_CLASS& np = parameters::default_values()) { std::ifstream is(fname); return read_XYZ::type>(is, output, np); } -// variants with default NP and output iterator value type -template -bool read_XYZ(std::istream& is, - OutputIterator output, - typename std::enable_if::value>::type* = nullptr) -{ - return read_XYZ::type>(is, output, parameters::all_default()); -} - -template -bool read_XYZ(const std::string& fname, OutputIterator output) -{ - return read_XYZ::type>(fname, output, parameters::all_default()); -} - } // namespace IO /// \endcond @@ -439,40 +406,23 @@ */ template + typename CGAL_NP_TEMPLATE_PARAMETERS> CGAL_DEPRECATED bool read_xyz_points(std::istream& is, OutputIterator output, - const CGAL_BGL_NP_CLASS& np) + const CGAL_NP_CLASS& np = parameters::default_values()) { return IO::read_XYZ(is, output, np); } /// \cond SKIP_IN_MANUAL - -template -CGAL_DEPRECATED bool read_xyz_points(std::istream& is, - OutputIterator output) -{ - return IO::read_XYZ(is, output, parameters::all_default()); -} - template + typename CGAL_NP_TEMPLATE_PARAMETERS> CGAL_DEPRECATED bool read_xyz_points(std::istream& is, OutputIterator output, - const CGAL_BGL_NP_CLASS& np) + const CGAL_NP_CLASS& np = parameters::default_values()) { return IO::read_XYZ::type>(is, output, np); } - -template -CGAL_DEPRECATED bool read_xyz_points(std::istream& is, - OutputIterator output) -{ - return IO::read_XYZ::type>(is, output, parameters::all_default()); -} - /// \endcond #endif //CGAL_NO_DEPRECATED_CODE diff -Nru cgal-5.4.1/include/CGAL/IO/scan_OFF.h cgal-5.5/include/CGAL/IO/scan_OFF.h --- cgal-5.4.1/include/CGAL/IO/scan_OFF.h 2022-06-03 19:05:22.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/scan_OFF.h 2022-07-13 19:06:16.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polyhedron/include/CGAL/IO/scan_OFF.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polyhedron/include/CGAL/IO/scan_OFF.h $ // $Id: scan_OFF.h 00ca021 2020-08-04T12:59:08+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/STL/STL_reader.h cgal-5.5/include/CGAL/IO/STL/STL_reader.h --- cgal-5.4.1/include/CGAL/IO/STL/STL_reader.h 2022-06-03 19:05:52.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/STL/STL_reader.h 2022-07-13 19:06:48.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org); // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Stream_support/include/CGAL/IO/STL/STL_reader.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Stream_support/include/CGAL/IO/STL/STL_reader.h $ // $Id: STL_reader.h fb6f703 2021-05-04T14:07:49+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/STL.h cgal-5.5/include/CGAL/IO/STL.h --- cgal-5.4.1/include/CGAL/IO/STL.h 2022-06-03 19:05:52.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/STL.h 2022-07-13 19:06:48.000000000 +0000 @@ -6,8 +6,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Stream_support/include/CGAL/IO/STL.h $ -// $Id: STL.h 78f9324 2022-03-09T11:33:17+01:00 Laurent Rineau +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Stream_support/include/CGAL/IO/STL.h $ +// $Id: STL.h fd950da 2022-03-15T12:27:10+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Maxime Gimeno @@ -18,7 +18,7 @@ #include #include -#include +#include #include #include @@ -29,11 +29,6 @@ #include #include -#ifdef DOXYGEN_RUNNING -#define CGAL_BGL_NP_TEMPLATE_PARAMETERS NamedParameters -#define CGAL_BGL_NP_CLASS NamedParameters -#endif - namespace CGAL { namespace IO { @@ -73,11 +68,11 @@ * * \returns `true` if the reading was successful, `false` otherwise. */ -template +template bool read_STL(std::istream& is, PointRange& points, TriangleRange& facets, - const CGAL_BGL_NP_CLASS& np + const CGAL_NP_CLASS& np = parameters::default_values() #ifndef DOXYGEN_RUNNING , typename boost::enable_if >::type* = nullptr #endif @@ -157,17 +152,6 @@ } } -/// \cond SKIP_IN_MANUAL - -template -bool read_STL(std::istream& is, PointRange& points, TriangleRange& facets, - typename boost::enable_if >::type* = nullptr) -{ - return read_STL(is, points, facets, parameters::all_default()); -} - -/// \endcond - /*! * \ingroup PkgStreamSupportIoFuncsSTL * @@ -203,11 +187,11 @@ * * \returns `true` if the reading was successful, `false` otherwise. */ -template +template bool read_STL(const std::string& fname, PointRange& points, TriangleRange& facets, - const CGAL_BGL_NP_CLASS& np + const CGAL_NP_CLASS& np = parameters::default_values() #ifndef DOXYGEN_RUNNING , typename boost::enable_if >::type* = nullptr #endif @@ -234,20 +218,32 @@ return read_STL(is, points, facets, CGAL::parameters::verbose(v).use_binary_mode(false)); } -/// \cond SKIP_IN_MANUAL +//////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////////////// +// Write -template -bool read_STL(const std::string& fname, PointRange& points, TriangleRange& facets, - typename boost::enable_if >::type* = nullptr) +namespace internal { + +template +typename K::Vector_3 construct_normal_of_STL_face(const typename K::Point_3& p, + const typename K::Point_3& q, + const typename K::Point_3& r, + const K& k) { - return read_STL(fname, points, facets, parameters::all_default()); -} + typedef typename K::FT FT; + typedef typename K::Vector_3 Vector; -/// \endcond + if(k.collinear_3_object()(p, q, r)) + return k.construct_vector_3_object()(1, 0, 0); -//////////////////////////////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////////////////////////////// -// Write + Vector res = k.construct_orthogonal_vector_3_object()(p, q, r); + const FT sql = k.compute_squared_length_3_object()(res); + res = k.construct_divided_vector_3_object()(res, CGAL::approximate_sqrt(sql)); + + return res; +} + +} // namespace internal /*! * \ingroup PkgStreamSupportIoFuncsSTL @@ -280,11 +276,11 @@ * * \return `true` if the writing was successful, `false` otherwise. */ -template +template bool write_STL(std::ostream& os, const PointRange& points, const TriangleRange& facets, - const CGAL_BGL_NP_CLASS& np + const CGAL_NP_CLASS& np = parameters::default_values() #ifndef DOXYGEN_RUNNING , typename boost::enable_if >::type* = nullptr #endif @@ -295,13 +291,15 @@ using parameters::choose_parameter; using parameters::get_parameter; - typedef typename CGAL::GetPointMap::type PointMap; + typedef typename CGAL::GetPointMap::type PointMap; PointMap point_map = choose_parameter(get_parameter(np, internal_np::point_map)); typedef typename boost::property_traits::value_type Point; typedef typename CGAL::Kernel_traits::Kernel K; typedef typename K::Vector_3 Vector_3; + K k = choose_parameter(get_parameter(np, internal_np::geom_traits)); + if(!os.good()) return false; @@ -340,7 +338,7 @@ const Point& q = get(point_map, points[face[1]]); const Point& r = get(point_map, points[face[2]]); - const Vector_3 n = collinear(p,q,r) ? Vector_3(1,0,0) : unit_normal(p,q,r); + const Vector_3 n = internal::construct_normal_of_STL_face(p, q, r, k); os << "facet normal " << n << "\nouter loop\n"; os << "vertex " << p << "\n"; os << "vertex " << q << "\n"; @@ -353,17 +351,6 @@ return !os.fail(); } -/// \cond SKIP_IN_MANUAL - -template -bool write_STL(std::ostream& os, const PointRange& points, const TriangleRange& facets, - typename boost::enable_if >::type* = nullptr) -{ - return write_STL(os, points, facets, parameters::all_default()); -} - -/// \endcond - /*! * \ingroup PkgStreamSupportIoFuncsSTL * @@ -399,11 +386,11 @@ * * \return `true` if the writing was successful, `false` otherwise. */ -template +template bool write_STL(const std::string& fname, const PointRange& points, const TriangleRange& facets, - const CGAL_BGL_NP_CLASS& np + const CGAL_NP_CLASS& np = parameters::default_values() #ifndef DOXYGEN_RUNNING , typename boost::enable_if >::type* = nullptr #endif @@ -424,17 +411,6 @@ } } -/// \cond SKIP_IN_MANUAL - -template -bool write_STL(const std::string& fname, const PointRange& points, const TriangleRange& facets, - typename boost::enable_if >::type* = nullptr) -{ - return write_STL(fname, points, facets, parameters::all_default()); -} - -/// \endcond - } // namespace IO } // namespace CGAL diff -Nru cgal-5.4.1/include/CGAL/IO/Tee_for_output_iterator.h cgal-5.5/include/CGAL/IO/Tee_for_output_iterator.h --- cgal-5.4.1/include/CGAL/IO/Tee_for_output_iterator.h 2022-06-03 19:04:08.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/Tee_for_output_iterator.h 2022-07-13 19:04:56.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Convex_hull_2/include/CGAL/IO/Tee_for_output_iterator.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Convex_hull_2/include/CGAL/IO/Tee_for_output_iterator.h $ // $Id: Tee_for_output_iterator.h 319383c 2020-05-20T09:47:58+02:00 Laurent Rineau // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/trace.h cgal-5.5/include/CGAL/IO/trace.h --- cgal-5.4.1/include/CGAL/IO/trace.h 2022-06-03 19:05:52.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/trace.h 2022-07-13 19:06:49.000000000 +0000 @@ -2,7 +2,7 @@ // All rights reserved. // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Stream_support/include/CGAL/IO/trace.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Stream_support/include/CGAL/IO/trace.h $ // $Id: trace.h 3b7754f 2021-09-20T12:44:38+01:00 Andreas Fabri // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/Triangulation_off_ostream_2.h cgal-5.5/include/CGAL/IO/Triangulation_off_ostream_2.h --- cgal-5.4.1/include/CGAL/IO/Triangulation_off_ostream_2.h 2022-06-03 19:06:07.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/Triangulation_off_ostream_2.h 2022-07-13 19:07:05.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_2/include/CGAL/IO/Triangulation_off_ostream_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_2/include/CGAL/IO/Triangulation_off_ostream_2.h $ // $Id: Triangulation_off_ostream_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/Triangulation_off_ostream_3.h cgal-5.5/include/CGAL/IO/Triangulation_off_ostream_3.h --- cgal-5.4.1/include/CGAL/IO/Triangulation_off_ostream_3.h 2022-06-03 19:06:10.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/Triangulation_off_ostream_3.h 2022-07-13 19:07:09.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_3/include/CGAL/IO/Triangulation_off_ostream_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_3/include/CGAL/IO/Triangulation_off_ostream_3.h $ // $Id: Triangulation_off_ostream_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/Triangulation_off_ostream.h cgal-5.5/include/CGAL/IO/Triangulation_off_ostream.h --- cgal-5.4.1/include/CGAL/IO/Triangulation_off_ostream.h 2022-06-03 19:06:05.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/Triangulation_off_ostream.h 2022-07-13 19:07:03.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation/include/CGAL/IO/Triangulation_off_ostream.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation/include/CGAL/IO/Triangulation_off_ostream.h $ // $Id: Triangulation_off_ostream.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/Triangulation_ps_stream.h cgal-5.5/include/CGAL/IO/Triangulation_ps_stream.h --- cgal-5.4.1/include/CGAL/IO/Triangulation_ps_stream.h 2022-06-03 19:06:07.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/Triangulation_ps_stream.h 2022-07-13 19:07:05.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_2/include/CGAL/IO/Triangulation_ps_stream.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_2/include/CGAL/IO/Triangulation_ps_stream.h $ // $Id: Triangulation_ps_stream.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/Verbose_ostream.h cgal-5.5/include/CGAL/IO/Verbose_ostream.h --- cgal-5.4.1/include/CGAL/IO/Verbose_ostream.h 2022-06-03 19:05:52.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/Verbose_ostream.h 2022-07-13 19:06:49.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Stream_support/include/CGAL/IO/Verbose_ostream.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Stream_support/include/CGAL/IO/Verbose_ostream.h $ // $Id: Verbose_ostream.h 3c83367 2020-01-20T12:02:06+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/VRML/File_writer_VRML_2.h cgal-5.5/include/CGAL/IO/VRML/File_writer_VRML_2.h --- cgal-5.4.1/include/CGAL/IO/VRML/File_writer_VRML_2.h 2022-06-03 19:05:52.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/VRML/File_writer_VRML_2.h 2022-07-13 19:06:48.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Stream_support/include/CGAL/IO/VRML/File_writer_VRML_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Stream_support/include/CGAL/IO/VRML/File_writer_VRML_2.h $ // $Id: File_writer_VRML_2.h 4e519a3 2021-05-05T13:15:37+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/VRML/VRML_1_ostream.h cgal-5.5/include/CGAL/IO/VRML/VRML_1_ostream.h --- cgal-5.4.1/include/CGAL/IO/VRML/VRML_1_ostream.h 2022-06-03 19:05:52.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/VRML/VRML_1_ostream.h 2022-07-13 19:06:48.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org); // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Stream_support/include/CGAL/IO/VRML/VRML_1_ostream.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Stream_support/include/CGAL/IO/VRML/VRML_1_ostream.h $ // $Id: VRML_1_ostream.h 1ef61f1 2020-10-13T18:13:01+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/VRML/VRML_2_ostream.h cgal-5.5/include/CGAL/IO/VRML/VRML_2_ostream.h --- cgal-5.4.1/include/CGAL/IO/VRML/VRML_2_ostream.h 2022-06-03 19:05:52.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/VRML/VRML_2_ostream.h 2022-07-13 19:06:48.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org); // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Stream_support/include/CGAL/IO/VRML/VRML_2_ostream.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Stream_support/include/CGAL/IO/VRML/VRML_2_ostream.h $ // $Id: VRML_2_ostream.h 5ecd852 2021-04-26T21:37:02+01:00 Giles Bathgate // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/VRML.h cgal-5.5/include/CGAL/IO/VRML.h --- cgal-5.4.1/include/CGAL/IO/VRML.h 2022-06-03 19:05:52.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/VRML.h 2022-07-13 19:06:48.000000000 +0000 @@ -6,7 +6,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Stream_support/include/CGAL/IO/VRML.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Stream_support/include/CGAL/IO/VRML.h $ // $Id: VRML.h 6a5972c 2020-01-23T16:33:23+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/VTK/VTK_reader.h cgal-5.5/include/CGAL/IO/VTK/VTK_reader.h --- cgal-5.4.1/include/CGAL/IO/VTK/VTK_reader.h 2022-06-03 19:05:52.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/VTK/VTK_reader.h 2022-07-13 19:06:49.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Stream_support/include/CGAL/IO/VTK/VTK_reader.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Stream_support/include/CGAL/IO/VTK/VTK_reader.h $ // $Id: VTK_reader.h 71413eb 2020-05-29T12:03:25+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/VTK/VTK_writer.h cgal-5.5/include/CGAL/IO/VTK/VTK_writer.h --- cgal-5.4.1/include/CGAL/IO/VTK/VTK_writer.h 2022-06-03 19:05:52.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/VTK/VTK_writer.h 2022-07-13 19:06:49.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Stream_support/include/CGAL/IO/VTK/VTK_writer.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Stream_support/include/CGAL/IO/VTK/VTK_writer.h $ // $Id: VTK_writer.h 423ae6e 2020-01-24T17:48:02+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/VTK.h cgal-5.5/include/CGAL/IO/VTK.h --- cgal-5.4.1/include/CGAL/IO/VTK.h 2022-06-03 19:05:52.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/VTK.h 2022-07-13 19:06:48.000000000 +0000 @@ -6,8 +6,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Stream_support/include/CGAL/IO/VTK.h $ -// $Id: VTK.h 78ff918 2021-06-23T23:34:14+02:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Stream_support/include/CGAL/IO/VTK.h $ +// $Id: VTK.h 10b0af3 2022-01-13T14:43:34+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Maxime Gimeno @@ -18,7 +18,7 @@ #include #include -#include +#include #include #ifdef CGAL_USE_VTK @@ -32,11 +32,6 @@ #if defined(CGAL_USE_VTK) || defined(DOXYGEN_RUNNING) -#ifdef DOXYGEN_RUNNING -#define CGAL_BGL_NP_TEMPLATE_PARAMETERS NamedParameters -#define CGAL_BGL_NP_CLASS NamedParameters -#endif - namespace CGAL { namespace IO { namespace internal { @@ -142,7 +137,7 @@ template bool read_VTP(const std::string& fname, PointRange& points, PolygonRange& polygons) { - return read_VTP(fname, points, polygons, parameters::all_default()); + return read_VTP(fname, points, polygons, parameters::default_values()); } //////////////////////////////////////////////////////////////////////////////////////////////////// @@ -379,11 +374,11 @@ */ template + typename CGAL_NP_TEMPLATE_PARAMETERS> bool write_VTP(std::ostream& os, const PointRange& points, const PolygonRange& polygons, - const CGAL_BGL_NP_CLASS& np) + const CGAL_NP_CLASS& np = parameters::default_values()) { using parameters::get_parameter; using parameters::choose_parameter; @@ -432,16 +427,6 @@ os << "" << std::endl; } -/// \cond SKIP_IN_MANUAL - -template -bool write_VTP(std::ostream& os, const PointRange& points, const PolygonRange& polygons) -{ - return write_VTP(os, points, polygons, parameters::all_default()); -} - -/// \endcond - /*! * \ingroup PkgStreamSupportIoFuncsVTP * @@ -475,11 +460,11 @@ * * \return `true` if the writing was successful, `false` otherwise. */ -template +template bool write_VTP(const std::string& fname, const PointRange& points, const PolygonRange& polygons, - const CGAL_BGL_NP_CLASS& np) + const CGAL_NP_CLASS& np = parameters::default_values()) { const bool binary = CGAL::parameters::choose_parameter(CGAL::parameters::get_parameter(np, internal_np::use_binary_mode), true); if(binary) @@ -496,16 +481,6 @@ } } -/// \cond SKIP_IN_MANUAL - -template -bool write_VTP(const std::string& fname, const PointRange& points, const PolygonRange& polygons) -{ - return write_VTP(fname, points, polygons, parameters::all_default()); -} - -/// \endcond - } // namespace IO } // namespace CGAL diff -Nru cgal-5.4.1/include/CGAL/IO/WKT/traits_linestring.h cgal-5.5/include/CGAL/IO/WKT/traits_linestring.h --- cgal-5.4.1/include/CGAL/IO/WKT/traits_linestring.h 2022-06-03 19:05:52.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/WKT/traits_linestring.h 2022-07-13 19:06:49.000000000 +0000 @@ -6,7 +6,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Stream_support/include/CGAL/IO/WKT/traits_linestring.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Stream_support/include/CGAL/IO/WKT/traits_linestring.h $ // $Id: traits_linestring.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/WKT/traits_multilinestring.h cgal-5.5/include/CGAL/IO/WKT/traits_multilinestring.h --- cgal-5.4.1/include/CGAL/IO/WKT/traits_multilinestring.h 2022-06-03 19:05:52.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/WKT/traits_multilinestring.h 2022-07-13 19:06:49.000000000 +0000 @@ -6,7 +6,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Stream_support/include/CGAL/IO/WKT/traits_multilinestring.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Stream_support/include/CGAL/IO/WKT/traits_multilinestring.h $ // $Id: traits_multilinestring.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/WKT/traits_multipoint.h cgal-5.5/include/CGAL/IO/WKT/traits_multipoint.h --- cgal-5.4.1/include/CGAL/IO/WKT/traits_multipoint.h 2022-06-03 19:05:52.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/WKT/traits_multipoint.h 2022-07-13 19:06:49.000000000 +0000 @@ -6,7 +6,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Stream_support/include/CGAL/IO/WKT/traits_multipoint.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Stream_support/include/CGAL/IO/WKT/traits_multipoint.h $ // $Id: traits_multipoint.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/WKT/traits_multipolygon.h cgal-5.5/include/CGAL/IO/WKT/traits_multipolygon.h --- cgal-5.4.1/include/CGAL/IO/WKT/traits_multipolygon.h 2022-06-03 19:05:52.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/WKT/traits_multipolygon.h 2022-07-13 19:06:49.000000000 +0000 @@ -6,7 +6,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Stream_support/include/CGAL/IO/WKT/traits_multipolygon.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Stream_support/include/CGAL/IO/WKT/traits_multipolygon.h $ // $Id: traits_multipolygon.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/WKT/traits_point_3.h cgal-5.5/include/CGAL/IO/WKT/traits_point_3.h --- cgal-5.4.1/include/CGAL/IO/WKT/traits_point_3.h 2022-06-03 19:05:52.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/WKT/traits_point_3.h 2022-07-13 19:06:49.000000000 +0000 @@ -6,7 +6,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Stream_support/include/CGAL/IO/WKT/traits_point_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Stream_support/include/CGAL/IO/WKT/traits_point_3.h $ // $Id: traits_point_3.h e6c767d 2021-05-12T15:45:07+02:00 Maxime Gimeno // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/WKT/traits_point.h cgal-5.5/include/CGAL/IO/WKT/traits_point.h --- cgal-5.4.1/include/CGAL/IO/WKT/traits_point.h 2022-06-03 19:05:52.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/WKT/traits_point.h 2022-07-13 19:06:49.000000000 +0000 @@ -6,7 +6,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Stream_support/include/CGAL/IO/WKT/traits_point.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Stream_support/include/CGAL/IO/WKT/traits_point.h $ // $Id: traits_point.h e6c767d 2021-05-12T15:45:07+02:00 Maxime Gimeno // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/WKT/traits_polygon.h cgal-5.5/include/CGAL/IO/WKT/traits_polygon.h --- cgal-5.4.1/include/CGAL/IO/WKT/traits_polygon.h 2022-06-03 19:05:52.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/WKT/traits_polygon.h 2022-07-13 19:06:49.000000000 +0000 @@ -6,7 +6,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Stream_support/include/CGAL/IO/WKT/traits_polygon.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Stream_support/include/CGAL/IO/WKT/traits_polygon.h $ // $Id: traits_polygon.h e6c767d 2021-05-12T15:45:07+02:00 Maxime Gimeno // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/WKT.h cgal-5.5/include/CGAL/IO/WKT.h --- cgal-5.4.1/include/CGAL/IO/WKT.h 2022-06-03 19:05:52.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/WKT.h 2022-07-13 19:06:49.000000000 +0000 @@ -6,7 +6,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Stream_support/include/CGAL/IO/WKT.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Stream_support/include/CGAL/IO/WKT.h $ // $Id: WKT.h a3d1765 2021-07-19T14:18:40+02:00 Maxime Gimeno // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/write_las_points.h cgal-5.5/include/CGAL/IO/write_las_points.h --- cgal-5.4.1/include/CGAL/IO/write_las_points.h 2022-06-03 19:05:12.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/write_las_points.h 2022-07-13 19:06:06.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Point_set_processing_3/include/CGAL/IO/write_las_points.h $ -// $Id: write_las_points.h 5578bf4 2021-09-27T15:35:40+02:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Point_set_processing_3/include/CGAL/IO/write_las_points.h $ +// $Id: write_las_points.h 10b0af3 2022-01-13T14:43:34+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Simon Giraudot @@ -17,7 +17,7 @@ #include #include -#include +#include #include #include #include @@ -58,12 +58,6 @@ #include #include -#ifdef DOXYGEN_RUNNING -#define CGAL_BGL_NP_TEMPLATE_PARAMETERS NamedParameters -#define CGAL_BGL_NP_CLASS NamedParameters -#define CGAL_DEPRECATED -#endif - namespace CGAL { namespace IO { @@ -283,10 +277,10 @@ \sa \ref IOStreamLAS \sa `write_LAS_with_properties()` */ -template +template bool write_LAS(std::ostream& os, const PointRange& points, - const CGAL_BGL_NP_CLASS& np + const CGAL_NP_CLASS& np = parameters::default_values() #ifndef DOXYGEN_RUNNING , typename boost::enable_if >::type* = nullptr #endif @@ -295,7 +289,7 @@ using parameters::choose_parameter; using parameters::get_parameter; - typedef typename CGAL::GetPointMap::type PointMap; + typedef typename CGAL::GetPointMap::type PointMap; PointMap point_map = choose_parameter(get_parameter(np, internal_np::point_map)); if(!os) @@ -338,10 +332,10 @@ \sa `write_LAS_with_properties()` */ -template +template bool write_LAS(const std::string& filename, const PointRange& points, - const CGAL_BGL_NP_CLASS& np + const CGAL_NP_CLASS& np = parameters::default_values() #ifndef DOXYGEN_RUNNING , typename boost::enable_if >::type* = nullptr #endif @@ -352,27 +346,6 @@ return write_LAS(os, points, np); } -/// \cond SKIP_IN_MANUAL - -// variant with default NP -template -bool write_LAS(std::ostream& os, const PointRange& points, - typename boost::enable_if >::type* = nullptr) -{ - return write_LAS(os, points, CGAL::Point_set_processing_3::parameters::all_default(points)); -} - -template -bool write_LAS(const std::string& filename, const PointRange& points, - typename boost::enable_if >::type* = nullptr) -{ - std::ofstream os(filename, std::ios::binary); - CGAL::IO::set_mode(os, CGAL::IO::BINARY); - return write_LAS(os, points, parameters::all_default()); -} - -/// \endcond - } // namespace IO #ifndef CGAL_NO_DEPRECATED_CODE @@ -429,8 +402,8 @@ \deprecated This function is deprecated since \cgal 5.3, `CGAL::IO::write_LAS()` should be used instead. */ -template -bool write_las_points(std::ostream& os, const PointRange& points, const CGAL_BGL_NP_CLASS& np) +template +bool write_las_points(std::ostream& os, const PointRange& points, const CGAL_NP_CLASS& np = parameters::default_values()) { return IO::write_LAS(os, points, np); } diff -Nru cgal-5.4.1/include/CGAL/IO/write_off_points.h cgal-5.5/include/CGAL/IO/write_off_points.h --- cgal-5.4.1/include/CGAL/IO/write_off_points.h 2022-06-03 19:05:12.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/write_off_points.h 2022-07-13 19:06:06.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Point_set_processing_3/include/CGAL/IO/write_off_points.h $ -// $Id: write_off_points.h ee1622e 2021-12-16T14:44:13+01:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Point_set_processing_3/include/CGAL/IO/write_off_points.h $ +// $Id: write_off_points.h 477353d 2022-04-20T15:55:50+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Pierre Alliez and Laurent Saboret @@ -17,7 +17,7 @@ #include #include -#include +#include #include #include #include @@ -30,32 +30,26 @@ #include #include -#ifdef DOXYGEN_RUNNING -#define CGAL_BGL_NP_TEMPLATE_PARAMETERS NamedParameters -#define CGAL_BGL_NP_CLASS NamedParameters -#endif - namespace CGAL { namespace Point_set_processing_3 { namespace internal { -template +template bool write_OFF_PSP(std::ostream& os, const PointRange& points, - const CGAL_BGL_NP_CLASS& np) + const CGAL_NP_CLASS& np = CGAL::parameters::default_values()) { - using CGAL::parameters::choose_parameter; - using CGAL::parameters::get_parameter; using CGAL::parameters::is_default_parameter; // basic geometric types - typedef typename CGAL::GetPointMap::type PointMap; - typedef typename Point_set_processing_3::GetNormalMap::type NormalMap; + typedef Point_set_processing_3_np_helper NP_helper; + typedef typename NP_helper::Const_point_map PointMap; + typedef typename NP_helper::Normal_map NormalMap; - const bool has_normals = !(is_default_parameter(get_parameter(np, internal_np::normal_map))); + const bool has_normals = !(is_default_parameter::value); - PointMap point_map = choose_parameter(get_parameter(np, internal_np::point_map)); - NormalMap normal_map = choose_parameter(get_parameter(np, internal_np::normal_map)); + PointMap point_map = NP_helper::get_const_point_map(points, np); + NormalMap normal_map = NP_helper::get_normal_map(points, np); CGAL_point_set_processing_precondition(points.begin() != points.end()); @@ -134,10 +128,10 @@ \returns `true` if writing was successful, `false` otherwise. */ -template +template bool write_OFF(std::ostream& os, const PointRange& points, - const CGAL_BGL_NP_CLASS& np + const CGAL_NP_CLASS& np = parameters::default_values() #ifndef DOXYGEN_RUNNING , typename boost::enable_if >::type* = nullptr #endif @@ -146,17 +140,6 @@ return Point_set_processing_3::internal::write_OFF_PSP(os, points, np); } -/// \cond SKIP_IN_MANUAL - -template -bool write_OFF(std::ostream& os, const PointRange& points, - typename boost::enable_if >::type* = nullptr) -{ - return write_OFF(os, points, parameters::all_default()); -} - -/// \endcond - /** \ingroup PkgPointSetProcessing3IOOff @@ -201,10 +184,10 @@ \sa \ref IOStreamOFF */ template + typename CGAL_NP_TEMPLATE_PARAMETERS> bool write_OFF(const std::string& filename, const PointRange& points, - const CGAL_BGL_NP_CLASS& np + const CGAL_NP_CLASS& np = parameters::default_values() #ifndef DOXYGEN_RUNNING , typename boost::enable_if >::type* = nullptr #endif @@ -215,18 +198,6 @@ return write_OFF(os, points, np); } -/// \cond SKIP_IN_MANUAL - -template -bool write_OFF(const std::string& filename, const PointRange& points, - typename boost::enable_if >::type* = nullptr) -{ - std::ofstream os(filename); - return write_OFF(os, points, parameters::all_default()); -} - -/// \endcond - } // IO namespace #ifndef CGAL_NO_DEPRECATED_CODE @@ -328,23 +299,12 @@ \deprecated This function is deprecated since \cgal 5.3, \link PkgPointSetProcessing3IOOff `CGAL::IO::write_OFF()` \endlink should be used instead. */ -template -CGAL_DEPRECATED bool write_off_points(std::ostream& os, const PointRange& points, const CGAL_BGL_NP_CLASS& np) +template +CGAL_DEPRECATED bool write_off_points(std::ostream& os, const PointRange& points, const CGAL_NP_CLASS& np = parameters::default_values()) { return IO::write_OFF(os, points, np); } -/// \cond SKIP_IN_MANUAL - -// variant with default NP -template -CGAL_DEPRECATED bool write_off_points(std::ostream& os, const PointRange& points) -{ - return IO::write_OFF(os, points, parameters::all_default()); -} - -/// \endcond - #endif // CGAL_NO_DEPRECATED_CODE } // namespace CGAL diff -Nru cgal-5.4.1/include/CGAL/IO/write_ply_points.h cgal-5.5/include/CGAL/IO/write_ply_points.h --- cgal-5.4.1/include/CGAL/IO/write_ply_points.h 2022-06-03 19:05:12.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/write_ply_points.h 2022-07-13 19:06:06.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Point_set_processing_3/include/CGAL/IO/write_ply_points.h $ -// $Id: write_ply_points.h ad79d37 2021-09-29T11:46:30+02:00 Laurent Rineau +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Point_set_processing_3/include/CGAL/IO/write_ply_points.h $ +// $Id: write_ply_points.h 10b0af3 2022-01-13T14:43:34+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Simon Giraudot @@ -21,7 +21,7 @@ #include #include -#include +#include #include #include @@ -32,12 +32,6 @@ #include #include -#ifdef DOXYGEN_RUNNING -#define CGAL_BGL_NP_TEMPLATE_PARAMETERS NamedParameters -#define CGAL_BGL_NP_CLASS NamedParameters -#define CGAL_DEPRECATED -#endif - namespace CGAL { namespace IO { @@ -190,10 +184,10 @@ \sa `write_PLY_with_properties()` */ -template +template bool write_PLY(std::ostream& os, const PointRange& points, - const CGAL_BGL_NP_CLASS& np + const CGAL_NP_CLASS& np = parameters::default_values() #ifndef DOXYGEN_RUNNING , typename boost::enable_if >::type* = nullptr #endif @@ -203,14 +197,14 @@ using parameters::get_parameter; // basic geometric types - typedef typename CGAL::GetPointMap::type PointMap; - typedef typename Point_set_processing_3::GetNormalMap::type NormalMap; + typedef Point_set_processing_3_np_helper NP_helper; + typedef typename NP_helper::Const_point_map PointMap; + typedef typename NP_helper::Normal_map NormalMap; - bool has_normals = !(boost::is_same::NoMap>::value); + bool has_normals = NP_helper::has_normal_map(); - PointMap point_map = choose_parameter(get_parameter(np, internal_np::point_map)); - NormalMap normal_map = choose_parameter(get_parameter(np, internal_np::normal_map)); + PointMap point_map = NP_helper::get_const_point_map(points, np); + NormalMap normal_map = NP_helper::get_normal_map(points, np); if(!os) { @@ -228,17 +222,6 @@ return write_PLY_with_properties(os, points, make_ply_point_writer(point_map)); } -/// \cond SKIP_IN_MANUAL - -template -bool write_PLY(std::ostream& os, const PointRange& points, - typename boost::enable_if >::type* = nullptr) -{ - return write_PLY(os, points, parameters::all_default()); -} - -/// \endcond - /** \ingroup PkgPointSetProcessing3IOPly @@ -289,10 +272,10 @@ \sa `write_PLY_with_properties()` */ -template +template bool write_PLY(const std::string& filename, const PointRange& points, - const CGAL_BGL_NP_CLASS& np + const CGAL_NP_CLASS& np = parameters::default_values() #ifndef DOXYGEN_RUNNING , typename boost::enable_if >::type* = nullptr #endif @@ -313,17 +296,6 @@ } } -/// \cond SKIP_IN_MANUAL - -template -bool write_PLY(const std::string& filename, const PointRange& points, - typename boost::enable_if >::type* = nullptr) -{ - return write_PLY(filename, points, parameters::all_default()); -} - -/// \endcond - } // namespace IO #ifndef CGAL_NO_DEPRECATED_CODE @@ -402,22 +374,12 @@ \deprecated This function is deprecated since \cgal 5.3, \link PkgPointSetProcessing3IOPly `CGAL::IO::write_PLY()` \endlink should be used instead. */ -template -CGAL_DEPRECATED bool write_ply_points(std::ostream& os, const PointRange& points, const CGAL_BGL_NP_CLASS& np) +template +CGAL_DEPRECATED bool write_ply_points(std::ostream& os, const PointRange& points, const CGAL_NP_CLASS& np = parameters::default_values()) { return IO::write_PLY(os, points, np); } -/// \cond SKIP_IN_MANUAL - -template -CGAL_DEPRECATED bool write_ply_points(std::ostream& os, const PointRange& points) -{ - return IO::write_PLY(os, points, parameters::all_default()); -} - -/// \endcond - #endif // CGAL_NO_DEPRECATED_CODE } // namespace CGAL diff -Nru cgal-5.4.1/include/CGAL/IO/write_points.h cgal-5.5/include/CGAL/IO/write_points.h --- cgal-5.4.1/include/CGAL/IO/write_points.h 2022-06-03 19:05:12.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/write_points.h 2022-07-13 19:06:06.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Point_set_processing_3/include/CGAL/IO/write_points.h $ -// $Id: write_points.h 78ff918 2021-06-23T23:34:14+02:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Point_set_processing_3/include/CGAL/IO/write_points.h $ +// $Id: write_points.h 10b0af3 2022-01-13T14:43:34+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Maxime Gimeno @@ -26,11 +26,6 @@ #include #include -#ifdef DOXYGEN_RUNNING -#define CGAL_BGL_NP_TEMPLATE_PARAMETERS NamedParameters -#define CGAL_BGL_NP_CLASS NamedParameters -#endif - namespace CGAL { namespace IO { @@ -93,10 +88,10 @@ \returns `true` if writing was successful, `false` otherwise. */ -template +template bool write_points(const std::string& fname, const PointRange& points, - const CGAL_BGL_NP_CLASS& np, + const CGAL_NP_CLASS& np = parameters::default_values(), #ifndef DOXYGEN_RUNNING typename boost::enable_if >::type* = nullptr #endif @@ -118,17 +113,6 @@ return false; } -/// \cond SKIP_IN_MANUAL - -template -bool write_points(const std::string& fname,const PointRange& points, - typename boost::enable_if >::type* = nullptr) -{ - return write_points(fname, points, parameters::all_default()); -} - -/// \endcond - } } // namespace CGAL::IO #endif // CGAL_POINT_SET_PROCESSING_WRITE_POINTS_H diff -Nru cgal-5.4.1/include/CGAL/IO/write_VTU.h cgal-5.5/include/CGAL/IO/write_VTU.h --- cgal-5.4.1/include/CGAL/IO/write_VTU.h 2022-06-03 19:04:43.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/write_VTU.h 2022-07-13 19:05:35.000000000 +0000 @@ -5,7 +5,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_2/include/CGAL/IO/write_VTU.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_2/include/CGAL/IO/write_VTU.h $ // $Id: write_VTU.h e0a4dd0 2021-05-18T17:31:40+02:00 Laurent Rineau // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/IO/write_xyz_points.h cgal-5.5/include/CGAL/IO/write_xyz_points.h --- cgal-5.4.1/include/CGAL/IO/write_xyz_points.h 2022-06-03 19:05:12.000000000 +0000 +++ cgal-5.5/include/CGAL/IO/write_xyz_points.h 2022-07-13 19:06:06.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Point_set_processing_3/include/CGAL/IO/write_xyz_points.h $ -// $Id: write_xyz_points.h a34debc 2021-06-23T22:56:35+02:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Point_set_processing_3/include/CGAL/IO/write_xyz_points.h $ +// $Id: write_xyz_points.h 10b0af3 2022-01-13T14:43:34+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Pierre Alliez and Laurent Saboret @@ -21,7 +21,7 @@ #include #include -#include +#include #include #include @@ -30,34 +30,27 @@ #include #include -#ifdef DOXYGEN_RUNNING -#define CGAL_BGL_NP_TEMPLATE_PARAMETERS NamedParameters -#define CGAL_BGL_NP_CLASS NamedParameters -#define CGAL_DEPRECATED -#endif - namespace CGAL { namespace Point_set_processing_3 { namespace internal { -template +template bool write_XYZ_PSP(std::ostream& os, const PointRange& points, - const CGAL_BGL_NP_CLASS& np) + const CGAL_NP_CLASS& np = CGAL::parameters::default_values()) { using CGAL::parameters::choose_parameter; using CGAL::parameters::get_parameter; // basic geometric types - typedef typename CGAL::GetPointMap::type PointMap; - typedef typename Point_set_processing_3::GetNormalMap::type NormalMap; + typedef Point_set_processing_3_np_helper NP_helper; + typedef typename NP_helper::Const_point_map PointMap; + typedef typename NP_helper::Normal_map NormalMap; - bool has_normals = !(std::is_same::NoMap>::value); + bool has_normals = NP_helper::has_normal_map(); - PointMap point_map = choose_parameter(get_parameter(np, internal_np::point_map)); - NormalMap normal_map = choose_parameter(get_parameter(np, internal_np::normal_map)); + PointMap point_map = NP_helper::get_const_point_map(points, np); + NormalMap normal_map = NP_helper::get_normal_map(points, np); CGAL_point_set_processing_precondition(points.begin() != points.end()); @@ -129,10 +122,10 @@ \returns `true` if writing was successful, `false` otherwise. */ -template +template bool write_XYZ(std::ostream& os, const PointRange& points, - const CGAL_BGL_NP_CLASS& np + const CGAL_NP_CLASS& np = parameters::default_values() #ifndef DOXYGEN_RUNNING , typename boost::enable_if >::type* = nullptr #endif @@ -141,17 +134,6 @@ return Point_set_processing_3::internal::write_XYZ_PSP(os, points, np); } -/// \cond SKIP_IN_MANUAL - -template -bool write_XYZ(std::ostream& os, const PointRange& points, - typename boost::enable_if >::type* = nullptr) -{ - return write_XYZ(os, points, parameters::all_default()); -} - -/// \endcond - /** \ingroup PkgPointSetProcessing3IOXyz @@ -193,10 +175,10 @@ \returns `true` if writing was successful, `false` otherwise. */ -template +template bool write_XYZ(const std::string& filename, const PointRange& points, - const CGAL_BGL_NP_CLASS& np + const CGAL_NP_CLASS& np = parameters::default_values() #ifndef DOXYGEN_RUNNING , typename boost::enable_if >::type* = nullptr #endif @@ -206,18 +188,6 @@ return write_XYZ(os, points, np); } -/// \cond SKIP_IN_MANUAL - -template -bool write_XYZ(const std::string& filename, const PointRange& points, - typename boost::enable_if >::type* = nullptr) -{ - std::ofstream os(filename); - return write_XYZ(os, points, parameters::all_default()); -} - -/// \endcond - } // namespace IO #ifndef CGAL_NO_DEPRECATED_CODE @@ -317,22 +287,12 @@ \deprecated This function is deprecated since \cgal 5.3, \link PkgPointSetProcessing3IOXyz `CGAL::write_XYZ()` \endlink should be used instead. */ -template -CGAL_DEPRECATED bool write_xyz_points(std::ostream& os, const PointRange& points, const CGAL_BGL_NP_CLASS& np) +template +CGAL_DEPRECATED bool write_xyz_points(std::ostream& os, const PointRange& points, const CGAL_NP_CLASS& np = parameters::default_values()) { return IO::write_XYZ(os, points, np); } -/// \cond SKIP_IN_MANUAL - -template -CGAL_DEPRECATED bool write_xyz_points(std::ostream& os, const PointRange& points) -{ - return IO::write_XYZ(os, points, parameters::all_default()); -} - -/// \endcond - #endif // CGAL_NO_DEPRECATED_CODE } // namespace CGAL diff -Nru cgal-5.4.1/include/CGAL/ipower.h cgal-5.5/include/CGAL/ipower.h --- cgal-5.4.1/include/CGAL/ipower.h 2022-06-03 19:03:30.000000000 +0000 +++ cgal-5.5/include/CGAL/ipower.h 2022-07-13 19:04:13.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_foundations/include/CGAL/ipower.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_foundations/include/CGAL/ipower.h $ // $Id: ipower.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // @@ -13,7 +13,7 @@ // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_foundations/include/CGAL/ipower.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_foundations/include/CGAL/ipower.h $ #ifndef CGAL_IPOWER_H #define CGAL_IPOWER_H diff -Nru cgal-5.4.1/include/CGAL/Is_a_predicate.h cgal-5.5/include/CGAL/Is_a_predicate.h --- cgal-5.4.1/include/CGAL/Is_a_predicate.h 2022-06-03 19:04:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Is_a_predicate.h 2022-07-13 19:05:23.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Is_a_predicate.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Is_a_predicate.h $ // $Id: Is_a_predicate.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/is_convertible.h cgal-5.5/include/CGAL/is_convertible.h --- cgal-5.4.1/include/CGAL/is_convertible.h 2022-06-03 19:05:33.000000000 +0000 +++ cgal-5.5/include/CGAL/is_convertible.h 2022-07-13 19:06:29.000000000 +0000 @@ -6,7 +6,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/is_convertible.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/is_convertible.h $ // $Id: is_convertible.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Is_extended_kernel.h cgal-5.5/include/CGAL/Is_extended_kernel.h --- cgal-5.4.1/include/CGAL/Is_extended_kernel.h 2022-06-03 19:04:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Is_extended_kernel.h 2022-07-13 19:05:46.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_2/include/CGAL/Is_extended_kernel.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_2/include/CGAL/Is_extended_kernel.h $ // $Id: Is_extended_kernel.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/is_iterator.h cgal-5.5/include/CGAL/is_iterator.h --- cgal-5.4.1/include/CGAL/is_iterator.h 2022-06-03 19:05:33.000000000 +0000 +++ cgal-5.5/include/CGAL/is_iterator.h 2022-07-13 19:06:29.000000000 +0000 @@ -6,7 +6,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/is_iterator.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/is_iterator.h $ // $Id: is_iterator.h ad803b8 2020-06-21T12:03:53+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Iso_cuboid_3.h cgal-5.5/include/CGAL/Iso_cuboid_3.h --- cgal-5.4.1/include/CGAL/Iso_cuboid_3.h 2022-06-03 19:04:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Iso_cuboid_3.h 2022-07-13 19:05:23.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Iso_cuboid_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Iso_cuboid_3.h $ // $Id: Iso_cuboid_3.h 4e519a3 2021-05-05T13:15:37+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Iso_rectangle_2.h cgal-5.5/include/CGAL/Iso_rectangle_2.h --- cgal-5.4.1/include/CGAL/Iso_rectangle_2.h 2022-06-03 19:04:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Iso_rectangle_2.h 2022-07-13 19:05:23.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Iso_rectangle_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Iso_rectangle_2.h $ // $Id: Iso_rectangle_2.h 4e519a3 2021-05-05T13:15:37+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Iso_rectangle_d.h cgal-5.5/include/CGAL/Iso_rectangle_d.h --- cgal-5.4.1/include/CGAL/Iso_rectangle_d.h 2022-06-03 19:05:47.000000000 +0000 +++ cgal-5.5/include/CGAL/Iso_rectangle_d.h 2022-07-13 19:06:43.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Spatial_searching/include/CGAL/Iso_rectangle_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Spatial_searching/include/CGAL/Iso_rectangle_d.h $ // $Id: Iso_rectangle_d.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/is_streamable.h cgal-5.5/include/CGAL/is_streamable.h --- cgal-5.4.1/include/CGAL/is_streamable.h 2022-06-03 19:05:33.000000000 +0000 +++ cgal-5.5/include/CGAL/is_streamable.h 2022-07-13 19:06:29.000000000 +0000 @@ -1,7 +1,7 @@ // Copyright (c) 2012 GeometryFactory Sarl (France) // All rights reserved. // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/is_streamable.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/is_streamable.h $ // $Id: is_streamable.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: BSL-1.0 // diff -Nru cgal-5.4.1/include/CGAL/is_y_monotone_2.h cgal-5.5/include/CGAL/is_y_monotone_2.h --- cgal-5.4.1/include/CGAL/is_y_monotone_2.h 2022-06-03 19:05:06.000000000 +0000 +++ cgal-5.5/include/CGAL/is_y_monotone_2.h 2022-07-13 19:06:00.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Partition_2/include/CGAL/is_y_monotone_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Partition_2/include/CGAL/is_y_monotone_2.h $ // $Id: is_y_monotone_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/iterator_from_indices.h cgal-5.5/include/CGAL/iterator_from_indices.h --- cgal-5.4.1/include/CGAL/iterator_from_indices.h 2022-06-03 19:04:58.000000000 +0000 +++ cgal-5.5/include/CGAL/iterator_from_indices.h 2022-07-13 19:05:52.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/NewKernel_d/include/CGAL/iterator_from_indices.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/NewKernel_d/include/CGAL/iterator_from_indices.h $ // $Id: iterator_from_indices.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/iterator.h cgal-5.5/include/CGAL/iterator.h --- cgal-5.4.1/include/CGAL/iterator.h 2022-06-03 19:05:33.000000000 +0000 +++ cgal-5.5/include/CGAL/iterator.h 2022-07-13 19:06:29.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/iterator.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/iterator.h $ // $Id: iterator.h 393ae7d 2021-05-12T15:03:53+02:00 Maxime Gimeno // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Iterator_project.h cgal-5.5/include/CGAL/Iterator_project.h --- cgal-5.4.1/include/CGAL/Iterator_project.h 2022-06-03 19:05:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Iterator_project.h 2022-07-13 19:06:27.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/Iterator_project.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/Iterator_project.h $ // $Id: Iterator_project.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Iterator_range.h cgal-5.5/include/CGAL/Iterator_range.h --- cgal-5.4.1/include/CGAL/Iterator_range.h 2022-06-03 19:05:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Iterator_range.h 2022-07-13 19:06:27.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/Iterator_range.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/Iterator_range.h $ // $Id: Iterator_range.h a88a84b 2021-08-13T15:46:50+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Iterator_transform.h cgal-5.5/include/CGAL/Iterator_transform.h --- cgal-5.4.1/include/CGAL/Iterator_transform.h 2022-06-03 19:05:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Iterator_transform.h 2022-07-13 19:06:28.000000000 +0000 @@ -8,7 +8,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/Iterator_transform.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/Iterator_transform.h $ // $Id: Iterator_transform.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/jet_estimate_normals.h cgal-5.5/include/CGAL/jet_estimate_normals.h --- cgal-5.4.1/include/CGAL/jet_estimate_normals.h 2022-06-03 19:05:12.000000000 +0000 +++ cgal-5.5/include/CGAL/jet_estimate_normals.h 2022-07-13 19:06:06.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Point_set_processing_3/include/CGAL/jet_estimate_normals.h $ -// $Id: jet_estimate_normals.h 3b7754f 2021-09-20T12:44:38+01:00 Andreas Fabri +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Point_set_processing_3/include/CGAL/jet_estimate_normals.h $ +// $Id: jet_estimate_normals.h 75b03e6 2022-01-10T15:33:04+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Pierre Alliez and Laurent Saboret and Marc Pouget and Frederic Cazals @@ -26,7 +26,7 @@ #include #include -#include +#include #include #include @@ -173,13 +173,13 @@ */ template void jet_estimate_normals( PointRange& points, unsigned int k, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { using parameters::choose_parameter; using parameters::get_parameter; @@ -189,21 +189,20 @@ // basic geometric types typedef typename PointRange::iterator iterator; typedef typename iterator::value_type value_type; - typedef typename CGAL::GetPointMap::type PointMap; - typedef typename Point_set_processing_3::GetNormalMap::type NormalMap; - typedef typename Point_set_processing_3::GetK::Kernel Kernel; + typedef Point_set_processing_3_np_helper NP_helper; + typedef typename NP_helper::Point_map PointMap; + typedef typename NP_helper::Normal_map NormalMap; + typedef typename NP_helper::Geom_traits Kernel; typedef typename Kernel::FT FT; typedef typename GetSvdTraits::type SvdTraits; - CGAL_static_assertion_msg(!(boost::is_same::NoMap>::value), - "Error: no normal map"); + CGAL_static_assertion_msg(NP_helper::has_normal_map(), "Error: no normal map"); CGAL_static_assertion_msg(!(boost::is_same::NoTraits>::value), "Error: no SVD traits"); - PointMap point_map = choose_parameter(get_parameter(np, internal_np::point_map)); - NormalMap normal_map = choose_parameter(get_parameter(np, internal_np::normal_map)); + PointMap point_map = NP_helper::get_point_map(points, np); + NormalMap normal_map = NP_helper::get_normal_map(points, np); unsigned int degree_fitting = choose_parameter(get_parameter(np, internal_np::degree_fitting), 2); FT neighbor_radius = choose_parameter(get_parameter(np, internal_np::neighbor_radius), FT(0)); @@ -258,21 +257,6 @@ CGAL_TRACE_STREAM << "End of jet_estimate_normals()\n"; } - -/// \cond SKIP_IN_MANUAL -// variant with default NP -template -void -jet_estimate_normals( - PointRange& points, - unsigned int k) ///< number of neighbors. -{ - jet_estimate_normals - (points, k, CGAL::Point_set_processing_3::parameters::all_default(points)); -} -/// \endcond - } //namespace CGAL #include diff -Nru cgal-5.4.1/include/CGAL/jet_smooth_point_set.h cgal-5.5/include/CGAL/jet_smooth_point_set.h --- cgal-5.4.1/include/CGAL/jet_smooth_point_set.h 2022-06-03 19:05:12.000000000 +0000 +++ cgal-5.5/include/CGAL/jet_smooth_point_set.h 2022-07-13 19:06:06.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Point_set_processing_3/include/CGAL/jet_smooth_point_set.h $ -// $Id: jet_smooth_point_set.h 8682f9b 2020-08-24T11:45:17+02:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Point_set_processing_3/include/CGAL/jet_smooth_point_set.h $ +// $Id: jet_smooth_point_set.h 75b03e6 2022-01-10T15:33:04+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Pierre Alliez, Marc Pouget and Laurent Saboret @@ -25,7 +25,7 @@ #include #include -#include +#include #include #include @@ -182,28 +182,29 @@ */ template void jet_smooth_point_set( PointRange& points, unsigned int k, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { using parameters::choose_parameter; using parameters::get_parameter; // basic geometric types typedef typename PointRange::iterator iterator; - typedef typename CGAL::GetPointMap::type PointMap; - typedef typename Point_set_processing_3::GetK::Kernel Kernel; + typedef Point_set_processing_3_np_helper NP_helper; + typedef typename NP_helper::Point_map PointMap; + typedef typename NP_helper::Geom_traits Kernel; typedef typename GetSvdTraits::type SvdTraits; CGAL_static_assertion_msg(!(boost::is_same::NoTraits>::value), "Error: no SVD traits"); - PointMap point_map = choose_parameter(get_parameter(np, internal_np::point_map)); + PointMap point_map = NP_helper::get_point_map(points, np); typename Kernel::FT neighbor_radius = choose_parameter(get_parameter(np, internal_np::neighbor_radius), typename Kernel::FT(0)); unsigned int degree_fitting = choose_parameter(get_parameter(np, internal_np::degree_fitting), 2); @@ -271,22 +272,6 @@ }); } - -/// \cond SKIP_IN_MANUAL -// variant with default NP -template -void -jet_smooth_point_set( - PointRange& points, - unsigned int k) ///< number of neighbors. -{ - jet_smooth_point_set - (points, k, CGAL::Point_set_processing_3::parameters::all_default(points)); -} -/// \endcond - - } //namespace CGAL #include diff -Nru cgal-5.4.1/include/CGAL/Join_input_iterator.h cgal-5.5/include/CGAL/Join_input_iterator.h --- cgal-5.4.1/include/CGAL/Join_input_iterator.h 2022-06-03 19:05:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Join_input_iterator.h 2022-07-13 19:06:28.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/Join_input_iterator.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/Join_input_iterator.h $ // $Id: Join_input_iterator.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kd_tree.h cgal-5.5/include/CGAL/Kd_tree.h --- cgal-5.4.1/include/CGAL/Kd_tree.h 2022-06-03 19:05:47.000000000 +0000 +++ cgal-5.5/include/CGAL/Kd_tree.h 2022-07-13 19:06:43.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Spatial_searching/include/CGAL/Kd_tree.h $ -// $Id: Kd_tree.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Spatial_searching/include/CGAL/Kd_tree.h $ +// $Id: Kd_tree.h c53ae08 2022-06-30T19:01:43+02:00 Niklas Hambüchen // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Hans Tangelder (), @@ -21,6 +21,9 @@ #include #include #include +#include +#include +#include #include #include @@ -327,7 +330,7 @@ dim_ = static_cast(std::distance(ccci(p), ccci(p,0))); data.reserve(pts.size()); - for(unsigned int i = 0; i < pts.size(); i++){ + for(std::size_t i = 0; i < pts.size(); i++){ data.push_back(&pts[i]); } @@ -377,6 +380,39 @@ return dim_; } + std::ostream& + write_graphviz(std::ostream& s) const + { + int counter = -1; + std::unordered_map node_to_index; + tree_root->get_indices(counter, node_to_index); + + const auto node_name = [&](const Node* node) { + const int index = node_to_index.at(node); + std::string node_name = "default_name"; + if (node->is_leaf()) { // leaf node + node_name = "L" + std::to_string(index); + } else { + if (index == 0) { // root node + node_name = "R" + std::to_string(index); + } else { // internal node + node_name = "N" + std::to_string(index); + } + } + CGAL_assertion(node_name != "default_name"); + return node_name; + }; + + s << "graph G" << std::endl; + s << "{" << std::endl << std::endl; + s << "label=\"Graph G. Num leaves: " << tree_root->num_nodes() << ". "; + s << "Num items: " << tree_root->num_items() << ".\"" << std::endl; + s << node_name(tree_root) + " ;"; + tree_root->print(s, node_name); + s << std::endl << "}" << std::endl << std::endl; + return s; + } + private: //any call to this function is for the moment not threadsafe void const_build() const { diff -Nru cgal-5.4.1/include/CGAL/Kd_tree_node.h cgal-5.5/include/CGAL/Kd_tree_node.h --- cgal-5.4.1/include/CGAL/Kd_tree_node.h 2022-06-03 19:05:47.000000000 +0000 +++ cgal-5.5/include/CGAL/Kd_tree_node.h 2022-07-13 19:06:43.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Spatial_searching/include/CGAL/Kd_tree_node.h $ -// $Id: Kd_tree_node.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Spatial_searching/include/CGAL/Kd_tree_node.h $ +// $Id: Kd_tree_node.h c4e816e 2021-11-23T14:17:39+01:00 Dmitry Anisimov // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -15,7 +15,8 @@ #include - +#include +#include #include #include @@ -58,6 +59,55 @@ bool is_leaf() const { return leaf; } + void + get_indices(int& index, std::unordered_map& node_to_index) const + { + if (is_leaf()) { + Leaf_node_const_handle node = + static_cast(this); + ++index; + node_to_index[node] = index; + } else { + Internal_node_const_handle node = + static_cast(this); + ++index; + node_to_index[node] = index; + node->lower()->get_indices(index, node_to_index); + node->upper()->get_indices(index, node_to_index); + } + } + + template + void + print(std::ostream& s, const Node_name& node_name) const + { + if (is_leaf()) { // draw leaf nodes + + Leaf_node_const_handle node = + static_cast(this); + + s << std::endl; + if (node->size() > 0) { + s << node_name(node) << " [label=\"" << node_name(node) << ", Size: " + << node->size() << "\"] ;" << std::endl; + } else { + CGAL_assertion_msg(false, "ERROR: NODE SIZE IS ZERO!"); + } + + } else { // draw internal nodes + + Internal_node_const_handle node = + static_cast(this); + + s << std::endl; + s << node_name(node) << " [label=\"" << node_name(node) << "\"] ;" << std::endl; + s << node_name(node) << " -- " << node_name(node->lower()) << " ;"; + node->lower()->print(s, node_name); + s << node_name(node) << " -- " << node_name(node->upper()) << " ;"; + node->upper()->print(s, node_name); + } + } + std::size_t num_items() const { diff -Nru cgal-5.4.1/include/CGAL/Kd_tree_rectangle.h cgal-5.5/include/CGAL/Kd_tree_rectangle.h --- cgal-5.4.1/include/CGAL/Kd_tree_rectangle.h 2022-06-03 19:05:47.000000000 +0000 +++ cgal-5.5/include/CGAL/Kd_tree_rectangle.h 2022-07-13 19:06:43.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Spatial_searching/include/CGAL/Kd_tree_rectangle.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Spatial_searching/include/CGAL/Kd_tree_rectangle.h $ // $Id: Kd_tree_rectangle.h 2e180ac 2020-03-26T19:29:44+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel/Conic_misc.h cgal-5.5/include/CGAL/Kernel/Conic_misc.h --- cgal-5.4.1/include/CGAL/Kernel/Conic_misc.h 2022-06-03 19:04:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel/Conic_misc.h 2022-07-13 19:05:23.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Kernel/Conic_misc.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Kernel/Conic_misc.h $ // $Id: Conic_misc.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel/Dimension_utils.h cgal-5.5/include/CGAL/Kernel/Dimension_utils.h --- cgal-5.4.1/include/CGAL/Kernel/Dimension_utils.h 2022-06-03 19:04:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel/Dimension_utils.h 2022-07-13 19:05:23.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Kernel/Dimension_utils.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Kernel/Dimension_utils.h $ // $Id: Dimension_utils.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel/function_objects.h cgal-5.5/include/CGAL/Kernel/function_objects.h --- cgal-5.4.1/include/CGAL/Kernel/function_objects.h 2022-06-03 19:04:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel/function_objects.h 2022-07-13 19:05:23.000000000 +0000 @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Kernel/function_objects.h $ -// $Id: function_objects.h f29015e 2022-05-25T00:22:24+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Kernel/function_objects.h $ +// $Id: function_objects.h ebf9fb0 2022-05-26T18:13:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // @@ -1811,7 +1811,8 @@ { CGAL_kernel_precondition(! K().collinear_3_object()(p,q,r) ); Vector_3 res = CGAL::cross_product(q-p, r-p); - return res; } + return res; + } }; template @@ -2047,6 +2048,10 @@ { return Rep(p, v); } Rep // Plane_3 + operator()(Return_base_tag, Origin o, const Vector_3& v) const + { return Rep(o, v); } + + Rep // Plane_3 operator()(Return_base_tag, const Line_3& l, const Point_3& p) const { return Rep(l, p); } @@ -2578,7 +2583,7 @@ Vector_3 res = CGAL::cross_product(q-p, r-p); res = res / CGAL::sqrt(res.squared_length()); return res; - } + } }; template diff -Nru cgal-5.4.1/include/CGAL/Kernel/global_functions_2.h cgal-5.5/include/CGAL/Kernel/global_functions_2.h --- cgal-5.4.1/include/CGAL/Kernel/global_functions_2.h 2022-06-03 19:04:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel/global_functions_2.h 2022-07-13 19:05:23.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Kernel/global_functions_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Kernel/global_functions_2.h $ // $Id: global_functions_2.h 92d90a4 2021-08-12T10:12:26+02:00 Sebastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel/global_functions_3.h cgal-5.5/include/CGAL/Kernel/global_functions_3.h --- cgal-5.4.1/include/CGAL/Kernel/global_functions_3.h 2022-06-03 19:04:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel/global_functions_3.h 2022-07-13 19:05:23.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Kernel/global_functions_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Kernel/global_functions_3.h $ // $Id: global_functions_3.h d3b26a6 2021-04-22T17:35:27+01:00 Andreas Fabri // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel/global_functions.h cgal-5.5/include/CGAL/Kernel/global_functions.h --- cgal-5.4.1/include/CGAL/Kernel/global_functions.h 2022-06-03 19:04:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel/global_functions.h 2022-07-13 19:05:23.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Kernel/global_functions.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Kernel/global_functions.h $ // $Id: global_functions.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel/global_functions_internal_2.h cgal-5.5/include/CGAL/Kernel/global_functions_internal_2.h --- cgal-5.4.1/include/CGAL/Kernel/global_functions_internal_2.h 2022-06-03 19:04:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel/global_functions_internal_2.h 2022-07-13 19:05:23.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Kernel/global_functions_internal_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Kernel/global_functions_internal_2.h $ // $Id: global_functions_internal_2.h 92d90a4 2021-08-12T10:12:26+02:00 Sebastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel/global_functions_internal_3.h cgal-5.5/include/CGAL/Kernel/global_functions_internal_3.h --- cgal-5.4.1/include/CGAL/Kernel/global_functions_internal_3.h 2022-06-03 19:04:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel/global_functions_internal_3.h 2022-07-13 19:05:23.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Kernel/global_functions_internal_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Kernel/global_functions_internal_3.h $ // $Id: global_functions_internal_3.h d3b26a6 2021-04-22T17:35:27+01:00 Andreas Fabri // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel/hash_functions.h cgal-5.5/include/CGAL/Kernel/hash_functions.h --- cgal-5.4.1/include/CGAL/Kernel/hash_functions.h 2022-06-03 19:04:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel/hash_functions.h 2022-07-13 19:05:23.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Kernel/hash_functions.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Kernel/hash_functions.h $ // $Id: hash_functions.h 9bf61b7 2020-04-22T11:02:16+02:00 Maxime Gimeno // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel/interface_macros.h cgal-5.5/include/CGAL/Kernel/interface_macros.h --- cgal-5.4.1/include/CGAL/Kernel/interface_macros.h 2022-06-03 19:04:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel/interface_macros.h 2022-07-13 19:05:23.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Kernel/interface_macros.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Kernel/interface_macros.h $ // $Id: interface_macros.h d0ed658 2021-11-03T17:39:21+01:00 Andreas Fabri // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel/mpl.h cgal-5.5/include/CGAL/Kernel/mpl.h --- cgal-5.4.1/include/CGAL/Kernel/mpl.h 2022-06-03 19:04:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel/mpl.h 2022-07-13 19:05:23.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Kernel/mpl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Kernel/mpl.h $ // $Id: mpl.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel/Return_base_tag.h cgal-5.5/include/CGAL/Kernel/Return_base_tag.h --- cgal-5.4.1/include/CGAL/Kernel/Return_base_tag.h 2022-06-03 19:04:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel/Return_base_tag.h 2022-07-13 19:05:23.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Kernel/Return_base_tag.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Kernel/Return_base_tag.h $ // $Id: Return_base_tag.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel/Same_uncertainty.h cgal-5.5/include/CGAL/Kernel/Same_uncertainty.h --- cgal-5.4.1/include/CGAL/Kernel/Same_uncertainty.h 2022-06-03 19:04:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel/Same_uncertainty.h 2022-07-13 19:05:23.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Kernel/Same_uncertainty.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Kernel/Same_uncertainty.h $ // $Id: Same_uncertainty.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel/solve.h cgal-5.5/include/CGAL/Kernel/solve.h --- cgal-5.4.1/include/CGAL/Kernel/solve.h 2022-06-03 19:04:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel/solve.h 2022-07-13 19:05:23.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Kernel/solve.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Kernel/solve.h $ // $Id: solve.h be39ec0 2021-03-18T14:11:57+01:00 Andreas Fabri // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel/Type_equality_wrapper.h cgal-5.5/include/CGAL/Kernel/Type_equality_wrapper.h --- cgal-5.4.1/include/CGAL/Kernel/Type_equality_wrapper.h 2022-06-03 19:04:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel/Type_equality_wrapper.h 2022-07-13 19:05:23.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Kernel/Type_equality_wrapper.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Kernel/Type_equality_wrapper.h $ // $Id: Type_equality_wrapper.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel/Type_mapper.h cgal-5.5/include/CGAL/Kernel/Type_mapper.h --- cgal-5.4.1/include/CGAL/Kernel/Type_mapper.h 2022-06-03 19:04:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel/Type_mapper.h 2022-07-13 19:05:23.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Kernel/Type_mapper.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Kernel/Type_mapper.h $ // $Id: Type_mapper.h 3127190 2020-12-08T12:48:04+01:00 Dmitry Anisimov // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel/Wutils.h cgal-5.5/include/CGAL/Kernel/Wutils.h --- cgal-5.4.1/include/CGAL/Kernel/Wutils.h 2022-06-03 19:04:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel/Wutils.h 2022-07-13 19:05:23.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Kernel/Wutils.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Kernel/Wutils.h $ // $Id: Wutils.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel_23/internal/Filtered_projection_traits_3.h cgal-5.5/include/CGAL/Kernel_23/internal/Filtered_projection_traits_3.h --- cgal-5.4.1/include/CGAL/Kernel_23/internal/Filtered_projection_traits_3.h 2022-06-03 19:04:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel_23/internal/Filtered_projection_traits_3.h 2022-07-13 19:05:23.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Kernel_23/internal/Filtered_projection_traits_3.h $ -// $Id: Filtered_projection_traits_3.h dacbd18 2021-08-30T12:35:34+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Kernel_23/internal/Filtered_projection_traits_3.h $ +// $Id: Filtered_projection_traits_3.h 561cc66 2022-06-29T12:30:35+02:00 Laurent Rineau // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // @@ -27,12 +27,12 @@ typedef Filtered_projection_traits_3 Self; typedef Projection_traits_base_3 Base; +public: typedef typename K::Exact_kernel Exact_kernel; typedef typename K::Approximate_kernel Approximate_kernel; typedef typename K::C2E C2E; typedef typename K::C2F C2F; -public: typedef Projection_traits_base_3 Exact_traits; typedef Projection_traits_base_3 Filtering_traits; diff -Nru cgal-5.4.1/include/CGAL/Kernel_23/internal/Has_boolean_tags.h cgal-5.5/include/CGAL/Kernel_23/internal/Has_boolean_tags.h --- cgal-5.4.1/include/CGAL/Kernel_23/internal/Has_boolean_tags.h 2022-06-03 19:04:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel_23/internal/Has_boolean_tags.h 2022-07-13 19:05:23.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Kernel_23/internal/Has_boolean_tags.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Kernel_23/internal/Has_boolean_tags.h $ // $Id: Has_boolean_tags.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel_23/internal/Projection_traits_3.h cgal-5.5/include/CGAL/Kernel_23/internal/Projection_traits_3.h --- cgal-5.4.1/include/CGAL/Kernel_23/internal/Projection_traits_3.h 2022-06-03 19:04:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel_23/internal/Projection_traits_3.h 2022-07-13 19:05:23.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Kernel_23/internal/Projection_traits_3.h $ -// $Id: Projection_traits_3.h be2f845 2021-09-10T17:29:27+02:00 Jane Tournois +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Kernel_23/internal/Projection_traits_3.h $ +// $Id: Projection_traits_3.h 12795ba 2022-07-12T18:21:16+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Mariette Yvinec, Sebastien Loriot, Mael Rouxel-Labbé @@ -19,6 +19,7 @@ #include #include +#include namespace CGAL { @@ -868,11 +869,28 @@ } }; +template +class Projection_traits_3; + +template +struct Projection_traits_base_3 {}; + +template +struct Projection_traits_base_3< R, dim, true> { + typedef Projection_traits_3 Exact_kernel; + Exact_kernel exact_kernel() const { return {}; } +}; + // This is for projection traits along a specific canonical plane (xy, yz, xz) // The generic class for an arbitrary normal is CGAL::Projection_traits_3 (not in `internal`) -template < class R, int dim > -class Projection_traits_3 { +template +class Projection_traits_3 + : public Projection_traits_base_3< + R, dim, internal::Has_filtered_predicates::value> { public: + enum { Has_filtered_predicates = internal::Has_filtered_predicates::value }; + typedef Boolean_tag Has_filtered_predicates_tag; + typedef Projection_traits_3 Traits; typedef R Rp; typedef typename R::FT FT; @@ -920,6 +938,7 @@ typedef typename Rp::Construct_segment_3 Construct_segment_2; typedef typename Rp::Construct_translated_point_3 Construct_translated_point_2; typedef typename Rp::Construct_midpoint_3 Construct_midpoint_2; + typedef typename Rp::Construct_barycenter_3 Construct_barycenter_2; typedef typename Rp::Construct_vector_3 Construct_vector_2; typedef typename Rp::Construct_scaled_vector_3 Construct_scaled_vector_2; typedef typename Rp::Construct_triangle_3 Construct_triangle_2; @@ -960,7 +979,7 @@ Equal_x_2 eqx; Equal_y_2 eqy; - return eqx(p,q) & eqy(p,q); + return eqx(p,q) && eqy(p,q); } }; @@ -1101,6 +1120,9 @@ Construct_midpoint_2 construct_midpoint_2_object() const {return Construct_midpoint_2();} + Construct_barycenter_2 construct_barycenter_2_object() const + {return Construct_barycenter_2();} + Construct_vector_2 construct_vector_2_object() const {return Construct_vector_2();} diff -Nru cgal-5.4.1/include/CGAL/Kernel_23/internal/Projection_traits_base_3.h cgal-5.5/include/CGAL/Kernel_23/internal/Projection_traits_base_3.h --- cgal-5.4.1/include/CGAL/Kernel_23/internal/Projection_traits_base_3.h 2022-06-03 19:04:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel_23/internal/Projection_traits_base_3.h 2022-07-13 19:05:23.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Kernel_23/internal/Projection_traits_base_3.h $ -// $Id: Projection_traits_base_3.h dacbd18 2021-08-30T12:35:34+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Kernel_23/internal/Projection_traits_base_3.h $ +// $Id: Projection_traits_base_3.h 561cc66 2022-06-29T12:30:35+02:00 Laurent Rineau // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // @@ -462,6 +462,7 @@ typedef typename K::Construct_translated_point_3 Construct_translated_point_2; typedef typename K::Construct_midpoint_3 Construct_midpoint_2; typedef typename K::Construct_circumcenter_3 Construct_circumcenter_2; + typedef typename K::Construct_barycenter_3 Construct_barycenter_2; typedef typename K::Compute_area_3 Compute_area_2; typedef typename K::Construct_bbox_3 Construct_bbox_2; @@ -544,6 +545,9 @@ Construct_circumcenter_2 construct_circumcenter_2_object() const {return Construct_circumcenter_2();} + Construct_barycenter_2 construct_barycenter_2_object() const + {return Construct_barycenter_2();} + Construct_translated_point_2 construct_translated_point_2_object() const {return Construct_translated_point_2();} diff -Nru cgal-5.4.1/include/CGAL/kernel_assertions.h cgal-5.5/include/CGAL/kernel_assertions.h --- cgal-5.4.1/include/CGAL/kernel_assertions.h 2022-06-03 19:04:33.000000000 +0000 +++ cgal-5.5/include/CGAL/kernel_assertions.h 2022-07-13 19:05:24.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/kernel_assertions.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/kernel_assertions.h $ // $Id: kernel_assertions.h 5a36ff8 2020-12-04T08:02:26+00:00 Giles Bathgate // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/kernel_basic.h cgal-5.5/include/CGAL/kernel_basic.h --- cgal-5.4.1/include/CGAL/kernel_basic.h 2022-06-03 19:04:33.000000000 +0000 +++ cgal-5.5/include/CGAL/kernel_basic.h 2022-07-13 19:05:24.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/kernel_basic.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/kernel_basic.h $ // $Id: kernel_basic.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel_checker.h cgal-5.5/include/CGAL/Kernel_checker.h --- cgal-5.4.1/include/CGAL/Kernel_checker.h 2022-06-03 19:04:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel_checker.h 2022-07-13 19:05:23.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Kernel_checker.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Kernel_checker.h $ // $Id: Kernel_checker.h 371db97 2020-08-20T14:12:16+02:00 Dmitry Anisimov // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/kernel_config.h cgal-5.5/include/CGAL/kernel_config.h --- cgal-5.4.1/include/CGAL/kernel_config.h 2022-06-03 19:04:33.000000000 +0000 +++ cgal-5.5/include/CGAL/kernel_config.h 2022-07-13 19:05:24.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/kernel_config.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/kernel_config.h $ // $Id: kernel_config.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel_d/Aff_transformationCd.h cgal-5.5/include/CGAL/Kernel_d/Aff_transformationCd.h --- cgal-5.4.1/include/CGAL/Kernel_d/Aff_transformationCd.h 2022-06-03 19:04:38.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel_d/Aff_transformationCd.h 2022-07-13 19:05:29.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_d/include/CGAL/Kernel_d/Aff_transformationCd.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_d/include/CGAL/Kernel_d/Aff_transformationCd.h $ // $Id: Aff_transformationCd.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel_d/Aff_transformation_d.h cgal-5.5/include/CGAL/Kernel_d/Aff_transformation_d.h --- cgal-5.4.1/include/CGAL/Kernel_d/Aff_transformation_d.h 2022-06-03 19:04:38.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel_d/Aff_transformation_d.h 2022-07-13 19:05:29.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_d/include/CGAL/Kernel_d/Aff_transformation_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_d/include/CGAL/Kernel_d/Aff_transformation_d.h $ // $Id: Aff_transformation_d.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel_d/Aff_transformationHd.h cgal-5.5/include/CGAL/Kernel_d/Aff_transformationHd.h --- cgal-5.4.1/include/CGAL/Kernel_d/Aff_transformationHd.h 2022-06-03 19:04:38.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel_d/Aff_transformationHd.h 2022-07-13 19:05:29.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_d/include/CGAL/Kernel_d/Aff_transformationHd.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_d/include/CGAL/Kernel_d/Aff_transformationHd.h $ // $Id: Aff_transformationHd.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel_d/Cartesian_const_iterator_d.h cgal-5.5/include/CGAL/Kernel_d/Cartesian_const_iterator_d.h --- cgal-5.4.1/include/CGAL/Kernel_d/Cartesian_const_iterator_d.h 2022-06-03 19:04:38.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel_d/Cartesian_const_iterator_d.h 2022-07-13 19:05:29.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_d/include/CGAL/Kernel_d/Cartesian_const_iterator_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_d/include/CGAL/Kernel_d/Cartesian_const_iterator_d.h $ // $Id: Cartesian_const_iterator_d.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel_d/Cartesian_converter_d.h cgal-5.5/include/CGAL/Kernel_d/Cartesian_converter_d.h --- cgal-5.4.1/include/CGAL/Kernel_d/Cartesian_converter_d.h 2022-06-03 19:04:38.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel_d/Cartesian_converter_d.h 2022-07-13 19:05:29.000000000 +0000 @@ -6,8 +6,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_d/include/CGAL/Kernel_d/Cartesian_converter_d.h $ -// $Id: Cartesian_converter_d.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_d/include/CGAL/Kernel_d/Cartesian_converter_d.h $ +// $Id: Cartesian_converter_d.h 3a0a4a6 2021-12-17T12:22:40+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Sylvain Pion @@ -82,13 +82,13 @@ : c(), k(), result_point_(20) {} Origin - operator()(const Origin& o) const + operator()(Origin o) const { return o; } Null_vector - operator()(const Null_vector& n) const + operator()(Null_vector n) const { return n; } @@ -99,6 +99,14 @@ return c(a); } + template + T + operator()(const T t, + typename std::enable_if::value>::type* = nullptr) const + { + return t; + } + std::vector operator()(const std::vector& v) const { @@ -110,11 +118,6 @@ return res; } - int operator()(const int &a) - { - return a; - } - typename K2::Point_d operator()(const typename K1::Point_d &a) const { diff -Nru cgal-5.4.1/include/CGAL/Kernel_d/debug.h cgal-5.5/include/CGAL/Kernel_d/debug.h --- cgal-5.4.1/include/CGAL/Kernel_d/debug.h 2022-06-03 19:04:39.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel_d/debug.h 2022-07-13 19:05:31.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_d/include/CGAL/Kernel_d/debug.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_d/include/CGAL/Kernel_d/debug.h $ // $Id: debug.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel_d/DirectionCd.h cgal-5.5/include/CGAL/Kernel_d/DirectionCd.h --- cgal-5.4.1/include/CGAL/Kernel_d/DirectionCd.h 2022-06-03 19:04:38.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel_d/DirectionCd.h 2022-07-13 19:05:29.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_d/include/CGAL/Kernel_d/DirectionCd.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_d/include/CGAL/Kernel_d/DirectionCd.h $ // $Id: DirectionCd.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel_d/DirectionCd_impl.h cgal-5.5/include/CGAL/Kernel_d/DirectionCd_impl.h --- cgal-5.4.1/include/CGAL/Kernel_d/DirectionCd_impl.h 2022-06-03 19:04:38.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel_d/DirectionCd_impl.h 2022-07-13 19:05:29.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_d/include/CGAL/Kernel_d/DirectionCd_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_d/include/CGAL/Kernel_d/DirectionCd_impl.h $ // $Id: DirectionCd_impl.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel_d/Direction_d.h cgal-5.5/include/CGAL/Kernel_d/Direction_d.h --- cgal-5.4.1/include/CGAL/Kernel_d/Direction_d.h 2022-06-03 19:04:38.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel_d/Direction_d.h 2022-07-13 19:05:29.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_d/include/CGAL/Kernel_d/Direction_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_d/include/CGAL/Kernel_d/Direction_d.h $ // $Id: Direction_d.h 127d76c 2020-06-10T17:57:54+02:00 Laurent Rineau // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel_d/DirectionHd.h cgal-5.5/include/CGAL/Kernel_d/DirectionHd.h --- cgal-5.4.1/include/CGAL/Kernel_d/DirectionHd.h 2022-06-03 19:04:38.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel_d/DirectionHd.h 2022-07-13 19:05:29.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_d/include/CGAL/Kernel_d/DirectionHd.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_d/include/CGAL/Kernel_d/DirectionHd.h $ // $Id: DirectionHd.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel_d/DirectionHd_impl.h cgal-5.5/include/CGAL/Kernel_d/DirectionHd_impl.h --- cgal-5.4.1/include/CGAL/Kernel_d/DirectionHd_impl.h 2022-06-03 19:04:38.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel_d/DirectionHd_impl.h 2022-07-13 19:05:29.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_d/include/CGAL/Kernel_d/DirectionHd_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_d/include/CGAL/Kernel_d/DirectionHd_impl.h $ // $Id: DirectionHd_impl.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel_d/function_objectsCd.h cgal-5.5/include/CGAL/Kernel_d/function_objectsCd.h --- cgal-5.4.1/include/CGAL/Kernel_d/function_objectsCd.h 2022-06-03 19:04:39.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel_d/function_objectsCd.h 2022-07-13 19:05:31.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_d/include/CGAL/Kernel_d/function_objectsCd.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_d/include/CGAL/Kernel_d/function_objectsCd.h $ // $Id: function_objectsCd.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel_d/function_objects.h cgal-5.5/include/CGAL/Kernel_d/function_objects.h --- cgal-5.4.1/include/CGAL/Kernel_d/function_objects.h 2022-06-03 19:04:39.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel_d/function_objects.h 2022-07-13 19:05:31.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_d/include/CGAL/Kernel_d/function_objects.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_d/include/CGAL/Kernel_d/function_objects.h $ // $Id: function_objects.h 8bb22d5 2020-03-26T14:23:37+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel_d/function_objectsHd.h cgal-5.5/include/CGAL/Kernel_d/function_objectsHd.h --- cgal-5.4.1/include/CGAL/Kernel_d/function_objectsHd.h 2022-06-03 19:04:39.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel_d/function_objectsHd.h 2022-07-13 19:05:31.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_d/include/CGAL/Kernel_d/function_objectsHd.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_d/include/CGAL/Kernel_d/function_objectsHd.h $ // $Id: function_objectsHd.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel_d/HyperplaneCd.h cgal-5.5/include/CGAL/Kernel_d/HyperplaneCd.h --- cgal-5.4.1/include/CGAL/Kernel_d/HyperplaneCd.h 2022-06-03 19:04:38.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel_d/HyperplaneCd.h 2022-07-13 19:05:30.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_d/include/CGAL/Kernel_d/HyperplaneCd.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_d/include/CGAL/Kernel_d/HyperplaneCd.h $ // $Id: HyperplaneCd.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel_d/HyperplaneCd_impl.h cgal-5.5/include/CGAL/Kernel_d/HyperplaneCd_impl.h --- cgal-5.4.1/include/CGAL/Kernel_d/HyperplaneCd_impl.h 2022-06-03 19:04:38.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel_d/HyperplaneCd_impl.h 2022-07-13 19:05:30.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_d/include/CGAL/Kernel_d/HyperplaneCd_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_d/include/CGAL/Kernel_d/HyperplaneCd_impl.h $ // $Id: HyperplaneCd_impl.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel_d/Hyperplane_d.h cgal-5.5/include/CGAL/Kernel_d/Hyperplane_d.h --- cgal-5.4.1/include/CGAL/Kernel_d/Hyperplane_d.h 2022-06-03 19:04:38.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel_d/Hyperplane_d.h 2022-07-13 19:05:30.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_d/include/CGAL/Kernel_d/Hyperplane_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_d/include/CGAL/Kernel_d/Hyperplane_d.h $ // $Id: Hyperplane_d.h 489e853 2020-06-10T18:25:33+02:00 Laurent Rineau // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel_d/HyperplaneHd.h cgal-5.5/include/CGAL/Kernel_d/HyperplaneHd.h --- cgal-5.4.1/include/CGAL/Kernel_d/HyperplaneHd.h 2022-06-03 19:04:38.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel_d/HyperplaneHd.h 2022-07-13 19:05:30.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_d/include/CGAL/Kernel_d/HyperplaneHd.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_d/include/CGAL/Kernel_d/HyperplaneHd.h $ // $Id: HyperplaneHd.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel_d/HyperplaneHd_impl.h cgal-5.5/include/CGAL/Kernel_d/HyperplaneHd_impl.h --- cgal-5.4.1/include/CGAL/Kernel_d/HyperplaneHd_impl.h 2022-06-03 19:04:38.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel_d/HyperplaneHd_impl.h 2022-07-13 19:05:30.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_d/include/CGAL/Kernel_d/HyperplaneHd_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_d/include/CGAL/Kernel_d/HyperplaneHd_impl.h $ // $Id: HyperplaneHd_impl.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel_d/Interface_classes.h cgal-5.5/include/CGAL/Kernel_d/Interface_classes.h --- cgal-5.4.1/include/CGAL/Kernel_d/Interface_classes.h 2022-06-03 19:04:38.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel_d/Interface_classes.h 2022-07-13 19:05:30.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_d/include/CGAL/Kernel_d/Interface_classes.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_d/include/CGAL/Kernel_d/Interface_classes.h $ // $Id: Interface_classes.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel_d/interface_macros_d.h cgal-5.5/include/CGAL/Kernel_d/interface_macros_d.h --- cgal-5.4.1/include/CGAL/Kernel_d/interface_macros_d.h 2022-06-03 19:04:39.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel_d/interface_macros_d.h 2022-07-13 19:05:31.000000000 +0000 @@ -6,7 +6,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_d/include/CGAL/Kernel_d/interface_macros_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_d/include/CGAL/Kernel_d/interface_macros_d.h $ // $Id: interface_macros_d.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel_d/intersection_objectsCd.h cgal-5.5/include/CGAL/Kernel_d/intersection_objectsCd.h --- cgal-5.4.1/include/CGAL/Kernel_d/intersection_objectsCd.h 2022-06-03 19:04:39.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel_d/intersection_objectsCd.h 2022-07-13 19:05:31.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_d/include/CGAL/Kernel_d/intersection_objectsCd.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_d/include/CGAL/Kernel_d/intersection_objectsCd.h $ // $Id: intersection_objectsCd.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel_d/intersection_objects_d.h cgal-5.5/include/CGAL/Kernel_d/intersection_objects_d.h --- cgal-5.4.1/include/CGAL/Kernel_d/intersection_objects_d.h 2022-06-03 19:04:39.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel_d/intersection_objects_d.h 2022-07-13 19:05:31.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_d/include/CGAL/Kernel_d/intersection_objects_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_d/include/CGAL/Kernel_d/intersection_objects_d.h $ // $Id: intersection_objects_d.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel_d/intersection_objectsHd.h cgal-5.5/include/CGAL/Kernel_d/intersection_objectsHd.h --- cgal-5.4.1/include/CGAL/Kernel_d/intersection_objectsHd.h 2022-06-03 19:04:39.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel_d/intersection_objectsHd.h 2022-07-13 19:05:31.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_d/include/CGAL/Kernel_d/intersection_objectsHd.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_d/include/CGAL/Kernel_d/intersection_objectsHd.h $ // $Id: intersection_objectsHd.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel_d/Interval_linear_algebra.h cgal-5.5/include/CGAL/Kernel_d/Interval_linear_algebra.h --- cgal-5.4.1/include/CGAL/Kernel_d/Interval_linear_algebra.h 2022-06-03 19:04:38.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel_d/Interval_linear_algebra.h 2022-07-13 19:05:30.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_d/include/CGAL/Kernel_d/Interval_linear_algebra.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_d/include/CGAL/Kernel_d/Interval_linear_algebra.h $ // $Id: Interval_linear_algebra.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel_d/Iso_box_d.h cgal-5.5/include/CGAL/Kernel_d/Iso_box_d.h --- cgal-5.4.1/include/CGAL/Kernel_d/Iso_box_d.h 2022-06-03 19:04:38.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel_d/Iso_box_d.h 2022-07-13 19:05:30.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_d/include/CGAL/Kernel_d/Iso_box_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_d/include/CGAL/Kernel_d/Iso_box_d.h $ // $Id: Iso_box_d.h ab5517e 2021-02-09T09:27:30+01:00 Laurent Rineau // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel_d/Kernel_classesCd.h cgal-5.5/include/CGAL/Kernel_d/Kernel_classesCd.h --- cgal-5.4.1/include/CGAL/Kernel_d/Kernel_classesCd.h 2022-06-03 19:04:38.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel_d/Kernel_classesCd.h 2022-07-13 19:05:30.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_d/include/CGAL/Kernel_d/Kernel_classesCd.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_d/include/CGAL/Kernel_d/Kernel_classesCd.h $ // $Id: Kernel_classesCd.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel_d/Kernel_classesHd.h cgal-5.5/include/CGAL/Kernel_d/Kernel_classesHd.h --- cgal-5.4.1/include/CGAL/Kernel_d/Kernel_classesHd.h 2022-06-03 19:04:38.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel_d/Kernel_classesHd.h 2022-07-13 19:05:30.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_d/include/CGAL/Kernel_d/Kernel_classesHd.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_d/include/CGAL/Kernel_d/Kernel_classesHd.h $ // $Id: Kernel_classesHd.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel_d/Linear_algebraCd_impl.h cgal-5.5/include/CGAL/Kernel_d/Linear_algebraCd_impl.h --- cgal-5.4.1/include/CGAL/Kernel_d/Linear_algebraCd_impl.h 2022-06-03 19:04:38.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel_d/Linear_algebraCd_impl.h 2022-07-13 19:05:30.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_d/include/CGAL/Kernel_d/Linear_algebraCd_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_d/include/CGAL/Kernel_d/Linear_algebraCd_impl.h $ // $Id: Linear_algebraCd_impl.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel_d/Linear_algebraHd_impl.h cgal-5.5/include/CGAL/Kernel_d/Linear_algebraHd_impl.h --- cgal-5.4.1/include/CGAL/Kernel_d/Linear_algebraHd_impl.h 2022-06-03 19:04:38.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel_d/Linear_algebraHd_impl.h 2022-07-13 19:05:30.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_d/include/CGAL/Kernel_d/Linear_algebraHd_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_d/include/CGAL/Kernel_d/Linear_algebraHd_impl.h $ // $Id: Linear_algebraHd_impl.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel_d/Line_d.h cgal-5.5/include/CGAL/Kernel_d/Line_d.h --- cgal-5.4.1/include/CGAL/Kernel_d/Line_d.h 2022-06-03 19:04:38.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel_d/Line_d.h 2022-07-13 19:05:30.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_d/include/CGAL/Kernel_d/Line_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_d/include/CGAL/Kernel_d/Line_d.h $ // $Id: Line_d.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel_d/Line_d_impl.h cgal-5.5/include/CGAL/Kernel_d/Line_d_impl.h --- cgal-5.4.1/include/CGAL/Kernel_d/Line_d_impl.h 2022-06-03 19:04:38.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel_d/Line_d_impl.h 2022-07-13 19:05:30.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_d/include/CGAL/Kernel_d/Line_d_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_d/include/CGAL/Kernel_d/Line_d_impl.h $ // $Id: Line_d_impl.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel_d/Matrix__.h cgal-5.5/include/CGAL/Kernel_d/Matrix__.h --- cgal-5.4.1/include/CGAL/Kernel_d/Matrix__.h 2022-06-03 19:04:38.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel_d/Matrix__.h 2022-07-13 19:05:30.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_d/include/CGAL/Kernel_d/Matrix__.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_d/include/CGAL/Kernel_d/Matrix__.h $ // $Id: Matrix__.h 78ff918 2021-06-23T23:34:14+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel_d/Pair_d.h cgal-5.5/include/CGAL/Kernel_d/Pair_d.h --- cgal-5.4.1/include/CGAL/Kernel_d/Pair_d.h 2022-06-03 19:04:38.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel_d/Pair_d.h 2022-07-13 19:05:30.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_d/include/CGAL/Kernel_d/Pair_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_d/include/CGAL/Kernel_d/Pair_d.h $ // $Id: Pair_d.h 78ff918 2021-06-23T23:34:14+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel_d/PointCd.h cgal-5.5/include/CGAL/Kernel_d/PointCd.h --- cgal-5.4.1/include/CGAL/Kernel_d/PointCd.h 2022-06-03 19:04:38.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel_d/PointCd.h 2022-07-13 19:05:30.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_d/include/CGAL/Kernel_d/PointCd.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_d/include/CGAL/Kernel_d/PointCd.h $ // $Id: PointCd.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel_d/PointCd_impl.h cgal-5.5/include/CGAL/Kernel_d/PointCd_impl.h --- cgal-5.4.1/include/CGAL/Kernel_d/PointCd_impl.h 2022-06-03 19:04:38.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel_d/PointCd_impl.h 2022-07-13 19:05:30.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_d/include/CGAL/Kernel_d/PointCd_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_d/include/CGAL/Kernel_d/PointCd_impl.h $ // $Id: PointCd_impl.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel_d/Point_d.h cgal-5.5/include/CGAL/Kernel_d/Point_d.h --- cgal-5.4.1/include/CGAL/Kernel_d/Point_d.h 2022-06-03 19:04:39.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel_d/Point_d.h 2022-07-13 19:05:30.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_d/include/CGAL/Kernel_d/Point_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_d/include/CGAL/Kernel_d/Point_d.h $ // $Id: Point_d.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel_d/PointHd.h cgal-5.5/include/CGAL/Kernel_d/PointHd.h --- cgal-5.4.1/include/CGAL/Kernel_d/PointHd.h 2022-06-03 19:04:39.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel_d/PointHd.h 2022-07-13 19:05:30.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_d/include/CGAL/Kernel_d/PointHd.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_d/include/CGAL/Kernel_d/PointHd.h $ // $Id: PointHd.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel_d/PointHd_impl.h cgal-5.5/include/CGAL/Kernel_d/PointHd_impl.h --- cgal-5.4.1/include/CGAL/Kernel_d/PointHd_impl.h 2022-06-03 19:04:39.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel_d/PointHd_impl.h 2022-07-13 19:05:30.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_d/include/CGAL/Kernel_d/PointHd_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_d/include/CGAL/Kernel_d/PointHd_impl.h $ // $Id: PointHd_impl.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel_d/Ray_d.h cgal-5.5/include/CGAL/Kernel_d/Ray_d.h --- cgal-5.4.1/include/CGAL/Kernel_d/Ray_d.h 2022-06-03 19:04:39.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel_d/Ray_d.h 2022-07-13 19:05:30.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_d/include/CGAL/Kernel_d/Ray_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_d/include/CGAL/Kernel_d/Ray_d.h $ // $Id: Ray_d.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel_d/Segment_d.h cgal-5.5/include/CGAL/Kernel_d/Segment_d.h --- cgal-5.4.1/include/CGAL/Kernel_d/Segment_d.h 2022-06-03 19:04:39.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel_d/Segment_d.h 2022-07-13 19:05:30.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_d/include/CGAL/Kernel_d/Segment_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_d/include/CGAL/Kernel_d/Segment_d.h $ // $Id: Segment_d.h 152a084 2021-09-21T13:34:58+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel_d/simple_objects.h cgal-5.5/include/CGAL/Kernel_d/simple_objects.h --- cgal-5.4.1/include/CGAL/Kernel_d/simple_objects.h 2022-06-03 19:04:39.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel_d/simple_objects.h 2022-07-13 19:05:31.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_d/include/CGAL/Kernel_d/simple_objects.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_d/include/CGAL/Kernel_d/simple_objects.h $ // $Id: simple_objects.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel_d/Sphere_d.h cgal-5.5/include/CGAL/Kernel_d/Sphere_d.h --- cgal-5.4.1/include/CGAL/Kernel_d/Sphere_d.h 2022-06-03 19:04:39.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel_d/Sphere_d.h 2022-07-13 19:05:30.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_d/include/CGAL/Kernel_d/Sphere_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_d/include/CGAL/Kernel_d/Sphere_d.h $ // $Id: Sphere_d.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel_d/Tuple_d.h cgal-5.5/include/CGAL/Kernel_d/Tuple_d.h --- cgal-5.4.1/include/CGAL/Kernel_d/Tuple_d.h 2022-06-03 19:04:39.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel_d/Tuple_d.h 2022-07-13 19:05:30.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_d/include/CGAL/Kernel_d/Tuple_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_d/include/CGAL/Kernel_d/Tuple_d.h $ // $Id: Tuple_d.h 78ff918 2021-06-23T23:34:14+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel_d/VectorCd.h cgal-5.5/include/CGAL/Kernel_d/VectorCd.h --- cgal-5.4.1/include/CGAL/Kernel_d/VectorCd.h 2022-06-03 19:04:39.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel_d/VectorCd.h 2022-07-13 19:05:30.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_d/include/CGAL/Kernel_d/VectorCd.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_d/include/CGAL/Kernel_d/VectorCd.h $ // $Id: VectorCd.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel_d/VectorCd_impl.h cgal-5.5/include/CGAL/Kernel_d/VectorCd_impl.h --- cgal-5.4.1/include/CGAL/Kernel_d/VectorCd_impl.h 2022-06-03 19:04:39.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel_d/VectorCd_impl.h 2022-07-13 19:05:30.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_d/include/CGAL/Kernel_d/VectorCd_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_d/include/CGAL/Kernel_d/VectorCd_impl.h $ // $Id: VectorCd_impl.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel_d/Vector_d.h cgal-5.5/include/CGAL/Kernel_d/Vector_d.h --- cgal-5.4.1/include/CGAL/Kernel_d/Vector_d.h 2022-06-03 19:04:39.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel_d/Vector_d.h 2022-07-13 19:05:31.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_d/include/CGAL/Kernel_d/Vector_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_d/include/CGAL/Kernel_d/Vector_d.h $ // $Id: Vector_d.h 127d76c 2020-06-10T17:57:54+02:00 Laurent Rineau // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel_d/Vector__.h cgal-5.5/include/CGAL/Kernel_d/Vector__.h --- cgal-5.4.1/include/CGAL/Kernel_d/Vector__.h 2022-06-03 19:04:39.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel_d/Vector__.h 2022-07-13 19:05:31.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_d/include/CGAL/Kernel_d/Vector__.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_d/include/CGAL/Kernel_d/Vector__.h $ // $Id: Vector__.h 78ff918 2021-06-23T23:34:14+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel_d/VectorHd.h cgal-5.5/include/CGAL/Kernel_d/VectorHd.h --- cgal-5.4.1/include/CGAL/Kernel_d/VectorHd.h 2022-06-03 19:04:39.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel_d/VectorHd.h 2022-07-13 19:05:31.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_d/include/CGAL/Kernel_d/VectorHd.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_d/include/CGAL/Kernel_d/VectorHd.h $ // $Id: VectorHd.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel_d/VectorHd_impl.h cgal-5.5/include/CGAL/Kernel_d/VectorHd_impl.h --- cgal-5.4.1/include/CGAL/Kernel_d/VectorHd_impl.h 2022-06-03 19:04:39.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel_d/VectorHd_impl.h 2022-07-13 19:05:31.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_d/include/CGAL/Kernel_d/VectorHd_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_d/include/CGAL/Kernel_d/VectorHd_impl.h $ // $Id: VectorHd_impl.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel_profiler.h cgal-5.5/include/CGAL/Kernel_profiler.h --- cgal-5.4.1/include/CGAL/Kernel_profiler.h 2022-06-03 19:04:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel_profiler.h 2022-07-13 19:05:00.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Filtered_kernel/include/CGAL/Kernel_profiler.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Filtered_kernel/include/CGAL/Kernel_profiler.h $ // $Id: Kernel_profiler.h 8bb22d5 2020-03-26T14:23:37+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/kernel_to_kernel.h cgal-5.5/include/CGAL/kernel_to_kernel.h --- cgal-5.4.1/include/CGAL/kernel_to_kernel.h 2022-06-03 19:04:33.000000000 +0000 +++ cgal-5.5/include/CGAL/kernel_to_kernel.h 2022-07-13 19:05:24.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/kernel_to_kernel.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/kernel_to_kernel.h $ // $Id: kernel_to_kernel.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel_traits_fwd.h cgal-5.5/include/CGAL/Kernel_traits_fwd.h --- cgal-5.4.1/include/CGAL/Kernel_traits_fwd.h 2022-06-03 19:04:19.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel_traits_fwd.h 2022-07-13 19:05:09.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/Kernel_traits_fwd.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/Kernel_traits_fwd.h $ // $Id: Kernel_traits_fwd.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Kernel_traits.h cgal-5.5/include/CGAL/Kernel_traits.h --- cgal-5.4.1/include/CGAL/Kernel_traits.h 2022-06-03 19:04:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Kernel_traits.h 2022-07-13 19:05:23.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Kernel_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Kernel_traits.h $ // $Id: Kernel_traits.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/K_neighbor_search.h cgal-5.5/include/CGAL/K_neighbor_search.h --- cgal-5.4.1/include/CGAL/K_neighbor_search.h 2022-06-03 19:05:47.000000000 +0000 +++ cgal-5.5/include/CGAL/K_neighbor_search.h 2022-07-13 19:06:43.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Spatial_searching/include/CGAL/K_neighbor_search.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Spatial_searching/include/CGAL/K_neighbor_search.h $ // $Id: K_neighbor_search.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/known_bit_size_integers.h cgal-5.5/include/CGAL/known_bit_size_integers.h --- cgal-5.4.1/include/CGAL/known_bit_size_integers.h 2022-06-03 19:05:01.000000000 +0000 +++ cgal-5.5/include/CGAL/known_bit_size_integers.h 2022-07-13 19:05:55.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/known_bit_size_integers.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/known_bit_size_integers.h $ // $Id: known_bit_size_integers.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Labeled_image_mesh_domain_3.h cgal-5.5/include/CGAL/Labeled_image_mesh_domain_3.h --- cgal-5.4.1/include/CGAL/Labeled_image_mesh_domain_3.h 2022-06-03 19:04:46.000000000 +0000 +++ cgal-5.5/include/CGAL/Labeled_image_mesh_domain_3.h 2022-07-13 19:05:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Labeled_image_mesh_domain_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Labeled_image_mesh_domain_3.h $ // $Id: Labeled_image_mesh_domain_3.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Labeled_mesh_domain_3.h cgal-5.5/include/CGAL/Labeled_mesh_domain_3.h --- cgal-5.4.1/include/CGAL/Labeled_mesh_domain_3.h 2022-06-03 19:04:46.000000000 +0000 +++ cgal-5.5/include/CGAL/Labeled_mesh_domain_3.h 2022-07-13 19:05:39.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Labeled_mesh_domain_3.h $ -// $Id: Labeled_mesh_domain_3.h ac7b637 2021-10-05T10:27:03+02:00 Jane Tournois +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Labeled_mesh_domain_3.h $ +// $Id: Labeled_mesh_domain_3.h 61e3637 2022-04-25T14:04:11+01:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -372,6 +372,13 @@ # pragma warning(push) # pragma warning(disable: 4003) #endif + + // see +CGAL_PRAGMA_DIAG_PUSH +// see +CGAL_IGNORE_BOOST_PARAMETER_NAME_WARNINGS + + BOOST_PARAMETER_MEMBER_FUNCTION( (Labeled_mesh_domain_3), static create_gray_image_mesh_domain, @@ -494,6 +501,8 @@ create_construct_surface_patch_index(construct_surface_patch_index_)); } +CGAL_PRAGMA_DIAG_POP + #if defined(BOOST_MSVC) # pragma warning(pop) #endif diff -Nru cgal-5.4.1/include/CGAL/Largest_empty_iso_rectangle_2.h cgal-5.5/include/CGAL/Largest_empty_iso_rectangle_2.h --- cgal-5.4.1/include/CGAL/Largest_empty_iso_rectangle_2.h 2022-06-03 19:04:19.000000000 +0000 +++ cgal-5.5/include/CGAL/Largest_empty_iso_rectangle_2.h 2022-07-13 19:05:08.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Inscribed_areas/include/CGAL/Largest_empty_iso_rectangle_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Inscribed_areas/include/CGAL/Largest_empty_iso_rectangle_2.h $ // $Id: Largest_empty_iso_rectangle_2.h 0fcbaf5 2020-05-24T11:15:12+02:00 Marc Glisse // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Lazy_exact_nt.h cgal-5.5/include/CGAL/Lazy_exact_nt.h --- cgal-5.4.1/include/CGAL/Lazy_exact_nt.h 2022-06-03 19:05:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Lazy_exact_nt.h 2022-07-13 19:05:54.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/Lazy_exact_nt.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/Lazy_exact_nt.h $ // $Id: Lazy_exact_nt.h 52b0779 2021-02-17T00:25:16+01:00 Marc Glisse // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Lazy.h cgal-5.5/include/CGAL/Lazy.h --- cgal-5.4.1/include/CGAL/Lazy.h 2022-06-03 19:04:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Lazy.h 2022-07-13 19:05:00.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Filtered_kernel/include/CGAL/Lazy.h $ -// $Id: Lazy.h 04fa75e 2022-03-11T09:12:17+00:00 Andreas Fabri +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Filtered_kernel/include/CGAL/Lazy.h $ +// $Id: Lazy.h 97e99cb 2022-04-27T16:32:08+02:00 Laurent Rineau // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // @@ -88,7 +88,7 @@ template inline -unsigned +int depth(const Lazy& l) { return l.depth(); @@ -98,7 +98,7 @@ #define CGAL_LAZY_FORWARD(T) \ inline const T & approx(const T& d) { return d; } \ inline const T & exact (const T& d) { return d; } \ - inline unsigned depth (const T& ) { return 0; } + inline int depth (const T& ) { return 0; } CGAL_LAZY_FORWARD(Bbox_2) CGAL_LAZY_FORWARD(Bbox_3) @@ -106,12 +106,12 @@ templateinline std::enable_if_t::value||std::is_enum::value, T> approx(T d){return d;} templateinline std::enable_if_t::value||std::is_enum::value, T> exact (T d){return d;} -templateinline std::enable_if_t::value||std::is_enum::value, unsigned> depth(T){return 0;} +templateinline std::enable_if_t::value||std::is_enum::value, int> depth(T){return -1;} // For tag classes: Return_base_tag, Homogeneous_tag, Null_vector, Origin templateinline std::enable_if_t::value, T> exact(T){return {};} templateinline std::enable_if_t::value, T> approx(T){return {};} -templateinline std::enable_if_t::value, unsigned> depth(T){return 0;} +templateinline std::enable_if_t::value, int> depth(T){return -1;} // For an iterator, exact/approx applies to the objects it points to template ::value>> @@ -119,7 +119,7 @@ template ::value>> auto approx(T const& t) {return make_transforming_iterator(t,[](auto const&u)->decltype(auto){return CGAL::approx(u);});} template ::value>> -unsigned depth(T const&) {return 1;} // FIXME: depth(*t) would be better when t is valid, but not for end iterators, and the true answer would iterate on the range, but we can't do that with only one iterator... We need to replace iterators with ranges to solve that. +int depth(T const&) {return 1;} // FIXME: depth(*t) would be better when t is valid, but not for end iterators, and the true answer would iterate on the range, but we can't do that with only one iterator... We need to replace iterators with ranges to solve that. #ifdef CGAL_LAZY_KERNEL_DEBUG template @@ -208,18 +208,22 @@ struct Depth_base { #ifdef CGAL_PROFILE - unsigned depth_; - Depth_base() { set_depth(0); } - unsigned depth() const { return depth_; } - void set_depth(unsigned i) + int depth_; + + Depth_base() + : depth_(0) + {} + + int depth() const { return depth_; } + void set_depth(int i) { depth_ = i; CGAL_HISTOGRAM_PROFILER(std::string("[Lazy_kernel DAG depths]"), i); //(unsigned) ::log2(double(i))); } #else - unsigned depth() const { return 0; } - void set_depth(unsigned) {} + int depth() const { return 0; } + void set_depth(int) {} #endif }; @@ -524,9 +528,7 @@ mutable std::atomic ptr_ { nullptr }; mutable std::once_flag once; - Lazy_rep () {} - - Lazy_rep (AT a) + Lazy_rep (AT a = AT()) : x(-a.inf()), y(a.sup()) {} template @@ -535,7 +537,13 @@ AT approx() const { - return AT(-x.load(std::memory_order_relaxed), y.load(std::memory_order_relaxed)); + // Do not check that the interval is valid. Indeed, using IO/WKT/traits_point.h for instance, + // one can default-construct a point, then set X, and then Y, which amounts to + // Point_2(Point_2(X, Point_2().y()).x(), Y). + // With Epeck, we have a default constructed array of Interval_nt in Point_2(), + // then .y() returns a Lazy_exact_nt containing an invalid interval, + // and when we read that interval we end up here. + return AT(-x.load(std::memory_order_relaxed), y.load(std::memory_order_relaxed), typename AT::no_check_t()); } void set_at(ET*, AT a) const { @@ -757,12 +765,18 @@ // actually use a different class from the lazy default construction. template Lazy_rep_0(A&& a, E&& e) - : Lazy_rep(std::forward(a), std::forward(e)) {} + : Lazy_rep(std::forward(a), std::forward(e)) + { + this->set_depth(0); + } #if 0 // unused. Find a less ambiguous placeholder if necessary Lazy_rep_0(const AT& a, void*) - : Lazy_rep(a) {} + : Lazy_rep(a) + { + this->set_depth(0); + } #endif // E2A()(e) and std::forward(e) could be evaluated in any order, but @@ -771,7 +785,10 @@ // call E2A()(e). template Lazy_rep_0(E&& e) - : Lazy_rep(E2A()(e), std::forward(e)) {} + : Lazy_rep(E2A()(e), std::forward(e)) + { + this->set_depth(0); + } void print_dag(std::ostream& os, int level) const @@ -976,6 +993,7 @@ Lazy_rep_2_1(const AC& ac, const EC& /*ec*/, const L1& l1, const L2& l2) : Lazy_rep(), l1_(l1), l2_(l2) { + this->set_depth((std::max)(CGAL::depth(l1), CGAL::depth(l2))); ac(CGAL::approx(l1), CGAL::approx(l2), this->at_orig.at_); } @@ -1029,6 +1047,7 @@ Lazy_rep_2_2(const AC& ac, const EC& /*ec*/, const L1& l1, const L2& l2) : Lazy_rep(), l1_(l1), l2_(l2) { + this->set_depth((std::max)(CGAL::depth(l1), CGAL::depth(l2))); ac(CGAL::approx(l1), CGAL::approx(l2), this->at_orig.at_.first, this->at_orig.at_.second); } diff -Nru cgal-5.4.1/include/CGAL/Lazy_kernel.h cgal-5.5/include/CGAL/Lazy_kernel.h --- cgal-5.4.1/include/CGAL/Lazy_kernel.h 2022-06-03 19:04:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Lazy_kernel.h 2022-07-13 19:05:00.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Filtered_kernel/include/CGAL/Lazy_kernel.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Filtered_kernel/include/CGAL/Lazy_kernel.h $ // $Id: Lazy_kernel.h 5945e48 2021-09-17T08:14:06+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/LEDA_arithmetic_kernel.h cgal-5.5/include/CGAL/LEDA_arithmetic_kernel.h --- cgal-5.4.1/include/CGAL/LEDA_arithmetic_kernel.h 2022-06-03 19:03:37.000000000 +0000 +++ cgal-5.5/include/CGAL/LEDA_arithmetic_kernel.h 2022-07-13 19:04:20.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arithmetic_kernel/include/CGAL/LEDA_arithmetic_kernel.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arithmetic_kernel/include/CGAL/LEDA_arithmetic_kernel.h $ // $Id: LEDA_arithmetic_kernel.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/LEDA_basic.h cgal-5.5/include/CGAL/LEDA_basic.h --- cgal-5.4.1/include/CGAL/LEDA_basic.h 2022-06-03 19:04:39.000000000 +0000 +++ cgal-5.5/include/CGAL/LEDA_basic.h 2022-07-13 19:05:31.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/LEDA/include/CGAL/LEDA_basic.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/LEDA/include/CGAL/LEDA_basic.h $ // $Id: LEDA_basic.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/leda_bigfloat.h cgal-5.5/include/CGAL/leda_bigfloat.h --- cgal-5.4.1/include/CGAL/leda_bigfloat.h 2022-06-03 19:05:02.000000000 +0000 +++ cgal-5.5/include/CGAL/leda_bigfloat.h 2022-07-13 19:05:55.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/leda_bigfloat.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/leda_bigfloat.h $ // $Id: leda_bigfloat.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/leda_bigfloat_interval.h cgal-5.5/include/CGAL/leda_bigfloat_interval.h --- cgal-5.4.1/include/CGAL/leda_bigfloat_interval.h 2022-06-03 19:05:02.000000000 +0000 +++ cgal-5.5/include/CGAL/leda_bigfloat_interval.h 2022-07-13 19:05:55.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/leda_bigfloat_interval.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/leda_bigfloat_interval.h $ // $Id: leda_bigfloat_interval.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/leda_coercion_traits.h cgal-5.5/include/CGAL/leda_coercion_traits.h --- cgal-5.4.1/include/CGAL/leda_coercion_traits.h 2022-06-03 19:05:02.000000000 +0000 +++ cgal-5.5/include/CGAL/leda_coercion_traits.h 2022-07-13 19:05:55.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/leda_coercion_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/leda_coercion_traits.h $ // $Id: leda_coercion_traits.h 26355e2 2020-06-25T12:31:21+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/leda_integer.h cgal-5.5/include/CGAL/leda_integer.h --- cgal-5.4.1/include/CGAL/leda_integer.h 2022-06-03 19:05:02.000000000 +0000 +++ cgal-5.5/include/CGAL/leda_integer.h 2022-07-13 19:05:55.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/leda_integer.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/leda_integer.h $ // $Id: leda_integer.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/leda_rational.h cgal-5.5/include/CGAL/leda_rational.h --- cgal-5.4.1/include/CGAL/leda_rational.h 2022-06-03 19:05:02.000000000 +0000 +++ cgal-5.5/include/CGAL/leda_rational.h 2022-07-13 19:05:55.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/leda_rational.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/leda_rational.h $ // $Id: leda_rational.h 4e519a3 2021-05-05T13:15:37+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/leda_real.h cgal-5.5/include/CGAL/leda_real.h --- cgal-5.4.1/include/CGAL/leda_real.h 2022-06-03 19:05:02.000000000 +0000 +++ cgal-5.5/include/CGAL/leda_real.h 2022-07-13 19:05:55.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/leda_real.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/leda_real.h $ // $Id: leda_real.h 4e519a3 2021-05-05T13:15:37+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Level_interval.h cgal-5.5/include/CGAL/Level_interval.h --- cgal-5.4.1/include/CGAL/Level_interval.h 2022-06-03 19:04:28.000000000 +0000 +++ cgal-5.5/include/CGAL/Level_interval.h 2022-07-13 19:05:19.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Interval_skip_list/include/CGAL/Level_interval.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Interval_skip_list/include/CGAL/Level_interval.h $ // $Id: Level_interval.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/AABB_tree.h cgal-5.5/include/CGAL/license/AABB_tree.h --- cgal-5.4.1/include/CGAL/license/AABB_tree.h 2022-06-03 19:04:20.000000000 +0000 +++ cgal-5.5/include/CGAL/license/AABB_tree.h 2022-07-13 19:05:09.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/AABB_tree.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/AABB_tree.h $ // $Id: AABB_tree.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Advancing_front_surface_reconstruction.h cgal-5.5/include/CGAL/license/Advancing_front_surface_reconstruction.h --- cgal-5.4.1/include/CGAL/license/Advancing_front_surface_reconstruction.h 2022-06-03 19:04:20.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Advancing_front_surface_reconstruction.h 2022-07-13 19:05:09.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Advancing_front_surface_reconstruction.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Advancing_front_surface_reconstruction.h $ // $Id: Advancing_front_surface_reconstruction.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Alpha_shapes_2.h cgal-5.5/include/CGAL/license/Alpha_shapes_2.h --- cgal-5.4.1/include/CGAL/license/Alpha_shapes_2.h 2022-06-03 19:04:20.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Alpha_shapes_2.h 2022-07-13 19:05:09.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Alpha_shapes_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Alpha_shapes_2.h $ // $Id: Alpha_shapes_2.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Alpha_shapes_3.h cgal-5.5/include/CGAL/license/Alpha_shapes_3.h --- cgal-5.4.1/include/CGAL/license/Alpha_shapes_3.h 2022-06-03 19:04:20.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Alpha_shapes_3.h 2022-07-13 19:05:09.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Alpha_shapes_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Alpha_shapes_3.h $ // $Id: Alpha_shapes_3.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Alpha_wrap_3.h cgal-5.5/include/CGAL/license/Alpha_wrap_3.h --- cgal-5.4.1/include/CGAL/license/Alpha_wrap_3.h 1970-01-01 00:00:00.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Alpha_wrap_3.h 2022-07-13 19:05:09.000000000 +0000 @@ -0,0 +1,54 @@ +// Copyright (c) 2016 GeometryFactory SARL (France). +// All rights reserved. +// +// This file is part of CGAL (www.cgal.org) +// +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Alpha_wrap_3.h $ +// $Id: Alpha_wrap_3.h c8ad168 2022-03-18T21:31:41+01:00 Mael Rouxel-Labbé +// SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial +// +// Author(s) : Andreas Fabri +// +// Warning: this file is generated, see include/CGAL/licence/README.md + +#ifndef CGAL_LICENSE_ALPHA_WRAP_3_H +#define CGAL_LICENSE_ALPHA_WRAP_3_H + +#include +#include + +#ifdef CGAL_ALPHA_WRAP_3_COMMERCIAL_LICENSE + +# if CGAL_ALPHA_WRAP_3_COMMERCIAL_LICENSE < CGAL_RELEASE_DATE + +# if defined(CGAL_LICENSE_WARNING) + + CGAL_pragma_warning("Your commercial license for CGAL does not cover " + "this release of the 3D Alpha Wrapping package.") +# endif + +# ifdef CGAL_LICENSE_ERROR +# error "Your commercial license for CGAL does not cover this release \ + of the 3D Alpha Wrapping package. \ + You get this error, as you defined CGAL_LICENSE_ERROR." +# endif // CGAL_LICENSE_ERROR + +# endif // CGAL_ALPHA_WRAP_3_COMMERCIAL_LICENSE < CGAL_RELEASE_DATE + +#else // no CGAL_ALPHA_WRAP_3_COMMERCIAL_LICENSE + +# if defined(CGAL_LICENSE_WARNING) + CGAL_pragma_warning("\nThe macro CGAL_ALPHA_WRAP_3_COMMERCIAL_LICENSE is not defined." + "\nYou use the CGAL 3D Alpha Wrapping package under " + "the terms of the GPLv3+.") +# endif // CGAL_LICENSE_WARNING + +# ifdef CGAL_LICENSE_ERROR +# error "The macro CGAL_ALPHA_WRAP_3_COMMERCIAL_LICENSE is not defined.\ + You use the CGAL 3D Alpha Wrapping package under the terms of \ + the GPLv3+. You get this error, as you defined CGAL_LICENSE_ERROR." +# endif // CGAL_LICENSE_ERROR + +#endif // no CGAL_ALPHA_WRAP_3_COMMERCIAL_LICENSE + +#endif // CGAL_LICENSE_ALPHA_WRAP_3_H diff -Nru cgal-5.4.1/include/CGAL/license/Apollonius_graph_2.h cgal-5.5/include/CGAL/license/Apollonius_graph_2.h --- cgal-5.4.1/include/CGAL/license/Apollonius_graph_2.h 2022-06-03 19:04:20.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Apollonius_graph_2.h 2022-07-13 19:05:09.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Apollonius_graph_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Apollonius_graph_2.h $ // $Id: Apollonius_graph_2.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Arrangement_on_surface_2.h cgal-5.5/include/CGAL/license/Arrangement_on_surface_2.h --- cgal-5.4.1/include/CGAL/license/Arrangement_on_surface_2.h 2022-06-03 19:04:20.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Arrangement_on_surface_2.h 2022-07-13 19:05:10.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Arrangement_on_surface_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Arrangement_on_surface_2.h $ // $Id: Arrangement_on_surface_2.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Barycentric_coordinates_2.h cgal-5.5/include/CGAL/license/Barycentric_coordinates_2.h --- cgal-5.4.1/include/CGAL/license/Barycentric_coordinates_2.h 2022-06-03 19:04:20.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Barycentric_coordinates_2.h 2022-07-13 19:05:10.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Barycentric_coordinates_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Barycentric_coordinates_2.h $ // $Id: Barycentric_coordinates_2.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Boolean_set_operations_2.h cgal-5.5/include/CGAL/license/Boolean_set_operations_2.h --- cgal-5.4.1/include/CGAL/license/Boolean_set_operations_2.h 2022-06-03 19:04:20.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Boolean_set_operations_2.h 2022-07-13 19:05:10.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Boolean_set_operations_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Boolean_set_operations_2.h $ // $Id: Boolean_set_operations_2.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Bounding_volumes.h cgal-5.5/include/CGAL/license/Bounding_volumes.h --- cgal-5.4.1/include/CGAL/license/Bounding_volumes.h 2022-06-03 19:04:20.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Bounding_volumes.h 2022-07-13 19:05:10.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Bounding_volumes.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Bounding_volumes.h $ // $Id: Bounding_volumes.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Box_intersection_d.h cgal-5.5/include/CGAL/license/Box_intersection_d.h --- cgal-5.4.1/include/CGAL/license/Box_intersection_d.h 2022-06-03 19:04:20.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Box_intersection_d.h 2022-07-13 19:05:10.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Box_intersection_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Box_intersection_d.h $ // $Id: Box_intersection_d.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Circular_kernel_2.h cgal-5.5/include/CGAL/license/Circular_kernel_2.h --- cgal-5.4.1/include/CGAL/license/Circular_kernel_2.h 2022-06-03 19:04:20.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Circular_kernel_2.h 2022-07-13 19:05:10.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Circular_kernel_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Circular_kernel_2.h $ // $Id: Circular_kernel_2.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Circular_kernel_3.h cgal-5.5/include/CGAL/license/Circular_kernel_3.h --- cgal-5.4.1/include/CGAL/license/Circular_kernel_3.h 2022-06-03 19:04:20.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Circular_kernel_3.h 2022-07-13 19:05:10.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Circular_kernel_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Circular_kernel_3.h $ // $Id: Circular_kernel_3.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Classification.h cgal-5.5/include/CGAL/license/Classification.h --- cgal-5.4.1/include/CGAL/license/Classification.h 2022-06-03 19:04:20.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Classification.h 2022-07-13 19:05:10.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Classification.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Classification.h $ // $Id: Classification.h 3edff7b 2021-06-17T10:49:45+02:00 Dmitry Anisimov // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Cone_spanners_2.h cgal-5.5/include/CGAL/license/Cone_spanners_2.h --- cgal-5.4.1/include/CGAL/license/Cone_spanners_2.h 2022-06-03 19:04:20.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Cone_spanners_2.h 2022-07-13 19:05:10.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Cone_spanners_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Cone_spanners_2.h $ // $Id: Cone_spanners_2.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Convex_decomposition_3.h cgal-5.5/include/CGAL/license/Convex_decomposition_3.h --- cgal-5.4.1/include/CGAL/license/Convex_decomposition_3.h 2022-06-03 19:04:20.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Convex_decomposition_3.h 2022-07-13 19:05:10.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Convex_decomposition_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Convex_decomposition_3.h $ // $Id: Convex_decomposition_3.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Convex_hull_2.h cgal-5.5/include/CGAL/license/Convex_hull_2.h --- cgal-5.4.1/include/CGAL/license/Convex_hull_2.h 2022-06-03 19:04:20.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Convex_hull_2.h 2022-07-13 19:05:10.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Convex_hull_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Convex_hull_2.h $ // $Id: Convex_hull_2.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Convex_hull_3.h cgal-5.5/include/CGAL/license/Convex_hull_3.h --- cgal-5.4.1/include/CGAL/license/Convex_hull_3.h 2022-06-03 19:04:20.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Convex_hull_3.h 2022-07-13 19:05:10.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Convex_hull_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Convex_hull_3.h $ // $Id: Convex_hull_3.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Convex_hull_d.h cgal-5.5/include/CGAL/license/Convex_hull_d.h --- cgal-5.4.1/include/CGAL/license/Convex_hull_d.h 2022-06-03 19:04:21.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Convex_hull_d.h 2022-07-13 19:05:10.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Convex_hull_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Convex_hull_d.h $ // $Id: Convex_hull_d.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Envelope_2.h cgal-5.5/include/CGAL/license/Envelope_2.h --- cgal-5.4.1/include/CGAL/license/Envelope_2.h 2022-06-03 19:04:21.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Envelope_2.h 2022-07-13 19:05:10.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Envelope_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Envelope_2.h $ // $Id: Envelope_2.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Envelope_3.h cgal-5.5/include/CGAL/license/Envelope_3.h --- cgal-5.4.1/include/CGAL/license/Envelope_3.h 2022-06-03 19:04:21.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Envelope_3.h 2022-07-13 19:05:10.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Envelope_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Envelope_3.h $ // $Id: Envelope_3.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/gpl_package_list.txt cgal-5.5/include/CGAL/license/gpl_package_list.txt --- cgal-5.4.1/include/CGAL/license/gpl_package_list.txt 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/include/CGAL/license/gpl_package_list.txt 2022-06-13 09:15:37.000000000 +0000 @@ -2,6 +2,7 @@ Advancing_front_surface_reconstruction Advancing Front Surface Reconstruction Alpha_shapes_2 2D Alpha Shapes Alpha_shapes_3 3D Alpha Shapes +Alpha_wrap_3 3D Alpha Wrapping Apollonius_graph_2 2D Apollonius Graphs (Delaunay Graphs of Disks) Arrangement_on_surface_2 2D Arrangements Barycentric_coordinates_2 2D Generalized Barycentric Coordinates diff -Nru cgal-5.4.1/include/CGAL/license/GraphicsView.h cgal-5.5/include/CGAL/license/GraphicsView.h --- cgal-5.4.1/include/CGAL/license/GraphicsView.h 2022-06-03 19:04:21.000000000 +0000 +++ cgal-5.5/include/CGAL/license/GraphicsView.h 2022-07-13 19:05:10.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/GraphicsView.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/GraphicsView.h $ // $Id: GraphicsView.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Heat_method_3.h cgal-5.5/include/CGAL/license/Heat_method_3.h --- cgal-5.4.1/include/CGAL/license/Heat_method_3.h 2022-06-03 19:04:21.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Heat_method_3.h 2022-07-13 19:05:10.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Heat_method_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Heat_method_3.h $ // $Id: Heat_method_3.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Hyperbolic_triangulation_2.h cgal-5.5/include/CGAL/license/Hyperbolic_triangulation_2.h --- cgal-5.4.1/include/CGAL/license/Hyperbolic_triangulation_2.h 2022-06-03 19:04:21.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Hyperbolic_triangulation_2.h 2022-07-13 19:05:10.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Hyperbolic_triangulation_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Hyperbolic_triangulation_2.h $ // $Id: Hyperbolic_triangulation_2.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Inscribed_areas.h cgal-5.5/include/CGAL/license/Inscribed_areas.h --- cgal-5.4.1/include/CGAL/license/Inscribed_areas.h 2022-06-03 19:04:21.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Inscribed_areas.h 2022-07-13 19:05:10.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Inscribed_areas.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Inscribed_areas.h $ // $Id: Inscribed_areas.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Interpolation.h cgal-5.5/include/CGAL/license/Interpolation.h --- cgal-5.4.1/include/CGAL/license/Interpolation.h 2022-06-03 19:04:21.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Interpolation.h 2022-07-13 19:05:10.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Interpolation.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Interpolation.h $ // $Id: Interpolation.h 8bc8f70 2021-06-17T11:44:41+02:00 Dmitry Anisimov // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Interval_skip_list.h cgal-5.5/include/CGAL/license/Interval_skip_list.h --- cgal-5.4.1/include/CGAL/license/Interval_skip_list.h 2022-06-03 19:04:21.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Interval_skip_list.h 2022-07-13 19:05:10.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Interval_skip_list.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Interval_skip_list.h $ // $Id: Interval_skip_list.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Jet_fitting_3.h cgal-5.5/include/CGAL/license/Jet_fitting_3.h --- cgal-5.4.1/include/CGAL/license/Jet_fitting_3.h 2022-06-03 19:04:21.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Jet_fitting_3.h 2022-07-13 19:05:10.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Jet_fitting_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Jet_fitting_3.h $ // $Id: Jet_fitting_3.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/lgpl.h cgal-5.5/include/CGAL/license/lgpl.h --- cgal-5.4.1/include/CGAL/license/lgpl.h 2022-06-03 19:04:24.000000000 +0000 +++ cgal-5.5/include/CGAL/license/lgpl.h 2022-07-13 19:05:14.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/lgpl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/lgpl.h $ // $Id: lgpl.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Matrix_search.h cgal-5.5/include/CGAL/license/Matrix_search.h --- cgal-5.4.1/include/CGAL/license/Matrix_search.h 2022-06-03 19:04:21.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Matrix_search.h 2022-07-13 19:05:10.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Matrix_search.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Matrix_search.h $ // $Id: Matrix_search.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Mesh_2.h cgal-5.5/include/CGAL/license/Mesh_2.h --- cgal-5.4.1/include/CGAL/license/Mesh_2.h 2022-06-03 19:04:21.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Mesh_2.h 2022-07-13 19:05:10.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Mesh_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Mesh_2.h $ // $Id: Mesh_2.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Mesh_3.h cgal-5.5/include/CGAL/license/Mesh_3.h --- cgal-5.4.1/include/CGAL/license/Mesh_3.h 2022-06-03 19:04:21.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Mesh_3.h 2022-07-13 19:05:11.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Mesh_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Mesh_3.h $ // $Id: Mesh_3.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Minkowski_sum_2.h cgal-5.5/include/CGAL/license/Minkowski_sum_2.h --- cgal-5.4.1/include/CGAL/license/Minkowski_sum_2.h 2022-06-03 19:04:21.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Minkowski_sum_2.h 2022-07-13 19:05:11.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Minkowski_sum_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Minkowski_sum_2.h $ // $Id: Minkowski_sum_2.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Minkowski_sum_3.h cgal-5.5/include/CGAL/license/Minkowski_sum_3.h --- cgal-5.4.1/include/CGAL/license/Minkowski_sum_3.h 2022-06-03 19:04:21.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Minkowski_sum_3.h 2022-07-13 19:05:11.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Minkowski_sum_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Minkowski_sum_3.h $ // $Id: Minkowski_sum_3.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Nef_2.h cgal-5.5/include/CGAL/license/Nef_2.h --- cgal-5.4.1/include/CGAL/license/Nef_2.h 2022-06-03 19:04:21.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Nef_2.h 2022-07-13 19:05:11.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Nef_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Nef_2.h $ // $Id: Nef_2.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Nef_3.h cgal-5.5/include/CGAL/license/Nef_3.h --- cgal-5.4.1/include/CGAL/license/Nef_3.h 2022-06-03 19:04:21.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Nef_3.h 2022-07-13 19:05:11.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Nef_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Nef_3.h $ // $Id: Nef_3.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Nef_S2.h cgal-5.5/include/CGAL/license/Nef_S2.h --- cgal-5.4.1/include/CGAL/license/Nef_S2.h 2022-06-03 19:04:21.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Nef_S2.h 2022-07-13 19:05:11.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Nef_S2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Nef_S2.h $ // $Id: Nef_S2.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Optimal_bounding_box.h cgal-5.5/include/CGAL/license/Optimal_bounding_box.h --- cgal-5.4.1/include/CGAL/license/Optimal_bounding_box.h 2022-06-03 19:04:21.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Optimal_bounding_box.h 2022-07-13 19:05:11.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Optimal_bounding_box.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Optimal_bounding_box.h $ // $Id: Optimal_bounding_box.h 844cd55 2019-12-09T15:43:30+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Optimal_transportation_reconstruction_2.h cgal-5.5/include/CGAL/license/Optimal_transportation_reconstruction_2.h --- cgal-5.4.1/include/CGAL/license/Optimal_transportation_reconstruction_2.h 2022-06-03 19:04:21.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Optimal_transportation_reconstruction_2.h 2022-07-13 19:05:11.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Optimal_transportation_reconstruction_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Optimal_transportation_reconstruction_2.h $ // $Id: Optimal_transportation_reconstruction_2.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Orthtree.h cgal-5.5/include/CGAL/license/Orthtree.h --- cgal-5.4.1/include/CGAL/license/Orthtree.h 2022-06-03 19:04:21.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Orthtree.h 2022-07-13 19:05:11.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Orthtree.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Orthtree.h $ // $Id: Orthtree.h 8bc8f70 2021-06-17T11:44:41+02:00 Dmitry Anisimov // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Partition_2.h cgal-5.5/include/CGAL/license/Partition_2.h --- cgal-5.4.1/include/CGAL/license/Partition_2.h 2022-06-03 19:04:21.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Partition_2.h 2022-07-13 19:05:11.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Partition_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Partition_2.h $ // $Id: Partition_2.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Periodic_2_triangulation_2.h cgal-5.5/include/CGAL/license/Periodic_2_triangulation_2.h --- cgal-5.4.1/include/CGAL/license/Periodic_2_triangulation_2.h 2022-06-03 19:04:21.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Periodic_2_triangulation_2.h 2022-07-13 19:05:11.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Periodic_2_triangulation_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Periodic_2_triangulation_2.h $ // $Id: Periodic_2_triangulation_2.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Periodic_3_mesh_3.h cgal-5.5/include/CGAL/license/Periodic_3_mesh_3.h --- cgal-5.4.1/include/CGAL/license/Periodic_3_mesh_3.h 2022-06-03 19:04:21.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Periodic_3_mesh_3.h 2022-07-13 19:05:11.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Periodic_3_mesh_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Periodic_3_mesh_3.h $ // $Id: Periodic_3_mesh_3.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Periodic_3_triangulation_3.h cgal-5.5/include/CGAL/license/Periodic_3_triangulation_3.h --- cgal-5.4.1/include/CGAL/license/Periodic_3_triangulation_3.h 2022-06-03 19:04:21.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Periodic_3_triangulation_3.h 2022-07-13 19:05:11.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Periodic_3_triangulation_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Periodic_3_triangulation_3.h $ // $Id: Periodic_3_triangulation_3.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Periodic_4_hyperbolic_triangulation_2.h cgal-5.5/include/CGAL/license/Periodic_4_hyperbolic_triangulation_2.h --- cgal-5.4.1/include/CGAL/license/Periodic_4_hyperbolic_triangulation_2.h 2022-06-03 19:04:21.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Periodic_4_hyperbolic_triangulation_2.h 2022-07-13 19:05:11.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Periodic_4_hyperbolic_triangulation_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Periodic_4_hyperbolic_triangulation_2.h $ // $Id: Periodic_4_hyperbolic_triangulation_2.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Point_set_2.h cgal-5.5/include/CGAL/license/Point_set_2.h --- cgal-5.4.1/include/CGAL/license/Point_set_2.h 2022-06-03 19:04:22.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Point_set_2.h 2022-07-13 19:05:11.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Point_set_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Point_set_2.h $ // $Id: Point_set_2.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Point_set_3.h cgal-5.5/include/CGAL/license/Point_set_3.h --- cgal-5.4.1/include/CGAL/license/Point_set_3.h 2022-06-03 19:04:22.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Point_set_3.h 2022-07-13 19:05:11.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Point_set_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Point_set_3.h $ // $Id: Point_set_3.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Point_set_processing_3.h cgal-5.5/include/CGAL/license/Point_set_processing_3.h --- cgal-5.4.1/include/CGAL/license/Point_set_processing_3.h 2022-06-03 19:04:22.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Point_set_processing_3.h 2022-07-13 19:05:11.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Point_set_processing_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Point_set_processing_3.h $ // $Id: Point_set_processing_3.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Poisson_surface_reconstruction_3.h cgal-5.5/include/CGAL/license/Poisson_surface_reconstruction_3.h --- cgal-5.4.1/include/CGAL/license/Poisson_surface_reconstruction_3.h 2022-06-03 19:04:22.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Poisson_surface_reconstruction_3.h 2022-07-13 19:05:11.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Poisson_surface_reconstruction_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Poisson_surface_reconstruction_3.h $ // $Id: Poisson_surface_reconstruction_3.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Polygonal_surface_reconstruction.h cgal-5.5/include/CGAL/license/Polygonal_surface_reconstruction.h --- cgal-5.4.1/include/CGAL/license/Polygonal_surface_reconstruction.h 2022-06-03 19:04:22.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Polygonal_surface_reconstruction.h 2022-07-13 19:05:12.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Polygonal_surface_reconstruction.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Polygonal_surface_reconstruction.h $ // $Id: Polygonal_surface_reconstruction.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Polygon_mesh_processing/collision_detection.h cgal-5.5/include/CGAL/license/Polygon_mesh_processing/collision_detection.h --- cgal-5.4.1/include/CGAL/license/Polygon_mesh_processing/collision_detection.h 2022-06-03 19:04:22.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Polygon_mesh_processing/collision_detection.h 2022-07-13 19:05:11.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Polygon_mesh_processing/collision_detection.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Polygon_mesh_processing/collision_detection.h $ // $Id: collision_detection.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Polygon_mesh_processing/Compute_normal.h cgal-5.5/include/CGAL/license/Polygon_mesh_processing/Compute_normal.h --- cgal-5.4.1/include/CGAL/license/Polygon_mesh_processing/Compute_normal.h 2022-06-03 19:04:22.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Polygon_mesh_processing/Compute_normal.h 2022-07-13 19:05:11.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Polygon_mesh_processing/Compute_normal.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Polygon_mesh_processing/Compute_normal.h $ // $Id: Compute_normal.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Polygon_mesh_processing/connected_components.h cgal-5.5/include/CGAL/license/Polygon_mesh_processing/connected_components.h --- cgal-5.4.1/include/CGAL/license/Polygon_mesh_processing/connected_components.h 2022-06-03 19:04:22.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Polygon_mesh_processing/connected_components.h 2022-07-13 19:05:11.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Polygon_mesh_processing/connected_components.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Polygon_mesh_processing/connected_components.h $ // $Id: connected_components.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Polygon_mesh_processing/corefinement.h cgal-5.5/include/CGAL/license/Polygon_mesh_processing/corefinement.h --- cgal-5.4.1/include/CGAL/license/Polygon_mesh_processing/corefinement.h 2022-06-03 19:04:22.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Polygon_mesh_processing/corefinement.h 2022-07-13 19:05:12.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Polygon_mesh_processing/corefinement.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Polygon_mesh_processing/corefinement.h $ // $Id: corefinement.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Polygon_mesh_processing/core.h cgal-5.5/include/CGAL/license/Polygon_mesh_processing/core.h --- cgal-5.4.1/include/CGAL/license/Polygon_mesh_processing/core.h 2022-06-03 19:04:22.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Polygon_mesh_processing/core.h 2022-07-13 19:05:11.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Polygon_mesh_processing/core.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Polygon_mesh_processing/core.h $ // $Id: core.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Polygon_mesh_processing/detect_features.h cgal-5.5/include/CGAL/license/Polygon_mesh_processing/detect_features.h --- cgal-5.4.1/include/CGAL/license/Polygon_mesh_processing/detect_features.h 2022-06-03 19:04:22.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Polygon_mesh_processing/detect_features.h 2022-07-13 19:05:12.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Polygon_mesh_processing/detect_features.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Polygon_mesh_processing/detect_features.h $ // $Id: detect_features.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Polygon_mesh_processing/distance.h cgal-5.5/include/CGAL/license/Polygon_mesh_processing/distance.h --- cgal-5.4.1/include/CGAL/license/Polygon_mesh_processing/distance.h 2022-06-03 19:04:22.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Polygon_mesh_processing/distance.h 2022-07-13 19:05:12.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Polygon_mesh_processing/distance.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Polygon_mesh_processing/distance.h $ // $Id: distance.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Polygon_mesh_processing/locate.h cgal-5.5/include/CGAL/license/Polygon_mesh_processing/locate.h --- cgal-5.4.1/include/CGAL/license/Polygon_mesh_processing/locate.h 2022-06-03 19:04:22.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Polygon_mesh_processing/locate.h 2022-07-13 19:05:12.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Polygon_mesh_processing/locate.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Polygon_mesh_processing/locate.h $ // $Id: locate.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Polygon_mesh_processing/measure.h cgal-5.5/include/CGAL/license/Polygon_mesh_processing/measure.h --- cgal-5.4.1/include/CGAL/license/Polygon_mesh_processing/measure.h 2022-06-03 19:04:22.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Polygon_mesh_processing/measure.h 2022-07-13 19:05:12.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Polygon_mesh_processing/measure.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Polygon_mesh_processing/measure.h $ // $Id: measure.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Polygon_mesh_processing/meshing_hole_filling.h cgal-5.5/include/CGAL/license/Polygon_mesh_processing/meshing_hole_filling.h --- cgal-5.4.1/include/CGAL/license/Polygon_mesh_processing/meshing_hole_filling.h 2022-06-03 19:04:22.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Polygon_mesh_processing/meshing_hole_filling.h 2022-07-13 19:05:12.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Polygon_mesh_processing/meshing_hole_filling.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Polygon_mesh_processing/meshing_hole_filling.h $ // $Id: meshing_hole_filling.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Polygon_mesh_processing/miscellaneous.h cgal-5.5/include/CGAL/license/Polygon_mesh_processing/miscellaneous.h --- cgal-5.4.1/include/CGAL/license/Polygon_mesh_processing/miscellaneous.h 2022-06-03 19:04:22.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Polygon_mesh_processing/miscellaneous.h 2022-07-13 19:05:12.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Polygon_mesh_processing/miscellaneous.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Polygon_mesh_processing/miscellaneous.h $ // $Id: miscellaneous.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Polygon_mesh_processing/orientation.h cgal-5.5/include/CGAL/license/Polygon_mesh_processing/orientation.h --- cgal-5.4.1/include/CGAL/license/Polygon_mesh_processing/orientation.h 2022-06-03 19:04:22.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Polygon_mesh_processing/orientation.h 2022-07-13 19:05:12.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Polygon_mesh_processing/orientation.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Polygon_mesh_processing/orientation.h $ // $Id: orientation.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Polygon_mesh_processing/Polyhedral_envelope.h cgal-5.5/include/CGAL/license/Polygon_mesh_processing/Polyhedral_envelope.h --- cgal-5.4.1/include/CGAL/license/Polygon_mesh_processing/Polyhedral_envelope.h 2022-06-03 19:04:22.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Polygon_mesh_processing/Polyhedral_envelope.h 2022-07-13 19:05:11.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Polygon_mesh_processing/Polyhedral_envelope.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Polygon_mesh_processing/Polyhedral_envelope.h $ // $Id: Polyhedral_envelope.h 6b9bd51 2020-11-12T14:45:14+00:00 Andreas Fabri // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Polygon_mesh_processing/predicate.h cgal-5.5/include/CGAL/license/Polygon_mesh_processing/predicate.h --- cgal-5.4.1/include/CGAL/license/Polygon_mesh_processing/predicate.h 2022-06-03 19:04:22.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Polygon_mesh_processing/predicate.h 2022-07-13 19:05:12.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Polygon_mesh_processing/predicate.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Polygon_mesh_processing/predicate.h $ // $Id: predicate.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Polygon_mesh_processing/repair.h cgal-5.5/include/CGAL/license/Polygon_mesh_processing/repair.h --- cgal-5.4.1/include/CGAL/license/Polygon_mesh_processing/repair.h 2022-06-03 19:04:22.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Polygon_mesh_processing/repair.h 2022-07-13 19:05:12.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Polygon_mesh_processing/repair.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Polygon_mesh_processing/repair.h $ // $Id: repair.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Polygon_mesh_processing.h cgal-5.5/include/CGAL/license/Polygon_mesh_processing.h --- cgal-5.4.1/include/CGAL/license/Polygon_mesh_processing.h 2022-06-03 19:04:22.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Polygon_mesh_processing.h 2022-07-13 19:05:11.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Polygon_mesh_processing.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Polygon_mesh_processing.h $ // $Id: Polygon_mesh_processing.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Polyhedron.h cgal-5.5/include/CGAL/license/Polyhedron.h --- cgal-5.4.1/include/CGAL/license/Polyhedron.h 2022-06-03 19:04:22.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Polyhedron.h 2022-07-13 19:05:12.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Polyhedron.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Polyhedron.h $ // $Id: Polyhedron.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Polyline_simplification_2.h cgal-5.5/include/CGAL/license/Polyline_simplification_2.h --- cgal-5.4.1/include/CGAL/license/Polyline_simplification_2.h 2022-06-03 19:04:22.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Polyline_simplification_2.h 2022-07-13 19:05:12.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Polyline_simplification_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Polyline_simplification_2.h $ // $Id: Polyline_simplification_2.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Polytope_distance_d.h cgal-5.5/include/CGAL/license/Polytope_distance_d.h --- cgal-5.4.1/include/CGAL/license/Polytope_distance_d.h 2022-06-03 19:04:22.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Polytope_distance_d.h 2022-07-13 19:05:12.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Polytope_distance_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Polytope_distance_d.h $ // $Id: Polytope_distance_d.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Principal_component_analysis.h cgal-5.5/include/CGAL/license/Principal_component_analysis.h --- cgal-5.4.1/include/CGAL/license/Principal_component_analysis.h 2022-06-03 19:04:22.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Principal_component_analysis.h 2022-07-13 19:05:12.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Principal_component_analysis.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Principal_component_analysis.h $ // $Id: Principal_component_analysis.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/QP_solver.h cgal-5.5/include/CGAL/license/QP_solver.h --- cgal-5.4.1/include/CGAL/license/QP_solver.h 2022-06-03 19:04:22.000000000 +0000 +++ cgal-5.5/include/CGAL/license/QP_solver.h 2022-07-13 19:05:12.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/QP_solver.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/QP_solver.h $ // $Id: QP_solver.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Ridges_3.h cgal-5.5/include/CGAL/license/Ridges_3.h --- cgal-5.4.1/include/CGAL/license/Ridges_3.h 2022-06-03 19:04:23.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Ridges_3.h 2022-07-13 19:05:12.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Ridges_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Ridges_3.h $ // $Id: Ridges_3.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Scale_space_reconstruction_3.h cgal-5.5/include/CGAL/license/Scale_space_reconstruction_3.h --- cgal-5.4.1/include/CGAL/license/Scale_space_reconstruction_3.h 2022-06-03 19:04:23.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Scale_space_reconstruction_3.h 2022-07-13 19:05:12.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Scale_space_reconstruction_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Scale_space_reconstruction_3.h $ // $Id: Scale_space_reconstruction_3.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/SearchStructures.h cgal-5.5/include/CGAL/license/SearchStructures.h --- cgal-5.4.1/include/CGAL/license/SearchStructures.h 2022-06-03 19:04:23.000000000 +0000 +++ cgal-5.5/include/CGAL/license/SearchStructures.h 2022-07-13 19:05:12.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/SearchStructures.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/SearchStructures.h $ // $Id: SearchStructures.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Segment_Delaunay_graph_2.h cgal-5.5/include/CGAL/license/Segment_Delaunay_graph_2.h --- cgal-5.4.1/include/CGAL/license/Segment_Delaunay_graph_2.h 2022-06-03 19:04:23.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Segment_Delaunay_graph_2.h 2022-07-13 19:05:12.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Segment_Delaunay_graph_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Segment_Delaunay_graph_2.h $ // $Id: Segment_Delaunay_graph_2.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Segment_Delaunay_graph_Linf_2.h cgal-5.5/include/CGAL/license/Segment_Delaunay_graph_Linf_2.h --- cgal-5.4.1/include/CGAL/license/Segment_Delaunay_graph_Linf_2.h 2022-06-03 19:04:23.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Segment_Delaunay_graph_Linf_2.h 2022-07-13 19:05:12.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Segment_Delaunay_graph_Linf_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Segment_Delaunay_graph_Linf_2.h $ // $Id: Segment_Delaunay_graph_Linf_2.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Set_movable_separability_2.h cgal-5.5/include/CGAL/license/Set_movable_separability_2.h --- cgal-5.4.1/include/CGAL/license/Set_movable_separability_2.h 2022-06-03 19:04:23.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Set_movable_separability_2.h 2022-07-13 19:05:12.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Set_movable_separability_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Set_movable_separability_2.h $ // $Id: Set_movable_separability_2.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Shape_detection.h cgal-5.5/include/CGAL/license/Shape_detection.h --- cgal-5.4.1/include/CGAL/license/Shape_detection.h 2022-06-03 19:04:23.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Shape_detection.h 2022-07-13 19:05:12.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Shape_detection.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Shape_detection.h $ // $Id: Shape_detection.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Shape_regularization.h cgal-5.5/include/CGAL/license/Shape_regularization.h --- cgal-5.4.1/include/CGAL/license/Shape_regularization.h 2022-06-03 19:04:23.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Shape_regularization.h 2022-07-13 19:05:13.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Shape_regularization.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Shape_regularization.h $ // $Id: Shape_regularization.h 542f67b 2021-06-11T12:59:00+02:00 Dmitry Anisimov // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Skin_surface_3.h cgal-5.5/include/CGAL/license/Skin_surface_3.h --- cgal-5.4.1/include/CGAL/license/Skin_surface_3.h 2022-06-03 19:04:23.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Skin_surface_3.h 2022-07-13 19:05:13.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Skin_surface_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Skin_surface_3.h $ // $Id: Skin_surface_3.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Snap_rounding_2.h cgal-5.5/include/CGAL/license/Snap_rounding_2.h --- cgal-5.4.1/include/CGAL/license/Snap_rounding_2.h 2022-06-03 19:04:23.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Snap_rounding_2.h 2022-07-13 19:05:13.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Snap_rounding_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Snap_rounding_2.h $ // $Id: Snap_rounding_2.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Spatial_searching.h cgal-5.5/include/CGAL/license/Spatial_searching.h --- cgal-5.4.1/include/CGAL/license/Spatial_searching.h 2022-06-03 19:04:23.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Spatial_searching.h 2022-07-13 19:05:13.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Spatial_searching.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Spatial_searching.h $ // $Id: Spatial_searching.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Straight_skeleton_2.h cgal-5.5/include/CGAL/license/Straight_skeleton_2.h --- cgal-5.4.1/include/CGAL/license/Straight_skeleton_2.h 2022-06-03 19:04:23.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Straight_skeleton_2.h 2022-07-13 19:05:13.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Straight_skeleton_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Straight_skeleton_2.h $ // $Id: Straight_skeleton_2.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Stream_lines_2.h cgal-5.5/include/CGAL/license/Stream_lines_2.h --- cgal-5.4.1/include/CGAL/license/Stream_lines_2.h 2022-06-03 19:04:23.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Stream_lines_2.h 2022-07-13 19:05:13.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Stream_lines_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Stream_lines_2.h $ // $Id: Stream_lines_2.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Surface_mesh_approximation.h cgal-5.5/include/CGAL/license/Surface_mesh_approximation.h --- cgal-5.4.1/include/CGAL/license/Surface_mesh_approximation.h 2022-06-03 19:04:23.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Surface_mesh_approximation.h 2022-07-13 19:05:13.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Surface_mesh_approximation.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Surface_mesh_approximation.h $ // $Id: Surface_mesh_approximation.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Surface_mesh_deformation.h cgal-5.5/include/CGAL/license/Surface_mesh_deformation.h --- cgal-5.4.1/include/CGAL/license/Surface_mesh_deformation.h 2022-06-03 19:04:23.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Surface_mesh_deformation.h 2022-07-13 19:05:13.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Surface_mesh_deformation.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Surface_mesh_deformation.h $ // $Id: Surface_mesh_deformation.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Surface_mesher.h cgal-5.5/include/CGAL/license/Surface_mesher.h --- cgal-5.4.1/include/CGAL/license/Surface_mesher.h 2022-06-03 19:04:23.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Surface_mesher.h 2022-07-13 19:05:13.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Surface_mesher.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Surface_mesher.h $ // $Id: Surface_mesher.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Surface_mesh.h cgal-5.5/include/CGAL/license/Surface_mesh.h --- cgal-5.4.1/include/CGAL/license/Surface_mesh.h 2022-06-03 19:04:23.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Surface_mesh.h 2022-07-13 19:05:13.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Surface_mesh.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Surface_mesh.h $ // $Id: Surface_mesh.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Surface_mesh_parameterization.h cgal-5.5/include/CGAL/license/Surface_mesh_parameterization.h --- cgal-5.4.1/include/CGAL/license/Surface_mesh_parameterization.h 2022-06-03 19:04:23.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Surface_mesh_parameterization.h 2022-07-13 19:05:13.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Surface_mesh_parameterization.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Surface_mesh_parameterization.h $ // $Id: Surface_mesh_parameterization.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Surface_mesh_segmentation.h cgal-5.5/include/CGAL/license/Surface_mesh_segmentation.h --- cgal-5.4.1/include/CGAL/license/Surface_mesh_segmentation.h 2022-06-03 19:04:23.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Surface_mesh_segmentation.h 2022-07-13 19:05:13.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Surface_mesh_segmentation.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Surface_mesh_segmentation.h $ // $Id: Surface_mesh_segmentation.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Surface_mesh_shortest_path.h cgal-5.5/include/CGAL/license/Surface_mesh_shortest_path.h --- cgal-5.4.1/include/CGAL/license/Surface_mesh_shortest_path.h 2022-06-03 19:04:23.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Surface_mesh_shortest_path.h 2022-07-13 19:05:13.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Surface_mesh_shortest_path.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Surface_mesh_shortest_path.h $ // $Id: Surface_mesh_shortest_path.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Surface_mesh_simplification.h cgal-5.5/include/CGAL/license/Surface_mesh_simplification.h --- cgal-5.4.1/include/CGAL/license/Surface_mesh_simplification.h 2022-06-03 19:04:23.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Surface_mesh_simplification.h 2022-07-13 19:05:13.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Surface_mesh_simplification.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Surface_mesh_simplification.h $ // $Id: Surface_mesh_simplification.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Surface_mesh_skeletonization.h cgal-5.5/include/CGAL/license/Surface_mesh_skeletonization.h --- cgal-5.4.1/include/CGAL/license/Surface_mesh_skeletonization.h 2022-06-03 19:04:23.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Surface_mesh_skeletonization.h 2022-07-13 19:05:13.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Surface_mesh_skeletonization.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Surface_mesh_skeletonization.h $ // $Id: Surface_mesh_skeletonization.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Surface_mesh_topology.h cgal-5.5/include/CGAL/license/Surface_mesh_topology.h --- cgal-5.4.1/include/CGAL/license/Surface_mesh_topology.h 2022-06-03 19:04:23.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Surface_mesh_topology.h 2022-07-13 19:05:13.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Surface_mesh_topology.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Surface_mesh_topology.h $ // $Id: Surface_mesh_topology.h 90457b3 2019-11-26T14:21:39+01:00 Guillaume Damiand // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Surface_sweep_2.h cgal-5.5/include/CGAL/license/Surface_sweep_2.h --- cgal-5.4.1/include/CGAL/license/Surface_sweep_2.h 2022-06-03 19:04:23.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Surface_sweep_2.h 2022-07-13 19:05:13.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Surface_sweep_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Surface_sweep_2.h $ // $Id: Surface_sweep_2.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/TDS_2.h cgal-5.5/include/CGAL/license/TDS_2.h --- cgal-5.4.1/include/CGAL/license/TDS_2.h 2022-06-03 19:04:23.000000000 +0000 +++ cgal-5.5/include/CGAL/license/TDS_2.h 2022-07-13 19:05:13.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/TDS_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/TDS_2.h $ // $Id: TDS_2.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/TDS_3.h cgal-5.5/include/CGAL/license/TDS_3.h --- cgal-5.4.1/include/CGAL/license/TDS_3.h 2022-06-03 19:04:23.000000000 +0000 +++ cgal-5.5/include/CGAL/license/TDS_3.h 2022-07-13 19:05:13.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/TDS_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/TDS_3.h $ // $Id: TDS_3.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Tetrahedral_remeshing.h cgal-5.5/include/CGAL/license/Tetrahedral_remeshing.h --- cgal-5.4.1/include/CGAL/license/Tetrahedral_remeshing.h 2022-06-03 19:04:23.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Tetrahedral_remeshing.h 2022-07-13 19:05:13.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Tetrahedral_remeshing.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Tetrahedral_remeshing.h $ // $Id: Tetrahedral_remeshing.h 825f77b 2020-04-10T14:14:30+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Three.h cgal-5.5/include/CGAL/license/Three.h --- cgal-5.4.1/include/CGAL/license/Three.h 2022-06-03 19:04:24.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Three.h 2022-07-13 19:05:13.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Three.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Three.h $ // $Id: Three.h 3edff7b 2021-06-17T10:49:45+02:00 Dmitry Anisimov // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Triangulation_2.h cgal-5.5/include/CGAL/license/Triangulation_2.h --- cgal-5.4.1/include/CGAL/license/Triangulation_2.h 2022-06-03 19:04:24.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Triangulation_2.h 2022-07-13 19:05:13.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Triangulation_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Triangulation_2.h $ // $Id: Triangulation_2.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Triangulation_3.h cgal-5.5/include/CGAL/license/Triangulation_3.h --- cgal-5.4.1/include/CGAL/license/Triangulation_3.h 2022-06-03 19:04:24.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Triangulation_3.h 2022-07-13 19:05:13.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Triangulation_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Triangulation_3.h $ // $Id: Triangulation_3.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Triangulation.h cgal-5.5/include/CGAL/license/Triangulation.h --- cgal-5.4.1/include/CGAL/license/Triangulation.h 2022-06-03 19:04:24.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Triangulation.h 2022-07-13 19:05:13.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Triangulation.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Triangulation.h $ // $Id: Triangulation.h 8bc8f70 2021-06-17T11:44:41+02:00 Dmitry Anisimov // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Triangulation_on_sphere_2.h cgal-5.5/include/CGAL/license/Triangulation_on_sphere_2.h --- cgal-5.4.1/include/CGAL/license/Triangulation_on_sphere_2.h 2022-06-03 19:04:24.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Triangulation_on_sphere_2.h 2022-07-13 19:05:13.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Triangulation_on_sphere_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Triangulation_on_sphere_2.h $ // $Id: Triangulation_on_sphere_2.h 3edff7b 2021-06-17T10:49:45+02:00 Dmitry Anisimov // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Visibility_2.h cgal-5.5/include/CGAL/license/Visibility_2.h --- cgal-5.4.1/include/CGAL/license/Visibility_2.h 2022-06-03 19:04:24.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Visibility_2.h 2022-07-13 19:05:14.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Visibility_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Visibility_2.h $ // $Id: Visibility_2.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license/Voronoi_diagram_2.h cgal-5.5/include/CGAL/license/Voronoi_diagram_2.h --- cgal-5.4.1/include/CGAL/license/Voronoi_diagram_2.h 2022-06-03 19:04:24.000000000 +0000 +++ cgal-5.5/include/CGAL/license/Voronoi_diagram_2.h 2022-07-13 19:05:14.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license/Voronoi_diagram_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license/Voronoi_diagram_2.h $ // $Id: Voronoi_diagram_2.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/license.h cgal-5.5/include/CGAL/license.h --- cgal-5.4.1/include/CGAL/license.h 2022-06-03 19:04:20.000000000 +0000 +++ cgal-5.5/include/CGAL/license.h 2022-07-13 19:05:09.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/license.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/license.h $ // $Id: license.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Lightweight_vector_3.h cgal-5.5/include/CGAL/Lightweight_vector_3.h --- cgal-5.4.1/include/CGAL/Lightweight_vector_3.h 2022-06-03 19:05:13.000000000 +0000 +++ cgal-5.5/include/CGAL/Lightweight_vector_3.h 2022-07-13 19:06:07.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Poisson_surface_reconstruction_3/include/CGAL/Lightweight_vector_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Poisson_surface_reconstruction_3/include/CGAL/Lightweight_vector_3.h $ // $Id: Lightweight_vector_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Line_2.h cgal-5.5/include/CGAL/Line_2.h --- cgal-5.4.1/include/CGAL/Line_2.h 2022-06-03 19:04:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Line_2.h 2022-07-13 19:05:23.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Line_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Line_2.h $ // $Id: Line_2.h e7357ac 2021-07-19T14:53:27+02:00 Marc Glisse // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Line_3.h cgal-5.5/include/CGAL/Line_3.h --- cgal-5.4.1/include/CGAL/Line_3.h 2022-06-03 19:04:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Line_3.h 2022-07-13 19:05:23.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Line_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Line_3.h $ // $Id: Line_3.h 8fa0f55 2021-05-27T10:27:38+02:00 Laurent Rineau // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Linear_algebraCd.h cgal-5.5/include/CGAL/Linear_algebraCd.h --- cgal-5.4.1/include/CGAL/Linear_algebraCd.h 2022-06-03 19:04:39.000000000 +0000 +++ cgal-5.5/include/CGAL/Linear_algebraCd.h 2022-07-13 19:05:31.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_d/include/CGAL/Linear_algebraCd.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_d/include/CGAL/Linear_algebraCd.h $ // $Id: Linear_algebraCd.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Linear_algebraHd.h cgal-5.5/include/CGAL/Linear_algebraHd.h --- cgal-5.4.1/include/CGAL/Linear_algebraHd.h 2022-06-03 19:04:39.000000000 +0000 +++ cgal-5.5/include/CGAL/Linear_algebraHd.h 2022-07-13 19:05:31.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_d/include/CGAL/Linear_algebraHd.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_d/include/CGAL/Linear_algebraHd.h $ // $Id: Linear_algebraHd.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Line_arc_2.h cgal-5.5/include/CGAL/Line_arc_2.h --- cgal-5.4.1/include/CGAL/Line_arc_2.h 2022-06-03 19:04:01.000000000 +0000 +++ cgal-5.5/include/CGAL/Line_arc_2.h 2022-07-13 19:04:48.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Circular_kernel_2/include/CGAL/Line_arc_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Circular_kernel_2/include/CGAL/Line_arc_2.h $ // $Id: Line_arc_2.h 059bc60 2020-07-22T15:13:09+02:00 Dmitry Anisimov // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Line_arc_3.h cgal-5.5/include/CGAL/Line_arc_3.h --- cgal-5.4.1/include/CGAL/Line_arc_3.h 2022-06-03 19:04:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Line_arc_3.h 2022-07-13 19:04:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Circular_kernel_3/include/CGAL/Line_arc_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Circular_kernel_3/include/CGAL/Line_arc_3.h $ // $Id: Line_arc_3.h acdf4c6 2020-07-22T15:23:09+02:00 Dmitry Anisimov // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Linear_cell_complex_base.h cgal-5.5/include/CGAL/Linear_cell_complex_base.h --- cgal-5.4.1/include/CGAL/Linear_cell_complex_base.h 2022-06-03 19:04:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Linear_cell_complex_base.h 2022-07-13 19:05:34.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Linear_cell_complex/include/CGAL/Linear_cell_complex_base.h $ -// $Id: Linear_cell_complex_base.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Linear_cell_complex/include/CGAL/Linear_cell_complex_base.h $ +// $Id: Linear_cell_complex_base.h 849b477 2022-02-11T07:38:46+01:00 Guillaume Damiand // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Guillaume Damiand @@ -17,6 +17,7 @@ #include #include #include +#include #include @@ -150,6 +151,9 @@ Linear_cell_complex_base(const Self& alcc) : Base(alcc) {} + Linear_cell_complex_base(Self&& alcc) : Base(alcc) + {} + template class CMap2, @@ -450,12 +454,16 @@ } /// Sew3 the marked facets having same geometry - /// (a facet is considered marked if one of its dart is marked). + /// (a facet is considered marked if ALL its darts are marked). + /// Only marked faces are proceed, but they can be 3-sewn with non + /// marked faces. unsigned int sew3_same_facets(size_type AMark) { unsigned int res = 0; - std::map > one_dart_per_facet; + // We store one dart per face, the face being accessed through its + // minimal and maximal points. + std::map>> one_dart_per_facet; size_type mymark = get_new_mark(); // First we fill the std::map by one dart per facet, and by using @@ -463,59 +471,69 @@ for (typename Dart_range::iterator it(darts().begin()), itend(darts().end()); it!=itend; ++it ) { - if ( !is_marked(it, mymark) && is_marked(it, AMark) ) + if (!is_marked(it, mymark) && !this->template is_opposite_exist<3>(it)) { Point min_point=point(it); - Dart_handle min_dart = it; - mark(it, mymark); - typename Base::template - Dart_of_cell_range<2>::iterator it2(*this,it); + Point max_point=min_point; + Dart_handle min_dart=it; + auto it2=this->template darts_of_cell_basic<2>(it, mymark).begin(); + this->mark(it2, mymark); ++it2; for ( ; it2.cont(); ++it2 ) { - Point cur_point=point(it2); this->mark(it2, mymark); - if ( cur_point < min_point ) + Point& cur_point=point(it2); + if (cur_pointmax_point) + { max_point=cur_point; } } - one_dart_per_facet[min_point].push_back(min_dart); + one_dart_per_facet[min_point][max_point].push_back(min_dart); } else - this->mark(it, mymark); + { this->mark(it, mymark); } } // Second we run through the map: candidates for sew3 have necessary the - // same minimal point. - typename std::map >::iterator - itmap=one_dart_per_facet.begin(), - itmapend=one_dart_per_facet.end(); - - for (; itmap!=itmapend; ++itmap) + // same minimal and maximal points. + for (auto itmap=one_dart_per_facet.begin(), + itmapend=one_dart_per_facet.end(); itmap!=itmapend; ++itmap) { - for (typename std::vector::iterator - it1=(itmap->second).begin(), - it1end=(itmap->second).end(); it1!=it1end; ++it1) + for (auto itmap2=(itmap->second).begin(), + itmap2end=(itmap->second).end(); itmap2!=itmap2end; ++itmap2) { - typename std::vector::iterator it2=it1; - for (++it2; it2!=it1end; ++it2) + for (typename std::vector::iterator + it1=(itmap2->second).begin(), + it1end=(itmap2->second).end(); it1!=it1end; ++it1) { - if (*it1!=*it2 && - !this->template is_opposite_exist<3>(*it1) && - !this->template is_opposite_exist<3>(*it2) && - are_facets_opposite_and_same_geometry - (*it1, this->previous(*it2))) + // We only proceed 3-free marked faces for it1 + if (!this->template is_opposite_exist<3>(*it1) && + is_marked(*it1, AMark)) { - ++res; - this->template sew<3>(*it1, - this->other_orientation(previous(*it2))); + typename std::vector::iterator it2=it1; + { + for (++it2; it2!=it1end; ) + { + CGAL_assertion(*it1!=*it2); + if (!this->template is_opposite_exist<3>(*it2) && + are_facets_opposite_and_same_geometry + (*it1, this->previous(*it2))) + { + ++res; + this->template sew<3>(*it1, + this->other_orientation(previous(*it2))); + it2=it1end; // to leave the "for loop" since it1 is no more 3-free + } + else { ++it2; } + } + } } } } } - CGAL_assertion( this->is_whole_map_marked(mymark) ); this->free_mark(mymark); return res; diff -Nru cgal-5.4.1/include/CGAL/Linear_cell_complex_bgl_min_items.h cgal-5.5/include/CGAL/Linear_cell_complex_bgl_min_items.h --- cgal-5.4.1/include/CGAL/Linear_cell_complex_bgl_min_items.h 2022-06-03 19:04:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Linear_cell_complex_bgl_min_items.h 2022-07-13 19:05:34.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Linear_cell_complex/include/CGAL/Linear_cell_complex_bgl_min_items.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Linear_cell_complex/include/CGAL/Linear_cell_complex_bgl_min_items.h $ // $Id: Linear_cell_complex_bgl_min_items.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Linear_cell_complex_constructors.h cgal-5.5/include/CGAL/Linear_cell_complex_constructors.h --- cgal-5.4.1/include/CGAL/Linear_cell_complex_constructors.h 2022-06-03 19:04:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Linear_cell_complex_constructors.h 2022-07-13 19:05:34.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Linear_cell_complex/include/CGAL/Linear_cell_complex_constructors.h $ -// $Id: Linear_cell_complex_constructors.h 4e519a3 2021-05-05T13:15:37+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Linear_cell_complex/include/CGAL/Linear_cell_complex_constructors.h $ +// $Id: Linear_cell_complex_constructors.h 440a8df 2022-02-03T08:41:04+00:00 Andreas Fabri // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Guillaume Damiand @@ -14,6 +14,7 @@ #include #include +#include #include #include @@ -204,9 +205,7 @@ m_file_header = scanner; // Remember file header after return. Linear_cell_complex_incremental_builder_3 B(alcc); - B.begin_surface(scanner.size_of_vertices(), - scanner.size_of_facets(), - scanner.size_of_halfedges()); + B.begin_surface(); typedef typename LCC::Point Point; @@ -247,7 +246,7 @@ } */ for (std::size_t j=0; j @@ -19,6 +19,7 @@ #include #include #include +#include namespace CGAL { @@ -96,6 +97,9 @@ Linear_cell_complex_for_combinatorial_map(const Self& alcc) : Base(alcc) {} + Linear_cell_complex_for_combinatorial_map(Self&& alcc) : Base(alcc) + {} + template class CMap2, @@ -146,20 +150,32 @@ return *this; } + friend std::ostream& operator<< (std::ostream& os, const Self& amap) + { + save_combinatorial_map(amap, os); + return os; + } + + friend std::ifstream& operator>> (std::ifstream& is, Self& amap) + { + load_combinatorial_map(is, amap); + return is; + } + /** Import the given hds which should be a model of an halfedge graph. */ template void import_from_halfedge_graph(const HEG& heg , const PointConverter& pointconverter, - boost::unordered_map + std::unordered_map ::halfedge_descriptor, Dart_handle>* origin_to_copy=NULL, - boost::unordered_map + std::unordered_map ::halfedge_descriptor>* copy_to_origin=NULL) { - boost::unordered_map + std::unordered_map ::halfedge_descriptor, Dart_handle> local_dartmap; if (origin_to_copy==NULL) // Used local_dartmap if user does not provides its own unordered_map @@ -171,7 +187,7 @@ Point_property_map; Point_property_map ppmap = get(CGAL::vertex_point, heg); - typename boost::unordered_map + typename std::unordered_map ::halfedge_descriptor, Dart_handle>::iterator dartmap_iter, dartmap_iter_end=origin_to_copy->end(); for (dartmap_iter=origin_to_copy->begin(); dartmap_iter!=dartmap_iter_end; @@ -190,10 +206,10 @@ /** Import the given hds which should be a model of an halfedge graph. */ template void import_from_halfedge_graph(const HEG& heg, - boost::unordered_map + std::unordered_map ::halfedge_descriptor, Dart_handle>* origin_to_copy=NULL, - boost::unordered_map + std::unordered_map ::halfedge_descriptor>* copy_to_origin=NULL) diff -Nru cgal-5.4.1/include/CGAL/Linear_cell_complex_for_generalized_map.h cgal-5.5/include/CGAL/Linear_cell_complex_for_generalized_map.h --- cgal-5.4.1/include/CGAL/Linear_cell_complex_for_generalized_map.h 2022-06-03 19:04:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Linear_cell_complex_for_generalized_map.h 2022-07-13 19:05:34.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Linear_cell_complex/include/CGAL/Linear_cell_complex_for_generalized_map.h $ -// $Id: Linear_cell_complex_for_generalized_map.h 0308d1a 2020-03-27T18:35:15+01:00 Guillaume Damiand +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Linear_cell_complex/include/CGAL/Linear_cell_complex_for_generalized_map.h $ +// $Id: Linear_cell_complex_for_generalized_map.h 54142fd 2022-01-27T15:16:16+01:00 Guillaume Damiand // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Guillaume Damiand @@ -95,6 +95,9 @@ Linear_cell_complex_for_generalized_map(const Self & alcc) : Base(alcc) {} + Linear_cell_complex_for_generalized_map(Self && alcc) : Base(alcc) + {} + template class CMap2, @@ -145,6 +148,18 @@ Base::operator=(alcc); return *this; } + + friend std::ostream& operator<< (std::ostream& os, const Self& amap) + { + save_generalized_map(amap, os); + return os; + } + + friend std::ifstream& operator>> (std::ifstream& is, Self& amap) + { + load_generalized_map(is, amap); + return is; + } }; } // namespace CGAL diff -Nru cgal-5.4.1/include/CGAL/Linear_cell_complex_fwd.h cgal-5.5/include/CGAL/Linear_cell_complex_fwd.h --- cgal-5.4.1/include/CGAL/Linear_cell_complex_fwd.h 2022-06-03 19:04:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Linear_cell_complex_fwd.h 2022-07-13 19:05:34.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Linear_cell_complex/include/CGAL/Linear_cell_complex_fwd.h $ -// $Id: Linear_cell_complex_fwd.h d6306be 2020-10-22T10:30:38+02:00 Guillaume Damiand +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Linear_cell_complex/include/CGAL/Linear_cell_complex_fwd.h $ +// $Id: Linear_cell_complex_fwd.h 46f5325 2022-01-27T10:36:22+01:00 Guillaume Damiand // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Guillaume Damiand @@ -33,12 +33,7 @@ class Kernel=typename LCC_default_kernel::type > struct Linear_cell_complex_traits; -#if defined(CGAL_CMAP_DART_DEPRECATED) && !defined(CGAL_NO_DEPRECATED_CODE) - template - struct CGAL_DEPRECATED Linear_cell_complex_min_items; -#else - struct Linear_cell_complex_min_items; -#endif +struct Linear_cell_complex_min_items; template < unsigned int d_, unsigned int ambient_dim, class Traits_, @@ -52,46 +47,25 @@ template < unsigned int d_, unsigned int ambient_dim = d_, class Traits_ = Linear_cell_complex_traits, -#if defined(CGAL_CMAP_DART_DEPRECATED) && !defined(CGAL_NO_DEPRECATED_CODE) - class Items_ = Linear_cell_complex_min_items, -#else class Items_ = Linear_cell_complex_min_items, -#endif class Alloc_ = CGAL_ALLOCATOR(int), template class CMap = Combinatorial_map_base, class Storage_ = CMap_linear_cell_complex_storage_1 > - class Linear_cell_complex_for_combinatorial_map; +class Linear_cell_complex_for_combinatorial_map; - template < unsigned int d_, unsigned int ambient_dim = d_, - class Traits_ = Linear_cell_complex_traits, - class Items_ = Linear_cell_complex_min_items, - class Alloc_ = CGAL_ALLOCATOR(int), - template - class CMap = Generalized_map_base, - class Storage_ = GMap_linear_cell_complex_storage_1 > - class Linear_cell_complex_for_generalized_map; - -#if !defined(CGAL_NO_DEPRECATED_CODE) - template < unsigned int d_, unsigned int ambient_dim = d_, - class Traits_ = Linear_cell_complex_traits, -#if defined(CGAL_CMAP_DART_DEPRECATED) - class Items_ = Linear_cell_complex_min_items, -#else - class Items_ = Linear_cell_complex_min_items, -#endif - class Alloc_ = CGAL_ALLOCATOR(int), - template - class CMap = Combinatorial_map_base, - class Storage_ = CMap_linear_cell_complex_storage_1 > - class Linear_cell_complex; -#endif +template < unsigned int d_, unsigned int ambient_dim = d_, + class Traits_ = Linear_cell_complex_traits, + class Items_ = Linear_cell_complex_min_items, + class Alloc_ = CGAL_ALLOCATOR(int), + template + class CMap = Generalized_map_base, + class Storage_ = GMap_linear_cell_complex_storage_1 > +class Linear_cell_complex_for_generalized_map; } // CGAL diff -Nru cgal-5.4.1/include/CGAL/Linear_cell_complex.h cgal-5.5/include/CGAL/Linear_cell_complex.h --- cgal-5.4.1/include/CGAL/Linear_cell_complex.h 2022-06-03 19:04:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Linear_cell_complex.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,43 +0,0 @@ -// Copyright (c) 2011 CNRS and LIRIS' Establishments (France). -// All rights reserved. -// -// This file is part of CGAL (www.cgal.org) -// -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Linear_cell_complex/include/CGAL/Linear_cell_complex.h $ -// $Id: Linear_cell_complex.h 0308d1a 2020-03-27T18:35:15+01:00 Guillaume Damiand -// SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial -// -// Author(s) : Guillaume Damiand -// -#ifndef CGAL_LINEAR_CELL_COMPLEX_H -#define CGAL_LINEAR_CELL_COMPLEX_H 1 - -#include -#include -#include -#include -#include -#include - -namespace CGAL { - - /** @file Linear_cell_complex.h - * Definition of a linear cell complex, i.e. a combinatorial map with points - * associated to all vertices. Deprecated class. - */ - -#if !defined(CGAL_NO_DEPRECATED_CODE) - template < unsigned int d_, unsigned int ambient_dim, - class Traits_, class Items_, class Alloc_, - template class CMap, - class Storage_ > - class CGAL_DEPRECATED Linear_cell_complex: - public Linear_cell_complex_for_combinatorial_map - {}; -#endif - -} // namespace CGAL - -#endif // CGAL_LINEAR_CELL_COMPLEX_H // -// EOF // diff -Nru cgal-5.4.1/include/CGAL/Linear_cell_complex_incremental_builder.h cgal-5.5/include/CGAL/Linear_cell_complex_incremental_builder.h --- cgal-5.4.1/include/CGAL/Linear_cell_complex_incremental_builder.h 2022-06-03 19:04:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Linear_cell_complex_incremental_builder.h 2022-07-13 19:05:34.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Linear_cell_complex/include/CGAL/Linear_cell_complex_incremental_builder.h $ -// $Id: Linear_cell_complex_incremental_builder.h 504e4cf 2021-03-20T19:34:55-04:00 Doug Roeper +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Linear_cell_complex/include/CGAL/Linear_cell_complex_incremental_builder.h $ +// $Id: Linear_cell_complex_incremental_builder.h 440a8df 2022-02-03T08:41:04+00:00 Andreas Fabri // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Guillaume Damiand @@ -14,9 +14,13 @@ #include #include +#include +#include #include +#include namespace CGAL { +/////////////////////////////////////////////////////////////////////////////// template struct Add_vertex_to_face @@ -67,143 +71,336 @@ typename LCC::Dart_handle prev_dart) { // here we need to create a last dart and 0-link it - assert(prev_dart!=lcc.null_handle); + CGAL_assertion(prev_dart!=lcc.null_handle); lcc.template link_alpha<0>(prev_dart, lcc.create_dart(vh)); } }; - - // Incremental builder - template < class LCC_ > - class Linear_cell_complex_incremental_builder_3 - { - public: - typedef LCC_ LCC; - typedef typename LCC::Dart_handle Dart_handle; - typedef typename LCC::Vertex_attribute_handle Vertex_attribute_handle; - typedef typename LCC::Point Point_3; - typedef typename LCC::size_type size_type; - - Linear_cell_complex_incremental_builder_3(LCC & alcc) : - lcc(alcc) - {} - - Vertex_attribute_handle add_vertex(const Point_3& p) +/////////////////////////////////////////////////////////////////////////////// +template +struct Find_opposite_2_no_control // No difference for CMap and GMap +{ + typedef typename LCC::Dart_handle DH; + typedef typename LCC::Vertex_attribute_handle VAH; + static DH run(LCC&, + std::unordered_map>& + vertex_to_dart_map_in_surface, + VAH vah1, VAH vah2) + { + // We are searching edge vah2->vah1 (the opposite of edge vah1->vah2) + auto it2=vertex_to_dart_map_in_surface.find(vah2); + if (it2!=vertex_to_dart_map_in_surface.end()) { - Vertex_attribute_handle res = lcc.create_vertex_attribute(p); - vertex_map.push_back(res); - vertex_to_dart_map.push_back(std::vector()); - ++new_vertices; - return res; + auto it1=it2->second.find(vah1); + if (it1!=it2->second.end()) + { return it1->second; } + } + return nullptr; + } +}; +/////////////////////////////////////////////////////////////////////////////// +template +struct Find_opposite_2_with_control +{ + typedef typename LCC::Dart_handle DH; + typedef typename LCC::Vertex_attribute_handle VAH; + static DH run(LCC&, + std::unordered_map>&, + VAH, VAH) + { return nullptr; } +}; +template +struct Find_opposite_2_with_control +{ + typedef typename LCC::Dart_handle DH; + typedef typename LCC::Vertex_attribute_handle VAH; + static DH run(LCC& lcc, + std::unordered_map>& + vertex_to_dart_map_in_surface, + VAH vah1, VAH vah2) + { + DH res=Find_opposite_2_no_control::run(lcc, + vertex_to_dart_map_in_surface, + vah1, vah2); + if (res!=nullptr) + { + if (!lcc.template is_free<2>(res)) + { // Here a dart vah1->vah2 already exists, and it was already 2-sewn. + std::cerr<<"ERROR in My_linear_cell_complex_incremental_builder_3: try to use a same oriented edge twice."<::run(lcc, + vertex_to_dart_map_in_surface, + vah2, vah1)!=nullptr) + { // Here a dart vah1->vah2 already exists (but it was not already 2-sewn). + std::cerr<<"ERROR in My_linear_cell_complex_incremental_builder_3: try to use a same oriented edge twice."< +struct Find_opposite_2_with_control +{ + typedef typename LCC::Dart_handle DH; + typedef typename LCC::Vertex_attribute_handle VAH; + static DH run(LCC& lcc, + std::unordered_map>& + vertex_to_dart_map_in_surface, + VAH vah1, VAH vah2) + { + DH res=Find_opposite_2_no_control::run(lcc, + vertex_to_dart_map_in_surface, + vah1, vah2); + if (res!=nullptr) { - first_dart = lcc.null_handle; - prev_dart = lcc.null_handle; - // std::cout<<"Begin facet: "<(res)) + { // Here a dart vah1->vah2 already exists, and it was already 2-sewn. + std::cerr<<"ERROR in My_linear_cell_complex_incremental_builder_3: try to use a same oriented edge twice."< +struct Add_edge_in_associative_array +{ + typedef typename LCC::Dart_handle DH; + typedef typename LCC::Vertex_attribute_handle VAH; + static void run(LCC&, DH, + std::unordered_map>&) + {} +}; +template +struct Add_edge_in_associative_array +{ + typedef typename LCC::Dart_handle DH; + typedef typename LCC::Vertex_attribute_handle VAH; + static void run(LCC& lcc, DH dh, + std::unordered_map>& + vertex_to_dart_map_in_surface) + { + vertex_to_dart_map_in_surface[lcc.vertex_attribute(dh)].insert + (std::make_pair(lcc.vertex_attribute(lcc.next(dh)), dh)); + } +}; +template +struct Add_edge_in_associative_array +{ + typedef typename LCC::Dart_handle DH; + typedef typename LCC::Vertex_attribute_handle VAH; + static void run(LCC& lcc, DH dh, + std::unordered_map>& + vertex_to_dart_map_in_surface) + { + vertex_to_dart_map_in_surface[lcc.vertex_attribute(dh)].insert + (std::make_pair(lcc.vertex_attribute(lcc.template alpha<0>(dh)), dh)); - void add_vertex_to_facet(size_type i) + vertex_to_dart_map_in_surface + [lcc.vertex_attribute(lcc.template alpha<0>(dh))].insert + (std::make_pair(lcc.vertex_attribute(dh), lcc.template alpha<0>(dh))); + } +}; +/////////////////////////////////////////////////////////////////////////////// +template +struct Sew3_for_LCC_incremental_builder +{ + static void run(LCC_& lcc, + typename LCC_::Dart_handle dh1, typename LCC_::Dart_handle dh2) + { + if(dh1!=nullptr) { - CGAL_assertion( i:: - run(lcc, vertex_map[i], prev_dart); - - if ( prev_dart!=lcc.null_handle ) + if(!lcc.template is_free<3>(dh1)) { - Dart_handle opposite= - find_dart_between(i,lcc.vertex_attribute(prev_dart)); - if ( opposite!=lcc.null_handle ) - { - CGAL_assertion( lcc.template is_free<2>(opposite) ); - lcc.template set_opposite<2>(prev_dart, opposite); - } - - add_dart_in_vertex_to_dart_map(prev_dart, prev_vertex); + std::cerr<<"ERROR in My_linear_cell_complex_incremental_builder_3: " + <<"it exists more than 2 faces with same indices."<(lcc.other_orientation(dh1), dh2); } } + } +}; +template +struct Sew3_for_LCC_incremental_builder +{ + static void run(LCC_&, typename LCC_::Dart_handle, typename LCC_::Dart_handle) + {} +}; +/////////////////////////////////////////////////////////////////////////////// +// Incremental builder +template < class LCC_ > +class Linear_cell_complex_incremental_builder_3 +{ +public: + typedef LCC_ LCC; + typedef typename LCC::Dart_handle DH; + typedef typename LCC::Vertex_attribute_handle VAH; + typedef typename LCC::Point Point_3; + typedef typename LCC::size_type size_type; + + Linear_cell_complex_incremental_builder_3(LCC & alcc) : + lcc(alcc) + {} - // End of the facet. Return the first dart of this facet. - Dart_handle end_facet() - { - CGAL_assertion( first_dart!=lcc.null_handle && prev_dart!=lcc.null_handle ); - - Add_vertex_to_face::run_for_last(lcc, vertex_map[first_vertex], - prev_dart); - - lcc.set_next(prev_dart, first_dart); + VAH add_vertex(const Point_3& p) + { + VAH res=lcc.create_vertex_attribute(p); + vertex_map.push_back(res); + return res; + } + + void begin_facet() + { // std::cout<<"Begin facet: "<::run(lcc, vertex_map[i], prev_dart); + if ( prev_dart!=lcc.null_handle ) + { + DH opposite=Find_opposite_2_with_control:: + run(lcc, + vertex_to_dart_map_in_surface, + lcc.vertex_attribute(prev_dart), + lcc.vertex_attribute(cur_dart)); if ( opposite!=lcc.null_handle ) { CGAL_assertion( lcc.template is_free<2>(opposite) ); lcc.template set_opposite<2>(prev_dart, opposite); } - add_dart_in_vertex_to_dart_map(prev_dart, prev_vertex); + Add_edge_in_associative_array::run(lcc, prev_dart, + vertex_to_dart_map_in_surface); - return first_dart; + if (imax_vertex) { max_vertex=i; } } + else + { first_dart=cur_dart; min_vertex=max_vertex=i; min_dart=cur_dart; } + + prev_dart=cur_dart; + } + + // End of the facet. Return the first dart of this facet. + DH end_facet() + { + CGAL_assertion( first_dart!=lcc.null_handle && prev_dart!=lcc.null_handle ); - void begin_surface( std::size_t v, std::size_t /*f*/, std::size_t /*h*/) + Add_vertex_to_face::run_for_last(lcc, + lcc.vertex_attribute(first_dart), + prev_dart); + + lcc.set_next(prev_dart, first_dart); + + DH opposite=Find_opposite_2_with_control:: + run(lcc, + vertex_to_dart_map_in_surface, + lcc.vertex_attribute(prev_dart), + lcc.vertex_attribute(first_dart)); + if ( opposite!=lcc.null_handle ) { - new_vertices = 0; - first_dart = lcc.null_handle; - prev_dart = lcc.null_handle; - vertex_map.clear(); - vertex_to_dart_map.clear(); - vertex_map.reserve(v); - vertex_to_dart_map.reserve(v); - // lcc.reserve(v,h); + CGAL_assertion( lcc.template is_free<2>(opposite) ); + lcc.template set_opposite<2>(prev_dart, opposite); } + Add_edge_in_associative_array::run(lcc, prev_dart, + vertex_to_dart_map_in_surface); + + if(LCC::dimension>2) + { + opposite=opposite_face(); + Sew3_for_LCC_incremental_builder::run(lcc, opposite, min_dart); + add_face_in_array(); + } + return first_dart; + } + + DH add_facet(std::initializer_list l) + { + begin_facet(); + for (std::size_t i:l) + { add_vertex_to_facet(i); } + return end_facet(); + } + + void begin_surface() + { + vertex_to_dart_map_in_surface.clear(); + } + // End of the surface. Return one dart of the created surface. - Dart_handle end_surface() + DH end_surface() { return first_dart; } protected: - - Dart_handle find_dart_between(size_type i, Vertex_attribute_handle vh) + /** test if the two given facets have the same vertex handle but with + * opposite orientations. For closed facets. + * @return true iff the two facets have the same vertex handle with opposite + * orientation. + */ + bool are_facets_opposite_and_same_vertex_handles(DH d1, DH d2) const + { + DH s1=d1; + DH s2=d2; + do { - typename std::vector::reverse_iterator - it(vertex_to_dart_map[i].rbegin()); - typename std::vector::reverse_iterator - itend(vertex_to_dart_map[i].rend()); + CGAL_assertion(lcc.is_next_exist(d1) && lcc.is_previous_exist(d2)); + CGAL_assertion(lcc.other_extremity(d2)!=lcc.null_handle); - for ( ; it!=itend; ++it ) - { - if ( lcc.vertex_attribute(lcc.next(*it))==vh ) return (*it); - } - return lcc.null_handle; + if (lcc.vertex_attribute(d1)!=lcc.vertex_attribute(d2)) + { return false; } + d1=lcc.next(d1); + d2=lcc.previous(d2); } + while(d1!=s1); + + if (d2!=s2) { return false; } + return true; + } - void add_dart_in_vertex_to_dart_map( Dart_handle adart, size_type i ) + DH opposite_face() + { + auto it1=faces.find(min_vertex); + if(it1==faces.end()) { return nullptr; } + auto it2=it1->second.find(max_vertex); + if(it2==it1->second.end()) { return nullptr; } + for(auto it3=it2->second.begin(), it3end=it2->second.end(); it3!=it3end; ++it3) { - CGAL_assertion( adart!=lcc.null_handle ); - vertex_to_dart_map[i].push_back(adart); + if (are_facets_opposite_and_same_vertex_handles(*it3, min_dart)) + { return lcc.previous(*it3); } } + return nullptr; + } - private: - std::vector vertex_map; - std::vector > vertex_to_dart_map; + void add_face_in_array() + { + faces[min_vertex][max_vertex].push_back(min_dart); + } - LCC& lcc; - Dart_handle first_dart; - Dart_handle prev_dart; - size_type first_vertex; - size_type prev_vertex; - size_type new_vertices; - }; +private: + LCC& lcc; + std::vector vertex_map; // Map each index to the corresponding vertex handle + + // A map to associate to each edge of a surface its dart. The edge is given + // by its two vertex handles (source-target). + std::unordered_map> vertex_to_dart_map_in_surface; + std::unordered_map>> faces; + + DH first_dart; /// First dart of the current face + DH prev_dart; /// Prev dart of the current face + DH min_dart; /// dart with the min vertex of the current facet. + std::size_t min_vertex, max_vertex; /// min and max indices of vertices of the current face +}; } //namespace CGAL diff -Nru cgal-5.4.1/include/CGAL/Linear_cell_complex_min_items.h cgal-5.5/include/CGAL/Linear_cell_complex_min_items.h --- cgal-5.4.1/include/CGAL/Linear_cell_complex_min_items.h 2022-06-03 19:04:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Linear_cell_complex_min_items.h 2022-07-13 19:05:34.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Linear_cell_complex/include/CGAL/Linear_cell_complex_min_items.h $ -// $Id: Linear_cell_complex_min_items.h 0308d1a 2020-03-27T18:35:15+01:00 Guillaume Damiand +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Linear_cell_complex/include/CGAL/Linear_cell_complex_min_items.h $ +// $Id: Linear_cell_complex_min_items.h 46f5325 2022-01-27T10:36:22+01:00 Guillaume Damiand // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Guillaume Damiand @@ -12,10 +12,6 @@ #ifndef CGAL_LINEAR_CELL_COMPLEX_MIN_ITEMS_H #define CGAL_LINEAR_CELL_COMPLEX_MIN_ITEMS_H 1 -#if defined(CGAL_CMAP_DART_DEPRECATED) && !defined(CGAL_NO_DEPRECATED_CODE) -#include -#endif - #include #include #include @@ -31,21 +27,6 @@ * for a linear cell complex. It provides definitions for attributes * associated to vertices (containing points), and information associated with darts. */ -#if defined(CGAL_CMAP_DART_DEPRECATED) && !defined(CGAL_NO_DEPRECATED_CODE) - template - struct CGAL_DEPRECATED Linear_cell_complex_min_items - { - /// Dart_wrapper defines the type of darts used. - template - struct Dart_wrapper - { - typedef CGAL::Dart Dart; - - typedef CGAL::Cell_attribute_with_point Vertex_attrib; - typedef std::tuple Attributes; - }; - }; -#else struct Linear_cell_complex_min_items { /// Dart_wrapper defines the type of darts used. @@ -56,7 +37,6 @@ typedef std::tuple Attributes; }; }; -#endif } // namespace CGAL diff -Nru cgal-5.4.1/include/CGAL/Linear_cell_complex_operations.h cgal-5.5/include/CGAL/Linear_cell_complex_operations.h --- cgal-5.4.1/include/CGAL/Linear_cell_complex_operations.h 2022-06-03 19:04:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Linear_cell_complex_operations.h 2022-07-13 19:05:34.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Linear_cell_complex/include/CGAL/Linear_cell_complex_operations.h $ -// $Id: Linear_cell_complex_operations.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Linear_cell_complex/include/CGAL/Linear_cell_complex_operations.h $ +// $Id: Linear_cell_complex_operations.h 440a8df 2022-02-03T08:41:04+00:00 Andreas Fabri // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Guillaume Damiand @@ -15,6 +15,7 @@ #include #include #include +#include namespace CGAL { @@ -82,7 +83,7 @@ } while(adart!=start); - assert(nb>0); + CGAL_assertion(nb>0); return (typename LCC::Traits::Construct_scaled_vector()(normal, 1.0/nb)); // return normal / std::sqrt(normal * normal); } @@ -201,7 +202,7 @@ } while(adart!=start); - assert(nb>1); + CGAL_assertion(nb>1); return typename LCC::Traits::Construct_translated_point() (CGAL::ORIGIN, typename LCC::Traits::Construct_scaled_vector() (vec, 1.0/nb)); diff -Nru cgal-5.4.1/include/CGAL/Linear_cell_complex_traits.h cgal-5.5/include/CGAL/Linear_cell_complex_traits.h --- cgal-5.4.1/include/CGAL/Linear_cell_complex_traits.h 2022-06-03 19:04:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Linear_cell_complex_traits.h 2022-07-13 19:05:34.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Linear_cell_complex/include/CGAL/Linear_cell_complex_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Linear_cell_complex/include/CGAL/Linear_cell_complex_traits.h $ // $Id: Linear_cell_complex_traits.h 0308d1a 2020-03-27T18:35:15+01:00 Guillaume Damiand // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/linear_least_squares_fitting_2.h cgal-5.5/include/CGAL/linear_least_squares_fitting_2.h --- cgal-5.4.1/include/CGAL/linear_least_squares_fitting_2.h 2022-06-03 19:05:27.000000000 +0000 +++ cgal-5.5/include/CGAL/linear_least_squares_fitting_2.h 2022-07-13 19:06:22.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Principal_component_analysis/include/CGAL/linear_least_squares_fitting_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Principal_component_analysis/include/CGAL/linear_least_squares_fitting_2.h $ // $Id: linear_least_squares_fitting_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/linear_least_squares_fitting_3.h cgal-5.5/include/CGAL/linear_least_squares_fitting_3.h --- cgal-5.4.1/include/CGAL/linear_least_squares_fitting_3.h 2022-06-03 19:05:28.000000000 +0000 +++ cgal-5.5/include/CGAL/linear_least_squares_fitting_3.h 2022-07-13 19:06:22.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Principal_component_analysis/include/CGAL/linear_least_squares_fitting_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Principal_component_analysis/include/CGAL/linear_least_squares_fitting_3.h $ // $Id: linear_least_squares_fitting_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/linear_least_squares_fitting_circles_2.h cgal-5.5/include/CGAL/linear_least_squares_fitting_circles_2.h --- cgal-5.4.1/include/CGAL/linear_least_squares_fitting_circles_2.h 2022-06-03 19:05:28.000000000 +0000 +++ cgal-5.5/include/CGAL/linear_least_squares_fitting_circles_2.h 2022-07-13 19:06:22.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Principal_component_analysis/include/CGAL/linear_least_squares_fitting_circles_2.h $ -// $Id: linear_least_squares_fitting_circles_2.h fe3da4c 2021-04-14T09:45:06+02:00 Simon Giraudot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Principal_component_analysis/include/CGAL/linear_least_squares_fitting_circles_2.h $ +// $Id: linear_least_squares_fitting_circles_2.h e07672a 2022-01-26T21:04:59+05:30 G Yuvan Shankar // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Pierre Alliez and Sylvain Pion and Ankit Gupta @@ -88,7 +88,7 @@ 0.0, radius}; Matrix transformation = init_matrix(2,delta); FT area = t.squared_radius(); - CGAL_assertion(area != 0.0); + CGAL_assertion(!CGAL::is_zero(area)); // Find the 2nd order moment for the circle wrt to the origin by an affine transformation. @@ -100,9 +100,9 @@ FT y0 = t.center().y(); // and add to covariance matrix - covariance[0] += transformation[0][0] + area * x0*x0; + covariance[0] += transformation[0][0] + area * CGAL::square(x0); covariance[1] += transformation[0][1] + area * x0*y0; - covariance[2] += transformation[1][1] + area * y0*y0; + covariance[2] += transformation[1][1] + area * CGAL::square(y0); mass += area; } @@ -111,9 +111,9 @@ // Translate the 2nd order moment calculated about the origin to // the center of mass to get the covariance. - covariance[0] += -mass * (c.x() * c.x()); - covariance[1] += -mass * (c.x() * c.y()); - covariance[2] += -mass * (c.y() * c.y()); + covariance[0] -= mass * (CGAL::square(c.x())); + covariance[1] -= mass * (c.x() * c.y()); + covariance[2] -= mass * (CGAL::square(c.y())); // solve for eigenvalues and eigenvectors. // eigen values are sorted in ascending order, @@ -194,7 +194,7 @@ 0.0, radius}; Matrix transformation = init_matrix(2,delta); FT length = 2 * radius; - CGAL_assertion(length != 0.0); + CGAL_assertion(!CGAL::is_zero(length)); // Find the 2nd order moment for the circle wrt to the origin by an affine transformation. @@ -206,9 +206,9 @@ FT y0 = t.center().y(); // and add to covariance matrix - covariance[0] += transformation[0][0] + length * x0*x0; + covariance[0] += transformation[0][0] + length * CGAL::square(x0); covariance[1] += transformation[0][1] + length * x0*y0; - covariance[2] += transformation[1][1] + length * y0*y0; + covariance[2] += transformation[1][1] + length * CGAL::square(y0); mass += length; } @@ -217,9 +217,9 @@ // Translate the 2nd order moment calculated about the origin to // the center of mass to get the covariance. - covariance[0] += -mass * (c.x() * c.x()); - covariance[1] += -mass * (c.x() * c.y()); - covariance[2] += -mass * (c.y() * c.y()); + covariance[0] -= mass * (CGAL::square(c.x())); + covariance[1] -= mass * (c.x() * c.y()); + covariance[2] -= mass * (CGAL::square(c.y())); // solve for eigenvalues and eigenvectors. // eigen values are sorted in ascending order, diff -Nru cgal-5.4.1/include/CGAL/linear_least_squares_fitting_cuboids_3.h cgal-5.5/include/CGAL/linear_least_squares_fitting_cuboids_3.h --- cgal-5.4.1/include/CGAL/linear_least_squares_fitting_cuboids_3.h 2022-06-03 19:05:28.000000000 +0000 +++ cgal-5.5/include/CGAL/linear_least_squares_fitting_cuboids_3.h 2022-07-13 19:06:22.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Principal_component_analysis/include/CGAL/linear_least_squares_fitting_cuboids_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Principal_component_analysis/include/CGAL/linear_least_squares_fitting_cuboids_3.h $ // $Id: linear_least_squares_fitting_cuboids_3.h 3efe2ec 2021-03-31T09:40:19+02:00 Simon Giraudot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/linear_least_squares_fitting_points_2.h cgal-5.5/include/CGAL/linear_least_squares_fitting_points_2.h --- cgal-5.4.1/include/CGAL/linear_least_squares_fitting_points_2.h 2022-06-03 19:05:28.000000000 +0000 +++ cgal-5.5/include/CGAL/linear_least_squares_fitting_points_2.h 2022-07-13 19:06:22.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Principal_component_analysis/include/CGAL/linear_least_squares_fitting_points_2.h $ -// $Id: linear_least_squares_fitting_points_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Principal_component_analysis/include/CGAL/linear_least_squares_fitting_points_2.h $ +// $Id: linear_least_squares_fitting_points_2.h e07672a 2022-01-26T21:04:59+05:30 G Yuvan Shankar // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Pierre Alliez and Sylvain Pion and Ankit Gupta @@ -69,9 +69,9 @@ { const Point& p = *it; Vector d = p - c; // centered data point - covariance[0] += d.x() * d.x(); + covariance[0] += CGAL::square(d.x()); covariance[1] += d.x() * d.y(); - covariance[2] += d.y() * d.y(); + covariance[2] += CGAL::square(d.y()); } // solve for eigenvalues and eigenvectors. diff -Nru cgal-5.4.1/include/CGAL/linear_least_squares_fitting_points_3.h cgal-5.5/include/CGAL/linear_least_squares_fitting_points_3.h --- cgal-5.4.1/include/CGAL/linear_least_squares_fitting_points_3.h 2022-06-03 19:05:28.000000000 +0000 +++ cgal-5.5/include/CGAL/linear_least_squares_fitting_points_3.h 2022-07-13 19:06:22.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Principal_component_analysis/include/CGAL/linear_least_squares_fitting_points_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Principal_component_analysis/include/CGAL/linear_least_squares_fitting_points_3.h $ // $Id: linear_least_squares_fitting_points_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/linear_least_squares_fitting_rectangles_2.h cgal-5.5/include/CGAL/linear_least_squares_fitting_rectangles_2.h --- cgal-5.4.1/include/CGAL/linear_least_squares_fitting_rectangles_2.h 2022-06-03 19:05:28.000000000 +0000 +++ cgal-5.5/include/CGAL/linear_least_squares_fitting_rectangles_2.h 2022-07-13 19:06:22.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Principal_component_analysis/include/CGAL/linear_least_squares_fitting_rectangles_2.h $ -// $Id: linear_least_squares_fitting_rectangles_2.h fe3da4c 2021-04-14T09:45:06+02:00 Simon Giraudot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Principal_component_analysis/include/CGAL/linear_least_squares_fitting_rectangles_2.h $ +// $Id: linear_least_squares_fitting_rectangles_2.h e07672a 2022-01-26T21:04:59+05:30 G Yuvan Shankar // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Pierre Alliez and Sylvain Pion and Ankit Gupta @@ -93,7 +93,7 @@ Matrix transformation = init_matrix(2,delta); FT area = (x1-x0)*(y2-y0); - CGAL_assertion(area != 0.0); + CGAL_assertion(!CGAL::is_zero(area)); // Find the 2nd order moment for the rectangle wrt to the origin by an affine transformation. @@ -104,20 +104,20 @@ FT xav0 = (x1-x0)/FT(2); FT yav0 = (y2-y0)/FT(2); // and add to covariance matrix - covariance[0] += transformation[0][0] + area * (x0*xav0*2 + x0*x0); + covariance[0] += transformation[0][0] + area * (x0*xav0*2 + CGAL::square(x0)); covariance[1] += transformation[0][1] + area * (x0*yav0 + xav0*y0 + x0*y0); - covariance[2] += transformation[1][1] + area * (y0*yav0*2 + y0*y0); + covariance[2] += transformation[1][1] + area * (y0*yav0*2 + CGAL::square(y0)); mass += area; } - CGAL_assertion_msg (mass != FT(0), "Can't compute PCA of null measure."); + CGAL_assertion_msg (!CGAL::is_zero(mass), "Can't compute PCA of null measure."); // Translate the 2nd order moment calculated about the origin to // the center of mass to get the covariance. - covariance[0] += -mass * (c.x() * c.x()); - covariance[1] += -mass * (c.x() * c.y()); - covariance[2] += -mass * (c.y() * c.y()); + covariance[0] -= mass * (CGAL::square(c.x())); + covariance[1] -= mass * (c.x() * c.y()); + covariance[2] -= mass * (CGAL::square(c.y())); // solve for eigenvalues and eigenvectors. // eigen values are sorted in ascending order, diff -Nru cgal-5.4.1/include/CGAL/linear_least_squares_fitting_segments_2.h cgal-5.5/include/CGAL/linear_least_squares_fitting_segments_2.h --- cgal-5.4.1/include/CGAL/linear_least_squares_fitting_segments_2.h 2022-06-03 19:05:28.000000000 +0000 +++ cgal-5.5/include/CGAL/linear_least_squares_fitting_segments_2.h 2022-07-13 19:06:22.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Principal_component_analysis/include/CGAL/linear_least_squares_fitting_segments_2.h $ -// $Id: linear_least_squares_fitting_segments_2.h 7d716c0 2021-04-06T08:38:56+02:00 Simon Giraudot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Principal_component_analysis/include/CGAL/linear_least_squares_fitting_segments_2.h $ +// $Id: linear_least_squares_fitting_segments_2.h 4e7edc7 2022-01-27T11:03:42+01:00 Sebastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Pierre Alliez and Sylvain Pion and Ankit Gupta @@ -85,7 +85,7 @@ Matrix transformation = init_matrix(2,delta); using std::sqrt; FT length = CGAL::approximate_sqrt(t.squared_length()); - CGAL_assertion(length != 0.0); + CGAL_assertion(!CGAL::is_zero(length)); // Find the 2nd order moment for the segment wrt to the origin by an affine transformation. @@ -104,9 +104,9 @@ // Translate the 2nd order moment calculated about the origin to // the center of mass to get the covariance. - covariance[0] += -mass * ( c.x() * c.x()); - covariance[1] += -mass * (c.x() * c.y()); - covariance[2] += -mass * (c.y() * c.y()); + covariance[0] -= mass * CGAL::square(c.x()); + covariance[1] -= mass * (c.x() * c.y()); + covariance[2] -= mass * (CGAL::square(c.y())); // solve for eigenvalues and eigenvectors. // eigen values are sorted in ascending order, diff -Nru cgal-5.4.1/include/CGAL/linear_least_squares_fitting_segments_3.h cgal-5.5/include/CGAL/linear_least_squares_fitting_segments_3.h --- cgal-5.4.1/include/CGAL/linear_least_squares_fitting_segments_3.h 2022-06-03 19:05:28.000000000 +0000 +++ cgal-5.5/include/CGAL/linear_least_squares_fitting_segments_3.h 2022-07-13 19:06:23.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Principal_component_analysis/include/CGAL/linear_least_squares_fitting_segments_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Principal_component_analysis/include/CGAL/linear_least_squares_fitting_segments_3.h $ // $Id: linear_least_squares_fitting_segments_3.h 3efe2ec 2021-03-31T09:40:19+02:00 Simon Giraudot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/linear_least_squares_fitting_spheres_3.h cgal-5.5/include/CGAL/linear_least_squares_fitting_spheres_3.h --- cgal-5.4.1/include/CGAL/linear_least_squares_fitting_spheres_3.h 2022-06-03 19:05:28.000000000 +0000 +++ cgal-5.5/include/CGAL/linear_least_squares_fitting_spheres_3.h 2022-07-13 19:06:23.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Principal_component_analysis/include/CGAL/linear_least_squares_fitting_spheres_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Principal_component_analysis/include/CGAL/linear_least_squares_fitting_spheres_3.h $ // $Id: linear_least_squares_fitting_spheres_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/linear_least_squares_fitting_tetrahedra_3.h cgal-5.5/include/CGAL/linear_least_squares_fitting_tetrahedra_3.h --- cgal-5.4.1/include/CGAL/linear_least_squares_fitting_tetrahedra_3.h 2022-06-03 19:05:28.000000000 +0000 +++ cgal-5.5/include/CGAL/linear_least_squares_fitting_tetrahedra_3.h 2022-07-13 19:06:23.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Principal_component_analysis/include/CGAL/linear_least_squares_fitting_tetrahedra_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Principal_component_analysis/include/CGAL/linear_least_squares_fitting_tetrahedra_3.h $ // $Id: linear_least_squares_fitting_tetrahedra_3.h 3efe2ec 2021-03-31T09:40:19+02:00 Simon Giraudot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/linear_least_squares_fitting_triangles_2.h cgal-5.5/include/CGAL/linear_least_squares_fitting_triangles_2.h --- cgal-5.4.1/include/CGAL/linear_least_squares_fitting_triangles_2.h 2022-06-03 19:05:28.000000000 +0000 +++ cgal-5.5/include/CGAL/linear_least_squares_fitting_triangles_2.h 2022-07-13 19:06:23.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Principal_component_analysis/include/CGAL/linear_least_squares_fitting_triangles_2.h $ -// $Id: linear_least_squares_fitting_triangles_2.h fe3da4c 2021-04-14T09:45:06+02:00 Simon Giraudot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Principal_component_analysis/include/CGAL/linear_least_squares_fitting_triangles_2.h $ +// $Id: linear_least_squares_fitting_triangles_2.h e07672a 2022-01-26T21:04:59+05:30 G Yuvan Shankar // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Pierre Alliez and Sylvain Pion and Ankit Gupta @@ -89,7 +89,7 @@ Matrix transformation = init_matrix(2,delta); FT area = FT(0.5) * CGAL::abs(LA::determinant(transformation)); - CGAL_assertion(area!=0); + CGAL_assertion(!CGAL::is_zero(area)); // Find the 2nd order moment for the triangle wrt to the origin by an affine transformation. @@ -101,20 +101,20 @@ FT yav0 = (delta[2]+delta[3])/FT(3); // and add to the covariance matrix - covariance[0] += transformation[0][0] + area * (x0*xav0*2 + x0*x0); + covariance[0] += transformation[0][0] + area * (x0*xav0*2 + CGAL::square(x0)); covariance[1] += transformation[0][1] + area * (x0*yav0 + xav0*y0 + x0*y0); - covariance[2] += transformation[1][1] + area * (y0*yav0*2 + y0*y0); + covariance[2] += transformation[1][1] + area * (y0*yav0*2 + CGAL::square(y0)); mass += area; } - CGAL_assertion_msg (mass != FT(0), "Can't compute PCA of null measure."); + CGAL_assertion_msg (!CGAL::is_zero(mass), "Can't compute PCA of null measure."); // Translate the 2nd order moment calculated about the origin to // the center of mass to get the covariance. - covariance[0] += -mass * (c.x() * c.x()); - covariance[1] += -mass * (c.x() * c.y()); - covariance[2] += -mass * (c.y() * c.y()); + covariance[0] -= mass * (CGAL::square(c.x())); + covariance[1] -= mass * (c.x() * c.y()); + covariance[2] -= mass * (CGAL::square(c.y())); // std::cout<<"cov: "< @@ -27,7 +27,6 @@ #include #include #include -#include #include #include @@ -68,6 +67,7 @@ #include #include +#include // for default parameters #if defined(CGAL_EIGEN3_ENABLED) @@ -728,7 +728,7 @@ MCFSKEL_DEBUG(print_edges();) MCFSKEL_INFO(double area = CGAL::Polygon_mesh_processing::area(m_tmesh, - CGAL::Polygon_mesh_processing::parameters::vertex_point_map(m_tmesh_point_pmap));) + CGAL::parameters::vertex_point_map(m_tmesh_point_pmap));) MCFSKEL_INFO(std::cout << "area " << area << "\n";) } @@ -752,7 +752,7 @@ detect_degeneracies(); double area = CGAL::Polygon_mesh_processing::area(m_tmesh, - CGAL::Polygon_mesh_processing::parameters::vertex_point_map(m_tmesh_point_pmap) + CGAL::parameters::vertex_point_map(m_tmesh_point_pmap) .geom_traits(m_traits)); double area_ratio = fabs(last_area - area) / m_original_area; @@ -857,7 +857,7 @@ m_are_poles_computed = false; m_original_area = CGAL::Polygon_mesh_processing::area(m_tmesh, - CGAL::Polygon_mesh_processing::parameters::vertex_point_map(m_tmesh_point_pmap) + CGAL::parameters::vertex_point_map(m_tmesh_point_pmap) .geom_traits(m_traits)); m_vertex_id_count = static_cast(num_vertices(m_tmesh)); @@ -1339,9 +1339,9 @@ { namespace PMP = CGAL::Polygon_mesh_processing; - boost::unordered_map normals; + std::unordered_map normals; boost::associative_property_map< - boost::unordered_map > normals_pmap(normals); + std::unordered_map > normals_pmap(normals); PMP::compute_face_normals(m_tmesh, normals_pmap); m_normals.resize(num_vertices(m_tmesh)); @@ -1351,7 +1351,7 @@ int vid = static_cast(get(m_vertex_id_pmap, v)); m_normals[vid] = PMP::compute_vertex_normal(v , m_tmesh - , PMP::parameters::geom_traits(m_traits) + , CGAL::parameters::geom_traits(m_traits) .face_normal_map(normals_pmap)); } } diff -Nru cgal-5.4.1/include/CGAL/memory.h cgal-5.5/include/CGAL/memory.h --- cgal-5.4.1/include/CGAL/memory.h 2022-06-03 19:05:33.000000000 +0000 +++ cgal-5.5/include/CGAL/memory.h 2022-07-13 19:06:29.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/memory.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/memory.h $ // $Id: memory.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Memory_sizer.h cgal-5.5/include/CGAL/Memory_sizer.h --- cgal-5.4.1/include/CGAL/Memory_sizer.h 2022-06-03 19:05:28.000000000 +0000 +++ cgal-5.5/include/CGAL/Memory_sizer.h 2022-07-13 19:06:23.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Profiling_tools/include/CGAL/Memory_sizer.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Profiling_tools/include/CGAL/Memory_sizer.h $ // $Id: Memory_sizer.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_2/Clusters.h cgal-5.5/include/CGAL/Mesh_2/Clusters.h --- cgal-5.4.1/include/CGAL/Mesh_2/Clusters.h 2022-06-03 19:04:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_2/Clusters.h 2022-07-13 19:05:35.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_2/include/CGAL/Mesh_2/Clusters.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_2/include/CGAL/Mesh_2/Clusters.h $ // $Id: Clusters.h 8bb22d5 2020-03-26T14:23:37+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_2/Do_not_refine_edges.h cgal-5.5/include/CGAL/Mesh_2/Do_not_refine_edges.h --- cgal-5.4.1/include/CGAL/Mesh_2/Do_not_refine_edges.h 2022-06-03 19:04:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_2/Do_not_refine_edges.h 2022-07-13 19:05:35.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_2/include/CGAL/Mesh_2/Do_not_refine_edges.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_2/include/CGAL/Mesh_2/Do_not_refine_edges.h $ // $Id: Do_not_refine_edges.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_2/Face_badness.h cgal-5.5/include/CGAL/Mesh_2/Face_badness.h --- cgal-5.4.1/include/CGAL/Mesh_2/Face_badness.h 2022-06-03 19:04:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_2/Face_badness.h 2022-07-13 19:05:35.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_2/include/CGAL/Mesh_2/Face_badness.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_2/include/CGAL/Mesh_2/Face_badness.h $ // $Id: Face_badness.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_2/Lipschitz_sizing_field_2.h cgal-5.5/include/CGAL/Mesh_2/Lipschitz_sizing_field_2.h --- cgal-5.4.1/include/CGAL/Mesh_2/Lipschitz_sizing_field_2.h 2022-06-03 19:04:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_2/Lipschitz_sizing_field_2.h 2022-07-13 19:05:36.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_2/include/CGAL/Mesh_2/Lipschitz_sizing_field_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_2/include/CGAL/Mesh_2/Lipschitz_sizing_field_2.h $ // $Id: Lipschitz_sizing_field_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_2/Lloyd_move_2.h cgal-5.5/include/CGAL/Mesh_2/Lloyd_move_2.h --- cgal-5.4.1/include/CGAL/Mesh_2/Lloyd_move_2.h 2022-06-03 19:04:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_2/Lloyd_move_2.h 2022-07-13 19:05:36.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_2/include/CGAL/Mesh_2/Lloyd_move_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_2/include/CGAL/Mesh_2/Lloyd_move_2.h $ // $Id: Lloyd_move_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_2/Mesh_global_optimizer_2.h cgal-5.5/include/CGAL/Mesh_2/Mesh_global_optimizer_2.h --- cgal-5.4.1/include/CGAL/Mesh_2/Mesh_global_optimizer_2.h 2022-06-03 19:04:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_2/Mesh_global_optimizer_2.h 2022-07-13 19:05:36.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_2/include/CGAL/Mesh_2/Mesh_global_optimizer_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_2/include/CGAL/Mesh_2/Mesh_global_optimizer_2.h $ // $Id: Mesh_global_optimizer_2.h 0ac4bf6 2021-09-10T11:28:13+02:00 Jane Tournois // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_2/Mesh_sizing_field.h cgal-5.5/include/CGAL/Mesh_2/Mesh_sizing_field.h --- cgal-5.4.1/include/CGAL/Mesh_2/Mesh_sizing_field.h 2022-06-03 19:04:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_2/Mesh_sizing_field.h 2022-07-13 19:05:36.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_2/include/CGAL/Mesh_2/Mesh_sizing_field.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_2/include/CGAL/Mesh_2/Mesh_sizing_field.h $ // $Id: Mesh_sizing_field.h 0ac4bf6 2021-09-10T11:28:13+02:00 Jane Tournois // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_2/Output_stream.h cgal-5.5/include/CGAL/Mesh_2/Output_stream.h --- cgal-5.4.1/include/CGAL/Mesh_2/Output_stream.h 2022-06-03 19:04:49.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_2/Output_stream.h 2022-07-13 19:05:42.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesher_level/include/CGAL/Mesh_2/Output_stream.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesher_level/include/CGAL/Mesh_2/Output_stream.h $ // $Id: Output_stream.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_2/Refine_edges.h cgal-5.5/include/CGAL/Mesh_2/Refine_edges.h --- cgal-5.4.1/include/CGAL/Mesh_2/Refine_edges.h 2022-06-03 19:04:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_2/Refine_edges.h 2022-07-13 19:05:36.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_2/include/CGAL/Mesh_2/Refine_edges.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_2/include/CGAL/Mesh_2/Refine_edges.h $ // $Id: Refine_edges.h e3934f1 2021-05-12T15:20:27+02:00 Laurent Rineau // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_2/Refine_edges_visitor.h cgal-5.5/include/CGAL/Mesh_2/Refine_edges_visitor.h --- cgal-5.4.1/include/CGAL/Mesh_2/Refine_edges_visitor.h 2022-06-03 19:04:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_2/Refine_edges_visitor.h 2022-07-13 19:05:36.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_2/include/CGAL/Mesh_2/Refine_edges_visitor.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_2/include/CGAL/Mesh_2/Refine_edges_visitor.h $ // $Id: Refine_edges_visitor.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_2/Refine_edges_with_clusters.h cgal-5.5/include/CGAL/Mesh_2/Refine_edges_with_clusters.h --- cgal-5.4.1/include/CGAL/Mesh_2/Refine_edges_with_clusters.h 2022-06-03 19:04:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_2/Refine_edges_with_clusters.h 2022-07-13 19:05:36.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_2/include/CGAL/Mesh_2/Refine_edges_with_clusters.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_2/include/CGAL/Mesh_2/Refine_edges_with_clusters.h $ // $Id: Refine_edges_with_clusters.h e3934f1 2021-05-12T15:20:27+02:00 Laurent Rineau // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_2/Refine_faces.h cgal-5.5/include/CGAL/Mesh_2/Refine_faces.h --- cgal-5.4.1/include/CGAL/Mesh_2/Refine_faces.h 2022-06-03 19:04:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_2/Refine_faces.h 2022-07-13 19:05:36.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_2/include/CGAL/Mesh_2/Refine_faces.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_2/include/CGAL/Mesh_2/Refine_faces.h $ // $Id: Refine_faces.h e3934f1 2021-05-12T15:20:27+02:00 Laurent Rineau // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_2/Sizing_field_2.h cgal-5.5/include/CGAL/Mesh_2/Sizing_field_2.h --- cgal-5.4.1/include/CGAL/Mesh_2/Sizing_field_2.h 2022-06-03 19:04:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_2/Sizing_field_2.h 2022-07-13 19:05:36.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_2/include/CGAL/Mesh_2/Sizing_field_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_2/include/CGAL/Mesh_2/Sizing_field_2.h $ // $Id: Sizing_field_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_2/Uniform_sizing_field_2.h cgal-5.5/include/CGAL/Mesh_2/Uniform_sizing_field_2.h --- cgal-5.4.1/include/CGAL/Mesh_2/Uniform_sizing_field_2.h 2022-06-03 19:04:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_2/Uniform_sizing_field_2.h 2022-07-13 19:05:36.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_2/include/CGAL/Mesh_2/Uniform_sizing_field_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_2/include/CGAL/Mesh_2/Uniform_sizing_field_2.h $ // $Id: Uniform_sizing_field_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/C3T3_helpers.h cgal-5.5/include/CGAL/Mesh_3/C3T3_helpers.h --- cgal-5.4.1/include/CGAL/Mesh_3/C3T3_helpers.h 2022-06-03 19:04:46.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/C3T3_helpers.h 2022-07-13 19:05:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/C3T3_helpers.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/C3T3_helpers.h $ // $Id: C3T3_helpers.h a9318b3 2021-10-15T09:48:54+02:00 Jane Tournois // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/Cell_criteria_visitor_with_balls.h cgal-5.5/include/CGAL/Mesh_3/Cell_criteria_visitor_with_balls.h --- cgal-5.4.1/include/CGAL/Mesh_3/Cell_criteria_visitor_with_balls.h 2022-06-03 19:04:46.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/Cell_criteria_visitor_with_balls.h 2022-07-13 19:05:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/Cell_criteria_visitor_with_balls.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/Cell_criteria_visitor_with_balls.h $ // $Id: Cell_criteria_visitor_with_balls.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/Concurrent_mesher_config.h cgal-5.5/include/CGAL/Mesh_3/Concurrent_mesher_config.h --- cgal-5.4.1/include/CGAL/Mesh_3/Concurrent_mesher_config.h 2022-06-03 19:04:46.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/Concurrent_mesher_config.h 2022-07-13 19:05:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/Concurrent_mesher_config.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/Concurrent_mesher_config.h $ // $Id: Concurrent_mesher_config.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/config.h cgal-5.5/include/CGAL/Mesh_3/config.h --- cgal-5.4.1/include/CGAL/Mesh_3/config.h 2022-06-03 19:04:47.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/config.h 2022-07-13 19:05:40.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/config.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/config.h $ // $Id: config.h 4dda7b6 2020-05-27T15:53:05+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/dihedral_angle_3.h cgal-5.5/include/CGAL/Mesh_3/dihedral_angle_3.h --- cgal-5.4.1/include/CGAL/Mesh_3/dihedral_angle_3.h 2022-06-03 19:04:47.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/dihedral_angle_3.h 2022-07-13 19:05:40.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/dihedral_angle_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/dihedral_angle_3.h $ // $Id: dihedral_angle_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/Dump_c3t3.h cgal-5.5/include/CGAL/Mesh_3/Dump_c3t3.h --- cgal-5.4.1/include/CGAL/Mesh_3/Dump_c3t3.h 2022-06-03 19:04:46.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/Dump_c3t3.h 2022-07-13 19:05:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/Dump_c3t3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/Dump_c3t3.h $ // $Id: Dump_c3t3.h 4e519a3 2021-05-05T13:15:37+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/experimental/AABB_filtered_projection_traits.h cgal-5.5/include/CGAL/Mesh_3/experimental/AABB_filtered_projection_traits.h --- cgal-5.4.1/include/CGAL/Mesh_3/experimental/AABB_filtered_projection_traits.h 2022-06-03 19:04:47.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/experimental/AABB_filtered_projection_traits.h 2022-07-13 19:05:40.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/experimental/AABB_filtered_projection_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/experimental/AABB_filtered_projection_traits.h $ // $Id: AABB_filtered_projection_traits.h 1af4f93 2021-10-08T16:24:51+02:00 Laurent Rineau // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/experimental/Facet_patch_id_map.h cgal-5.5/include/CGAL/Mesh_3/experimental/Facet_patch_id_map.h --- cgal-5.4.1/include/CGAL/Mesh_3/experimental/Facet_patch_id_map.h 2022-06-03 19:04:47.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/experimental/Facet_patch_id_map.h 2022-07-13 19:05:40.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/experimental/Facet_patch_id_map.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/experimental/Facet_patch_id_map.h $ // $Id: Facet_patch_id_map.h 5835698 2021-02-10T15:42:29+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/experimental/Facet_topological_criterion_with_adjacency.h cgal-5.5/include/CGAL/Mesh_3/experimental/Facet_topological_criterion_with_adjacency.h --- cgal-5.4.1/include/CGAL/Mesh_3/experimental/Facet_topological_criterion_with_adjacency.h 2022-06-03 19:04:48.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/experimental/Facet_topological_criterion_with_adjacency.h 2022-07-13 19:05:40.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/experimental/Facet_topological_criterion_with_adjacency.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/experimental/Facet_topological_criterion_with_adjacency.h $ // $Id: Facet_topological_criterion_with_adjacency.h 58b10a3 2020-03-26T18:58:50+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/experimental/Get_curve_index.h cgal-5.5/include/CGAL/Mesh_3/experimental/Get_curve_index.h --- cgal-5.4.1/include/CGAL/Mesh_3/experimental/Get_curve_index.h 2022-06-03 19:04:48.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/experimental/Get_curve_index.h 2022-07-13 19:05:40.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/experimental/Get_curve_index.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/experimental/Get_curve_index.h $ // $Id: Get_curve_index.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/experimental/Get_facet_patch_id.h cgal-5.5/include/CGAL/Mesh_3/experimental/Get_facet_patch_id.h --- cgal-5.4.1/include/CGAL/Mesh_3/experimental/Get_facet_patch_id.h 2022-06-03 19:04:48.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/experimental/Get_facet_patch_id.h 2022-07-13 19:05:40.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/experimental/Get_facet_patch_id.h $ -// $Id: Get_facet_patch_id.h bf128b3 2021-01-25T16:19:23+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/experimental/Get_facet_patch_id.h $ +// $Id: Get_facet_patch_id.h a2abc9b 2022-02-15T15:29:56+01:00 Jane Tournois // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -22,7 +22,9 @@ // backward compatibility with user code template -using Get_facet_patch_id_sm = Facet_patch_id_map; +using Get_facet_patch_id_sm + = Facet_patch_id_map; }} // end namespace CGAL::Mesh_3 diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/experimental/Lipschitz_sizing_experimental.h cgal-5.5/include/CGAL/Mesh_3/experimental/Lipschitz_sizing_experimental.h --- cgal-5.4.1/include/CGAL/Mesh_3/experimental/Lipschitz_sizing_experimental.h 2022-06-03 19:04:48.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/experimental/Lipschitz_sizing_experimental.h 2022-07-13 19:05:40.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/experimental/Lipschitz_sizing_experimental.h $ -// $Id: Lipschitz_sizing_experimental.h 1faa0e2 2021-04-28T10:55:26+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/experimental/Lipschitz_sizing_experimental.h $ +// $Id: Lipschitz_sizing_experimental.h 2c14df7 2022-02-15T15:29:31+01:00 Jane Tournois // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -104,7 +104,7 @@ #ifdef CGAL_MESH_3_EXPERIMENTAL_USE_PATCHES_IDS //help to accelerate aabb_tree queries in m_ptree - std::shared_ptr m_kd_tree; + mutable std::shared_ptr m_kd_tree; Facet_patch_id_map m_facet_patch_id_map; const Patches_ids_map& patches_ids_map; @@ -387,7 +387,7 @@ } #ifdef CGAL_MESH_3_EXPERIMENTAL_USE_PATCHES_IDS - void kd_tree() + void kd_tree() const { typedef typename MeshDomain::Polyhedron Polyhedron; if(m_kd_tree.get() == 0) { diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/experimental/Lipschitz_sizing_parameters.h cgal-5.5/include/CGAL/Mesh_3/experimental/Lipschitz_sizing_parameters.h --- cgal-5.4.1/include/CGAL/Mesh_3/experimental/Lipschitz_sizing_parameters.h 2022-06-03 19:04:48.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/experimental/Lipschitz_sizing_parameters.h 2022-07-13 19:05:40.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/experimental/Lipschitz_sizing_parameters.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/experimental/Lipschitz_sizing_parameters.h $ // $Id: Lipschitz_sizing_parameters.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/experimental/Lipschitz_sizing_polyhedron.h cgal-5.5/include/CGAL/Mesh_3/experimental/Lipschitz_sizing_polyhedron.h --- cgal-5.4.1/include/CGAL/Mesh_3/experimental/Lipschitz_sizing_polyhedron.h 2022-06-03 19:04:48.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/experimental/Lipschitz_sizing_polyhedron.h 2022-07-13 19:05:40.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/experimental/Lipschitz_sizing_polyhedron.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/experimental/Lipschitz_sizing_polyhedron.h $ // $Id: Lipschitz_sizing_polyhedron.h 1faa0e2 2021-04-28T10:55:26+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/experimental/Sizing_field_minimum.h cgal-5.5/include/CGAL/Mesh_3/experimental/Sizing_field_minimum.h --- cgal-5.4.1/include/CGAL/Mesh_3/experimental/Sizing_field_minimum.h 2022-06-03 19:04:48.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/experimental/Sizing_field_minimum.h 2022-07-13 19:05:40.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/experimental/Sizing_field_minimum.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/experimental/Sizing_field_minimum.h $ // $Id: Sizing_field_minimum.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/experimental/Sizing_field_with_aabb_tree.h cgal-5.5/include/CGAL/Mesh_3/experimental/Sizing_field_with_aabb_tree.h --- cgal-5.4.1/include/CGAL/Mesh_3/experimental/Sizing_field_with_aabb_tree.h 2022-06-03 19:04:48.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/experimental/Sizing_field_with_aabb_tree.h 2022-07-13 19:05:40.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/experimental/Sizing_field_with_aabb_tree.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/experimental/Sizing_field_with_aabb_tree.h $ // $Id: Sizing_field_with_aabb_tree.h 4e519a3 2021-05-05T13:15:37+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/Facet_criteria_visitor_with_balls.h cgal-5.5/include/CGAL/Mesh_3/Facet_criteria_visitor_with_balls.h --- cgal-5.4.1/include/CGAL/Mesh_3/Facet_criteria_visitor_with_balls.h 2022-06-03 19:04:46.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/Facet_criteria_visitor_with_balls.h 2022-07-13 19:05:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/Facet_criteria_visitor_with_balls.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/Facet_criteria_visitor_with_balls.h $ // $Id: Facet_criteria_visitor_with_balls.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/Facet_on_same_surface_criterion.h cgal-5.5/include/CGAL/Mesh_3/Facet_on_same_surface_criterion.h --- cgal-5.4.1/include/CGAL/Mesh_3/Facet_on_same_surface_criterion.h 2022-06-03 19:04:46.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/Facet_on_same_surface_criterion.h 2022-07-13 19:05:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/Facet_on_same_surface_criterion.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/Facet_on_same_surface_criterion.h $ // $Id: Facet_on_same_surface_criterion.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/generate_label_weights.h cgal-5.5/include/CGAL/Mesh_3/generate_label_weights.h --- cgal-5.4.1/include/CGAL/Mesh_3/generate_label_weights.h 2022-06-03 19:04:48.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/generate_label_weights.h 2022-07-13 19:05:40.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/generate_label_weights.h $ -// $Id: generate_label_weights.h b664ee5 2021-10-21T12:15:49+02:00 Jane Tournois +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/generate_label_weights.h $ +// $Id: generate_label_weights.h 5913be0 2022-03-22T12:13:42+01:00 Jane Tournois // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -227,6 +227,7 @@ /// @endcond /*! +* \ingroup PkgMesh3Functions * Free function that generates a `CGAL::Image_3` of weights associated to each * voxel of `image`, to make the output mesh surfaces smoother. * The weights image is generated using the algorithm described by Stalling et al diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/Has_features.h cgal-5.5/include/CGAL/Mesh_3/Has_features.h --- cgal-5.4.1/include/CGAL/Mesh_3/Has_features.h 2022-06-03 19:04:46.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/Has_features.h 2022-07-13 19:05:39.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/Has_features.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/Has_features.h $ // $Id: Has_features.h 4dda7b6 2020-05-27T15:53:05+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/Image_plus_weights_to_labeled_function_wrapper.h cgal-5.5/include/CGAL/Mesh_3/Image_plus_weights_to_labeled_function_wrapper.h --- cgal-5.4.1/include/CGAL/Mesh_3/Image_plus_weights_to_labeled_function_wrapper.h 2022-06-03 19:04:46.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/Image_plus_weights_to_labeled_function_wrapper.h 2022-07-13 19:05:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/Image_plus_weights_to_labeled_function_wrapper.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/Image_plus_weights_to_labeled_function_wrapper.h $ // $Id: Image_plus_weights_to_labeled_function_wrapper.h ac7b637 2021-10-05T10:27:03+02:00 Jane Tournois // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/Image_to_labeled_function_wrapper.h cgal-5.5/include/CGAL/Mesh_3/Image_to_labeled_function_wrapper.h --- cgal-5.4.1/include/CGAL/Mesh_3/Image_to_labeled_function_wrapper.h 2022-06-03 19:04:46.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/Image_to_labeled_function_wrapper.h 2022-07-13 19:05:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/Image_to_labeled_function_wrapper.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/Image_to_labeled_function_wrapper.h $ // $Id: Image_to_labeled_function_wrapper.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/Implicit_surface_mesher_visitor.h cgal-5.5/include/CGAL/Mesh_3/Implicit_surface_mesher_visitor.h --- cgal-5.4.1/include/CGAL/Mesh_3/Implicit_surface_mesher_visitor.h 2022-06-03 19:04:46.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/Implicit_surface_mesher_visitor.h 2022-07-13 19:05:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/Implicit_surface_mesher_visitor.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/Implicit_surface_mesher_visitor.h $ // $Id: Implicit_surface_mesher_visitor.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/initialize_triangulation_from_gray_image.h cgal-5.5/include/CGAL/Mesh_3/initialize_triangulation_from_gray_image.h --- cgal-5.4.1/include/CGAL/Mesh_3/initialize_triangulation_from_gray_image.h 2022-06-03 19:04:48.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/initialize_triangulation_from_gray_image.h 2022-07-13 19:05:40.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/initialize_triangulation_from_gray_image.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/initialize_triangulation_from_gray_image.h $ // $Id: initialize_triangulation_from_gray_image.h 7c9e452 2021-02-12T17:20:46+01:00 Jane Tournois // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/initialize_triangulation_from_labeled_image.h cgal-5.5/include/CGAL/Mesh_3/initialize_triangulation_from_labeled_image.h --- cgal-5.4.1/include/CGAL/Mesh_3/initialize_triangulation_from_labeled_image.h 2022-06-03 19:04:48.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/initialize_triangulation_from_labeled_image.h 2022-07-13 19:05:40.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/initialize_triangulation_from_labeled_image.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/initialize_triangulation_from_labeled_image.h $ // $Id: initialize_triangulation_from_labeled_image.h fba3033 2021-04-12T15:33:14+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/internal/Boundary_of_subdomain_of_complex_3_in_triangulation_3_to_off.h cgal-5.5/include/CGAL/Mesh_3/internal/Boundary_of_subdomain_of_complex_3_in_triangulation_3_to_off.h --- cgal-5.4.1/include/CGAL/Mesh_3/internal/Boundary_of_subdomain_of_complex_3_in_triangulation_3_to_off.h 2022-06-03 19:04:48.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/internal/Boundary_of_subdomain_of_complex_3_in_triangulation_3_to_off.h 2022-07-13 19:05:40.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/internal/Boundary_of_subdomain_of_complex_3_in_triangulation_3_to_off.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/internal/Boundary_of_subdomain_of_complex_3_in_triangulation_3_to_off.h $ // $Id: Boundary_of_subdomain_of_complex_3_in_triangulation_3_to_off.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/internal/check_weights.h cgal-5.5/include/CGAL/Mesh_3/internal/check_weights.h --- cgal-5.4.1/include/CGAL/Mesh_3/internal/check_weights.h 2022-06-03 19:04:48.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/internal/check_weights.h 2022-07-13 19:05:40.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/internal/check_weights.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/internal/check_weights.h $ // $Id: check_weights.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/internal/Graph_manipulations.h cgal-5.5/include/CGAL/Mesh_3/internal/Graph_manipulations.h --- cgal-5.4.1/include/CGAL/Mesh_3/internal/Graph_manipulations.h 2022-06-03 19:04:48.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/internal/Graph_manipulations.h 2022-07-13 19:05:40.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/internal/Graph_manipulations.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/internal/Graph_manipulations.h $ // $Id: Graph_manipulations.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/internal/Handle_IO_for_pair_of_int.h cgal-5.5/include/CGAL/Mesh_3/internal/Handle_IO_for_pair_of_int.h --- cgal-5.4.1/include/CGAL/Mesh_3/internal/Handle_IO_for_pair_of_int.h 2022-06-03 19:04:48.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/internal/Handle_IO_for_pair_of_int.h 2022-07-13 19:05:40.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/internal/Handle_IO_for_pair_of_int.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/internal/Handle_IO_for_pair_of_int.h $ // $Id: Handle_IO_for_pair_of_int.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/internal/helpers.h cgal-5.5/include/CGAL/Mesh_3/internal/helpers.h --- cgal-5.4.1/include/CGAL/Mesh_3/internal/helpers.h 2022-06-03 19:04:48.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/internal/helpers.h 2022-07-13 19:05:40.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/internal/helpers.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/internal/helpers.h $ // $Id: helpers.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/internal/indices_management.h cgal-5.5/include/CGAL/Mesh_3/internal/indices_management.h --- cgal-5.4.1/include/CGAL/Mesh_3/internal/indices_management.h 2022-06-03 19:04:48.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/internal/indices_management.h 2022-07-13 19:05:40.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/internal/indices_management.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/internal/indices_management.h $ // $Id: indices_management.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/io_signature.h cgal-5.5/include/CGAL/Mesh_3/io_signature.h --- cgal-5.4.1/include/CGAL/Mesh_3/io_signature.h 2022-06-03 19:04:48.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/io_signature.h 2022-07-13 19:05:40.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/io_signature.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/io_signature.h $ // $Id: io_signature.h b64a171 2020-06-16T17:47:00+02:00 Laurent Rineau // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/Is_mesh_domain_field_3.h cgal-5.5/include/CGAL/Mesh_3/Is_mesh_domain_field_3.h --- cgal-5.4.1/include/CGAL/Mesh_3/Is_mesh_domain_field_3.h 2022-06-03 19:04:47.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/Is_mesh_domain_field_3.h 2022-07-13 19:05:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/Is_mesh_domain_field_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/Is_mesh_domain_field_3.h $ // $Id: Is_mesh_domain_field_3.h 393ae7d 2021-05-12T15:03:53+02:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/Lloyd_move.h cgal-5.5/include/CGAL/Mesh_3/Lloyd_move.h --- cgal-5.4.1/include/CGAL/Mesh_3/Lloyd_move.h 2022-06-03 19:04:47.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/Lloyd_move.h 2022-07-13 19:05:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/Lloyd_move.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/Lloyd_move.h $ // $Id: Lloyd_move.h 2d73ef3 2020-12-04T17:18:04+01:00 Jane Tournois // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/Mesh_complex_3_in_triangulation_3_base.h cgal-5.5/include/CGAL/Mesh_3/Mesh_complex_3_in_triangulation_3_base.h --- cgal-5.4.1/include/CGAL/Mesh_3/Mesh_complex_3_in_triangulation_3_base.h 2022-06-03 19:04:47.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/Mesh_complex_3_in_triangulation_3_base.h 2022-07-13 19:05:39.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/Mesh_complex_3_in_triangulation_3_base.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/Mesh_complex_3_in_triangulation_3_base.h $ // $Id: Mesh_complex_3_in_triangulation_3_base.h 5896af7 2021-07-13T11:49:51+02:00 Laurent Rineau // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/Mesh_complex_3_in_triangulation_3_fwd.h cgal-5.5/include/CGAL/Mesh_3/Mesh_complex_3_in_triangulation_3_fwd.h --- cgal-5.4.1/include/CGAL/Mesh_3/Mesh_complex_3_in_triangulation_3_fwd.h 2022-06-03 19:04:19.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/Mesh_complex_3_in_triangulation_3_fwd.h 2022-07-13 19:05:09.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/Mesh_3/Mesh_complex_3_in_triangulation_3_fwd.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/Mesh_3/Mesh_complex_3_in_triangulation_3_fwd.h $ // $Id: Mesh_complex_3_in_triangulation_3_fwd.h c863ee6 2021-05-04T17:28:52+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/Mesher_3.h cgal-5.5/include/CGAL/Mesh_3/Mesher_3.h --- cgal-5.4.1/include/CGAL/Mesh_3/Mesher_3.h 2022-06-03 19:04:47.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/Mesher_3.h 2022-07-13 19:05:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/Mesher_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/Mesher_3.h $ // $Id: Mesher_3.h 932639e 2021-09-30T11:24:21+02:00 Jane Tournois // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/Mesher_level_default_implementations.h cgal-5.5/include/CGAL/Mesh_3/Mesher_level_default_implementations.h --- cgal-5.4.1/include/CGAL/Mesh_3/Mesher_level_default_implementations.h 2022-06-03 19:04:47.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/Mesher_level_default_implementations.h 2022-07-13 19:05:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/Mesher_level_default_implementations.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/Mesher_level_default_implementations.h $ // $Id: Mesher_level_default_implementations.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/Mesher_level.h cgal-5.5/include/CGAL/Mesh_3/Mesher_level.h --- cgal-5.4.1/include/CGAL/Mesh_3/Mesher_level.h 2022-06-03 19:04:47.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/Mesher_level.h 2022-07-13 19:05:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/Mesher_level.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/Mesher_level.h $ // $Id: Mesher_level.h 5439dbd 2021-08-24T18:04:50+02:00 Jane Tournois // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/Mesh_global_optimizer.h cgal-5.5/include/CGAL/Mesh_3/Mesh_global_optimizer.h --- cgal-5.4.1/include/CGAL/Mesh_3/Mesh_global_optimizer.h 2022-06-03 19:04:47.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/Mesh_global_optimizer.h 2022-07-13 19:05:39.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/Mesh_global_optimizer.h $ -// $Id: Mesh_global_optimizer.h ade80dc 2022-01-20T08:44:38+00:00 Andreas Fabri +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/Mesh_global_optimizer.h $ +// $Id: Mesh_global_optimizer.h fc7f672 2022-02-24T15:41:47+01:00 Laurent Rineau // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -975,7 +975,7 @@ FT size = std::get<2>(*it); #ifdef CGAL_MESH_3_OPTIMIZER_VERBOSE - std::cout << "Moving #" << it - moves.begin() + std::cerr << "Moving #" << it - moves.begin() << " addr: " << &*v << " pt: " << tr_.point(v) << " move: " << move << std::endl; diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/Mesh_sizing_field.h cgal-5.5/include/CGAL/Mesh_3/Mesh_sizing_field.h --- cgal-5.4.1/include/CGAL/Mesh_3/Mesh_sizing_field.h 2022-06-03 19:04:47.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/Mesh_sizing_field.h 2022-07-13 19:05:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/Mesh_sizing_field.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/Mesh_sizing_field.h $ // $Id: Mesh_sizing_field.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/mesh_standard_cell_criteria.h cgal-5.5/include/CGAL/Mesh_3/mesh_standard_cell_criteria.h --- cgal-5.4.1/include/CGAL/Mesh_3/mesh_standard_cell_criteria.h 2022-06-03 19:04:48.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/mesh_standard_cell_criteria.h 2022-07-13 19:05:40.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/mesh_standard_cell_criteria.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/mesh_standard_cell_criteria.h $ // $Id: mesh_standard_cell_criteria.h 6fe18d8 2021-01-20T15:32:23+01:00 Laurent Rineau // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/mesh_standard_criteria.h cgal-5.5/include/CGAL/Mesh_3/mesh_standard_criteria.h --- cgal-5.4.1/include/CGAL/Mesh_3/mesh_standard_criteria.h 2022-06-03 19:04:48.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/mesh_standard_criteria.h 2022-07-13 19:05:41.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/mesh_standard_criteria.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/mesh_standard_criteria.h $ // $Id: mesh_standard_criteria.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/mesh_standard_facet_criteria.h cgal-5.5/include/CGAL/Mesh_3/mesh_standard_facet_criteria.h --- cgal-5.4.1/include/CGAL/Mesh_3/mesh_standard_facet_criteria.h 2022-06-03 19:04:48.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/mesh_standard_facet_criteria.h 2022-07-13 19:05:41.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/mesh_standard_facet_criteria.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/mesh_standard_facet_criteria.h $ // $Id: mesh_standard_facet_criteria.h 58b10a3 2020-03-26T18:58:50+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/Mesh_surface_cell_base_3.h cgal-5.5/include/CGAL/Mesh_3/Mesh_surface_cell_base_3.h --- cgal-5.4.1/include/CGAL/Mesh_3/Mesh_surface_cell_base_3.h 2022-06-03 19:04:47.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/Mesh_surface_cell_base_3.h 2022-07-13 19:05:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/Mesh_surface_cell_base_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/Mesh_surface_cell_base_3.h $ // $Id: Mesh_surface_cell_base_3.h 4e519a3 2021-05-05T13:15:37+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/min_dihedral_angle.h cgal-5.5/include/CGAL/Mesh_3/min_dihedral_angle.h --- cgal-5.4.1/include/CGAL/Mesh_3/min_dihedral_angle.h 2022-06-03 19:04:48.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/min_dihedral_angle.h 2022-07-13 19:05:41.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/min_dihedral_angle.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/min_dihedral_angle.h $ // $Id: min_dihedral_angle.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/Null_exuder_visitor.h cgal-5.5/include/CGAL/Mesh_3/Null_exuder_visitor.h --- cgal-5.4.1/include/CGAL/Mesh_3/Null_exuder_visitor.h 2022-06-03 19:04:47.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/Null_exuder_visitor.h 2022-07-13 19:05:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/Null_exuder_visitor.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/Null_exuder_visitor.h $ // $Id: Null_exuder_visitor.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/Null_global_optimizer_visitor.h cgal-5.5/include/CGAL/Mesh_3/Null_global_optimizer_visitor.h --- cgal-5.4.1/include/CGAL/Mesh_3/Null_global_optimizer_visitor.h 2022-06-03 19:04:47.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/Null_global_optimizer_visitor.h 2022-07-13 19:05:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/Null_global_optimizer_visitor.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/Null_global_optimizer_visitor.h $ // $Id: Null_global_optimizer_visitor.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/Null_perturber_visitor.h cgal-5.5/include/CGAL/Mesh_3/Null_perturber_visitor.h --- cgal-5.4.1/include/CGAL/Mesh_3/Null_perturber_visitor.h 2022-06-03 19:04:47.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/Null_perturber_visitor.h 2022-07-13 19:05:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/Null_perturber_visitor.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/Null_perturber_visitor.h $ // $Id: Null_perturber_visitor.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/Odt_move.h cgal-5.5/include/CGAL/Mesh_3/Odt_move.h --- cgal-5.4.1/include/CGAL/Mesh_3/Odt_move.h 2022-06-03 19:04:47.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/Odt_move.h 2022-07-13 19:05:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/Odt_move.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/Odt_move.h $ // $Id: Odt_move.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/parameters_defaults.h cgal-5.5/include/CGAL/Mesh_3/parameters_defaults.h --- cgal-5.4.1/include/CGAL/Mesh_3/parameters_defaults.h 2022-06-03 19:04:48.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/parameters_defaults.h 2022-07-13 19:05:41.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/parameters_defaults.h $ -// $Id: parameters_defaults.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/parameters_defaults.h $ +// $Id: parameters_defaults.h 1c3e09f 2022-01-10T15:32:38+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -24,7 +24,7 @@ #include namespace CGAL { -namespace parameters { namespace default_values { +namespace parameters { namespace default_values_for_mesh_3 { // exude_mesh_3 const double exude_sliver_bound = 0.; @@ -51,7 +51,7 @@ const double odt_freeze_ratio = 0.01; const double odt_convergence_ratio = 0.02; -} } // end namespace parameters::default_values +} } // end namespace parameters::default_values_for_mesh_3 } // end namespace CGAL #endif // CGAL_MESH_3_PARAMETERS_DEFAULTS_H diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/Poisson_refine_cells_3.h cgal-5.5/include/CGAL/Mesh_3/Poisson_refine_cells_3.h --- cgal-5.4.1/include/CGAL/Mesh_3/Poisson_refine_cells_3.h 2022-06-03 19:05:13.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/Poisson_refine_cells_3.h 2022-07-13 19:06:07.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Poisson_surface_reconstruction_3/include/CGAL/Mesh_3/Poisson_refine_cells_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Poisson_surface_reconstruction_3/include/CGAL/Mesh_3/Poisson_refine_cells_3.h $ // $Id: Poisson_refine_cells_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/polyhedral_to_labeled_function_wrapper.h cgal-5.5/include/CGAL/Mesh_3/polyhedral_to_labeled_function_wrapper.h --- cgal-5.4.1/include/CGAL/Mesh_3/polyhedral_to_labeled_function_wrapper.h 2022-06-03 19:04:48.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/polyhedral_to_labeled_function_wrapper.h 2022-07-13 19:05:41.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/polyhedral_to_labeled_function_wrapper.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/polyhedral_to_labeled_function_wrapper.h $ // $Id: polyhedral_to_labeled_function_wrapper.h 0fa0c4f 2019-12-05T11:05:35+01:00 Laurent Rineau // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/polylines_to_protect.h cgal-5.5/include/CGAL/Mesh_3/polylines_to_protect.h --- cgal-5.4.1/include/CGAL/Mesh_3/polylines_to_protect.h 2022-06-03 19:04:48.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/polylines_to_protect.h 2022-07-13 19:05:41.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/polylines_to_protect.h $ -// $Id: polylines_to_protect.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/polylines_to_protect.h $ +// $Id: polylines_to_protect.h 74540b0 2022-04-26T15:32:02+02:00 Jane Tournois // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -19,12 +19,15 @@ #include #include #include // std::swap +#include // std::min + #include #include #include #include #include #include // for CGAL::Null_subdomain_index +#include #include // for boost::prior #include @@ -301,6 +304,16 @@ template struct Angle_tester { + const double m_angle_sq_cosine;// squared cosine of `std:max(90, angle_deg)` + + Angle_tester() + : m_angle_sq_cosine(0) + {} + + Angle_tester(const double angle_deg)//angle given in degrees for readability + : m_angle_sq_cosine(CGAL::square(std::cos((std::max)(90.,angle_deg) * CGAL_PI / 180.))) + {} + template bool operator()(vertex_descriptor& v, const Graph& g) const { @@ -320,15 +333,22 @@ const typename Kernel::Point_3& p1 = g[v1].point; const typename Kernel::Point_3& p2 = g[v2].point; - if(CGAL::angle(p1, p, p2) == CGAL::ACUTE) { - // const typename Kernel::Vector_3 e1 = p1 - p; - // const typename Kernel::Vector_3 e2 = p2 - p; - // std::cerr << "At point " << p << ": the angle is " - // << ( std::acos(e1 * e2 - // / CGAL::sqrt(e1*e1) - // / CGAL::sqrt(e2*e2)) - // * 180 / CGAL_PI ) << std::endl; + //if angle at v is acute, v must be considered as a terminal vertex + // to ensure termination + if (CGAL::angle(p1, p, p2) == CGAL::ACUTE) return true; + else if (m_angle_sq_cosine > 0.)//check angle only if angle is > 90. + { + const typename Kernel::Vector_3 e1 = p1 - p; + const typename Kernel::Vector_3 e2 = p2 - p; + + const auto scalar_product = e1 * e2; + if (CGAL::is_positive(scalar_product)) + return true; + + const auto sq_scalar_product = CGAL::square(scalar_product); + if (sq_scalar_product <= m_angle_sq_cosine * (e1 * e1) * (e2 * e2)) + return true; } } return false; @@ -997,7 +1017,8 @@ void polylines_to_protect(std::vector >& polylines, PolylineInputIterator existing_polylines_begin, - PolylineInputIterator existing_polylines_end) + PolylineInputIterator existing_polylines_end, + const double& angle = 90.)//when not provided, check only for acute angles { typedef P Point_3; typedef typename Kernel_traits

::Kernel K; @@ -1035,8 +1056,9 @@ Less_for_Graph_vertex_descriptors less(graph); const Graph& const_graph = graph; typedef typename Kernel_traits

::Kernel K; + Mesh_3::Angle_tester angle_tester(angle); split_graph_into_polylines(const_graph, visitor, - Mesh_3::Angle_tester(), less); + angle_tester, less); } template diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/Polyline_with_context.h cgal-5.5/include/CGAL/Mesh_3/Polyline_with_context.h --- cgal-5.4.1/include/CGAL/Mesh_3/Polyline_with_context.h 2022-06-03 19:04:47.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/Polyline_with_context.h 2022-07-13 19:05:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/Polyline_with_context.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/Polyline_with_context.h $ // $Id: Polyline_with_context.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/Profile_counter.h cgal-5.5/include/CGAL/Mesh_3/Profile_counter.h --- cgal-5.4.1/include/CGAL/Mesh_3/Profile_counter.h 2022-06-03 19:04:47.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/Profile_counter.h 2022-07-13 19:05:39.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/Profile_counter.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/Profile_counter.h $ // $Id: Profile_counter.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/Profiling_tools.h cgal-5.5/include/CGAL/Mesh_3/Profiling_tools.h --- cgal-5.4.1/include/CGAL/Mesh_3/Profiling_tools.h 2022-06-03 19:04:47.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/Profiling_tools.h 2022-07-13 19:05:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/Profiling_tools.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/Profiling_tools.h $ // $Id: Profiling_tools.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/Protect_edges_sizing_field.h cgal-5.5/include/CGAL/Mesh_3/Protect_edges_sizing_field.h --- cgal-5.4.1/include/CGAL/Mesh_3/Protect_edges_sizing_field.h 2022-06-03 19:04:47.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/Protect_edges_sizing_field.h 2022-07-13 19:05:39.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/Protect_edges_sizing_field.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/Protect_edges_sizing_field.h $ // $Id: Protect_edges_sizing_field.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/radius_ratio.h cgal-5.5/include/CGAL/Mesh_3/radius_ratio.h --- cgal-5.4.1/include/CGAL/Mesh_3/radius_ratio.h 2022-06-03 19:04:48.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/radius_ratio.h 2022-07-13 19:05:41.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/radius_ratio.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/radius_ratio.h $ // $Id: radius_ratio.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/Refine_cells_3.h cgal-5.5/include/CGAL/Mesh_3/Refine_cells_3.h --- cgal-5.4.1/include/CGAL/Mesh_3/Refine_cells_3.h 2022-06-03 19:04:47.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/Refine_cells_3.h 2022-07-13 19:05:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/Refine_cells_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/Refine_cells_3.h $ // $Id: Refine_cells_3.h 59a0da4 2021-05-19T17:23:53+02:00 Laurent Rineau // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/Refine_facets_3.h cgal-5.5/include/CGAL/Mesh_3/Refine_facets_3.h --- cgal-5.4.1/include/CGAL/Mesh_3/Refine_facets_3.h 2022-06-03 19:04:47.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/Refine_facets_3.h 2022-07-13 19:05:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/Refine_facets_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/Refine_facets_3.h $ // $Id: Refine_facets_3.h f8a2878 2021-07-13T11:38:43+02:00 Laurent Rineau // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/Refine_facets_manifold_base.h cgal-5.5/include/CGAL/Mesh_3/Refine_facets_manifold_base.h --- cgal-5.4.1/include/CGAL/Mesh_3/Refine_facets_manifold_base.h 2022-06-03 19:04:47.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/Refine_facets_manifold_base.h 2022-07-13 19:05:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/Refine_facets_manifold_base.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/Refine_facets_manifold_base.h $ // $Id: Refine_facets_manifold_base.h 17ac255 2021-05-18T15:43:59+02:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/Refine_tets_visitor.h cgal-5.5/include/CGAL/Mesh_3/Refine_tets_visitor.h --- cgal-5.4.1/include/CGAL/Mesh_3/Refine_tets_visitor.h 2022-06-03 19:04:47.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/Refine_tets_visitor.h 2022-07-13 19:05:40.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/Refine_tets_visitor.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/Refine_tets_visitor.h $ // $Id: Refine_tets_visitor.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/Robust_intersection_kernel.h cgal-5.5/include/CGAL/Mesh_3/Robust_intersection_kernel.h --- cgal-5.4.1/include/CGAL/Mesh_3/Robust_intersection_kernel.h 2022-06-03 19:04:47.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/Robust_intersection_kernel.h 2022-07-13 19:05:40.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/Robust_intersection_kernel.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/Robust_intersection_kernel.h $ // $Id: Robust_intersection_kernel.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/Robust_intersection_traits_3.h cgal-5.5/include/CGAL/Mesh_3/Robust_intersection_traits_3.h --- cgal-5.4.1/include/CGAL/Mesh_3/Robust_intersection_traits_3.h 2022-06-03 19:04:47.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/Robust_intersection_traits_3.h 2022-07-13 19:05:40.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/Robust_intersection_traits_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/Robust_intersection_traits_3.h $ // $Id: Robust_intersection_traits_3.h 5945e48 2021-09-17T08:14:06+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/search_for_connected_components_in_labeled_image.h cgal-5.5/include/CGAL/Mesh_3/search_for_connected_components_in_labeled_image.h --- cgal-5.4.1/include/CGAL/Mesh_3/search_for_connected_components_in_labeled_image.h 2022-06-03 19:04:48.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/search_for_connected_components_in_labeled_image.h 2022-07-13 19:05:41.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/search_for_connected_components_in_labeled_image.h $ -// $Id: search_for_connected_components_in_labeled_image.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/search_for_connected_components_in_labeled_image.h $ +// $Id: search_for_connected_components_in_labeled_image.h c32e2b1 2022-07-11T10:17:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -73,8 +73,7 @@ for(uint i=0; i -#ifdef CGAL_MESH_3_USE_RELAXED_HEAP -# error This option CGAL_MESH_3_USE_RELAXED_HEAP is no longer supported -// The reason is that the Boost relaxed heap does not ensure a strict order -// of the priority queue. -#include -#else #include -#endif //CGAL_MESH_3_USE_RELAXED_HEAP #include #include @@ -507,11 +500,8 @@ }; typedef std::less less_PVertex; - #ifdef CGAL_MESH_3_USE_RELAXED_HEAP - typedef boost::relaxed_heap PQueue; - #else - typedef ::CGAL::internal::mutable_queue_with_remove, less_PVertex, PVertex_id> PQueue; - #endif //CGAL_MESH_3_USE_RELAXED_HEAP + typedef Modifiable_priority_queue PQueue; + public: /** @@ -942,10 +932,9 @@ { this->create_task_group(); - while (pqueue.size() > 0) + while (!pqueue.empty()) { - PVertex pv = pqueue.top(); - pqueue.pop(); + PVertex pv = pqueue.top_and_pop(); enqueue_task(pv, sliver_bound, visitor, bad_vertices); } @@ -977,8 +966,7 @@ while ( !is_time_limit_reached() && !pqueue.empty() ) { // Get pqueue head - PVertex pv = pqueue.top(); - pqueue.pop(); + PVertex pv = pqueue.top_and_pop(); --pqueue_size; CGAL_assertion(pv.is_perturbable()); @@ -1245,7 +1233,7 @@ } else { - pqueue.remove(pv); + pqueue.erase(pv); return -1; } } diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/Slivers_exuder_cell_attributes_traits.h cgal-5.5/include/CGAL/Mesh_3/Slivers_exuder_cell_attributes_traits.h --- cgal-5.4.1/include/CGAL/Mesh_3/Slivers_exuder_cell_attributes_traits.h 2022-06-03 19:04:47.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/Slivers_exuder_cell_attributes_traits.h 2022-07-13 19:05:40.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/Slivers_exuder_cell_attributes_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/Slivers_exuder_cell_attributes_traits.h $ // $Id: Slivers_exuder_cell_attributes_traits.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/Slivers_exuder.h cgal-5.5/include/CGAL/Mesh_3/Slivers_exuder.h --- cgal-5.4.1/include/CGAL/Mesh_3/Slivers_exuder.h 2022-06-03 19:04:47.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/Slivers_exuder.h 2022-07-13 19:05:40.000000000 +0000 @@ -5,7 +5,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/Slivers_exuder.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/Slivers_exuder.h $ // $Id: Slivers_exuder.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/squared_distance_Point_3_Triangle_3.h cgal-5.5/include/CGAL/Mesh_3/squared_distance_Point_3_Triangle_3.h --- cgal-5.4.1/include/CGAL/Mesh_3/squared_distance_Point_3_Triangle_3.h 2022-06-03 19:04:48.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/squared_distance_Point_3_Triangle_3.h 2022-07-13 19:05:41.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/squared_distance_Point_3_Triangle_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/squared_distance_Point_3_Triangle_3.h $ // $Id: squared_distance_Point_3_Triangle_3.h 5deb509 2021-04-12T14:42:44+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/tet_soup_to_c3t3.h cgal-5.5/include/CGAL/Mesh_3/tet_soup_to_c3t3.h --- cgal-5.4.1/include/CGAL/Mesh_3/tet_soup_to_c3t3.h 2022-06-03 19:04:48.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/tet_soup_to_c3t3.h 2022-07-13 19:05:41.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/tet_soup_to_c3t3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/tet_soup_to_c3t3.h $ // $Id: tet_soup_to_c3t3.h 086299c 2021-01-08T10:39:24+01:00 Dmitry Anisimov // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/Triangle_accessor_primitive.h cgal-5.5/include/CGAL/Mesh_3/Triangle_accessor_primitive.h --- cgal-5.4.1/include/CGAL/Mesh_3/Triangle_accessor_primitive.h 2022-06-03 19:04:47.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/Triangle_accessor_primitive.h 2022-07-13 19:05:40.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/Triangle_accessor_primitive.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/Triangle_accessor_primitive.h $ // $Id: Triangle_accessor_primitive.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/Triangulation_helpers.h cgal-5.5/include/CGAL/Mesh_3/Triangulation_helpers.h --- cgal-5.4.1/include/CGAL/Mesh_3/Triangulation_helpers.h 2022-06-03 19:04:47.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/Triangulation_helpers.h 2022-07-13 19:05:40.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/Triangulation_helpers.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/Triangulation_helpers.h $ // $Id: Triangulation_helpers.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/Triangulation_sizing_field.h cgal-5.5/include/CGAL/Mesh_3/Triangulation_sizing_field.h --- cgal-5.4.1/include/CGAL/Mesh_3/Triangulation_sizing_field.h 2022-06-03 19:04:47.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/Triangulation_sizing_field.h 2022-07-13 19:05:40.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/Triangulation_sizing_field.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/Triangulation_sizing_field.h $ // $Id: Triangulation_sizing_field.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/Uniform_sizing_field.h cgal-5.5/include/CGAL/Mesh_3/Uniform_sizing_field.h --- cgal-5.4.1/include/CGAL/Mesh_3/Uniform_sizing_field.h 2022-06-03 19:04:47.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/Uniform_sizing_field.h 2022-07-13 19:05:40.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/Uniform_sizing_field.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/Uniform_sizing_field.h $ // $Id: Uniform_sizing_field.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/utilities.h cgal-5.5/include/CGAL/Mesh_3/utilities.h --- cgal-5.4.1/include/CGAL/Mesh_3/utilities.h 2022-06-03 19:04:48.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/utilities.h 2022-07-13 19:05:41.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/utilities.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/utilities.h $ // $Id: utilities.h 4dda7b6 2020-05-27T15:53:05+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/vertex_perturbation.h cgal-5.5/include/CGAL/Mesh_3/vertex_perturbation.h --- cgal-5.4.1/include/CGAL/Mesh_3/vertex_perturbation.h 2022-06-03 19:04:48.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/vertex_perturbation.h 2022-07-13 19:05:41.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/vertex_perturbation.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/vertex_perturbation.h $ // $Id: vertex_perturbation.h 315a0b5 2020-01-29T16:27:53+01:00 Laurent Rineau // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_3/Worksharing_data_structures.h cgal-5.5/include/CGAL/Mesh_3/Worksharing_data_structures.h --- cgal-5.4.1/include/CGAL/Mesh_3/Worksharing_data_structures.h 2022-06-03 19:04:47.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_3/Worksharing_data_structures.h 2022-07-13 19:05:40.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_3/Worksharing_data_structures.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/Worksharing_data_structures.h $ // $Id: Worksharing_data_structures.h 4fc2f59 2020-07-31T16:17:56+02:00 Laurent Rineau // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_cell_base_3.h cgal-5.5/include/CGAL/Mesh_cell_base_3.h --- cgal-5.4.1/include/CGAL/Mesh_cell_base_3.h 2022-06-03 19:04:48.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_cell_base_3.h 2022-07-13 19:05:41.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_cell_base_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_cell_base_3.h $ // $Id: Mesh_cell_base_3.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_cell_criteria_3.h cgal-5.5/include/CGAL/Mesh_cell_criteria_3.h --- cgal-5.4.1/include/CGAL/Mesh_cell_criteria_3.h 2022-06-03 19:04:48.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_cell_criteria_3.h 2022-07-13 19:05:41.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_cell_criteria_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_cell_criteria_3.h $ // $Id: Mesh_cell_criteria_3.h 393ae7d 2021-05-12T15:03:53+02:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_complex_3_in_triangulation_3.h cgal-5.5/include/CGAL/Mesh_complex_3_in_triangulation_3.h --- cgal-5.4.1/include/CGAL/Mesh_complex_3_in_triangulation_3.h 2022-06-03 19:04:48.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_complex_3_in_triangulation_3.h 2022-07-13 19:05:41.000000000 +0000 @@ -4,8 +4,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_complex_3_in_triangulation_3.h $ -// $Id: Mesh_complex_3_in_triangulation_3.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_complex_3_in_triangulation_3.h $ +// $Id: Mesh_complex_3_in_triangulation_3.h 591141b 2021-09-27T14:57:10+02:00 Jane Tournois // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -229,47 +229,105 @@ far_vertices_.push_back(vh); } + void remove_isolated_vertex(Vertex_handle v) + { + Triangulation& tr = triangulation(); + + std::vector new_cells; + new_cells.reserve(32); + tr.remove_and_give_new_cells(v, std::back_inserter(new_cells)); + + typename std::vector::iterator nc_it = new_cells.begin(); + typename std::vector::iterator nc_it_end = new_cells.end(); + for (; nc_it != nc_it_end; ++nc_it) + { + Cell_handle c = *nc_it; + for (int i = 0; i < 4; ++i) + { + Facet mirror_facet = tr.mirror_facet(std::make_pair(c, i)); + if (is_in_complex(mirror_facet)) + { + set_surface_patch_index(c, i, + surface_patch_index(mirror_facet)); + c->set_facet_surface_center(i, + mirror_facet.first->get_facet_surface_center(mirror_facet.second)); + } + } + /*int i_inf; + if (c->has_vertex(tr.infinite_vertex(), i_inf)) + { + Facet mirror_facet = tr.mirror_facet(std::make_pair(c, i_inf)); + if (is_in_complex(mirror_facet)) + { + set_surface_patch_index(c, i_inf, + surface_patch_index(mirror_facet)); + } + }*/ + } + } + void remove_far_points() { - Triangulation &tr = triangulation(); //triangulation().remove(far_vertices_.begin(), far_vertices_.end()); typename Far_vertices_vec::const_iterator it = far_vertices_.begin(); typename Far_vertices_vec::const_iterator it_end = far_vertices_.end(); for ( ; it != it_end ; ++it) { - std::vector new_cells; - new_cells.reserve(32); - tr.remove_and_give_new_cells(*it, std::back_inserter(new_cells)); - - typename std::vector::iterator nc_it = new_cells.begin(); - typename std::vector::iterator nc_it_end = new_cells.end(); - for ( ; nc_it != nc_it_end ; ++nc_it) + remove_isolated_vertex(*it); + } + far_vertices_.clear(); + } + + void remove_isolated_vertices() + { + Triangulation& tr = triangulation(); + for (Vertex_handle v : tr.finite_vertex_handles()) + v->set_meshing_info(0); + + for (typename Base::Cells_in_complex_iterator c = this->cells_in_complex_begin(); + c != this->cells_in_complex_end(); + ++c) + { + for (int i = 0; i < 4; ++i) { - Cell_handle c = *nc_it; - for (int i = 0 ; i < 4 ; ++i) - { - Facet mirror_facet = tr.mirror_facet(std::make_pair(c, i)); - if (is_in_complex(mirror_facet)) - { - set_surface_patch_index(c, i, - surface_patch_index(mirror_facet)); - c->set_facet_surface_center(i, - mirror_facet.first->get_facet_surface_center(mirror_facet.second)); - } - } - /*int i_inf; - if (c->has_vertex(tr.infinite_vertex(), i_inf)) - { - Facet mirror_facet = tr.mirror_facet(std::make_pair(c, i_inf)); - if (is_in_complex(mirror_facet)) - { - set_surface_patch_index(c, i_inf, - surface_patch_index(mirror_facet)); - } - }*/ + Vertex_handle vi = c->vertex(i); + vi->set_meshing_info(vi->meshing_info() + 1); + } + } + + for (typename Base::Facets_in_complex_iterator fit = this->facets_in_complex_begin(); + fit != this->facets_in_complex_end(); + ++fit) + { + Facet f = *fit; + for (int i = 1; i < 4; ++i) + { + Vertex_handle vi = f.first->vertex((f.second + i) % 4); + vi->set_meshing_info(vi->meshing_info() + 1); } } + + std::vector isolated; + for (Vertex_handle v : tr.finite_vertex_handles()) + { + if (v->meshing_info() == 0.) + isolated.push_back(v); + } + +#ifdef CGAL_MESH_3_VERBOSE + std::cout << "Remove " << isolated.size() << " isolated vertices..."; + std::cout.flush(); +#endif + + CGAL_assertion(far_vertices_.size() <= isolated.size()); far_vertices_.clear(); + + for (Vertex_handle v : isolated) + remove_isolated_vertex(v); + +#ifdef CGAL_MESH_3_VERBOSE + std::cout << "\nRemove " << isolated.size() << " isolated vertices done." << std::endl; +#endif } /** diff -Nru cgal-5.4.1/include/CGAL/Mesh_constant_domain_field_3.h cgal-5.5/include/CGAL/Mesh_constant_domain_field_3.h --- cgal-5.4.1/include/CGAL/Mesh_constant_domain_field_3.h 2022-06-03 19:04:48.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_constant_domain_field_3.h 2022-07-13 19:05:41.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_constant_domain_field_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_constant_domain_field_3.h $ // $Id: Mesh_constant_domain_field_3.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_criteria_3.h cgal-5.5/include/CGAL/Mesh_criteria_3.h --- cgal-5.4.1/include/CGAL/Mesh_criteria_3.h 2022-06-03 19:04:48.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_criteria_3.h 2022-07-13 19:05:41.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_criteria_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_criteria_3.h $ // $Id: Mesh_criteria_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_domain_with_polyline_features_3.h cgal-5.5/include/CGAL/Mesh_domain_with_polyline_features_3.h --- cgal-5.4.1/include/CGAL/Mesh_domain_with_polyline_features_3.h 2022-06-03 19:04:48.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_domain_with_polyline_features_3.h 2022-07-13 19:05:41.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_domain_with_polyline_features_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_domain_with_polyline_features_3.h $ // $Id: Mesh_domain_with_polyline_features_3.h 8166579 2021-10-11T19:58:07+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_edge_criteria_3.h cgal-5.5/include/CGAL/Mesh_edge_criteria_3.h --- cgal-5.4.1/include/CGAL/Mesh_edge_criteria_3.h 2022-06-03 19:04:48.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_edge_criteria_3.h 2022-07-13 19:05:41.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_edge_criteria_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_edge_criteria_3.h $ // $Id: Mesh_edge_criteria_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesher_level_default_implementations.h cgal-5.5/include/CGAL/Mesher_level_default_implementations.h --- cgal-5.4.1/include/CGAL/Mesher_level_default_implementations.h 2022-06-03 19:04:49.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesher_level_default_implementations.h 2022-07-13 19:05:42.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesher_level/include/CGAL/Mesher_level_default_implementations.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesher_level/include/CGAL/Mesher_level_default_implementations.h $ // $Id: Mesher_level_default_implementations.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesher_level.h cgal-5.5/include/CGAL/Mesher_level.h --- cgal-5.4.1/include/CGAL/Mesher_level.h 2022-06-03 19:04:49.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesher_level.h 2022-07-13 19:05:42.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesher_level/include/CGAL/Mesher_level.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesher_level/include/CGAL/Mesher_level.h $ // $Id: Mesher_level.h 5439dbd 2021-08-24T18:04:50+02:00 Jane Tournois // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesher_level_visitors.h cgal-5.5/include/CGAL/Mesher_level_visitors.h --- cgal-5.4.1/include/CGAL/Mesher_level_visitors.h 2022-06-03 19:04:49.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesher_level_visitors.h 2022-07-13 19:05:42.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesher_level/include/CGAL/Mesher_level_visitors.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesher_level/include/CGAL/Mesher_level_visitors.h $ // $Id: Mesher_level_visitors.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_error_code.h cgal-5.5/include/CGAL/Mesh_error_code.h --- cgal-5.4.1/include/CGAL/Mesh_error_code.h 2022-06-03 19:04:48.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_error_code.h 2022-07-13 19:05:41.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_error_code.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_error_code.h $ // $Id: Mesh_error_code.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Meshes/Double_map_container.h cgal-5.5/include/CGAL/Meshes/Double_map_container.h --- cgal-5.4.1/include/CGAL/Meshes/Double_map_container.h 2022-06-03 19:04:49.000000000 +0000 +++ cgal-5.5/include/CGAL/Meshes/Double_map_container.h 2022-07-13 19:05:42.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesher_level/include/CGAL/Meshes/Double_map_container.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesher_level/include/CGAL/Meshes/Double_map_container.h $ // $Id: Double_map_container.h 6fe18d8 2021-01-20T15:32:23+01:00 Laurent Rineau // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Meshes/Filtered_deque_container.h cgal-5.5/include/CGAL/Meshes/Filtered_deque_container.h --- cgal-5.4.1/include/CGAL/Meshes/Filtered_deque_container.h 2022-06-03 19:04:49.000000000 +0000 +++ cgal-5.5/include/CGAL/Meshes/Filtered_deque_container.h 2022-07-13 19:05:41.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Meshes/Filtered_deque_container.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Meshes/Filtered_deque_container.h $ // $Id: Filtered_deque_container.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Meshes/Filtered_multimap_container.h cgal-5.5/include/CGAL/Meshes/Filtered_multimap_container.h --- cgal-5.4.1/include/CGAL/Meshes/Filtered_multimap_container.h 2022-06-03 19:04:49.000000000 +0000 +++ cgal-5.5/include/CGAL/Meshes/Filtered_multimap_container.h 2022-07-13 19:05:41.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Meshes/Filtered_multimap_container.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Meshes/Filtered_multimap_container.h $ // $Id: Filtered_multimap_container.h 4fc2f59 2020-07-31T16:17:56+02:00 Laurent Rineau // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Meshes/Filtered_queue_container.h cgal-5.5/include/CGAL/Meshes/Filtered_queue_container.h --- cgal-5.4.1/include/CGAL/Meshes/Filtered_queue_container.h 2022-06-03 19:04:49.000000000 +0000 +++ cgal-5.5/include/CGAL/Meshes/Filtered_queue_container.h 2022-07-13 19:05:42.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesher_level/include/CGAL/Meshes/Filtered_queue_container.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesher_level/include/CGAL/Meshes/Filtered_queue_container.h $ // $Id: Filtered_queue_container.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Meshes/Simple_map_container.h cgal-5.5/include/CGAL/Meshes/Simple_map_container.h --- cgal-5.4.1/include/CGAL/Meshes/Simple_map_container.h 2022-06-03 19:04:49.000000000 +0000 +++ cgal-5.5/include/CGAL/Meshes/Simple_map_container.h 2022-07-13 19:05:42.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesher_level/include/CGAL/Meshes/Simple_map_container.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesher_level/include/CGAL/Meshes/Simple_map_container.h $ // $Id: Simple_map_container.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Meshes/Simple_queue_container.h cgal-5.5/include/CGAL/Meshes/Simple_queue_container.h --- cgal-5.4.1/include/CGAL/Meshes/Simple_queue_container.h 2022-06-03 19:04:49.000000000 +0000 +++ cgal-5.5/include/CGAL/Meshes/Simple_queue_container.h 2022-07-13 19:05:42.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesher_level/include/CGAL/Meshes/Simple_queue_container.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesher_level/include/CGAL/Meshes/Simple_queue_container.h $ // $Id: Simple_queue_container.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Meshes/Simple_set_container.h cgal-5.5/include/CGAL/Meshes/Simple_set_container.h --- cgal-5.4.1/include/CGAL/Meshes/Simple_set_container.h 2022-06-03 19:04:50.000000000 +0000 +++ cgal-5.5/include/CGAL/Meshes/Simple_set_container.h 2022-07-13 19:05:42.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesher_level/include/CGAL/Meshes/Simple_set_container.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesher_level/include/CGAL/Meshes/Simple_set_container.h $ // $Id: Simple_set_container.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Meshes/Triangulation_mesher_level_traits_2.h cgal-5.5/include/CGAL/Meshes/Triangulation_mesher_level_traits_2.h --- cgal-5.4.1/include/CGAL/Meshes/Triangulation_mesher_level_traits_2.h 2022-06-03 19:04:50.000000000 +0000 +++ cgal-5.5/include/CGAL/Meshes/Triangulation_mesher_level_traits_2.h 2022-07-13 19:05:42.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesher_level/include/CGAL/Meshes/Triangulation_mesher_level_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesher_level/include/CGAL/Meshes/Triangulation_mesher_level_traits_2.h $ // $Id: Triangulation_mesher_level_traits_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Meshes/Triangulation_mesher_level_traits_3.h cgal-5.5/include/CGAL/Meshes/Triangulation_mesher_level_traits_3.h --- cgal-5.4.1/include/CGAL/Meshes/Triangulation_mesher_level_traits_3.h 2022-06-03 19:04:50.000000000 +0000 +++ cgal-5.5/include/CGAL/Meshes/Triangulation_mesher_level_traits_3.h 2022-07-13 19:05:42.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesher_level/include/CGAL/Meshes/Triangulation_mesher_level_traits_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesher_level/include/CGAL/Meshes/Triangulation_mesher_level_traits_3.h $ // $Id: Triangulation_mesher_level_traits_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_facet_criteria_3.h cgal-5.5/include/CGAL/Mesh_facet_criteria_3.h --- cgal-5.4.1/include/CGAL/Mesh_facet_criteria_3.h 2022-06-03 19:04:49.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_facet_criteria_3.h 2022-07-13 19:05:41.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_facet_criteria_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_facet_criteria_3.h $ // $Id: Mesh_facet_criteria_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_facet_topology.h cgal-5.5/include/CGAL/Mesh_facet_topology.h --- cgal-5.4.1/include/CGAL/Mesh_facet_topology.h 2022-06-03 19:04:49.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_facet_topology.h 2022-07-13 19:05:41.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_facet_topology.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_facet_topology.h $ // $Id: Mesh_facet_topology.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_optimization_return_code.h cgal-5.5/include/CGAL/Mesh_optimization_return_code.h --- cgal-5.4.1/include/CGAL/Mesh_optimization_return_code.h 2022-06-03 19:04:49.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_optimization_return_code.h 2022-07-13 19:05:42.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesher_level/include/CGAL/Mesh_optimization_return_code.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesher_level/include/CGAL/Mesh_optimization_return_code.h $ // $Id: Mesh_optimization_return_code.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_polyhedron_3.h cgal-5.5/include/CGAL/Mesh_polyhedron_3.h --- cgal-5.4.1/include/CGAL/Mesh_polyhedron_3.h 2022-06-03 19:04:49.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_polyhedron_3.h 2022-07-13 19:05:41.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_polyhedron_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_polyhedron_3.h $ // $Id: Mesh_polyhedron_3.h 0f4559a 2021-04-06T17:39:54+02:00 Jane Tournois // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/mesh_segmentation.h cgal-5.5/include/CGAL/mesh_segmentation.h --- cgal-5.4.1/include/CGAL/mesh_segmentation.h 2022-06-03 19:05:55.000000000 +0000 +++ cgal-5.5/include/CGAL/mesh_segmentation.h 2022-07-13 19:06:52.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_segmentation/include/CGAL/mesh_segmentation.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_segmentation/include/CGAL/mesh_segmentation.h $ // $Id: mesh_segmentation.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/mesh_skin_surface_3.h cgal-5.5/include/CGAL/mesh_skin_surface_3.h --- cgal-5.4.1/include/CGAL/mesh_skin_surface_3.h 2022-06-03 19:05:45.000000000 +0000 +++ cgal-5.5/include/CGAL/mesh_skin_surface_3.h 2022-07-13 19:06:41.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Skin_surface_3/include/CGAL/mesh_skin_surface_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Skin_surface_3/include/CGAL/mesh_skin_surface_3.h $ // $Id: mesh_skin_surface_3.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_triangulation_3.h cgal-5.5/include/CGAL/Mesh_triangulation_3.h --- cgal-5.4.1/include/CGAL/Mesh_triangulation_3.h 2022-06-03 19:04:49.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_triangulation_3.h 2022-07-13 19:05:41.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_triangulation_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_triangulation_3.h $ // $Id: Mesh_triangulation_3.h 91d862d 2021-12-23T11:58:19+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/mesh_union_of_balls_3.h cgal-5.5/include/CGAL/mesh_union_of_balls_3.h --- cgal-5.4.1/include/CGAL/mesh_union_of_balls_3.h 2022-06-03 19:05:45.000000000 +0000 +++ cgal-5.5/include/CGAL/mesh_union_of_balls_3.h 2022-07-13 19:06:41.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Skin_surface_3/include/CGAL/mesh_union_of_balls_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Skin_surface_3/include/CGAL/mesh_union_of_balls_3.h $ // $Id: mesh_union_of_balls_3.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mesh_vertex_base_3.h cgal-5.5/include/CGAL/Mesh_vertex_base_3.h --- cgal-5.4.1/include/CGAL/Mesh_vertex_base_3.h 2022-06-03 19:04:49.000000000 +0000 +++ cgal-5.5/include/CGAL/Mesh_vertex_base_3.h 2022-07-13 19:05:41.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Mesh_vertex_base_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_vertex_base_3.h $ // $Id: Mesh_vertex_base_3.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Min_annulus_d.h cgal-5.5/include/CGAL/Min_annulus_d.h --- cgal-5.4.1/include/CGAL/Min_annulus_d.h 2022-06-03 19:03:53.000000000 +0000 +++ cgal-5.5/include/CGAL/Min_annulus_d.h 2022-07-13 19:04:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Bounding_volumes/include/CGAL/Min_annulus_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Bounding_volumes/include/CGAL/Min_annulus_d.h $ // $Id: Min_annulus_d.h 78ff918 2021-06-23T23:34:14+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Min_circle_2/Min_circle_2_adapterC2.h cgal-5.5/include/CGAL/Min_circle_2/Min_circle_2_adapterC2.h --- cgal-5.4.1/include/CGAL/Min_circle_2/Min_circle_2_adapterC2.h 2022-06-03 19:03:53.000000000 +0000 +++ cgal-5.5/include/CGAL/Min_circle_2/Min_circle_2_adapterC2.h 2022-07-13 19:04:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Bounding_volumes/include/CGAL/Min_circle_2/Min_circle_2_adapterC2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Bounding_volumes/include/CGAL/Min_circle_2/Min_circle_2_adapterC2.h $ // $Id: Min_circle_2_adapterC2.h 78ff918 2021-06-23T23:34:14+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Min_circle_2/Min_circle_2_adapterH2.h cgal-5.5/include/CGAL/Min_circle_2/Min_circle_2_adapterH2.h --- cgal-5.4.1/include/CGAL/Min_circle_2/Min_circle_2_adapterH2.h 2022-06-03 19:03:53.000000000 +0000 +++ cgal-5.5/include/CGAL/Min_circle_2/Min_circle_2_adapterH2.h 2022-07-13 19:04:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Bounding_volumes/include/CGAL/Min_circle_2/Min_circle_2_adapterH2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Bounding_volumes/include/CGAL/Min_circle_2/Min_circle_2_adapterH2.h $ // $Id: Min_circle_2_adapterH2.h 78ff918 2021-06-23T23:34:14+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Min_circle_2/Min_circle_2_impl.h cgal-5.5/include/CGAL/Min_circle_2/Min_circle_2_impl.h --- cgal-5.4.1/include/CGAL/Min_circle_2/Min_circle_2_impl.h 2022-06-03 19:03:53.000000000 +0000 +++ cgal-5.5/include/CGAL/Min_circle_2/Min_circle_2_impl.h 2022-07-13 19:04:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Bounding_volumes/include/CGAL/Min_circle_2/Min_circle_2_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Bounding_volumes/include/CGAL/Min_circle_2/Min_circle_2_impl.h $ // $Id: Min_circle_2_impl.h 78ff918 2021-06-23T23:34:14+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Min_circle_2/Optimisation_circle_2.h cgal-5.5/include/CGAL/Min_circle_2/Optimisation_circle_2.h --- cgal-5.4.1/include/CGAL/Min_circle_2/Optimisation_circle_2.h 2022-06-03 19:03:53.000000000 +0000 +++ cgal-5.5/include/CGAL/Min_circle_2/Optimisation_circle_2.h 2022-07-13 19:04:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Bounding_volumes/include/CGAL/Min_circle_2/Optimisation_circle_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Bounding_volumes/include/CGAL/Min_circle_2/Optimisation_circle_2.h $ // $Id: Optimisation_circle_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Min_circle_2/Optimisation_circle_2_impl.h cgal-5.5/include/CGAL/Min_circle_2/Optimisation_circle_2_impl.h --- cgal-5.4.1/include/CGAL/Min_circle_2/Optimisation_circle_2_impl.h 2022-06-03 19:03:53.000000000 +0000 +++ cgal-5.5/include/CGAL/Min_circle_2/Optimisation_circle_2_impl.h 2022-07-13 19:04:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Bounding_volumes/include/CGAL/Min_circle_2/Optimisation_circle_2_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Bounding_volumes/include/CGAL/Min_circle_2/Optimisation_circle_2_impl.h $ // $Id: Optimisation_circle_2_impl.h 78ff918 2021-06-23T23:34:14+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Min_circle_2.h cgal-5.5/include/CGAL/Min_circle_2.h --- cgal-5.4.1/include/CGAL/Min_circle_2.h 2022-06-03 19:03:53.000000000 +0000 +++ cgal-5.5/include/CGAL/Min_circle_2.h 2022-07-13 19:04:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Bounding_volumes/include/CGAL/Min_circle_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Bounding_volumes/include/CGAL/Min_circle_2.h $ // $Id: Min_circle_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Min_circle_2_traits_2.h cgal-5.5/include/CGAL/Min_circle_2_traits_2.h --- cgal-5.4.1/include/CGAL/Min_circle_2_traits_2.h 2022-06-03 19:03:53.000000000 +0000 +++ cgal-5.5/include/CGAL/Min_circle_2_traits_2.h 2022-07-13 19:04:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Bounding_volumes/include/CGAL/Min_circle_2_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Bounding_volumes/include/CGAL/Min_circle_2_traits_2.h $ // $Id: Min_circle_2_traits_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Min_ellipse_2/Min_ellipse_2_adapterC2.h cgal-5.5/include/CGAL/Min_ellipse_2/Min_ellipse_2_adapterC2.h --- cgal-5.4.1/include/CGAL/Min_ellipse_2/Min_ellipse_2_adapterC2.h 2022-06-03 19:03:53.000000000 +0000 +++ cgal-5.5/include/CGAL/Min_ellipse_2/Min_ellipse_2_adapterC2.h 2022-07-13 19:04:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Bounding_volumes/include/CGAL/Min_ellipse_2/Min_ellipse_2_adapterC2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Bounding_volumes/include/CGAL/Min_ellipse_2/Min_ellipse_2_adapterC2.h $ // $Id: Min_ellipse_2_adapterC2.h 78ff918 2021-06-23T23:34:14+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Min_ellipse_2/Min_ellipse_2_adapterH2.h cgal-5.5/include/CGAL/Min_ellipse_2/Min_ellipse_2_adapterH2.h --- cgal-5.4.1/include/CGAL/Min_ellipse_2/Min_ellipse_2_adapterH2.h 2022-06-03 19:03:53.000000000 +0000 +++ cgal-5.5/include/CGAL/Min_ellipse_2/Min_ellipse_2_adapterH2.h 2022-07-13 19:04:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Bounding_volumes/include/CGAL/Min_ellipse_2/Min_ellipse_2_adapterH2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Bounding_volumes/include/CGAL/Min_ellipse_2/Min_ellipse_2_adapterH2.h $ // $Id: Min_ellipse_2_adapterH2.h 78ff918 2021-06-23T23:34:14+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Min_ellipse_2/Min_ellipse_2_impl.h cgal-5.5/include/CGAL/Min_ellipse_2/Min_ellipse_2_impl.h --- cgal-5.4.1/include/CGAL/Min_ellipse_2/Min_ellipse_2_impl.h 2022-06-03 19:03:53.000000000 +0000 +++ cgal-5.5/include/CGAL/Min_ellipse_2/Min_ellipse_2_impl.h 2022-07-13 19:04:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Bounding_volumes/include/CGAL/Min_ellipse_2/Min_ellipse_2_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Bounding_volumes/include/CGAL/Min_ellipse_2/Min_ellipse_2_impl.h $ // $Id: Min_ellipse_2_impl.h 78ff918 2021-06-23T23:34:14+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Min_ellipse_2/Optimisation_ellipse_2.h cgal-5.5/include/CGAL/Min_ellipse_2/Optimisation_ellipse_2.h --- cgal-5.4.1/include/CGAL/Min_ellipse_2/Optimisation_ellipse_2.h 2022-06-03 19:03:53.000000000 +0000 +++ cgal-5.5/include/CGAL/Min_ellipse_2/Optimisation_ellipse_2.h 2022-07-13 19:04:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Bounding_volumes/include/CGAL/Min_ellipse_2/Optimisation_ellipse_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Bounding_volumes/include/CGAL/Min_ellipse_2/Optimisation_ellipse_2.h $ // $Id: Optimisation_ellipse_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Min_ellipse_2/Optimisation_ellipse_2_impl.h cgal-5.5/include/CGAL/Min_ellipse_2/Optimisation_ellipse_2_impl.h --- cgal-5.4.1/include/CGAL/Min_ellipse_2/Optimisation_ellipse_2_impl.h 2022-06-03 19:03:53.000000000 +0000 +++ cgal-5.5/include/CGAL/Min_ellipse_2/Optimisation_ellipse_2_impl.h 2022-07-13 19:04:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Bounding_volumes/include/CGAL/Min_ellipse_2/Optimisation_ellipse_2_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Bounding_volumes/include/CGAL/Min_ellipse_2/Optimisation_ellipse_2_impl.h $ // $Id: Optimisation_ellipse_2_impl.h 78ff918 2021-06-23T23:34:14+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Min_ellipse_2.h cgal-5.5/include/CGAL/Min_ellipse_2.h --- cgal-5.4.1/include/CGAL/Min_ellipse_2.h 2022-06-03 19:03:53.000000000 +0000 +++ cgal-5.5/include/CGAL/Min_ellipse_2.h 2022-07-13 19:04:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Bounding_volumes/include/CGAL/Min_ellipse_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Bounding_volumes/include/CGAL/Min_ellipse_2.h $ // $Id: Min_ellipse_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Min_ellipse_2_traits_2.h cgal-5.5/include/CGAL/Min_ellipse_2_traits_2.h --- cgal-5.4.1/include/CGAL/Min_ellipse_2_traits_2.h 2022-06-03 19:03:53.000000000 +0000 +++ cgal-5.5/include/CGAL/Min_ellipse_2_traits_2.h 2022-07-13 19:04:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Bounding_volumes/include/CGAL/Min_ellipse_2_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Bounding_volumes/include/CGAL/Min_ellipse_2_traits_2.h $ // $Id: Min_ellipse_2_traits_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/minimum_enclosing_quadrilateral_2.h cgal-5.5/include/CGAL/minimum_enclosing_quadrilateral_2.h --- cgal-5.4.1/include/CGAL/minimum_enclosing_quadrilateral_2.h 2022-06-03 19:03:54.000000000 +0000 +++ cgal-5.5/include/CGAL/minimum_enclosing_quadrilateral_2.h 2022-07-13 19:04:40.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Bounding_volumes/include/CGAL/minimum_enclosing_quadrilateral_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Bounding_volumes/include/CGAL/minimum_enclosing_quadrilateral_2.h $ // $Id: minimum_enclosing_quadrilateral_2.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Minimum_enclosing_quadrilateral_traits_2.h cgal-5.5/include/CGAL/Minimum_enclosing_quadrilateral_traits_2.h --- cgal-5.4.1/include/CGAL/Minimum_enclosing_quadrilateral_traits_2.h 2022-06-03 19:03:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Minimum_enclosing_quadrilateral_traits_2.h 2022-07-13 19:04:40.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Bounding_volumes/include/CGAL/Minimum_enclosing_quadrilateral_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Bounding_volumes/include/CGAL/Minimum_enclosing_quadrilateral_traits_2.h $ // $Id: Minimum_enclosing_quadrilateral_traits_2.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Minkowski_sum_2/AABB_collision_detector_2.h cgal-5.5/include/CGAL/Minkowski_sum_2/AABB_collision_detector_2.h --- cgal-5.4.1/include/CGAL/Minkowski_sum_2/AABB_collision_detector_2.h 2022-06-03 19:04:51.000000000 +0000 +++ cgal-5.5/include/CGAL/Minkowski_sum_2/AABB_collision_detector_2.h 2022-07-13 19:05:44.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Minkowski_sum_2/include/CGAL/Minkowski_sum_2/AABB_collision_detector_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Minkowski_sum_2/include/CGAL/Minkowski_sum_2/AABB_collision_detector_2.h $ // $Id: AABB_collision_detector_2.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Minkowski_sum_2/AABB_node_with_join.h cgal-5.5/include/CGAL/Minkowski_sum_2/AABB_node_with_join.h --- cgal-5.4.1/include/CGAL/Minkowski_sum_2/AABB_node_with_join.h 2022-06-03 19:04:51.000000000 +0000 +++ cgal-5.5/include/CGAL/Minkowski_sum_2/AABB_node_with_join.h 2022-07-13 19:05:44.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Minkowski_sum_2/include/CGAL/Minkowski_sum_2/AABB_node_with_join.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Minkowski_sum_2/include/CGAL/Minkowski_sum_2/AABB_node_with_join.h $ // $Id: AABB_node_with_join.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Minkowski_sum_2/AABB_segment_2_primitive.h cgal-5.5/include/CGAL/Minkowski_sum_2/AABB_segment_2_primitive.h --- cgal-5.4.1/include/CGAL/Minkowski_sum_2/AABB_segment_2_primitive.h 2022-06-03 19:04:51.000000000 +0000 +++ cgal-5.5/include/CGAL/Minkowski_sum_2/AABB_segment_2_primitive.h 2022-07-13 19:05:44.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Minkowski_sum_2/include/CGAL/Minkowski_sum_2/AABB_segment_2_primitive.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Minkowski_sum_2/include/CGAL/Minkowski_sum_2/AABB_segment_2_primitive.h $ // $Id: AABB_segment_2_primitive.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Minkowski_sum_2/AABB_traits_2.h cgal-5.5/include/CGAL/Minkowski_sum_2/AABB_traits_2.h --- cgal-5.4.1/include/CGAL/Minkowski_sum_2/AABB_traits_2.h 2022-06-03 19:04:51.000000000 +0000 +++ cgal-5.5/include/CGAL/Minkowski_sum_2/AABB_traits_2.h 2022-07-13 19:05:44.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Minkowski_sum_2/include/CGAL/Minkowski_sum_2/AABB_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Minkowski_sum_2/include/CGAL/Minkowski_sum_2/AABB_traits_2.h $ // $Id: AABB_traits_2.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Minkowski_sum_2/AABB_traversal_traits_with_join.h cgal-5.5/include/CGAL/Minkowski_sum_2/AABB_traversal_traits_with_join.h --- cgal-5.4.1/include/CGAL/Minkowski_sum_2/AABB_traversal_traits_with_join.h 2022-06-03 19:04:51.000000000 +0000 +++ cgal-5.5/include/CGAL/Minkowski_sum_2/AABB_traversal_traits_with_join.h 2022-07-13 19:05:44.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Minkowski_sum_2/include/CGAL/Minkowski_sum_2/AABB_traversal_traits_with_join.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Minkowski_sum_2/include/CGAL/Minkowski_sum_2/AABB_traversal_traits_with_join.h $ // $Id: AABB_traversal_traits_with_join.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Minkowski_sum_2/AABB_tree_with_join.h cgal-5.5/include/CGAL/Minkowski_sum_2/AABB_tree_with_join.h --- cgal-5.4.1/include/CGAL/Minkowski_sum_2/AABB_tree_with_join.h 2022-06-03 19:04:51.000000000 +0000 +++ cgal-5.5/include/CGAL/Minkowski_sum_2/AABB_tree_with_join.h 2022-07-13 19:05:44.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Minkowski_sum_2/include/CGAL/Minkowski_sum_2/AABB_tree_with_join.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Minkowski_sum_2/include/CGAL/Minkowski_sum_2/AABB_tree_with_join.h $ // $Id: AABB_tree_with_join.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Minkowski_sum_2/Approx_offset_base_2.h cgal-5.5/include/CGAL/Minkowski_sum_2/Approx_offset_base_2.h --- cgal-5.4.1/include/CGAL/Minkowski_sum_2/Approx_offset_base_2.h 2022-06-03 19:04:51.000000000 +0000 +++ cgal-5.5/include/CGAL/Minkowski_sum_2/Approx_offset_base_2.h 2022-07-13 19:05:44.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Minkowski_sum_2/include/CGAL/Minkowski_sum_2/Approx_offset_base_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Minkowski_sum_2/include/CGAL/Minkowski_sum_2/Approx_offset_base_2.h $ // $Id: Approx_offset_base_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Minkowski_sum_2/Arr_labeled_traits_2.h cgal-5.5/include/CGAL/Minkowski_sum_2/Arr_labeled_traits_2.h --- cgal-5.4.1/include/CGAL/Minkowski_sum_2/Arr_labeled_traits_2.h 2022-06-03 19:04:51.000000000 +0000 +++ cgal-5.5/include/CGAL/Minkowski_sum_2/Arr_labeled_traits_2.h 2022-07-13 19:05:44.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Minkowski_sum_2/include/CGAL/Minkowski_sum_2/Arr_labeled_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Minkowski_sum_2/include/CGAL/Minkowski_sum_2/Arr_labeled_traits_2.h $ // $Id: Arr_labeled_traits_2.h 3863b96 2020-04-06T02:01:25+03:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Minkowski_sum_2/Decomposition_strategy_adapter.h cgal-5.5/include/CGAL/Minkowski_sum_2/Decomposition_strategy_adapter.h --- cgal-5.4.1/include/CGAL/Minkowski_sum_2/Decomposition_strategy_adapter.h 2022-06-03 19:04:51.000000000 +0000 +++ cgal-5.5/include/CGAL/Minkowski_sum_2/Decomposition_strategy_adapter.h 2022-07-13 19:05:44.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Minkowski_sum_2/include/CGAL/Minkowski_sum_2/Decomposition_strategy_adapter.h $ -// $Id: Decomposition_strategy_adapter.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Minkowski_sum_2/include/CGAL/Minkowski_sum_2/Decomposition_strategy_adapter.h $ +// $Id: Decomposition_strategy_adapter.h 414103f 2022-02-21T17:17:34+02:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Ron Wein @@ -51,12 +51,34 @@ bool m_own_traits; // inidicates whether the kernel should be freed up. public: + // The pointer to the traits and the flag that indicate ownership should be + // replaced with a smart pointer. Meanwhile, the copy constructor and + // copy assignment prevent double delition. Notice that once a copy + // constructor (assignment) is present, the move constructor (assignment) + // is implicitly not generated anyway. + /*! Default constructor. */ Polygon_decomposition_strategy_adapter() : m_traits(nullptr), m_own_traits(false) { init(); } + /*! Copy constructor. */ + Polygon_decomposition_strategy_adapter + (const Polygon_decomposition_strategy_adapter& other) : + m_traits((other.m_own_traits) ? new Traits_2 : other.m_traits), + m_own_traits(other.m_own_traits) + { init(); } + + /*! Copy assignment. */ + Polygon_decomposition_strategy_adapter& + operator=(const Polygon_decomposition_strategy_adapter& other) { + m_traits = (other.m_own_traits) ? new Traits_2 : other.m_traits; + m_own_traits = other.m_own_traits; + init(); + return *this; + } + /*! Constructor. */ Polygon_decomposition_strategy_adapter(const Traits_2& traits) : m_traits(traits), diff -Nru cgal-5.4.1/include/CGAL/Minkowski_sum_2/Exact_offset_base_2.h cgal-5.5/include/CGAL/Minkowski_sum_2/Exact_offset_base_2.h --- cgal-5.4.1/include/CGAL/Minkowski_sum_2/Exact_offset_base_2.h 2022-06-03 19:04:52.000000000 +0000 +++ cgal-5.5/include/CGAL/Minkowski_sum_2/Exact_offset_base_2.h 2022-07-13 19:05:44.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Minkowski_sum_2/include/CGAL/Minkowski_sum_2/Exact_offset_base_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Minkowski_sum_2/include/CGAL/Minkowski_sum_2/Exact_offset_base_2.h $ // $Id: Exact_offset_base_2.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Minkowski_sum_2/Hole_filter_2.h cgal-5.5/include/CGAL/Minkowski_sum_2/Hole_filter_2.h --- cgal-5.4.1/include/CGAL/Minkowski_sum_2/Hole_filter_2.h 2022-06-03 19:04:52.000000000 +0000 +++ cgal-5.5/include/CGAL/Minkowski_sum_2/Hole_filter_2.h 2022-07-13 19:05:44.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Minkowski_sum_2/include/CGAL/Minkowski_sum_2/Hole_filter_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Minkowski_sum_2/include/CGAL/Minkowski_sum_2/Hole_filter_2.h $ // $Id: Hole_filter_2.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Minkowski_sum_2/Labels.h cgal-5.5/include/CGAL/Minkowski_sum_2/Labels.h --- cgal-5.4.1/include/CGAL/Minkowski_sum_2/Labels.h 2022-06-03 19:04:52.000000000 +0000 +++ cgal-5.5/include/CGAL/Minkowski_sum_2/Labels.h 2022-07-13 19:05:44.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Minkowski_sum_2/include/CGAL/Minkowski_sum_2/Labels.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Minkowski_sum_2/include/CGAL/Minkowski_sum_2/Labels.h $ // $Id: Labels.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Minkowski_sum_2/Minkowski_sum_by_reduced_convolution_2.h cgal-5.5/include/CGAL/Minkowski_sum_2/Minkowski_sum_by_reduced_convolution_2.h --- cgal-5.4.1/include/CGAL/Minkowski_sum_2/Minkowski_sum_by_reduced_convolution_2.h 2022-06-03 19:04:52.000000000 +0000 +++ cgal-5.5/include/CGAL/Minkowski_sum_2/Minkowski_sum_by_reduced_convolution_2.h 2022-07-13 19:05:44.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Minkowski_sum_2/include/CGAL/Minkowski_sum_2/Minkowski_sum_by_reduced_convolution_2.h $ -// $Id: Minkowski_sum_by_reduced_convolution_2.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Minkowski_sum_2/include/CGAL/Minkowski_sum_2/Minkowski_sum_by_reduced_convolution_2.h $ +// $Id: Minkowski_sum_by_reduced_convolution_2.h 4ffc949 2022-02-03T17:11:20+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s): Sebastian Morr @@ -20,10 +20,10 @@ #include #include +#include #include -#include -#include +#include namespace CGAL { @@ -240,7 +240,7 @@ std::vector p2_dirs = directions_of_polygon(p2_vertices); // Contains states that were already visited - boost::unordered_set visited_states; + std::unordered_set> visited_states; // Init the queue with vertices from the first column std::queue state_queue; diff -Nru cgal-5.4.1/include/CGAL/Minkowski_sum_2/Minkowski_sum_conv_2.h cgal-5.5/include/CGAL/Minkowski_sum_2/Minkowski_sum_conv_2.h --- cgal-5.4.1/include/CGAL/Minkowski_sum_2/Minkowski_sum_conv_2.h 2022-06-03 19:04:52.000000000 +0000 +++ cgal-5.5/include/CGAL/Minkowski_sum_2/Minkowski_sum_conv_2.h 2022-07-13 19:05:44.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Minkowski_sum_2/include/CGAL/Minkowski_sum_2/Minkowski_sum_conv_2.h $ -// $Id: Minkowski_sum_conv_2.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Minkowski_sum_2/include/CGAL/Minkowski_sum_2/Minkowski_sum_conv_2.h $ +// $Id: Minkowski_sum_conv_2.h 414103f 2022-02-21T17:17:34+02:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Ron Wein @@ -117,12 +117,34 @@ Ccw_in_between_2 f_ccw_in_between; public: + // The pointer to the kernel and the flag that indicate ownership should be + // replaced with a smart pointer. Meanwhile, the copy constructor and + // copy assignment prevent double delition. Notice that once a copy + // constructor (assignment) is present, the move constructor (assignment) + // is implicitly not generated anyway. + /*! Default constructor. */ Minkowski_sum_by_convolution_2() : m_kernel(new Kernel), m_own_kernel(true) { init(); } + /*! Copy constructor. */ + Minkowski_sum_by_convolution_2 + (const Minkowski_sum_by_convolution_2& other) : + m_kernel((other.m_own_kernel) ? new Kernel : other.m_kernel), + m_own_kernel(other.m_own_kernel) + { init(); } + + /*! Copy assignment. */ + Minkowski_sum_by_convolution_2& + operator=(const Minkowski_sum_by_convolution_2& other) { + m_kernel = (other.m_own_kernel) ? new Kernel : other.m_kernel; + m_own_kernel = other.m_own_kernel; + init(); + return *this; + } + /*! Constructor. */ Minkowski_sum_by_convolution_2(const Kernel& kernel) : m_kernel(&kernel), diff -Nru cgal-5.4.1/include/CGAL/Minkowski_sum_2/Minkowski_sum_decomp_2.h cgal-5.5/include/CGAL/Minkowski_sum_2/Minkowski_sum_decomp_2.h --- cgal-5.4.1/include/CGAL/Minkowski_sum_2/Minkowski_sum_decomp_2.h 2022-06-03 19:04:52.000000000 +0000 +++ cgal-5.5/include/CGAL/Minkowski_sum_2/Minkowski_sum_decomp_2.h 2022-07-13 19:05:44.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Minkowski_sum_2/include/CGAL/Minkowski_sum_2/Minkowski_sum_decomp_2.h $ -// $Id: Minkowski_sum_decomp_2.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Minkowski_sum_2/include/CGAL/Minkowski_sum_2/Minkowski_sum_decomp_2.h $ +// $Id: Minkowski_sum_decomp_2.h 414103f 2022-02-21T17:17:34+02:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Ron Wein @@ -90,6 +90,12 @@ Compare_xy_2 f_compare_xy; public: + // The pointers and the corresponding flags that indicate ownerships should + // be replaced with smart pointers. Meanwhile, the copy constructor and + // copy assignment prevent double delition. Notice that once a copy + // constructor (assignment) is present, the move constructor (assignment) + // is implicitly not generated anyway. + //! Default constructor. Minkowski_sum_by_decomposition_2() : m_decomposition_strategy1(nullptr), @@ -100,6 +106,36 @@ m_own_traits(false) { init(); } + //! Copy constructor. + Minkowski_sum_by_decomposition_2 + (const Minkowski_sum_by_decomposition_2& other) : + m_decomposition_strategy1((other.m_own_strategy1) ? + new Decomposition_strategy1 : + other.m_decomposition_strategy1), + m_decomposition_strategy2((other.m_own_strategy2) ? + new Decomposition_strategy2 : + other.m_decomposition_strategy2), + m_own_strategy1(other.m_own_strategy1), + m_own_strategy2(other.m_own_strategy2), + m_traits((other.m_own_traits) ? new Traits_2 : other.m_traits), + m_own_traits(other.m_own_traits) + { init(); } + + //! Copy assignment. + Minkowski_sum_by_decomposition_2& + operator=(const Minkowski_sum_by_decomposition_2& other) { + m_decomposition_strategy1 = (other.m_own_strategy1) ? + new Decomposition_strategy1 : other.m_decomposition_strategy1; + m_decomposition_strategy2 = (other.m_own_strategy2) ? + new Decomposition_strategy2 : other.m_decomposition_strategy2; + m_own_strategy1 = other.m_own_strategy1; + m_own_strategy2 = other.m_own_strategy2; + m_traits = (other.m_own_traits) ? new Traits_2 : other.m_traits; + m_own_traits = other.m_own_traits; + init(); + return *this; + } + //! Constructor. Minkowski_sum_by_decomposition_2(const Decomposition_strategy1& strategy1, const Decomposition_strategy2& strategy2, diff -Nru cgal-5.4.1/include/CGAL/Minkowski_sum_2/Offset_conv_2.h cgal-5.5/include/CGAL/Minkowski_sum_2/Offset_conv_2.h --- cgal-5.4.1/include/CGAL/Minkowski_sum_2/Offset_conv_2.h 2022-06-03 19:04:52.000000000 +0000 +++ cgal-5.5/include/CGAL/Minkowski_sum_2/Offset_conv_2.h 2022-07-13 19:05:44.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Minkowski_sum_2/include/CGAL/Minkowski_sum_2/Offset_conv_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Minkowski_sum_2/include/CGAL/Minkowski_sum_2/Offset_conv_2.h $ // $Id: Offset_conv_2.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Minkowski_sum_2/Offset_decomp_2.h cgal-5.5/include/CGAL/Minkowski_sum_2/Offset_decomp_2.h --- cgal-5.4.1/include/CGAL/Minkowski_sum_2/Offset_decomp_2.h 2022-06-03 19:04:52.000000000 +0000 +++ cgal-5.5/include/CGAL/Minkowski_sum_2/Offset_decomp_2.h 2022-07-13 19:05:44.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Minkowski_sum_2/include/CGAL/Minkowski_sum_2/Offset_decomp_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Minkowski_sum_2/include/CGAL/Minkowski_sum_2/Offset_decomp_2.h $ // $Id: Offset_decomp_2.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Minkowski_sum_2/Polygon_convex_decomposition.h cgal-5.5/include/CGAL/Minkowski_sum_2/Polygon_convex_decomposition.h --- cgal-5.4.1/include/CGAL/Minkowski_sum_2/Polygon_convex_decomposition.h 2022-06-03 19:04:52.000000000 +0000 +++ cgal-5.5/include/CGAL/Minkowski_sum_2/Polygon_convex_decomposition.h 2022-07-13 19:05:44.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Minkowski_sum_2/include/CGAL/Minkowski_sum_2/Polygon_convex_decomposition.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Minkowski_sum_2/include/CGAL/Minkowski_sum_2/Polygon_convex_decomposition.h $ // $Id: Polygon_convex_decomposition.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Minkowski_sum_2/Union_of_curve_cycles_2.h cgal-5.5/include/CGAL/Minkowski_sum_2/Union_of_curve_cycles_2.h --- cgal-5.4.1/include/CGAL/Minkowski_sum_2/Union_of_curve_cycles_2.h 2022-06-03 19:04:52.000000000 +0000 +++ cgal-5.5/include/CGAL/Minkowski_sum_2/Union_of_curve_cycles_2.h 2022-07-13 19:05:45.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Minkowski_sum_2/include/CGAL/Minkowski_sum_2/Union_of_curve_cycles_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Minkowski_sum_2/include/CGAL/Minkowski_sum_2/Union_of_curve_cycles_2.h $ // $Id: Union_of_curve_cycles_2.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Minkowski_sum_2/Union_of_cycles_2.h cgal-5.5/include/CGAL/Minkowski_sum_2/Union_of_cycles_2.h --- cgal-5.4.1/include/CGAL/Minkowski_sum_2/Union_of_cycles_2.h 2022-06-03 19:04:52.000000000 +0000 +++ cgal-5.5/include/CGAL/Minkowski_sum_2/Union_of_cycles_2.h 2022-07-13 19:05:45.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Minkowski_sum_2/include/CGAL/Minkowski_sum_2/Union_of_cycles_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Minkowski_sum_2/include/CGAL/Minkowski_sum_2/Union_of_cycles_2.h $ // $Id: Union_of_cycles_2.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Minkowski_sum_2/Union_of_segment_cycles_2.h cgal-5.5/include/CGAL/Minkowski_sum_2/Union_of_segment_cycles_2.h --- cgal-5.4.1/include/CGAL/Minkowski_sum_2/Union_of_segment_cycles_2.h 2022-06-03 19:04:52.000000000 +0000 +++ cgal-5.5/include/CGAL/Minkowski_sum_2/Union_of_segment_cycles_2.h 2022-07-13 19:05:45.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Minkowski_sum_2/include/CGAL/Minkowski_sum_2/Union_of_segment_cycles_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Minkowski_sum_2/include/CGAL/Minkowski_sum_2/Union_of_segment_cycles_2.h $ // $Id: Union_of_segment_cycles_2.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/minkowski_sum_2.h cgal-5.5/include/CGAL/minkowski_sum_2.h --- cgal-5.4.1/include/CGAL/minkowski_sum_2.h 2022-06-03 19:04:52.000000000 +0000 +++ cgal-5.5/include/CGAL/minkowski_sum_2.h 2022-07-13 19:05:45.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Minkowski_sum_2/include/CGAL/minkowski_sum_2.h $ -// $Id: minkowski_sum_2.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Minkowski_sum_2/include/CGAL/minkowski_sum_2.h $ +// $Id: minkowski_sum_2.h 4e48b0b 2021-11-03T15:10:16+02:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Ron Wein @@ -761,10 +761,10 @@ const Decomposition_& decomp, const Gps_segment_traits_2& traits) { - typedef Kernel_ Kernel; - typedef Container_ Container; - typedef Decomposition_ Decomposition; - typedef Polygon_nop_decomposition_2 Nop_decomposition; + typedef Kernel_ Kernel; + typedef Container_ Container; + typedef Decomposition_ Decomposition; + typedef Polygon_nop_decomposition_2 Nop_decomposition; if (pgn1.is_convex()) { Nop_decomposition decomp_nop; @@ -839,11 +839,11 @@ const WithHolesDecomposition_& decomp_with_holes, const Gps_segment_traits_2& traits) { - typedef Kernel_ Kernel; - typedef Container_ Container; - typedef NoHolesDecomposition_ No_holes_decomposition; - typedef WithHolesDecomposition_ With_holes_decomposition; - typedef Polygon_nop_decomposition_2 Nop_decomposition; + typedef Kernel_ Kernel; + typedef Container_ Container; + typedef NoHolesDecomposition_ No_holes_decomposition; + typedef WithHolesDecomposition_ With_holes_decomposition; + typedef Polygon_nop_decomposition_2 Nop_decomposition; Hole_filter_2 hole_filter; Polygon_with_holes_2 filtered_pgn1; @@ -982,11 +982,11 @@ const WithHolesDecomposition_& decomp_with_holes, const Gps_segment_traits_2& traits) { - typedef Kernel_ Kernel; - typedef Container_ Container; - typedef NoHolesDecomposition_ No_holes_decomposition; - typedef WithHolesDecomposition_ With_holes_decomposition; - typedef Polygon_nop_decomposition_2 Nop_decomposition; + typedef Kernel_ Kernel; + typedef Container_ Container; + typedef NoHolesDecomposition_ No_holes_decomposition; + typedef WithHolesDecomposition_ With_holes_decomposition; + typedef Polygon_nop_decomposition_2 Nop_decomposition; Hole_filter_2 hole_filter; Polygon_with_holes_2 filtered_pgn2; diff -Nru cgal-5.4.1/include/CGAL/Minkowski_sum_3/bipartite_nary_union_sorted_combined.h cgal-5.5/include/CGAL/Minkowski_sum_3/bipartite_nary_union_sorted_combined.h --- cgal-5.4.1/include/CGAL/Minkowski_sum_3/bipartite_nary_union_sorted_combined.h 2022-06-03 19:04:52.000000000 +0000 +++ cgal-5.5/include/CGAL/Minkowski_sum_3/bipartite_nary_union_sorted_combined.h 2022-07-13 19:05:45.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Minkowski_sum_3/include/CGAL/Minkowski_sum_3/bipartite_nary_union_sorted_combined.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Minkowski_sum_3/include/CGAL/Minkowski_sum_3/bipartite_nary_union_sorted_combined.h $ // $Id: bipartite_nary_union_sorted_combined.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Minkowski_sum_3/Gaussian_map.h cgal-5.5/include/CGAL/Minkowski_sum_3/Gaussian_map.h --- cgal-5.4.1/include/CGAL/Minkowski_sum_3/Gaussian_map.h 2022-06-03 19:04:52.000000000 +0000 +++ cgal-5.5/include/CGAL/Minkowski_sum_3/Gaussian_map.h 2022-07-13 19:05:45.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Minkowski_sum_3/include/CGAL/Minkowski_sum_3/Gaussian_map.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Minkowski_sum_3/include/CGAL/Minkowski_sum_3/Gaussian_map.h $ // $Id: Gaussian_map.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Minkowski_sum_3/Gaussian_map_to_nef_3.h cgal-5.5/include/CGAL/Minkowski_sum_3/Gaussian_map_to_nef_3.h --- cgal-5.4.1/include/CGAL/Minkowski_sum_3/Gaussian_map_to_nef_3.h 2022-06-03 19:04:52.000000000 +0000 +++ cgal-5.5/include/CGAL/Minkowski_sum_3/Gaussian_map_to_nef_3.h 2022-07-13 19:05:45.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Minkowski_sum_3/include/CGAL/Minkowski_sum_3/Gaussian_map_to_nef_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Minkowski_sum_3/include/CGAL/Minkowski_sum_3/Gaussian_map_to_nef_3.h $ // $Id: Gaussian_map_to_nef_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Minkowski_sum_3/PointMark.h cgal-5.5/include/CGAL/Minkowski_sum_3/PointMark.h --- cgal-5.4.1/include/CGAL/Minkowski_sum_3/PointMark.h 2022-06-03 19:04:52.000000000 +0000 +++ cgal-5.5/include/CGAL/Minkowski_sum_3/PointMark.h 2022-07-13 19:05:45.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Minkowski_sum_3/include/CGAL/Minkowski_sum_3/PointMark.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Minkowski_sum_3/include/CGAL/Minkowski_sum_3/PointMark.h $ // $Id: PointMark.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/minkowski_sum_3.h cgal-5.5/include/CGAL/minkowski_sum_3.h --- cgal-5.4.1/include/CGAL/minkowski_sum_3.h 2022-06-03 19:04:53.000000000 +0000 +++ cgal-5.5/include/CGAL/minkowski_sum_3.h 2022-07-13 19:05:45.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Minkowski_sum_3/include/CGAL/minkowski_sum_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Minkowski_sum_3/include/CGAL/minkowski_sum_3.h $ // $Id: minkowski_sum_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/min_max_n.h cgal-5.5/include/CGAL/min_max_n.h --- cgal-5.4.1/include/CGAL/min_max_n.h 2022-06-03 19:05:33.000000000 +0000 +++ cgal-5.5/include/CGAL/min_max_n.h 2022-07-13 19:06:29.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/min_max_n.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/min_max_n.h $ // $Id: min_max_n.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/min_quadrilateral_2.h cgal-5.5/include/CGAL/min_quadrilateral_2.h --- cgal-5.4.1/include/CGAL/min_quadrilateral_2.h 2022-06-03 19:03:54.000000000 +0000 +++ cgal-5.5/include/CGAL/min_quadrilateral_2.h 2022-07-13 19:04:40.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Bounding_volumes/include/CGAL/min_quadrilateral_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Bounding_volumes/include/CGAL/min_quadrilateral_2.h $ // $Id: min_quadrilateral_2.h d678d0f 2021-02-02T11:12:16+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Min_quadrilateral_traits_2.h cgal-5.5/include/CGAL/Min_quadrilateral_traits_2.h --- cgal-5.4.1/include/CGAL/Min_quadrilateral_traits_2.h 2022-06-03 19:03:53.000000000 +0000 +++ cgal-5.5/include/CGAL/Min_quadrilateral_traits_2.h 2022-07-13 19:04:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Bounding_volumes/include/CGAL/Min_quadrilateral_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Bounding_volumes/include/CGAL/Min_quadrilateral_traits_2.h $ // $Id: Min_quadrilateral_traits_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Min_sphere_annulus_d_traits_2.h cgal-5.5/include/CGAL/Min_sphere_annulus_d_traits_2.h --- cgal-5.4.1/include/CGAL/Min_sphere_annulus_d_traits_2.h 2022-06-03 19:03:53.000000000 +0000 +++ cgal-5.5/include/CGAL/Min_sphere_annulus_d_traits_2.h 2022-07-13 19:04:40.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Bounding_volumes/include/CGAL/Min_sphere_annulus_d_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Bounding_volumes/include/CGAL/Min_sphere_annulus_d_traits_2.h $ // $Id: Min_sphere_annulus_d_traits_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Min_sphere_annulus_d_traits_3.h cgal-5.5/include/CGAL/Min_sphere_annulus_d_traits_3.h --- cgal-5.4.1/include/CGAL/Min_sphere_annulus_d_traits_3.h 2022-06-03 19:03:53.000000000 +0000 +++ cgal-5.5/include/CGAL/Min_sphere_annulus_d_traits_3.h 2022-07-13 19:04:40.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Bounding_volumes/include/CGAL/Min_sphere_annulus_d_traits_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Bounding_volumes/include/CGAL/Min_sphere_annulus_d_traits_3.h $ // $Id: Min_sphere_annulus_d_traits_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Min_sphere_annulus_d_traits_d.h cgal-5.5/include/CGAL/Min_sphere_annulus_d_traits_d.h --- cgal-5.4.1/include/CGAL/Min_sphere_annulus_d_traits_d.h 2022-06-03 19:03:53.000000000 +0000 +++ cgal-5.5/include/CGAL/Min_sphere_annulus_d_traits_d.h 2022-07-13 19:04:40.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Bounding_volumes/include/CGAL/Min_sphere_annulus_d_traits_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Bounding_volumes/include/CGAL/Min_sphere_annulus_d_traits_d.h $ // $Id: Min_sphere_annulus_d_traits_d.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Min_sphere_d/Min_sphere_d_impl.h cgal-5.5/include/CGAL/Min_sphere_d/Min_sphere_d_impl.h --- cgal-5.4.1/include/CGAL/Min_sphere_d/Min_sphere_d_impl.h 2022-06-03 19:03:53.000000000 +0000 +++ cgal-5.5/include/CGAL/Min_sphere_d/Min_sphere_d_impl.h 2022-07-13 19:04:40.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Bounding_volumes/include/CGAL/Min_sphere_d/Min_sphere_d_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Bounding_volumes/include/CGAL/Min_sphere_d/Min_sphere_d_impl.h $ // $Id: Min_sphere_d_impl.h 78ff918 2021-06-23T23:34:14+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Min_sphere_d/Optimisation_sphere_d.h cgal-5.5/include/CGAL/Min_sphere_d/Optimisation_sphere_d.h --- cgal-5.4.1/include/CGAL/Min_sphere_d/Optimisation_sphere_d.h 2022-06-03 19:03:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Min_sphere_d/Optimisation_sphere_d.h 2022-07-13 19:04:40.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Bounding_volumes/include/CGAL/Min_sphere_d/Optimisation_sphere_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Bounding_volumes/include/CGAL/Min_sphere_d/Optimisation_sphere_d.h $ // $Id: Optimisation_sphere_d.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Min_sphere_d.h cgal-5.5/include/CGAL/Min_sphere_d.h --- cgal-5.4.1/include/CGAL/Min_sphere_d.h 2022-06-03 19:03:53.000000000 +0000 +++ cgal-5.5/include/CGAL/Min_sphere_d.h 2022-07-13 19:04:40.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Bounding_volumes/include/CGAL/Min_sphere_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Bounding_volumes/include/CGAL/Min_sphere_d.h $ // $Id: Min_sphere_d.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Min_sphere_of_points_d_traits_2.h cgal-5.5/include/CGAL/Min_sphere_of_points_d_traits_2.h --- cgal-5.4.1/include/CGAL/Min_sphere_of_points_d_traits_2.h 2022-06-03 19:03:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Min_sphere_of_points_d_traits_2.h 2022-07-13 19:04:40.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Bounding_volumes/include/CGAL/Min_sphere_of_points_d_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Bounding_volumes/include/CGAL/Min_sphere_of_points_d_traits_2.h $ // $Id: Min_sphere_of_points_d_traits_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Min_sphere_of_points_d_traits_3.h cgal-5.5/include/CGAL/Min_sphere_of_points_d_traits_3.h --- cgal-5.4.1/include/CGAL/Min_sphere_of_points_d_traits_3.h 2022-06-03 19:03:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Min_sphere_of_points_d_traits_3.h 2022-07-13 19:04:40.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Bounding_volumes/include/CGAL/Min_sphere_of_points_d_traits_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Bounding_volumes/include/CGAL/Min_sphere_of_points_d_traits_3.h $ // $Id: Min_sphere_of_points_d_traits_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Min_sphere_of_points_d_traits_d.h cgal-5.5/include/CGAL/Min_sphere_of_points_d_traits_d.h --- cgal-5.4.1/include/CGAL/Min_sphere_of_points_d_traits_d.h 2022-06-03 19:03:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Min_sphere_of_points_d_traits_d.h 2022-07-13 19:04:40.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Bounding_volumes/include/CGAL/Min_sphere_of_points_d_traits_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Bounding_volumes/include/CGAL/Min_sphere_of_points_d_traits_d.h $ // $Id: Min_sphere_of_points_d_traits_d.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_configure.h cgal-5.5/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_configure.h --- cgal-5.4.1/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_configure.h 2022-06-03 19:03:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_configure.h 2022-07-13 19:04:40.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Bounding_volumes/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_configure.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Bounding_volumes/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_configure.h $ // $Id: Min_sphere_of_spheres_d_configure.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_impl.h cgal-5.5/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_impl.h --- cgal-5.4.1/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_impl.h 2022-06-03 19:03:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_impl.h 2022-07-13 19:04:40.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Bounding_volumes/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Bounding_volumes/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_impl.h $ // $Id: Min_sphere_of_spheres_d_impl.h a522818 2021-03-21T19:06:01+01:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_pair.h cgal-5.5/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_pair.h --- cgal-5.4.1/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_pair.h 2022-06-03 19:03:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_pair.h 2022-07-13 19:04:40.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Bounding_volumes/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_pair.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Bounding_volumes/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_pair.h $ // $Id: Min_sphere_of_spheres_d_pair.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_pivot_impl.h cgal-5.5/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_pivot_impl.h --- cgal-5.4.1/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_pivot_impl.h 2022-06-03 19:03:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_pivot_impl.h 2022-07-13 19:04:40.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Bounding_volumes/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_pivot_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Bounding_volumes/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_pivot_impl.h $ // $Id: Min_sphere_of_spheres_d_pivot_impl.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_support_set.h cgal-5.5/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_support_set.h --- cgal-5.4.1/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_support_set.h 2022-06-03 19:03:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_support_set.h 2022-07-13 19:04:40.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Bounding_volumes/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_support_set.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Bounding_volumes/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_support_set.h $ // $Id: Min_sphere_of_spheres_d_support_set.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_support_set_impl.h cgal-5.5/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_support_set_impl.h --- cgal-5.4.1/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_support_set_impl.h 2022-06-03 19:03:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_support_set_impl.h 2022-07-13 19:04:40.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Bounding_volumes/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_support_set_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Bounding_volumes/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_support_set_impl.h $ // $Id: Min_sphere_of_spheres_d_support_set_impl.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Min_sphere_of_spheres_d.h cgal-5.5/include/CGAL/Min_sphere_of_spheres_d.h --- cgal-5.4.1/include/CGAL/Min_sphere_of_spheres_d.h 2022-06-03 19:03:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Min_sphere_of_spheres_d.h 2022-07-13 19:04:40.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Bounding_volumes/include/CGAL/Min_sphere_of_spheres_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Bounding_volumes/include/CGAL/Min_sphere_of_spheres_d.h $ // $Id: Min_sphere_of_spheres_d.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Min_sphere_of_spheres_d_traits_2.h cgal-5.5/include/CGAL/Min_sphere_of_spheres_d_traits_2.h --- cgal-5.4.1/include/CGAL/Min_sphere_of_spheres_d_traits_2.h 2022-06-03 19:03:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Min_sphere_of_spheres_d_traits_2.h 2022-07-13 19:04:40.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Bounding_volumes/include/CGAL/Min_sphere_of_spheres_d_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Bounding_volumes/include/CGAL/Min_sphere_of_spheres_d_traits_2.h $ // $Id: Min_sphere_of_spheres_d_traits_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Min_sphere_of_spheres_d_traits_3.h cgal-5.5/include/CGAL/Min_sphere_of_spheres_d_traits_3.h --- cgal-5.4.1/include/CGAL/Min_sphere_of_spheres_d_traits_3.h 2022-06-03 19:03:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Min_sphere_of_spheres_d_traits_3.h 2022-07-13 19:04:40.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Bounding_volumes/include/CGAL/Min_sphere_of_spheres_d_traits_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Bounding_volumes/include/CGAL/Min_sphere_of_spheres_d_traits_3.h $ // $Id: Min_sphere_of_spheres_d_traits_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Min_sphere_of_spheres_d_traits_d.h cgal-5.5/include/CGAL/Min_sphere_of_spheres_d_traits_d.h --- cgal-5.4.1/include/CGAL/Min_sphere_of_spheres_d_traits_d.h 2022-06-03 19:03:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Min_sphere_of_spheres_d_traits_d.h 2022-07-13 19:04:40.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Bounding_volumes/include/CGAL/Min_sphere_of_spheres_d_traits_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Bounding_volumes/include/CGAL/Min_sphere_of_spheres_d_traits_d.h $ // $Id: Min_sphere_of_spheres_d_traits_d.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mixed_integer_program_traits.h cgal-5.5/include/CGAL/Mixed_integer_program_traits.h --- cgal-5.4.1/include/CGAL/Mixed_integer_program_traits.h 2022-06-03 19:05:45.000000000 +0000 +++ cgal-5.5/include/CGAL/Mixed_integer_program_traits.h 2022-07-13 19:06:42.000000000 +0000 @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Solver_interface/include/CGAL/Mixed_integer_program_traits.h $ -// $Id: Mixed_integer_program_traits.h 94b7580 2021-06-18T10:02:11+02:00 Dmitry Anisimov +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Solver_interface/include/CGAL/Mixed_integer_program_traits.h $ +// $Id: Mixed_integer_program_traits.h a5b03d5 2022-04-30T14:09:18+02:00 albert-github // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Liangliang Nan @@ -273,7 +273,7 @@ /// classes, i.e., `CGAL::GLPK_mixed_integer_program_traits` or /// `CGAL::SCIP_mixed_integer_program_traits`. Alternatively, use /// `CGAL::Mixed_integer_program_traits` as a base to derive a new model - /// (using e.g., CBC , + /// (using e.g., CBC , /// Gurobi for better /// performance). /// diff -Nru cgal-5.4.1/include/CGAL/Modifiable_priority_queue.h cgal-5.5/include/CGAL/Modifiable_priority_queue.h --- cgal-5.4.1/include/CGAL/Modifiable_priority_queue.h 2022-06-03 19:05:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Modifiable_priority_queue.h 2022-07-13 19:06:28.000000000 +0000 @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/Modifiable_priority_queue.h $ -// $Id: Modifiable_priority_queue.h 4ea7b65 2021-08-26T11:42:01+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/Modifiable_priority_queue.h $ +// $Id: Modifiable_priority_queue.h 87233c6 2022-03-18T20:02:29+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Fernando Cacciola @@ -11,55 +11,25 @@ #ifndef CGAL_MODIFIABLE_PRIORITY_QUEUE_H #define CGAL_MODIFIABLE_PRIORITY_QUEUE_H -#include // Neeeded by the following Boost header for CHAR_BIT. +#include // Needed by the following Boost header for CHAR_BIT. #include -#ifdef CGAL_SURFACE_MESH_SIMPLIFICATION_USE_RELAXED_HEAP -#include -#else -#include - - -namespace CGAL { - namespace internal { -template , - class Comp = std::less, - class ID = ::boost::identity_property_map > -class mutable_queue_with_remove : public internal::boost_::mutable_queue -{ - typedef internal::boost_::mutable_queue Base; -public: - typedef typename Base::size_type size_type; - typedef typename Base::Node Node; - mutable_queue_with_remove(size_type n, const Comp& x=Comp(), const ID& _id=ID()) : Base(n,x,_id,true) - {} - - void remove(const IndexedType& x){ - //first place element at the top - size_type current_pos = this->index_array[ get(this->id, x) ]; - this->c[current_pos] = x; - - Node node(this->c.begin(), this->c.end(), this->c.begin()+current_pos, this->id); - while (node.has_parent()) - node.swap(node.parent(), this->index_array); - //then pop it - this->pop(); - } +#include +#include - bool contains(const IndexedType& x) const { - return this->index_array[ get(this->id, x) ] !=this->index_array.size(); - } -}; +#include -} } //namespace CGAL::internal -#endif //CGAL_SURFACE_MESH_SIMPLIFICATION_USE_RELAXED_HEAP +#include +#include namespace CGAL { +enum Heap_type { CGAL_BOOST_PAIRING_HEAP, CGAL_BOOST_PENDING_MUTABLE_QUEUE, CGAL_BOOST_PENDING_RELAXED_HEAP }; + template ,class ID_ = boost::identity_property_map + , Heap_type heap_type = CGAL_BOOST_PENDING_MUTABLE_QUEUE > class Modifiable_priority_queue { @@ -71,28 +41,24 @@ typedef Compare_ Compare; typedef ID_ ID ; - #ifdef CGAL_SURFACE_MESH_SIMPLIFICATION_USE_RELAXED_HEAP - typedef boost::relaxed_heap Heap; - #else - typedef internal::mutable_queue_with_remove,Compare,ID> Heap; - #endif //CGAL_SURFACE_MESH_SIMPLIFICATION_USE_RELAXED_HEAP + typedef std::conditional_t,Compare,ID>, + internal::boost_::relaxed_heap > Heap; + typedef typename Heap::value_type value_type; typedef typename Heap::size_type size_type; - typedef bool handle ; - public: - Modifiable_priority_queue( size_type largest_ID, Compare const& c, ID const& id ) : mHeap(largest_ID,c,id) {} + Modifiable_priority_queue( size_type largest_ID, Compare const& c = Compare(), ID const& id = ID() ) : mHeap(largest_ID,c,id) {} - handle push ( value_type const& v ) { mHeap.push(v) ; return handle(true) ; } + void push ( value_type const& v ) { mHeap.push(v) ; } - handle update ( value_type const& v, handle h ) { mHeap.update(v); return h ; } + void update ( value_type const& v ) { mHeap.update(v); } - handle erase ( value_type const& v, handle ) { mHeap.remove(v); return null_handle() ; } - handle erase ( value_type const& v ) { mHeap.remove(v); return null_handle() ; } + void erase ( value_type const& v ) { mHeap.remove(v); } - value_type top() const { return mHeap.top() ; } + const value_type& top() const { return mHeap.top(); } void pop() { mHeap.pop(); } @@ -112,7 +78,13 @@ return r ; } - static handle null_handle() { return handle(false); } + value_type top_and_pop() + { + CGAL_precondition(!empty()); + value_type v = top(); + pop(); + return v; + } private: @@ -120,7 +92,184 @@ } ; -} //namespace CGAL +template +struct Modifiable_priority_queue +{ + typedef Modifiable_priority_queue Self; + + typedef IndexedType_ IndexedType; + typedef Compare_ Compare; + typedef ID_ ID; + + struct Reverse_compare + { + Compare c; + Reverse_compare(const Compare& c):c(c){} + bool operator() (const IndexedType& a, const IndexedType& b) const + { + return !c(a,b); + } + }; + + // reference time (SMS Iphigenia, keeping 0.05% of edges, all default parameters + Surface_mesh): 12045ms + // -- + // boost::heap::priority_queue is ummutable and cannot be used + // -- + // typedef boost::heap::d_ary_heap, boost::heap::compare, boost::heap::mutable_ > Heap; //(15291ms) + // typedef boost::heap::d_ary_heap, boost::heap::compare, boost::heap::mutable_ > Heap; //(14351ms) + // typedef boost::heap::d_ary_heap, boost::heap::compare, boost::heap::mutable_ > Heap; //(13869ms) + // typedef boost::heap::d_ary_heap, boost::heap::compare, boost::heap::mutable_ > Heap; //(13879ms) + // typedef boost::heap::d_ary_heap, boost::heap::compare, boost::heap::mutable_ > Heap; //(13881ms) + // -- + //typedef boost::heap::binomial_heap> Heap; //(16216ms) + // -- + // typedef boost::heap::fibonacci_heap> Heap; // (13523ms) + // -- + typedef boost::heap::pairing_heap> Heap; // (12174ms) + // -- + // typedef boost::heap::skew_heap, boost::heap::mutable_> Heap; //(17957ms) + // -- + + typedef typename Heap::value_type value_type; + typedef typename Heap::size_type size_type; + typedef typename Heap::handle_type handle_type; + +private: + void reserve_impl(size_type r, std::true_type) + { + mHeap.reserve(r); + } + + void reserve_impl(size_type, std::false_type) + {} + +public: + Modifiable_priority_queue(size_type largest_ID, + const Compare& c = Compare(), + const ID& id = ID()) + : mHeap(Reverse_compare(c)) + , mID(id) + , mHandles(largest_ID, handle_type()) + { + reserve(largest_ID); + } + + Modifiable_priority_queue(const Modifiable_priority_queue&) = delete; + Modifiable_priority_queue& operator=(const Modifiable_priority_queue&) = delete; + +public: + handle_type push(const value_type& v) + { + CGAL_precondition(!contains(v)); + auto vid = get(mID, v); + mHandles[vid] = mHeap.push(v); + return mHandles[vid]; + } + + handle_type resize_and_push(const value_type& v) + { + auto vid = get(mID, v); + CGAL_precondition(0 <= vid); + + if(vid >= mHandles.size()) + { + mHandles.resize(vid + 1, handle_type()); +// std::cout << "resize() to " << mHandles.size() << " (capacity = " << mHandles.capacity() << ")" << std::endl; + } + + CGAL_precondition(!contains(v)); + mHandles[vid] = mHeap.push(v); + return mHandles[vid]; + } + + void update(const value_type& v) + { + CGAL_precondition(contains(v)); + auto vid = get(mID, v); + mHeap.update(mHandles[vid]); + } + + void erase(const value_type& v) + { + CGAL_precondition(contains(v)); + auto vid = get(mID, v); + mHeap.erase(mHandles[vid]); + mHandles[vid] = handle_type(); + } + + const value_type& top() const + { + return mHeap.top(); + } + + void pop() + { + auto vid = get(mID, top()); + mHeap.pop(); + mHandles[vid] = handle_type(); + } + + size_type size() const { return mHeap.size(); } + + bool empty() const { return mHeap.empty(); } + + void clear() + { + std::fill(std::begin(mHandles), std::end(mHandles), handle_type()); + mHeap.clear(); + } + + bool contains(const value_type& v) + { + auto vid = get(mID, v); + CGAL_precondition(0 <= vid && vid < mHandles.size()); + return mHandles[vid] != handle_type(); + } + + bool contains_with_bounds_check(const value_type& v) + { + auto vid = get(mID, v); + if(vid >= mHandles.size()) + return false; + + CGAL_precondition(0 <= vid && vid < mHandles.size()); + return (mHandles[vid] != handle_type()); + } + + boost::optional extract_top() + { + boost::optional r; + if(!empty()) + { + value_type v = top(); + pop(); + r = boost::optional(v); + } + + return r; + } + + value_type top_and_pop() + { + CGAL_precondition(!empty()); + value_type v = top(); + pop(); + return v; + } + + void reserve(size_type r) + { + reserve_impl(r, std::integral_constant()); + } + +private: + Heap mHeap; + ID mID; + std::vector mHandles; +}; -#endif +} // namespace CGAL +#endif // CGAL_MODIFIABLE_PRIORITY_QUEUE_H diff -Nru cgal-5.4.1/include/CGAL/Modifier_base.h cgal-5.5/include/CGAL/Modifier_base.h --- cgal-5.4.1/include/CGAL/Modifier_base.h 2022-06-03 19:04:53.000000000 +0000 +++ cgal-5.5/include/CGAL/Modifier_base.h 2022-07-13 19:05:46.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Modifier/include/CGAL/Modifier_base.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Modifier/include/CGAL/Modifier_base.h $ // $Id: Modifier_base.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Modular_arithmetic/Residue_type.h cgal-5.5/include/CGAL/Modular_arithmetic/Residue_type.h --- cgal-5.4.1/include/CGAL/Modular_arithmetic/Residue_type.h 2022-06-03 19:04:53.000000000 +0000 +++ cgal-5.5/include/CGAL/Modular_arithmetic/Residue_type.h 2022-07-13 19:05:46.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Modular_arithmetic/include/CGAL/Modular_arithmetic/Residue_type.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Modular_arithmetic/include/CGAL/Modular_arithmetic/Residue_type.h $ // $Id: Residue_type.h 26355e2 2020-06-25T12:31:21+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Modular_traits.h cgal-5.5/include/CGAL/Modular_traits.h --- cgal-5.4.1/include/CGAL/Modular_traits.h 2022-06-03 19:04:53.000000000 +0000 +++ cgal-5.5/include/CGAL/Modular_traits.h 2022-07-13 19:05:46.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Modular_arithmetic/include/CGAL/Modular_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Modular_arithmetic/include/CGAL/Modular_traits.h $ // $Id: Modular_traits.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Monge_via_jet_fitting.h cgal-5.5/include/CGAL/Monge_via_jet_fitting.h --- cgal-5.4.1/include/CGAL/Monge_via_jet_fitting.h 2022-06-03 19:04:29.000000000 +0000 +++ cgal-5.5/include/CGAL/Monge_via_jet_fitting.h 2022-07-13 19:05:20.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Jet_fitting_3/include/CGAL/Monge_via_jet_fitting.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Jet_fitting_3/include/CGAL/Monge_via_jet_fitting.h $ // $Id: Monge_via_jet_fitting.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/monotone_matrix_search.h cgal-5.5/include/CGAL/monotone_matrix_search.h --- cgal-5.4.1/include/CGAL/monotone_matrix_search.h 2022-06-03 19:04:42.000000000 +0000 +++ cgal-5.5/include/CGAL/monotone_matrix_search.h 2022-07-13 19:05:34.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Matrix_search/include/CGAL/monotone_matrix_search.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Matrix_search/include/CGAL/monotone_matrix_search.h $ // $Id: monotone_matrix_search.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/more_functions_on_signs.h cgal-5.5/include/CGAL/more_functions_on_signs.h --- cgal-5.4.1/include/CGAL/more_functions_on_signs.h 2022-06-03 19:03:36.000000000 +0000 +++ cgal-5.5/include/CGAL/more_functions_on_signs.h 2022-07-13 19:04:20.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Apollonius_graph_2/include/CGAL/more_functions_on_signs.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Apollonius_graph_2/include/CGAL/more_functions_on_signs.h $ // $Id: more_functions_on_signs.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/mpfi_coercion_traits.h cgal-5.5/include/CGAL/mpfi_coercion_traits.h --- cgal-5.4.1/include/CGAL/mpfi_coercion_traits.h 2022-06-03 19:05:02.000000000 +0000 +++ cgal-5.5/include/CGAL/mpfi_coercion_traits.h 2022-07-13 19:05:55.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/mpfi_coercion_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/mpfi_coercion_traits.h $ // $Id: mpfi_coercion_traits.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/MP_Float_arithmetic_kernel.h cgal-5.5/include/CGAL/MP_Float_arithmetic_kernel.h --- cgal-5.4.1/include/CGAL/MP_Float_arithmetic_kernel.h 2022-06-03 19:03:37.000000000 +0000 +++ cgal-5.5/include/CGAL/MP_Float_arithmetic_kernel.h 2022-07-13 19:04:20.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arithmetic_kernel/include/CGAL/MP_Float_arithmetic_kernel.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arithmetic_kernel/include/CGAL/MP_Float_arithmetic_kernel.h $ // $Id: MP_Float_arithmetic_kernel.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/MP_Float.h cgal-5.5/include/CGAL/MP_Float.h --- cgal-5.4.1/include/CGAL/MP_Float.h 2022-06-03 19:05:00.000000000 +0000 +++ cgal-5.5/include/CGAL/MP_Float.h 2022-07-13 19:05:54.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/MP_Float.h $ -// $Id: MP_Float.h 12c7bb2 2020-05-19T11:24:12+02:00 Marc Glisse +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/MP_Float.h $ +// $Id: MP_Float.h 45b5fd4 2022-07-06T12:58:49+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // @@ -762,7 +762,7 @@ while (true) { x = x % y; if (x == 0) { - CGAL_postcondition(internal::divides(y, a) & internal::divides(y, b)); + CGAL_postcondition(internal::divides(y, a) && internal::divides(y, b)); y.gcd_normalize(); return y; } diff -Nru cgal-5.4.1/include/CGAL/MP_Float_impl.h cgal-5.5/include/CGAL/MP_Float_impl.h --- cgal-5.4.1/include/CGAL/MP_Float_impl.h 2022-06-03 19:05:00.000000000 +0000 +++ cgal-5.5/include/CGAL/MP_Float_impl.h 2022-07-13 19:05:54.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/MP_Float_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/MP_Float_impl.h $ // $Id: MP_Float_impl.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/mpfr_coercion_traits.h cgal-5.5/include/CGAL/mpfr_coercion_traits.h --- cgal-5.4.1/include/CGAL/mpfr_coercion_traits.h 2022-06-03 19:05:02.000000000 +0000 +++ cgal-5.5/include/CGAL/mpfr_coercion_traits.h 2022-07-13 19:05:55.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/mpfr_coercion_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/mpfr_coercion_traits.h $ // $Id: mpfr_coercion_traits.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/mpq_class.h cgal-5.5/include/CGAL/mpq_class.h --- cgal-5.4.1/include/CGAL/mpq_class.h 2022-06-03 19:05:02.000000000 +0000 +++ cgal-5.5/include/CGAL/mpq_class.h 2022-07-13 19:05:55.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/mpq_class.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/mpq_class.h $ // $Id: mpq_class.h fa6818b 2021-04-06T19:43:42+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/mpz_class.h cgal-5.5/include/CGAL/mpz_class.h --- cgal-5.4.1/include/CGAL/mpz_class.h 2022-06-03 19:05:02.000000000 +0000 +++ cgal-5.5/include/CGAL/mpz_class.h 2022-07-13 19:05:55.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/mpz_class.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/mpz_class.h $ // $Id: mpz_class.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Mpzf.h cgal-5.5/include/CGAL/Mpzf.h --- cgal-5.4.1/include/CGAL/Mpzf.h 2022-06-03 19:05:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Mpzf.h 2022-07-13 19:05:54.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/Mpzf.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/Mpzf.h $ // $Id: Mpzf.h 6481cb2 2021-08-13T16:44:53+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/mst_orient_normals.h cgal-5.5/include/CGAL/mst_orient_normals.h --- cgal-5.4.1/include/CGAL/mst_orient_normals.h 2022-06-03 19:05:12.000000000 +0000 +++ cgal-5.5/include/CGAL/mst_orient_normals.h 2022-07-13 19:06:06.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Point_set_processing_3/include/CGAL/mst_orient_normals.h $ -// $Id: mst_orient_normals.h 8166579 2021-10-11T19:58:07+02:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Point_set_processing_3/include/CGAL/mst_orient_normals.h $ +// $Id: mst_orient_normals.h b0e4eeb 2022-05-13T15:53:02+02:00 Sebastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Laurent Saboret and Andreas Fabri @@ -24,7 +24,7 @@ #include #include -#include +#include #include #include @@ -32,11 +32,24 @@ #include #include +#if defined(BOOST_MSVC) +# pragma warning(push) +# pragma warning(disable:4172) // Address warning inside boost named parameters +#endif + #include #include -#include // work around a bug in boost 1.54 +#include // work around a + // bug in boost + // 1.54 + + #include +#if defined(BOOST_MSVC) +# pragma warning(pop) +#endif + namespace CGAL { @@ -598,30 +611,30 @@ \return iterator over the first point with an unoriented normal. */ template typename PointRange::iterator mst_orient_normals( PointRange& points, unsigned int k, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { using parameters::choose_parameter; using parameters::get_parameter; + using parameters::is_default_parameter; CGAL_TRACE_STREAM << "Calls mst_orient_normals()\n"; - typedef typename CGAL::GetPointMap::type PointMap; - typedef typename Point_set_processing_3::GetNormalMap::type NormalMap; - typedef typename Point_set_processing_3::GetK::Kernel Kernel; + typedef Point_set_processing_3_np_helper NP_helper; + typedef typename NP_helper::Point_map PointMap; + typedef typename NP_helper::Normal_map NormalMap; + typedef typename NP_helper::Geom_traits Kernel; typedef typename Point_set_processing_3::GetIsConstrainedMap::type ConstrainedMap; - CGAL_static_assertion_msg(!(boost::is_same::NoMap>::value), - "Error: no normal map"); + CGAL_static_assertion_msg(NP_helper::has_normal_map(), "Error: no normal map"); - PointMap point_map = choose_parameter(get_parameter(np, internal_np::point_map)); - NormalMap normal_map = choose_parameter(get_parameter(np, internal_np::normal_map)); + PointMap point_map = NP_helper::get_point_map(points, np); + NormalMap normal_map = NP_helper::get_normal_map(points, np); typename Kernel::FT neighbor_radius = choose_parameter(get_parameter(np, internal_np::neighbor_radius), typename Kernel::FT(0)); ConstrainedMap constrained_map = choose_parameter(get_parameter(np, internal_np::point_is_constrained)); @@ -665,8 +678,7 @@ // or vertex j is in the k-neighborhood of vertex i. Riemannian_graph riemannian_graph; - if (boost::is_same::NoMap>::value) + if (is_default_parameter::value) riemannian_graph = create_riemannian_graph(points, point_map, normal_map, index_map, Default_constrained_map @@ -732,20 +744,6 @@ return first_unoriented_point; } -/// \cond SKIP_IN_MANUAL -// variant with default NP -template -typename PointRange::iterator -mst_orient_normals( - PointRange& points, - unsigned int k) ///< number of neighbors - -{ - return mst_orient_normals (points, k, CGAL::Point_set_processing_3::parameters::all_default(points)); -} -/// \endcond - - } //namespace CGAL #include diff -Nru cgal-5.4.1/include/CGAL/Multiscale_sort.h cgal-5.5/include/CGAL/Multiscale_sort.h --- cgal-5.4.1/include/CGAL/Multiscale_sort.h 2022-06-03 19:05:48.000000000 +0000 +++ cgal-5.5/include/CGAL/Multiscale_sort.h 2022-07-13 19:06:45.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Spatial_sorting/include/CGAL/Multiscale_sort.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Spatial_sorting/include/CGAL/Multiscale_sort.h $ // $Id: Multiscale_sort.h 5c41b10 2020-01-02T10:26:44+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/multiset_assertions.h cgal-5.5/include/CGAL/multiset_assertions.h --- cgal-5.4.1/include/CGAL/multiset_assertions.h 2022-06-03 19:05:33.000000000 +0000 +++ cgal-5.5/include/CGAL/multiset_assertions.h 2022-07-13 19:06:29.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/multiset_assertions.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/multiset_assertions.h $ // $Id: multiset_assertions.h 5a36ff8 2020-12-04T08:02:26+00:00 Giles Bathgate // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Multiset.h cgal-5.5/include/CGAL/Multiset.h --- cgal-5.4.1/include/CGAL/Multiset.h 2022-06-03 19:05:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Multiset.h 2022-07-13 19:06:28.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/Multiset.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/Multiset.h $ // $Id: Multiset.h 5ecd852 2021-04-26T21:37:02+01:00 Giles Bathgate // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Multi_surface_3.h cgal-5.5/include/CGAL/Multi_surface_3.h --- cgal-5.4.1/include/CGAL/Multi_surface_3.h 2022-06-03 19:05:59.000000000 +0000 +++ cgal-5.5/include/CGAL/Multi_surface_3.h 2022-07-13 19:06:56.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesher/include/CGAL/Multi_surface_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesher/include/CGAL/Multi_surface_3.h $ // $Id: Multi_surface_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/mutex.h cgal-5.5/include/CGAL/mutex.h --- cgal-5.4.1/include/CGAL/mutex.h 2022-06-03 19:04:24.000000000 +0000 +++ cgal-5.5/include/CGAL/mutex.h 2022-07-13 19:05:14.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/mutex.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/mutex.h $ // $Id: mutex.h 6481cb2 2021-08-13T16:44:53+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial diff -Nru cgal-5.4.1/include/CGAL/Named_function_parameters.h cgal-5.5/include/CGAL/Named_function_parameters.h --- cgal-5.4.1/include/CGAL/Named_function_parameters.h 1970-01-01 00:00:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Named_function_parameters.h 2022-07-13 19:06:28.000000000 +0000 @@ -0,0 +1,398 @@ +// Copyright (c) 2019 GeometryFactory (France). All rights reserved. +// +// This file is part of CGAL (www.cgal.org) +// +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/Named_function_parameters.h $ +// $Id: Named_function_parameters.h 477353d 2022-04-20T15:55:50+02:00 Mael Rouxel-Labbé +// SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial +// +// +// Author(s) : Sebastien Loriot + +#ifndef CGAL_NAMED_FUNCTION_PARAMETERS_H +#define CGAL_NAMED_FUNCTION_PARAMETERS_H + +#ifndef CGAL_NO_STATIC_ASSERTION_TESTS +#include +#endif + +#include + +#include +#include + +#include +#include + +#define CGAL_NP_TEMPLATE_PARAMETERS NP_T=bool, typename NP_Tag=CGAL::internal_np::all_default_t, typename NP_Base=CGAL::internal_np::No_property +#define CGAL_NP_TEMPLATE_PARAMETERS_NO_DEFAULT NP_T, typename NP_Tag, typename NP_Base +#define CGAL_NP_CLASS CGAL::Named_function_parameters + +#define CGAL_NP_TEMPLATE_PARAMETERS_1 NP_T1=bool, typename NP_Tag1=CGAL::internal_np::all_default_t, typename NP_Base1=CGAL::internal_np::No_property +#define CGAL_NP_CLASS_1 CGAL::Named_function_parameters +#define CGAL_NP_TEMPLATE_PARAMETERS_2 NP_T2=bool, typename NP_Tag2=CGAL::internal_np::all_default_t, typename NP_Base2=CGAL::internal_np::No_property +#define CGAL_NP_CLASS_2 CGAL::Named_function_parameters + +namespace CGAL { +namespace internal_np{ + +struct No_property {}; +struct Param_not_found {}; + +enum all_default_t { all_default }; + +// define enum types and values for new named parameters +#define CGAL_add_named_parameter(X, Y, Z) \ + enum X { Y }; +#include +#undef CGAL_add_named_parameter + +template +struct Named_params_impl : Base +{ + typename std::conditional::value, + T, std::reference_wrapper >::type v; // copy of the parameter if copyable + Named_params_impl(const T& v, const Base& b) + : Base(b) + , v(v) + {} +}; + +// partial specialization for base class of the recursive nesting +template +struct Named_params_impl +{ + typename std::conditional::value, + T, std::reference_wrapper >::type v; // copy of the parameter if copyable + Named_params_impl(const T& v) + : v(v) + {} +}; + +// Helper class to get the type of a named parameter pack given a query tag +template +struct Get_param; + +template< typename T, typename Tag, typename Query_tag> +struct Get_param< Named_params_impl, Query_tag > +{ + typedef Param_not_found type; + typedef Param_not_found reference; +}; + +template< typename T, typename Tag, typename Base> +struct Get_param< Named_params_impl, Tag > +{ + typedef typename std::conditional::value, + T, std::reference_wrapper >::type type; + typedef typename std::conditional::value, + T, const T&>::type reference; +}; + +template< typename T, typename Tag> +struct Get_param< Named_params_impl, Tag > +{ + typedef typename std::conditional::value, + T, std::reference_wrapper >::type type; + typedef typename std::conditional::value, + T, const T&>::type reference; +}; + +template< typename T, typename Tag, typename Base> +struct Get_param< Named_params_impl, Tag, Base>, Tag > +{ + typedef std::reference_wrapper type; + typedef T& reference; +}; + +template< typename T, typename Tag> +struct Get_param< Named_params_impl, Tag, No_property>, Tag > +{ + typedef std::reference_wrapper type; + typedef T& reference; +}; + + +template< typename T, typename Tag, typename Base, typename Query_tag> +struct Get_param< Named_params_impl, Query_tag> +{ + typedef typename Get_param::type type; + typedef typename Get_param::reference reference; +}; + +// helper to choose the default +template +struct Lookup_named_param_def +{ + typedef typename internal_np::Get_param::type NP_type; + typedef typename internal_np::Get_param::reference NP_reference; + + typedef typename boost::mpl::if_< + boost::is_same, + D, NP_type>::type + type; + + typedef typename boost::mpl::if_< + boost::is_same, + D&, NP_reference>::type + reference; +}; + +// helper function to extract the value from a named parameter pack given a query tag +template +typename std::conditional::value, + T, std::reference_wrapper >::type +get_parameter_impl(const Named_params_impl& np, Tag) +{ + return np.v; +} + +template< typename T, typename Tag, typename Query_tag> +Param_not_found get_parameter_impl(const Named_params_impl&, Query_tag) +{ + return Param_not_found(); +} + +template< typename T, typename Tag> +typename std::conditional::value, + T, std::reference_wrapper >::type +get_parameter_impl(const Named_params_impl& np, Tag) +{ + return np.v; +} + +template +typename Get_param, Query_tag>::type +get_parameter_impl(const Named_params_impl& np, Query_tag tag) +{ +#ifndef CGAL_NO_STATIC_ASSERTION_TEST + CGAL_static_assertion( (!boost::is_same::value) ); +#endif + return get_parameter_impl(static_cast(np), tag); +} + + +// helper for getting references +template +const T& get_reference(const T& t) +{ + return t; +} + +template +T& get_reference(const std::reference_wrapper& r) +{ + return r.get(); +} + +// helper function to extract the reference from a named parameter pack given a query tag +template +typename std::conditional::value, + T, const T& >::type +get_parameter_reference_impl(const Named_params_impl& np, Tag) +{ + return get_reference(np.v); +} + +template< typename T, typename Tag, typename Query_tag> +Param_not_found +get_parameter_reference_impl(const Named_params_impl&, Query_tag) +{ + return Param_not_found(); +} + +template< typename T, typename Tag> +typename std::conditional::value, + T, const T& >::type +get_parameter_reference_impl(const Named_params_impl& np, Tag) +{ + return get_reference(np.v); +} + +template +T& +get_parameter_reference_impl(const Named_params_impl, Tag, Base>& np, Tag) +{ + return np.v.get(); +} + +template< typename T, typename Tag> +T& +get_parameter_reference_impl(const Named_params_impl, Tag, No_property>& np, Tag) +{ + return np.v.get(); +} + +template +typename Get_param, Query_tag>::reference +get_parameter_reference_impl(const Named_params_impl& np, Query_tag tag) +{ + CGAL_static_assertion( (!boost::is_same::value) ); + return get_parameter_reference_impl(static_cast(np), tag); +} + + +} // end of internal_np namespace + + +template +struct Named_function_parameters + : internal_np::Named_params_impl +{ + typedef internal_np::Named_params_impl base; + typedef Named_function_parameters self; + + Named_function_parameters() : base(T()) {} + Named_function_parameters(const T& v) : base(v) {} + Named_function_parameters(const T& v, const Base& b) : base(v, b) {} + +// create the functions for new named parameters and the one imported boost +// used to concatenate several parameters +#define CGAL_add_named_parameter(X, Y, Z) \ + template \ + Named_function_parameters \ + Z(const K& k) const \ + { \ + typedef Named_function_parameters Params;\ + return Params(k, *this); \ + } +#include +#undef CGAL_add_named_parameter +}; + +namespace parameters { + +typedef Named_function_parameters Default_named_parameters; + +#ifndef CGAL_NO_DEPRECATED_CODE +Default_named_parameters +inline all_default() +{ + return Default_named_parameters(); +} +#endif + +Default_named_parameters +inline default_values() +{ + return Default_named_parameters(); +} + +template +Named_function_parameters +inline no_parameters(Named_function_parameters) +{ + typedef Named_function_parameters Params; + return Params(); +} + +// define free functions for named parameters +#define CGAL_add_named_parameter(X, Y, Z) \ + template \ + Named_function_parameters \ + Z(const K& p) \ + { \ + typedef Named_function_parameters Params;\ + return Params(p); \ + } +#include +#undef CGAL_add_named_parameter + +// function to extract a parameter +template +typename internal_np::Get_param, Query_tag>::type +get_parameter(const Named_function_parameters& np, Query_tag tag) +{ + return internal_np::get_parameter_impl(static_cast&>(np), tag); +} + +template +typename internal_np::Get_param, Query_tag>::reference +get_parameter_reference(const Named_function_parameters& np, Query_tag tag) +{ + return internal_np::get_parameter_reference_impl( + static_cast&>(np), + tag); +} + +// Two parameters, non-trivial default value +template +D& choose_parameter(const internal_np::Param_not_found&, D& d) +{ + return d; +} + +template +const D& choose_parameter(const internal_np::Param_not_found&, const D& d) +{ + return d; +} + +template +D choose_parameter(const internal_np::Param_not_found&, D&& d) +{ + return std::forward(d); +} + +template +T& choose_parameter(T& t, D&) +{ + return t; +} + +template +const T& choose_parameter(const T& t, const D&) +{ + return t; +} + +// single parameter so that we can avoid a default construction +template +D choose_parameter(const internal_np::Param_not_found&) +{ + return D(); +} + +template +const T& choose_parameter(const T& t) +{ + return t; +} + +template +struct is_default_parameter +{ + typedef typename internal_np::Lookup_named_param_def::type NP_type; + + static const bool value = boost::is_same::value; + + typedef CGAL::Boolean_tag type; +}; + +} // end of parameters namespace + +#ifndef CGAL_NO_DEPRECATED_CODE +namespace Polygon_mesh_processing { + +namespace parameters = CGAL::parameters; + +} +#endif + +} //namespace CGAL + +#ifndef CGAL_NO_STATIC_ASSERTION_TESTS +// code added to avoid silent runtime issues in non-updated code +namespace boost +{ + template + void get_param(CGAL::Named_function_parameters, Tag2) + { + CGAL_static_assertion(B && "You must use CGAL::parameters::get_parameter instead of boost::get_param"); + } +} +#endif + +#endif // CGAL_BOOST_FUNCTION_PARAMS_HPP diff -Nru cgal-5.4.1/include/CGAL/natural_neighbor_coordinates_2.h cgal-5.5/include/CGAL/natural_neighbor_coordinates_2.h --- cgal-5.4.1/include/CGAL/natural_neighbor_coordinates_2.h 2022-06-03 19:04:25.000000000 +0000 +++ cgal-5.5/include/CGAL/natural_neighbor_coordinates_2.h 2022-07-13 19:05:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Interpolation/include/CGAL/natural_neighbor_coordinates_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Interpolation/include/CGAL/natural_neighbor_coordinates_2.h $ // $Id: natural_neighbor_coordinates_2.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/natural_neighbor_coordinates_3.h cgal-5.5/include/CGAL/natural_neighbor_coordinates_3.h --- cgal-5.4.1/include/CGAL/natural_neighbor_coordinates_3.h 2022-06-03 19:04:25.000000000 +0000 +++ cgal-5.5/include/CGAL/natural_neighbor_coordinates_3.h 2022-07-13 19:05:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Interpolation/include/CGAL/natural_neighbor_coordinates_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Interpolation/include/CGAL/natural_neighbor_coordinates_3.h $ // $Id: natural_neighbor_coordinates_3.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/nearest_neighbor_delaunay_2.h cgal-5.5/include/CGAL/nearest_neighbor_delaunay_2.h --- cgal-5.4.1/include/CGAL/nearest_neighbor_delaunay_2.h 2022-06-03 19:05:12.000000000 +0000 +++ cgal-5.5/include/CGAL/nearest_neighbor_delaunay_2.h 2022-07-13 19:06:06.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Point_set_2/include/CGAL/nearest_neighbor_delaunay_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Point_set_2/include/CGAL/nearest_neighbor_delaunay_2.h $ // $Id: nearest_neighbor_delaunay_2.h 7e62c02 2021-04-12T14:02:37+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Needs_parens_as_product.h cgal-5.5/include/CGAL/Needs_parens_as_product.h --- cgal-5.4.1/include/CGAL/Needs_parens_as_product.h 2022-06-03 19:03:30.000000000 +0000 +++ cgal-5.5/include/CGAL/Needs_parens_as_product.h 2022-07-13 19:04:13.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_foundations/include/CGAL/Needs_parens_as_product.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_foundations/include/CGAL/Needs_parens_as_product.h $ // $Id: Needs_parens_as_product.h a88a84b 2021-08-13T15:46:50+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_2/Bounding_box_2.h cgal-5.5/include/CGAL/Nef_2/Bounding_box_2.h --- cgal-5.4.1/include/CGAL/Nef_2/Bounding_box_2.h 2022-06-03 19:04:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_2/Bounding_box_2.h 2022-07-13 19:05:46.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_2/include/CGAL/Nef_2/Bounding_box_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_2/include/CGAL/Nef_2/Bounding_box_2.h $ // $Id: Bounding_box_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_2/Constrained_triang_traits.h cgal-5.5/include/CGAL/Nef_2/Constrained_triang_traits.h --- cgal-5.4.1/include/CGAL/Nef_2/Constrained_triang_traits.h 2022-06-03 19:04:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_2/Constrained_triang_traits.h 2022-07-13 19:05:46.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_2/include/CGAL/Nef_2/Constrained_triang_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_2/include/CGAL/Nef_2/Constrained_triang_traits.h $ // $Id: Constrained_triang_traits.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_2/debug.h cgal-5.5/include/CGAL/Nef_2/debug.h --- cgal-5.4.1/include/CGAL/Nef_2/debug.h 2022-06-03 19:04:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_2/debug.h 2022-07-13 19:05:47.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_2/include/CGAL/Nef_2/debug.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_2/include/CGAL/Nef_2/debug.h $ // $Id: debug.h ce7d06d 2020-12-05T08:12:56+00:00 Giles Bathgate // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_2/geninfo.h cgal-5.5/include/CGAL/Nef_2/geninfo.h --- cgal-5.4.1/include/CGAL/Nef_2/geninfo.h 2022-06-03 19:04:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_2/geninfo.h 2022-07-13 19:05:47.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_2/include/CGAL/Nef_2/geninfo.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_2/include/CGAL/Nef_2/geninfo.h $ // $Id: geninfo.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_2/gen_point_location.h cgal-5.5/include/CGAL/Nef_2/gen_point_location.h --- cgal-5.4.1/include/CGAL/Nef_2/gen_point_location.h 2022-06-03 19:04:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_2/gen_point_location.h 2022-07-13 19:05:47.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_2/include/CGAL/Nef_2/gen_point_location.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_2/include/CGAL/Nef_2/gen_point_location.h $ // $Id: gen_point_location.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_2/HDS_items.h cgal-5.5/include/CGAL/Nef_2/HDS_items.h --- cgal-5.4.1/include/CGAL/Nef_2/HDS_items.h 2022-06-03 19:04:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_2/HDS_items.h 2022-07-13 19:05:46.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_2/include/CGAL/Nef_2/HDS_items.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_2/include/CGAL/Nef_2/HDS_items.h $ // $Id: HDS_items.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_2/iterator_tools.h cgal-5.5/include/CGAL/Nef_2/iterator_tools.h --- cgal-5.4.1/include/CGAL/Nef_2/iterator_tools.h 2022-06-03 19:04:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_2/iterator_tools.h 2022-07-13 19:05:47.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_2/include/CGAL/Nef_2/iterator_tools.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_2/include/CGAL/Nef_2/iterator_tools.h $ // $Id: iterator_tools.h 9d16a42 2020-06-15T17:07:35+02:00 Laurent Rineau // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_2/Line_to_epoint.h cgal-5.5/include/CGAL/Nef_2/Line_to_epoint.h --- cgal-5.4.1/include/CGAL/Nef_2/Line_to_epoint.h 2022-06-03 19:04:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_2/Line_to_epoint.h 2022-07-13 19:05:46.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_2/include/CGAL/Nef_2/Line_to_epoint.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_2/include/CGAL/Nef_2/Line_to_epoint.h $ // $Id: Line_to_epoint.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_2/Object_handle.h cgal-5.5/include/CGAL/Nef_2/Object_handle.h --- cgal-5.4.1/include/CGAL/Nef_2/Object_handle.h 2022-06-03 19:04:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_2/Object_handle.h 2022-07-13 19:05:46.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_2/include/CGAL/Nef_2/Object_handle.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_2/include/CGAL/Nef_2/Object_handle.h $ // $Id: Object_handle.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_2/Object_index.h cgal-5.5/include/CGAL/Nef_2/Object_index.h --- cgal-5.4.1/include/CGAL/Nef_2/Object_index.h 2022-06-03 19:04:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_2/Object_index.h 2022-07-13 19:05:47.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_2/include/CGAL/Nef_2/Object_index.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_2/include/CGAL/Nef_2/Object_index.h $ // $Id: Object_index.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_2/PM_checker.h cgal-5.5/include/CGAL/Nef_2/PM_checker.h --- cgal-5.4.1/include/CGAL/Nef_2/PM_checker.h 2022-06-03 19:04:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_2/PM_checker.h 2022-07-13 19:05:47.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_2/include/CGAL/Nef_2/PM_checker.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_2/include/CGAL/Nef_2/PM_checker.h $ // $Id: PM_checker.h 4e519a3 2021-05-05T13:15:37+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_2/PM_const_decorator.h cgal-5.5/include/CGAL/Nef_2/PM_const_decorator.h --- cgal-5.4.1/include/CGAL/Nef_2/PM_const_decorator.h 2022-06-03 19:04:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_2/PM_const_decorator.h 2022-07-13 19:05:47.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_2/include/CGAL/Nef_2/PM_const_decorator.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_2/include/CGAL/Nef_2/PM_const_decorator.h $ // $Id: PM_const_decorator.h 4e519a3 2021-05-05T13:15:37+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_2/PM_decorator.h cgal-5.5/include/CGAL/Nef_2/PM_decorator.h --- cgal-5.4.1/include/CGAL/Nef_2/PM_decorator.h 2022-06-03 19:04:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_2/PM_decorator.h 2022-07-13 19:05:47.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_2/include/CGAL/Nef_2/PM_decorator.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_2/include/CGAL/Nef_2/PM_decorator.h $ // $Id: PM_decorator.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_2/PM_explorer.h cgal-5.5/include/CGAL/Nef_2/PM_explorer.h --- cgal-5.4.1/include/CGAL/Nef_2/PM_explorer.h 2022-06-03 19:04:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_2/PM_explorer.h 2022-07-13 19:05:47.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_2/include/CGAL/Nef_2/PM_explorer.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_2/include/CGAL/Nef_2/PM_explorer.h $ // $Id: PM_explorer.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_2/PM_io_parser.h cgal-5.5/include/CGAL/Nef_2/PM_io_parser.h --- cgal-5.4.1/include/CGAL/Nef_2/PM_io_parser.h 2022-06-03 19:04:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_2/PM_io_parser.h 2022-07-13 19:05:47.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_2/include/CGAL/Nef_2/PM_io_parser.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_2/include/CGAL/Nef_2/PM_io_parser.h $ // $Id: PM_io_parser.h 4e519a3 2021-05-05T13:15:37+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_2/PM_overlayer.h cgal-5.5/include/CGAL/Nef_2/PM_overlayer.h --- cgal-5.4.1/include/CGAL/Nef_2/PM_overlayer.h 2022-06-03 19:04:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_2/PM_overlayer.h 2022-07-13 19:05:47.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_2/include/CGAL/Nef_2/PM_overlayer.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_2/include/CGAL/Nef_2/PM_overlayer.h $ // $Id: PM_overlayer.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_2/PM_persistent_PL.h cgal-5.5/include/CGAL/Nef_2/PM_persistent_PL.h --- cgal-5.4.1/include/CGAL/Nef_2/PM_persistent_PL.h 2022-06-03 19:04:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_2/PM_persistent_PL.h 2022-07-13 19:05:47.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_2/include/CGAL/Nef_2/PM_persistent_PL.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_2/include/CGAL/Nef_2/PM_persistent_PL.h $ // $Id: PM_persistent_PL.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_2/PM_point_locator.h cgal-5.5/include/CGAL/Nef_2/PM_point_locator.h --- cgal-5.4.1/include/CGAL/Nef_2/PM_point_locator.h 2022-06-03 19:04:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_2/PM_point_locator.h 2022-07-13 19:05:47.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_2/include/CGAL/Nef_2/PM_point_locator.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_2/include/CGAL/Nef_2/PM_point_locator.h $ // $Id: PM_point_locator.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_2/Polynomial.h cgal-5.5/include/CGAL/Nef_2/Polynomial.h --- cgal-5.4.1/include/CGAL/Nef_2/Polynomial.h 2022-06-03 19:04:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_2/Polynomial.h 2022-07-13 19:05:47.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_2/include/CGAL/Nef_2/Polynomial.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_2/include/CGAL/Nef_2/Polynomial.h $ // $Id: Polynomial.h 4e519a3 2021-05-05T13:15:37+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_2/Polynomial_impl.h cgal-5.5/include/CGAL/Nef_2/Polynomial_impl.h --- cgal-5.4.1/include/CGAL/Nef_2/Polynomial_impl.h 2022-06-03 19:04:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_2/Polynomial_impl.h 2022-07-13 19:05:47.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_2/include/CGAL/Nef_2/Polynomial_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_2/include/CGAL/Nef_2/Polynomial_impl.h $ // $Id: Polynomial_impl.h 03e1e07 2021-12-27T11:36:27+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_2/Segment_overlay_traits.h cgal-5.5/include/CGAL/Nef_2/Segment_overlay_traits.h --- cgal-5.4.1/include/CGAL/Nef_2/Segment_overlay_traits.h 2022-06-03 19:04:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_2/Segment_overlay_traits.h 2022-07-13 19:05:47.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_2/include/CGAL/Nef_2/Segment_overlay_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_2/include/CGAL/Nef_2/Segment_overlay_traits.h $ // $Id: Segment_overlay_traits.h f3f6beb 2021-05-12T07:37:49+01:00 Giles Bathgate // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_3/Binary_operation.h cgal-5.5/include/CGAL/Nef_3/Binary_operation.h --- cgal-5.4.1/include/CGAL/Nef_3/Binary_operation.h 2022-06-03 19:04:55.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_3/Binary_operation.h 2022-07-13 19:05:47.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_3/include/CGAL/Nef_3/Binary_operation.h $ -// $Id: Binary_operation.h 8b3fab7 2021-06-29T17:33:46+01:00 Giles Bathgate +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_3/include/CGAL/Nef_3/Binary_operation.h $ +// $Id: Binary_operation.h d5b6911 2022-06-03T16:08:58+02:00 Laurent Rineau // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -180,37 +180,9 @@ snc0(s0), snc1(s1), bop(_bop), result(r), inverse_order(invert_order), A(Ain) {} - void operator()(Halfedge_handle e0, Object_handle o1, const Point_3& ip) - const { - -#ifdef CGAL_NEF3_DUMP_STATISTICS - ++number_of_intersections; -#endif - - Halfedge_handle e; - Halffacet_handle f; - - Point_3 p(normalized(ip)); -#ifdef CGAL_USE_TRACE - CGAL_NEF_TRACEN("Intersection_call_back: intersection reported on " << p << " (normalized: " << normalized(p) << " )"); - CGAL_NEF_TRACEN("edge 0 has source " << e0->source()->point() << " and direction " << e0->vector()); - if( CGAL::assign( e, o1)) { - CGAL_NEF_TRACEN("edge 1 has source " << e->source()->point() << " and direction " << e->vector()); - } - else if( CGAL::assign( f, o1)) { - CGAL_NEF_TRACEN("face 1 has plane equation " << f->plane()); - } - else - CGAL_error_msg( "wrong handle"); -#endif - -#if defined (CGAL_NEF3_TIMER_OVERLAY) || (CGAL_NEF3_TIMER_INTERSECTION) - timer_overlay.start(); -#endif - - if( CGAL::assign( e, o1)) { - // std::cerr << "inverse order " << inverse_order << std::endl; - + void operator()(Halfedge_handle e0, Halfedge_handle e, const Point_3& ip) const override + { + Point_3 p(normalized(ip)); #ifdef CGAL_NEF_EXPERIMENTAL_CODE typename CGAL::Edge_edge_overlay eeo(result, e0, e); Sphere_map* M0 = eeo.create_edge_edge_overlay(p, bop, inverse_order, A); @@ -228,7 +200,10 @@ result.delete_vertex(v1); #endif } - else if( CGAL::assign( f, o1)) { + + void operator()(Halfedge_handle e0, Halffacet_handle f, const Point_3& ip) const override + { + Point_3 p(normalized(ip)); #ifdef CGAL_NEF3_OVERLAY_BY_HAND_OFF Binary_operation D(result); Vertex_handle v0, v1; @@ -246,14 +221,7 @@ O.simplify(A); #endif // CGAL_NEF3_OVERLAY_BY_HAND_OFF } - else - CGAL_error_msg( "wrong handle"); - -#if defined (CGAL_NEF3_TIMER_OVERLAY) || (CGAL_NEF3_TIMER_INTERSECTION) - timer_overlay.stop(); -#endif - } private: const SNC_structure& snc0; const SNC_structure& snc1; @@ -306,7 +274,7 @@ number_of_intersection_candidates=0; #endif - Unique_hash_map ignore(false); + Unique_hash_map ignore(false, snc1.number_of_vertices()); Vertex_const_iterator v0; // CGAL_NEF_SETDTHREAD(19*43*131); @@ -319,6 +287,9 @@ CGAL_NEF_TRACEN("=> for all v0 in snc1, qualify v0 with respect snc2"); // int i=2; Association A; + A.reserve(snc1.number_of_shalfedges() + snc1.number_of_shalfloops() + + snc2.number_of_shalfedges() + snc2.number_of_shalfloops()); + SHalfedge_const_iterator sei; CGAL_forall_shalfedges(sei, snc1) A.initialize_hash(sei); diff -Nru cgal-5.4.1/include/CGAL/Nef_3/binop_intersection_tests.h cgal-5.5/include/CGAL/Nef_3/binop_intersection_tests.h --- cgal-5.4.1/include/CGAL/Nef_3/binop_intersection_tests.h 2022-06-03 19:04:56.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_3/binop_intersection_tests.h 2022-07-13 19:05:48.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_3/include/CGAL/Nef_3/binop_intersection_tests.h $ -// $Id: binop_intersection_tests.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_3/include/CGAL/Nef_3/binop_intersection_tests.h $ +// $Id: binop_intersection_tests.h ddce635 2022-04-06T23:10:06+01:00 Giles Bathgate // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -39,7 +39,6 @@ template struct Bop_edge0_face1_callback { - SNC_intersection &is; Callback &cb; struct Pair_hash_function { @@ -57,8 +56,8 @@ } }; - Bop_edge0_face1_callback(SNC_intersection &is, Callback &cb) - : is(is), cb(cb) + Bop_edge0_face1_callback(Callback &cb) + : cb(cb) {} void operator()( Nef_box& box0, Nef_box& box1 ) { @@ -71,8 +70,8 @@ if( Infi_box::degree( f1->plane().d() ) > 0 ) return; Point_3 ip; - if( is.does_intersect_internally( Const_decorator::segment(e0), f1, ip )) { - cb(e0,make_object(f1),ip); + if( SNC_intersection::does_intersect_internally( Const_decorator::segment(e0), f1, ip )) { + cb(e0,f1,ip); } } }; @@ -80,11 +79,10 @@ template struct Bop_edge1_face0_callback { - SNC_intersection &is; Callback &cb; - Bop_edge1_face0_callback(SNC_intersection &is, Callback &cb) - : is(is), cb(cb) + Bop_edge1_face0_callback(Callback &cb) + : cb(cb) {} void operator()( Nef_box& box0, Nef_box& box1 ) { @@ -97,19 +95,18 @@ if( Infi_box::degree( f0->plane().d() ) > 0 ) return; Point_3 ip; - if( is.does_intersect_internally( Const_decorator::segment( e1 ), - f0, ip ) ) - cb(e1,make_object(f0),ip); + if( SNC_intersection::does_intersect_internally( Const_decorator::segment( e1 ), + f0, ip ) ) + cb(e1,f0,ip); } }; template struct Bop_edge0_edge1_callback { - SNC_intersection &is; Callback &cb; - Bop_edge0_edge1_callback(SNC_intersection &is, Callback &cb) - : is(is), cb(cb) + Bop_edge0_edge1_callback(Callback &cb) + : cb(cb) {} void operator()( Nef_box& box0, Nef_box& box1 ) { @@ -120,9 +117,9 @@ Halfedge_iterator e0 = box0.get_halfedge(); Halfedge_iterator e1 = box1.get_halfedge(); Point_3 ip; - if( is.does_intersect_internally( Const_decorator::segment( e0 ), - Const_decorator::segment( e1 ), ip )) - cb(e0,make_object(e1),ip); + if( SNC_intersection::does_intersect_internally( Const_decorator::segment( e0 ), + Const_decorator::segment( e1 ), ip )) + cb(e0,e1,ip); } }; @@ -135,10 +132,9 @@ Halfedge_iterator e0, e1; Halffacet_iterator f0, f1; std::vector a, b; - SNC_intersection is( sncp ); CGAL_NEF_TRACEN("start edge0 edge1"); - Bop_edge0_edge1_callback callback_edge0_edge1( is, cb0 ); + Bop_edge0_edge1_callback callback_edge0_edge1( cb0 ); CGAL_forall_edges( e0, sncp) a.push_back( Nef_box( e0 ) ); CGAL_forall_edges( e1, snc1i) b.push_back( Nef_box( e1 ) ); #ifdef CGAL_NEF3_BOX_INTERSECTION_CUTOFF @@ -153,7 +149,7 @@ b.clear(); CGAL_NEF_TRACEN("start edge0 face1"); - Bop_edge0_face1_callback callback_edge0_face1( is, cb0 ); + Bop_edge0_face1_callback callback_edge0_face1( cb0 ); CGAL_forall_edges( e0, sncp ) a.push_back( Nef_box( e0 ) ); CGAL_forall_facets( f1, snc1i) b.push_back( Nef_box( f1 ) ); #ifdef CGAL_NEF3_BOX_INTERSECTION_CUTOFF @@ -168,7 +164,7 @@ b.clear(); CGAL_NEF_TRACEN("start edge1 face0"); - Bop_edge1_face0_callback callback_edge1_face0( is, cb1 ); + Bop_edge1_face0_callback callback_edge1_face0( cb1 ); CGAL_forall_edges( e1, snc1i) a.push_back( Nef_box( e1 ) ); CGAL_forall_facets( f0, sncp ) b.push_back( Nef_box( f0 ) ); #ifdef CGAL_NEF3_BOX_INTERSECTION_CUTOFF diff -Nru cgal-5.4.1/include/CGAL/Nef_3/bounded_side_3.h cgal-5.5/include/CGAL/Nef_3/bounded_side_3.h --- cgal-5.4.1/include/CGAL/Nef_3/bounded_side_3.h 2022-06-03 19:04:56.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_3/bounded_side_3.h 2022-07-13 19:05:48.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_3/include/CGAL/Nef_3/bounded_side_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_3/include/CGAL/Nef_3/bounded_side_3.h $ // $Id: bounded_side_3.h 7cb53ab 2021-11-03T17:30:26+01:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_3/Bounding_box_3.h cgal-5.5/include/CGAL/Nef_3/Bounding_box_3.h --- cgal-5.4.1/include/CGAL/Nef_3/Bounding_box_3.h 2022-06-03 19:04:55.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_3/Bounding_box_3.h 2022-07-13 19:05:47.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_3/include/CGAL/Nef_3/Bounding_box_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_3/include/CGAL/Nef_3/Bounding_box_3.h $ // $Id: Bounding_box_3.h b1c09a5 2020-07-20T16:52:24+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_3/Combine_with_halfspace.h cgal-5.5/include/CGAL/Nef_3/Combine_with_halfspace.h --- cgal-5.4.1/include/CGAL/Nef_3/Combine_with_halfspace.h 2022-06-03 19:04:55.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_3/Combine_with_halfspace.h 2022-07-13 19:05:47.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_3/include/CGAL/Nef_3/Combine_with_halfspace.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_3/include/CGAL/Nef_3/Combine_with_halfspace.h $ // $Id: Combine_with_halfspace.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_3/Default_items.h cgal-5.5/include/CGAL/Nef_3/Default_items.h --- cgal-5.4.1/include/CGAL/Nef_3/Default_items.h 2022-06-03 19:04:55.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_3/Default_items.h 2022-07-13 19:05:48.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_3/include/CGAL/Nef_3/Default_items.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_3/include/CGAL/Nef_3/Default_items.h $ // $Id: Default_items.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_3/Edge_edge_overlay.h cgal-5.5/include/CGAL/Nef_3/Edge_edge_overlay.h --- cgal-5.4.1/include/CGAL/Nef_3/Edge_edge_overlay.h 2022-06-03 19:04:55.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_3/Edge_edge_overlay.h 2022-07-13 19:05:48.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_3/include/CGAL/Nef_3/Edge_edge_overlay.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_3/include/CGAL/Nef_3/Edge_edge_overlay.h $ // $Id: Edge_edge_overlay.h 521c72d 2021-10-04T13:22:00+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_3/Exact_triangulation_euclidean_traits_xy_3.h cgal-5.5/include/CGAL/Nef_3/Exact_triangulation_euclidean_traits_xy_3.h --- cgal-5.4.1/include/CGAL/Nef_3/Exact_triangulation_euclidean_traits_xy_3.h 2022-06-03 19:04:55.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_3/Exact_triangulation_euclidean_traits_xy_3.h 2022-07-13 19:05:48.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_3/include/CGAL/Nef_3/Exact_triangulation_euclidean_traits_xy_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_3/include/CGAL/Nef_3/Exact_triangulation_euclidean_traits_xy_3.h $ // $Id: Exact_triangulation_euclidean_traits_xy_3.h 5ea5e93 2021-01-20T15:17:41+00:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_3/Exact_triangulation_euclidean_traits_xz_3.h cgal-5.5/include/CGAL/Nef_3/Exact_triangulation_euclidean_traits_xz_3.h --- cgal-5.4.1/include/CGAL/Nef_3/Exact_triangulation_euclidean_traits_xz_3.h 2022-06-03 19:04:55.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_3/Exact_triangulation_euclidean_traits_xz_3.h 2022-07-13 19:05:48.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_3/include/CGAL/Nef_3/Exact_triangulation_euclidean_traits_xz_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_3/include/CGAL/Nef_3/Exact_triangulation_euclidean_traits_xz_3.h $ // $Id: Exact_triangulation_euclidean_traits_xz_3.h 5ea5e93 2021-01-20T15:17:41+00:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_3/Exact_triangulation_euclidean_traits_yz_3.h cgal-5.5/include/CGAL/Nef_3/Exact_triangulation_euclidean_traits_yz_3.h --- cgal-5.4.1/include/CGAL/Nef_3/Exact_triangulation_euclidean_traits_yz_3.h 2022-06-03 19:04:55.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_3/Exact_triangulation_euclidean_traits_yz_3.h 2022-07-13 19:05:48.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_3/include/CGAL/Nef_3/Exact_triangulation_euclidean_traits_yz_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_3/include/CGAL/Nef_3/Exact_triangulation_euclidean_traits_yz_3.h $ // $Id: Exact_triangulation_euclidean_traits_yz_3.h 5ea5e93 2021-01-20T15:17:41+00:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_3/Halfedge.h cgal-5.5/include/CGAL/Nef_3/Halfedge.h --- cgal-5.4.1/include/CGAL/Nef_3/Halfedge.h 2022-06-03 19:04:55.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_3/Halfedge.h 2022-07-13 19:05:48.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_3/include/CGAL/Nef_3/Halfedge.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_3/include/CGAL/Nef_3/Halfedge.h $ // $Id: Halfedge.h 4e519a3 2021-05-05T13:15:37+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_3/Halffacet.h cgal-5.5/include/CGAL/Nef_3/Halffacet.h --- cgal-5.4.1/include/CGAL/Nef_3/Halffacet.h 2022-06-03 19:04:55.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_3/Halffacet.h 2022-07-13 19:05:48.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_3/include/CGAL/Nef_3/Halffacet.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_3/include/CGAL/Nef_3/Halffacet.h $ // $Id: Halffacet.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_3/ID_support_handler.h cgal-5.5/include/CGAL/Nef_3/ID_support_handler.h --- cgal-5.4.1/include/CGAL/Nef_3/ID_support_handler.h 2022-06-03 19:04:55.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_3/ID_support_handler.h 2022-07-13 19:05:48.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_3/include/CGAL/Nef_3/ID_support_handler.h $ -// $Id: ID_support_handler.h 5213cd3 2021-04-01T18:11:42+01:00 Andreas Fabri +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_3/include/CGAL/Nef_3/ID_support_handler.h $ +// $Id: ID_support_handler.h 2a5fcdc 2022-04-13T12:59:21+01:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -56,11 +56,27 @@ } }; std::unordered_map f2m; - std::map hash; + std::unordered_map hash; public: ID_support_handler() {} + void reserve(std::size_t n) { + hash.reserve(n); + } + + /* + The method get_hash implements a + two-pass union find algorithm + __ __ _______ + / \ / \ / _____\ + _|__|__|__|_ _/__/__/__|_ + | | v | v | | | | | v | + | O O O O | => | O O O O | + |____|__^____| |____________| + | | root + \_/ + */ int get_hash(int i) { int root(i); while(hash[root] != root) @@ -78,12 +94,13 @@ hash[get_hash(i)] = parent; } + void initialize_hash(int i) { + hash[i] = i; + } + template void initialize_hash(Handle h) { - hash[h->get_index()] = h->get_index(); - } - void initialize_hash(int i) { - hash[i] = i; + initialize_hash(h->get_index()); } void hash_facet_pair(SVertex_handle sv, diff -Nru cgal-5.4.1/include/CGAL/Nef_3/Infimaximal_box.h cgal-5.5/include/CGAL/Nef_3/Infimaximal_box.h --- cgal-5.4.1/include/CGAL/Nef_3/Infimaximal_box.h 2022-06-03 19:04:55.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_3/Infimaximal_box.h 2022-07-13 19:05:48.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_3/include/CGAL/Nef_3/Infimaximal_box.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_3/include/CGAL/Nef_3/Infimaximal_box.h $ // $Id: Infimaximal_box.h e9d41d7 2020-04-21T10:03:00+02:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_3/K3_tree.h cgal-5.5/include/CGAL/Nef_3/K3_tree.h --- cgal-5.4.1/include/CGAL/Nef_3/K3_tree.h 2022-06-03 19:04:55.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_3/K3_tree.h 2022-07-13 19:05:48.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_3/include/CGAL/Nef_3/K3_tree.h $ -// $Id: K3_tree.h b85aaab 2021-09-29T11:47:01+02:00 Laurent Rineau +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_3/include/CGAL/Nef_3/K3_tree.h $ +// $Id: K3_tree.h 68d896b 2022-04-13T11:53:02+01:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -41,8 +41,7 @@ class K3_tree { -template +template class Smaller_than { public: @@ -59,64 +58,10 @@ return false; } - bool operator()( const Object& o1, const Object& o2) { - Vertex v1,v2; - CGAL::assign(v1,o1); - CGAL::assign(v2,o2); - switch(coord) { - case 0: return CGAL::compare_x(v1->point(), v2->point()) == SMALLER; - case 1: return CGAL::compare_y(v1->point(), v2->point()) == SMALLER; - case 2: return CGAL::compare_z(v1->point(), v2->point()) == SMALLER; - default: CGAL_error(); - } - return false; - } private: Coordinate coord; }; - -template - class Smaller_than, Object, Vertex, Coordinate> -{ -public: - Smaller_than(Coordinate c) : coord(c) { - CGAL_assertion( c >= 0 && c <=2); - } - bool operator()( const Vertex& v1, const Vertex& v2) { - switch(coord) { - case 0: return CGAL::to_interval(v1->point().x()).second < - CGAL::to_interval(v2->point().x()).first; - case 1: return CGAL::to_interval(v1->point().y()).second < - CGAL::to_interval(v2->point().y()).first; - case 2: return CGAL::to_interval(v1->point().z()).second < - CGAL::to_interval(v2->point().z()).first; - default: CGAL_error(); - } - return false; - } - - bool operator()( const Object& o1, const Object& o2) { - Vertex v1,v2; - CGAL::assign(v1,o1); - CGAL::assign(v2,o2); - switch(coord) { - case 0: return CGAL::to_interval(v1->point().x()).second < - CGAL::to_interval(v2->point().x()).first; - case 1: return CGAL::to_interval(v1->point().y()).second < - CGAL::to_interval(v2->point().y()).first; - case 2: return CGAL::to_interval(v1->point().z()).second < - CGAL::to_interval(v2->point().z()).first; - default: CGAL_error(); - } - return false; - } -private: - Coordinate coord; -}; - - public: friend class Objects_along_ray; friend class Objects_around_segment; @@ -126,13 +71,17 @@ typedef typename Traits::SNC_decorator SNC_decorator; typedef typename Traits::Infimaximal_box Infimaximal_box; typedef typename Traits::Vertex_handle Vertex_handle; +typedef typename Traits::Vertex_list Vertex_list; +typedef typename Vertex_list::iterator Vertex_iterator; +typedef typename Vertex_list::const_iterator Vertex_const_iterator; typedef typename Traits::Halfedge_handle Halfedge_handle; typedef typename Traits::Halffacet_handle Halffacet_handle; typedef typename Traits::Object_handle Object_handle; -typedef std::vector Object_list; -typedef typename Object_list::const_iterator Object_const_iterator; -typedef typename Object_list::iterator Object_iterator; -typedef typename Object_list::size_type size_type; +typedef typename Traits::Object_list Object_list; +typedef typename Traits::Halfedge_list Halfedge_list; +typedef typename Halfedge_list::const_iterator Halfedge_const_iterator; +typedef typename Traits::Halffacet_list Halffacet_list; +typedef typename Halffacet_list::const_iterator Halffacet_const_iterator; typedef typename Traits::Point_3 Point_3; typedef typename Traits::Segment_3 Segment_3; @@ -144,7 +93,6 @@ typedef typename Traits::Bounding_box_3 Bounding_box_3; typedef typename Traits::Side_of_plane Side_of_plane; -typedef typename Traits::Objects_bbox Objects_bbox; typedef typename Traits::Kernel Kernel; typedef typename Kernel::RT RT; @@ -152,82 +100,86 @@ typedef Smaller_than< Kernel, - Object_handle, Vertex_handle, - int> Smaller_; + int> Smaller; class Node { friend class K3_tree; public: typedef Node* Node_handle; + Node(const Vertex_list& V, const Halfedge_list& E, const Halffacet_list& F) : + left_node(nullptr), right_node(nullptr), vertex_list(V), edge_list(E), facet_list(F) + { + } - Node( Node_handle p, Node_handle l, Node_handle r, Plane_3 pl, const Object_list& O) : - parent_node(p), left_node(l), right_node(r), splitting_plane(pl), - object_list(O) { - if(l == nullptr) - point_on_plane = Point_3(); - else - point_on_plane = pl.point(); + Node(Node_handle l, Node_handle r, const Plane_3& pl) : + left_node(l), right_node(r), splitting_plane(pl) + { } + bool is_leaf() const { CGAL_assertion( (left_node != nullptr && right_node != nullptr) || (left_node == nullptr && right_node == nullptr)); return (left_node == nullptr && right_node == nullptr); } - Node_handle parent() const { return parent_node; } + Node_handle left() const { return left_node; } Node_handle right() const { return right_node; } const Plane_3& plane() const { return splitting_plane; } - const Object_list& objects() const { return object_list; } + + bool empty() { return vertex_list.empty() && edge_list.empty() && facet_list.empty(); } + Vertex_const_iterator vertices_begin() { return vertex_list.begin(); } + Vertex_const_iterator vertices_end() { return vertex_list.end(); } + Halfedge_const_iterator edges_begin() { return edge_list.begin(); } + Halfedge_const_iterator edges_end() { return edge_list.end(); } + Halffacet_const_iterator facets_begin() { return facet_list.begin(); } + Halffacet_const_iterator facets_end() { return facet_list.end(); } void transform(const Aff_transformation_3& t) { if(left_node != nullptr) { CGAL_assertion(right_node != nullptr); left_node->transform(t); - right_node->transform(t); - splitting_plane = splitting_plane.transform(t); + right_node->transform(t); + splitting_plane = splitting_plane.transform(t); } } - template - void add_facet(Halffacet_handle f, Depth depth) { + void add_facet(Halffacet_handle f, int depth) { if(left_node == nullptr) { - object_list.push_back(make_object(f)); + facet_list.push_back(f); return; } - Side_of_plane sop; - Oriented_side side = sop(splitting_plane.point(), f, depth); + Side_of_plane sop(splitting_plane.point(), depth%3); + Oriented_side side = sop(f); if( side == ON_NEGATIVE_SIDE || side == ON_ORIENTED_BOUNDARY) left_node->add_facet(f, depth+1); if( side == ON_POSITIVE_SIDE || side == ON_ORIENTED_BOUNDARY) right_node->add_facet(f, depth+1); } - template - void add_edge(Halfedge_handle e, Depth depth) { + void add_edge(Halfedge_handle e, int depth) { if(left_node == nullptr) { - object_list.push_back(make_object(e)); + edge_list.push_back(e); return; } - Side_of_plane sop; - Oriented_side side = sop(splitting_plane.point(), e, depth); + Side_of_plane sop(splitting_plane.point(), depth%3); + Oriented_side side = sop(e); if( side == ON_NEGATIVE_SIDE || side == ON_ORIENTED_BOUNDARY) left_node->add_edge(e, depth+1); if( side == ON_POSITIVE_SIDE || side == ON_ORIENTED_BOUNDARY) right_node->add_edge(e, depth+1); } - template - void add_vertex(Vertex_handle v, Depth depth) { + void add_vertex(Vertex_handle v, int depth) { if(left_node == nullptr) { - object_list.push_back(make_object(v)); + vertex_list.push_back(v); return; } - Side_of_plane sop; - Oriented_side side = sop(splitting_plane.point(), v, depth); + Side_of_plane sop(splitting_plane.point(), depth%3); + Oriented_side side = sop(v); if( side == ON_NEGATIVE_SIDE || side == ON_ORIENTED_BOUNDARY) left_node->add_vertex(v, depth+1); if( side == ON_POSITIVE_SIDE || side == ON_ORIENTED_BOUNDARY) @@ -235,49 +187,19 @@ } -friend std::ostream& operator<< - (std::ostream& os, const Node_handle node) { - CGAL_assertion( node != nullptr); - if( node->is_leaf()) - os << node->objects().size(); - else { - os << " ( "; - if( !node->left()) os << '-'; - else os << node->left(); - os << " , "; - if( !node->right()) os << '-'; - else os << node->right(); - os << " ) "; - } - return os; -} - - /* -~Node() noexcept(!CGAL_ASSERTIONS_ENABLED) -{ - CGAL_NEF_TRACEN("~Node: deleting node..."); - CGAL_destructor_assertion_catch( - if( !is_leaf()) { - delete left_node; - delete right_node; - } - ); -} - */ private: - - - Node_handle parent_node; Node_handle left_node; Node_handle right_node; Plane_3 splitting_plane; - Point_3 point_on_plane; - Object_list object_list; + Vertex_list vertex_list; + Halfedge_list edge_list; + Halffacet_list facet_list; }; typedef boost::container::deque Node_range; typedef Node* Node_handle; + typedef std::vector Node_list; public: @@ -330,10 +252,6 @@ ++(*this); // place the interator in the first intersected cell } Iterator( const Self& i) : S(i.S), node(i.node) {} - const Object_list& operator*() const { - CGAL_assertion( node != nullptr); - return node->objects(); - } Self& operator++() { if( S.empty()) @@ -397,17 +315,6 @@ return node; } -inline -Node_handle get_child_by_side( const Node_handle node, Oriented_side side) { - CGAL_assertion( node != nullptr); - CGAL_assertion( side != ON_ORIENTED_BOUNDARY); - if( side == ON_NEGATIVE_SIDE) { - return node->left(); - } - CGAL_assertion( side == ON_POSITIVE_SIDE); - return node->right(); -} - void divide_segment_by_plane( Segment_3 s, Plane_3 pl, Segment_3& s1, Segment_3& s2) { Object o = traits.intersect_object()( pl, s); @@ -425,43 +332,6 @@ }; }; - class Objects_along_ray : public Objects_around_segment - { - typedef Objects_around_segment Base; - protected: - Traits traits; - public: - Objects_along_ray( const K3_tree& k, const Ray_3& r) { - CGAL_NEF_TRACEN("Objects_along_ray: input ray: "< CGAL::abs(vec[1]) ? 0 : 1); - c = (CGAL::abs(vec[2]) > CGAL::abs(vec[c]) ? 2 : c); - - Point_3 pt_on_minus_x_plane = vec[c] < 0 ? - Point_3(FT(b.min_coord(0)), FT(b.min_coord(1)),FT(b.min_coord(2))) : - Point_3(FT(b.max_coord(0)), FT(b.max_coord(1)),FT(b.max_coord(2))); - // We compute the intersection between a plane with normal vector in - // the minus x direction and located at the minimum point of the bounding box, and the input ray. When the ray does not intersect the bounding volume, there won't be any object hit, so it is safe to construct a segment that simply lay in the unbounded side of the bounding box. This approach is taken instead of somehow (efficiently) report that there was no hit object, in order to mantain a clear interface with the Iterator class. - Plane_3 pl_on_minus_x; - if(c==0) - pl_on_minus_x = Plane_3(pt_on_minus_x_plane, Vector_3( 1, 0, 0)); - else if(c==1) - pl_on_minus_x = Plane_3(pt_on_minus_x_plane, Vector_3( 0, 1, 0)); - else { - CGAL_assertion_msg(c==2, "wrong value"); - pl_on_minus_x = Plane_3(pt_on_minus_x_plane, Vector_3( 0, 0, 1)); - } - Object o = traits.intersect_object()( pl_on_minus_x, r); - if( !CGAL::assign( q, o) || pl_on_minus_x.has_on(p)) - q = r.source() + vec; - else - q = normalized(q); - Base::initialize( k, Segment_3( p, q)); - } - }; private: #ifdef CGAL_NEF_EXPLOIT_REFERENCE_COUNTING @@ -471,7 +341,7 @@ Node_handle root; - boost::container::deque nodes; + Node_range nodes; int max_depth; Bounding_box_3 bounding_box; @@ -488,87 +358,59 @@ typedef typename SNC_structure::Halffacet_iterator Halffacet_iterator; CGAL_assertion( W != nullptr); - Object_list objects; + + Vertex_list vertices; + vertices.reserve(W->number_of_vertices()); Vertex_iterator v; + CGAL_forall_vertices(v, *W) + vertices.push_back(v); + + Halfedge_list edges; + edges.reserve(W->number_of_halfedges()); Halfedge_iterator e; + CGAL_forall_edges(e, *W) + edges.push_back(e); + + Halffacet_list facets; + facets.reserve(W->number_of_halffacets()); Halffacet_iterator f; - CGAL_forall_vertices( v, *W) - objects.push_back(make_object(Vertex_handle(v))); - typename Object_list::difference_type v_end = objects.size(); - CGAL_forall_edges( e, *W) - objects.push_back(make_object(Halfedge_handle(e))); - CGAL_forall_facets( f, *W) { - objects.push_back(make_object(Halffacet_handle(f))); - } - Object_iterator oli=objects.begin()+v_end; - root = build_kdtree( objects, oli, 0); - } - - K3_tree(Object_list& objects, Object_iterator& v_end) { - -typename Object_list::difference_type n_vertices = std::distance(objects.begin(),v_end); - CGAL_NEF_TRACEN("K3_tree(): n_vertices = " << std::distance(objects.begin(),v_end)); - std::frexp( (double) n_vertices, &max_depth); - - // TODO: in the presence of a infimaximal bounding box, the bounding box does not have to be computed - Objects_bbox objects_bbox = traits.objects_bbox_object(); - bounding_box = objects_bbox(objects); - //CGAL_NEF_TRACEN("bounding box:"< v_mark(false); - Unique_hash_map< Halfedge_handle, bool> e_mark(false); - Unique_hash_map< Halffacet_handle, bool> f_mark(false); - for( typename Objects_around_segment::Iterator oar = objects.begin(); - oar != objects.end(); ++oar) { - for( typename Object_list::const_iterator o = (*oar).begin(); - o != (*oar).end(); ++o) { // TODO: implement operator->(...) - Vertex_handle v; - Halfedge_handle e; - Halffacet_handle f; - if( CGAL::assign( v, *o)) { - if( !v_mark[v]) { - O.push_back(*o); - v_mark[v] = true; - } - } - else if( CGAL::assign( e, *o)) { - if( !e_mark [e]) { - O.push_back(*o); - e_mark[e] = true; - } - } - else if( CGAL::assign( f, *o)) { - if( !f_mark[f]) { - O.push_back(*o); - f_mark[f] = true; - } - } - else - CGAL_error_msg( "wrong handle"); - } + for(typename Objects_around_segment::Iterator oas = objects.begin(); oas != objects.end(); ++oas) { + result.push_back(oas.get_node()); } - return O; + return result; } - - bool is_point_on_cell( const Point_3& p, const typename Objects_around_segment::Iterator& target) const { - return is_point_on_cell( p, target.get_node(), root); + bool is_point_in_node( const Point_3& p, const Node_handle target) const { + return is_point_in_node( p, target, root); } void add_facet(Halffacet_handle f) { @@ -591,12 +433,8 @@ void pre_visit(const Node_handle) {} void post_visit(const Node_handle n) { - typename Object_list::const_iterator o; - for( o = n->objects().begin(); - o != n->objects().end(); ++o) { - Vertex_handle v; - if( CGAL::assign( v, *o)) - b.extend(v->point()); + for(Vertex_const_iterator vi = n->vertex_list.begin(); vi!=n->vertex_list.end(); ++vi) { + b.extend((*vi)->point()); } } @@ -664,182 +502,204 @@ return os.str(); } - /* -~K3_tree() noexcept(!CGAL_ASSERTIONS_ENABLED) -{ - CGAL_NEF_TRACEN("~K3_tree: deleting root..."); - CGAL_destructor_assertion_catch( - delete root; - ); -} - */ private: -template -Node_handle build_kdtree(Object_list& O, Object_iterator v_end, - Depth depth, Node_handle parent=nullptr, int non_efective_splits=0) { +int non_efective_splits; + +Node_handle build_kdtree(Vertex_list& V, Halfedge_list& E, Halffacet_list& F, + int depth) { CGAL_precondition( depth >= 0); - CGAL_NEF_TRACEN( "build_kdtree: "< max_depth) - nodes.push_back(Node( parent, nullptr, nullptr, Plane_3(), O)); + nodes.push_back(Node(V, E, F)); return &(nodes.back()); - } else { - CGAL_NEF_TRACEN("Sizes " << O1.size() << ", " << O2.size() << ", " << O.size()); - CGAL_assertion( O1.size() <= O.size() && O2.size() <= O.size()); - CGAL_assertion( O1.size() + O2.size() >= O.size()); - non_efective_split = ((O1.size() == O.size()) || (O2.size() == O.size())); } - if( non_efective_split) + auto O_size = V.size() + E.size() + F.size(); + auto O1_size = V1.size() + E1.size() + F1.size(); + auto O2_size = V2.size() + E2.size() + F2.size(); + CGAL_NEF_TRACEN("Sizes " << O1_size << ", " << O2_size << ", " << O_size); + CGAL_assertion( O1_size <= O_size && O2_size <= O_size); + CGAL_assertion( O1_size + O2_size >= O_size); + if((O1_size == O_size) || (O2_size == O_size)) non_efective_splits++; else non_efective_splits = 0; - if( non_efective_splits > 2) { + + if(non_efective_splits > 2) { CGAL_NEF_TRACEN("build_kdtree: non efective splits reached maximum"); - nodes.push_back(Node( parent, nullptr, nullptr, Plane_3(), O)); + nodes.push_back(Node(V, E, F)); return &(nodes.back()); } - nodes.push_back(Node( parent, nullptr, nullptr, partition_plane, Object_list())); - Node_handle node = &(nodes.back()); - node->left_node = build_kdtree( O1, O1.begin()+v_end1, depth + 1, node, non_efective_splits); - node->right_node = build_kdtree( O2, O2.begin()+v_end2, depth + 1, node, non_efective_splits); - return node; + + Node_handle left_node = build_kdtree(V1, E1, F1, depth + 1); + Node_handle right_node = build_kdtree(V2, E2, F2, depth + 1); + nodes.push_back(Node(left_node, right_node, construct_splitting_plane(point_on_plane, coord, typename Traits::Kernel::Kernel_tag()))); + return &(nodes.back()); } -template -bool can_set_be_divided(Object_iterator start, Object_iterator end, Depth depth) { +bool can_set_be_divided(int depth, typename Vertex_list::size_type size) { if(depth >= max_depth) return false; - if(std::distance(start,end)<2) + if(size <= 2) return false; return true; } -template -bool classify_objects(Object_iterator start, Object_iterator end, - Plane_3 partition_plane, Side_of_plane& sop, - OutputIterator o1, OutputIterator o2, Depth depth) { - typename Object_list::difference_type on_oriented_boundary = 0; - typename Object_list::const_iterator o; - - Point_3 point_on_plane(partition_plane.point()); +template +static bool classify_objects(const List& l,Side_of_plane& sop, + List& l1, List& l2) { + typename List::size_type on_oriented_boundary = 0; + for(typename List::const_iterator i=l.begin(); i!=l.end(); ++i) { + Oriented_side side = sop(*i); + switch(side) { + case ON_NEGATIVE_SIDE: + l1.push_back(*i); + break; + case ON_POSITIVE_SIDE: + l2.push_back(*i); + break; + case ON_ORIENTED_BOUNDARY: + ++on_oriented_boundary; + l1.push_back(*i); + l2.push_back(*i); + } + } + return (on_oriented_boundary != l.size()); +} + +static Point_3 find_median_point(Vertex_list& V, int coord) { + CGAL_assertion(V.size() > 1); + + Smaller smaller(coord); + Vertex_iterator begin = V.begin(); + Vertex_iterator median = begin + V.size()/2; + std::nth_element(begin, median, V.end(), smaller); + Vertex_iterator prev = std::prev(median); + std::nth_element(begin, prev, median, smaller); - for( o = start; o != end; ++o) { - Oriented_side side = sop( point_on_plane, *o, depth); - if( side == ON_NEGATIVE_SIDE || side == ON_ORIENTED_BOUNDARY) { - *o1 = *o; - ++o1; - } - if( side == ON_POSITIVE_SIDE || side == ON_ORIENTED_BOUNDARY) { - *o2 = *o; - ++o2; - } - if( side == ON_ORIENTED_BOUNDARY) - ++on_oriented_boundary; - } - return (on_oriented_boundary != std::distance(start,end)); + return CGAL::midpoint((*median)->point(), (*prev)->point()); } +static Plane_3 construct_splitting_plane(const Point_3& pt, int coord, const Homogeneous_tag&) +{ + switch(coord) { + case 0: return Plane_3(pt, Vector_3(1, 0, 0)); + case 1: return Plane_3(pt, Vector_3(0, 1, 0)); + case 2: return Plane_3(pt, Vector_3(0, 0, 1)); + } -template -Plane_3 construct_splitting_plane(Object_iterator start, Object_iterator end, - Object_iterator& median, Depth depth) { - CGAL_precondition( depth >= 0); - typename Object_list::difference_type n=std::distance(start,end); - CGAL_assertion(n>1); - - std::nth_element(start, start+n/2, end, - Smaller_(depth%3)); + CGAL_error_msg( "never reached"); + return Plane_3(); +} - Vertex_handle v; - median = start+n/2; - CGAL::assign(v,*median); - switch( depth % 3) { - case 0: return Plane_3( v->point(), Vector_3( 1, 0, 0)); break; - case 1: return Plane_3( v->point(), Vector_3( 0, 1, 0)); break; - case 2: return Plane_3( v->point(), Vector_3( 0, 0, 1)); break; +static Plane_3 construct_splitting_plane(const Point_3& pt, int coord, const Cartesian_tag&) +{ + switch(coord) { + case 0: return Plane_3(1, 0, 0, -pt.x()); + case 1: return Plane_3(0, 1, 0, -pt.y()); + case 2: return Plane_3(0, 0, 1, -pt.z()); } CGAL_error_msg( "never reached"); return Plane_3(); } -Node_handle locate_cell_containing( const Point_3& p, const Node_handle node) const { - CGAL_precondition( node != nullptr); - if( node->is_leaf()) - return node; - else { - Oriented_side side = node->plane().oriented_side(p); - if( side == ON_NEGATIVE_SIDE || side == ON_ORIENTED_BOUNDARY) - return locate_cell_containing( p, node->left()); - else { // side == ON_POSITIVE_SIDE - CGAL_assertion( side == ON_POSITIVE_SIDE); - return locate_cell_containing( p, node->right()); - } +static Node_handle get_child_by_side( const Node_handle node, Oriented_side side) { + CGAL_assertion( node != nullptr); + CGAL_assertion( side != ON_ORIENTED_BOUNDARY); + if( side == ON_NEGATIVE_SIDE) { + return node->left(); } + CGAL_assertion( side == ON_POSITIVE_SIDE); + return node->right(); } -const Object_list& locate( const Point_3& p, const Node_handle node) const { +Node_handle locate_node_containing( const Point_3& p, const Node_handle node) const { CGAL_precondition( node != nullptr); - return locate_cell_containing( p, node)->objects(); + if( node->is_leaf()) + return node; + + Oriented_side side = node->plane().oriented_side(p); + if(side == ON_ORIENTED_BOUNDARY) + side = ON_NEGATIVE_SIDE; + return locate_node_containing(p, get_child_by_side(node, side)); } -bool is_point_on_cell( const Point_3& p, const Node_handle target, const Node_handle current) const { + +bool is_point_in_node( const Point_3& p, const Node_handle target, const Node_handle current) const { CGAL_precondition( target != nullptr && current != nullptr); if( current->is_leaf()) return (current == target); Oriented_side side = current->plane().oriented_side(p); if( side == ON_NEGATIVE_SIDE) - return is_point_on_cell( p, target, current->left()); + return is_point_in_node( p, target, current->left()); else if( side == ON_POSITIVE_SIDE) - return is_point_on_cell( p, target, current->right()); + return is_point_in_node( p, target, current->right()); CGAL_assertion( side == ON_ORIENTED_BOUNDARY); - return (is_point_on_cell( p, target, current->left()) || - is_point_on_cell( p, target, current->right())); + return (is_point_in_node( p, target, current->left()) || + is_point_in_node( p, target, current->right())); +} + +Segment_3 ray_to_segment(const Ray_3& r) const +{ + CGAL_NEF_TRACEN("Objects_along_ray: input ray: "<::halfedge_descriptor halfedge_descriptor; public: - Face_graph_index_adder(Polyhedron&, HalfedgeIndexMap ) {} + Face_graph_index_adder(const Polyhedron&, HalfedgeIndexMap ) {} void set_edge(halfedge_descriptor, SHalfedge_handle) {} void resolve_indexes() {} @@ -128,12 +128,12 @@ Halfedge_around_facet_const_circulator; typedef std::vector SHalfedges; - PolygonMesh& P; + const PolygonMesh& P; HalfedgeIndexMap him; SHalfedges shalfedges; public: - Face_graph_index_adder(PolygonMesh& P_, HalfedgeIndexMap him) : P(P_), him(him) + Face_graph_index_adder(const PolygonMesh& P_, HalfedgeIndexMap him) : P(P_), him(him) { shalfedges.resize(num_halfedges(P)); } @@ -168,10 +168,9 @@ }; template -void polygon_mesh_to_nef_3(PolygonMesh& P, SNC_structure& S, FaceIndexMap fimap, HalfedgeIndexMap himap) +void polygon_mesh_to_nef_3(const PolygonMesh& P, SNC_structure& S, FaceIndexMap fimap, HalfedgeIndexMap himap) { - typedef typename boost::property_map::type PMap; - typedef typename SNC_structure::Plane_3 Plane; + typedef typename boost::property_map::const_type PMap; typedef typename SNC_structure::Vector_3 Vector_3; typedef typename boost::graph_traits::vertex_descriptor vertex_descriptor; typedef typename boost::graph_traits::halfedge_descriptor halfedge_descriptor; @@ -205,7 +204,6 @@ Face_graph_index_adder index_adder(P,himap); - for(vertex_descriptor pv : vertices(P) ) { typename boost::property_traits::reference npv = get(pmap,pv); @@ -250,8 +248,7 @@ with_border = true; else { std::size_t i = get(fimap,face(pe_prev,P)); - Plane ss_plane( CGAL::ORIGIN, normals[i]); - Sphere_circle ss_circle(ss_plane); + Sphere_circle ss_circle(CGAL::ORIGIN, normals[i]); CGAL_assertion_code(if(num_edges[i] > 3) { CGAL_assertion(ss_circle.has_on(sp)); CGAL_assertion(ss_circle.has_on(sv_prev->point())); @@ -283,8 +280,7 @@ e = sv_prev->out_sedge(); } else { std::size_t i = get(fimap,face(pe_prev,P)); - Plane ss_plane( CGAL::ORIGIN, normals[i]); - Sphere_circle ss_circle(ss_plane); + Sphere_circle ss_circle(CGAL::ORIGIN, normals[i]); CGAL_assertion_code(if(num_edges[i] > 3) { CGAL_assertion(ss_circle.has_on(sp_0)); @@ -316,25 +312,15 @@ index_adder.resolve_indexes(); } -template -void polyhedron_3_to_nef_3(Polyhedron& P, SNC_structure& S) -{ - typedef typename boost::property_map::type FIMap; - FIMap fimap = get(CGAL::face_external_index,P); - typedef typename boost::property_map::type HIMap; - HIMap himap = get(CGAL::halfedge_external_index,P); - polygon_mesh_to_nef_3(P, S, fimap, himap); -} - -template -void polygon_mesh_to_nef_3(SM& sm, SNC_structure& snc) +template +void polygon_mesh_to_nef_3(const PolygonMesh& pm, SNC_structure& snc) { - typedef typename boost::property_map::type FIMap; - FIMap fimap = get(CGAL::face_index,sm); - typedef typename boost::property_map::type HIMap; - HIMap himap = get(boost::halfedge_index,sm); + typedef typename GetInitializedFaceIndexMap::const_type FaceIndexMap; + FaceIndexMap fimap = get_initialized_face_index_map(pm); + typedef typename GetInitializedHalfedgeIndexMap::const_type HalfedgeIndexMap; + HalfedgeIndexMap himap = get_initialized_halfedge_index_map(pm); - polygon_mesh_to_nef_3(sm, snc, fimap, himap); + polygon_mesh_to_nef_3(pm, snc, fimap, himap); } diff -Nru cgal-5.4.1/include/CGAL/Nef_3/quotient_coordinates_to_homogeneous_point.h cgal-5.5/include/CGAL/Nef_3/quotient_coordinates_to_homogeneous_point.h --- cgal-5.4.1/include/CGAL/Nef_3/quotient_coordinates_to_homogeneous_point.h 2022-06-03 19:04:56.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_3/quotient_coordinates_to_homogeneous_point.h 2022-07-13 19:05:48.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_3/include/CGAL/Nef_3/quotient_coordinates_to_homogeneous_point.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_3/include/CGAL/Nef_3/quotient_coordinates_to_homogeneous_point.h $ // $Id: quotient_coordinates_to_homogeneous_point.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_3/SFace.h cgal-5.5/include/CGAL/Nef_3/SFace.h --- cgal-5.4.1/include/CGAL/Nef_3/SFace.h 2022-06-03 19:04:55.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_3/SFace.h 2022-07-13 19:05:48.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_3/include/CGAL/Nef_3/SFace.h $ -// $Id: SFace.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_3/include/CGAL/Nef_3/SFace.h $ +// $Id: SFace.h 2d4a857 2022-03-12T12:06:17+00:00 Giles Bathgate // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -54,13 +54,12 @@ SFace_cycle_const_iterator; Vertex_handle center_vertex_; Volume_handle volume_; - // Object_list boundary_entry_objects_; // SEdges, SLoops, SVertices + Object_list boundary_entry_objects_; // SEdges, SLoops, SVertices GenPtr info_; // temporary needed: Mark mark_; public: - Object_list boundary_entry_objects_; // SEdges, SLoops, SVertices SFace_base() : center_vertex_(), volume_(), info_(), mark_() {} diff -Nru cgal-5.4.1/include/CGAL/Nef_3/SHalfedge.h cgal-5.5/include/CGAL/Nef_3/SHalfedge.h --- cgal-5.4.1/include/CGAL/Nef_3/SHalfedge.h 2022-06-03 19:04:55.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_3/SHalfedge.h 2022-07-13 19:05:48.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_3/include/CGAL/Nef_3/SHalfedge.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_3/include/CGAL/Nef_3/SHalfedge.h $ // $Id: SHalfedge.h 4e519a3 2021-05-05T13:15:37+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_3/SHalfloop.h cgal-5.5/include/CGAL/Nef_3/SHalfloop.h --- cgal-5.4.1/include/CGAL/Nef_3/SHalfloop.h 2022-06-03 19:04:55.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_3/SHalfloop.h 2022-07-13 19:05:48.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_3/include/CGAL/Nef_3/SHalfloop.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_3/include/CGAL/Nef_3/SHalfloop.h $ // $Id: SHalfloop.h 4e519a3 2021-05-05T13:15:37+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_3/shell_to_nef_3.h cgal-5.5/include/CGAL/Nef_3/shell_to_nef_3.h --- cgal-5.4.1/include/CGAL/Nef_3/shell_to_nef_3.h 2022-06-03 19:04:56.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_3/shell_to_nef_3.h 2022-07-13 19:05:48.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_3/include/CGAL/Nef_3/shell_to_nef_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_3/include/CGAL/Nef_3/shell_to_nef_3.h $ // $Id: shell_to_nef_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_3/SM_visualizor.h cgal-5.5/include/CGAL/Nef_3/SM_visualizor.h --- cgal-5.4.1/include/CGAL/Nef_3/SM_visualizor.h 2022-06-03 19:04:55.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_3/SM_visualizor.h 2022-07-13 19:05:48.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_3/include/CGAL/Nef_3/SM_visualizor.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_3/include/CGAL/Nef_3/SM_visualizor.h $ // $Id: SM_visualizor.h fb6f703 2021-05-04T14:07:49+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_3/SNC_const_decorator.h cgal-5.5/include/CGAL/Nef_3/SNC_const_decorator.h --- cgal-5.4.1/include/CGAL/Nef_3/SNC_const_decorator.h 2022-06-03 19:04:55.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_3/SNC_const_decorator.h 2022-07-13 19:05:48.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_3/include/CGAL/Nef_3/SNC_const_decorator.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_3/include/CGAL/Nef_3/SNC_const_decorator.h $ // $Id: SNC_const_decorator.h 142fac6 2021-06-25T09:47:59+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_3/SNC_constructor.h cgal-5.5/include/CGAL/Nef_3/SNC_constructor.h --- cgal-5.4.1/include/CGAL/Nef_3/SNC_constructor.h 2022-06-03 19:04:55.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_3/SNC_constructor.h 2022-07-13 19:05:48.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_3/include/CGAL/Nef_3/SNC_constructor.h $ -// $Id: SNC_constructor.h 43115e4 2021-05-05T21:57:47+01:00 Giles Bathgate +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_3/include/CGAL/Nef_3/SNC_constructor.h $ +// $Id: SNC_constructor.h 2067913 2022-03-29T17:46:56+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -901,9 +901,8 @@ ++t2; if(t2 == segs2.end()) t2=segs2.begin(); - SNC_intersection is; Point_3 ip; - bool flag=is.does_intersect_internally(Segment_3(*s1,*t1),Segment_3(*s2,*t2),ip); + bool flag = SNC_intersection::does_intersect_internally(Segment_3(*s1,*t1),Segment_3(*s2,*t2),ip); if(!flag) { if(*s1 == *s2) return normalized(*s1); else if(*s1 == *t2) return normalized(*s1); @@ -2037,7 +2036,7 @@ D.link_as_isolated_vertex(v2, f2); D.link_as_loop(l,f1); D.link_as_loop(l->twin(),f2); - l->circle() = Sphere_circle(faces_p->plane()); + l->circle() = Sphere_circle(CGAL::ORIGIN,faces_p->plane()); l->twin()->circle() = l->circle().opposite(); f2->mark() = mf2; l->mark() = l->twin()->mark() = ml; @@ -2053,7 +2052,7 @@ SHalfedge_handle se1; SHalfedge_handle se2; SFace_handle sf; - Sphere_circle c(f->plane()); + Sphere_circle c(CGAL::ORIGIN,f->plane()); SHalfedge_handle next_edge; SHalfedge_around_svertex_const_circulator ec(E.out_edges(e)), ee(ec); @@ -2104,7 +2103,7 @@ se1 = D.new_shalfedge_pair(ec2->twin(), en->twin(), -1, 1); CGAL_NEF_TRACEN("new edge pair " << ec2->twin()->source()->vector() << " -> " << en->twin()->source()->vector()); - se1->circle() = Sphere_circle(faces_p->plane()); + se1->circle() = Sphere_circle(CGAL::ORIGIN,faces_p->plane()); se1->twin()->circle() = se1->circle().opposite(); se1->mark() = se1->twin()->mark() = BOP(mark_of_right_sface[ec2], faces_p->mark(), inv); diff -Nru cgal-5.4.1/include/CGAL/Nef_3/SNC_decorator.h cgal-5.5/include/CGAL/Nef_3/SNC_decorator.h --- cgal-5.4.1/include/CGAL/Nef_3/SNC_decorator.h 2022-06-03 19:04:55.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_3/SNC_decorator.h 2022-07-13 19:05:48.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_3/include/CGAL/Nef_3/SNC_decorator.h $ -// $Id: SNC_decorator.h 142fac6 2021-06-25T09:47:59+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_3/include/CGAL/Nef_3/SNC_decorator.h $ +// $Id: SNC_decorator.h 1009acb 2022-03-10T18:24:07+00:00 Giles Bathgate // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -280,6 +280,7 @@ SFace_map linked; Shell_volume_setter(const SNCD_& Di) : D(Di), linked(false) {} + void reserve(Size_type n) { linked.reserve(n); } void visit(SFace_handle h) { CGAL_NEF_TRACEN(h->center_vertex()->point()); D.set_volume(h, c); diff -Nru cgal-5.4.1/include/CGAL/Nef_3/SNC_decorator_traits.h cgal-5.5/include/CGAL/Nef_3/SNC_decorator_traits.h --- cgal-5.4.1/include/CGAL/Nef_3/SNC_decorator_traits.h 2022-06-03 19:04:55.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_3/SNC_decorator_traits.h 2022-07-13 19:05:48.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_3/include/CGAL/Nef_3/SNC_decorator_traits.h $ -// $Id: SNC_decorator_traits.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_3/include/CGAL/Nef_3/SNC_decorator_traits.h $ +// $Id: SNC_decorator_traits.h 252aab7 2022-03-19T12:16:25+00:00 Giles Bathgate // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -37,9 +37,6 @@ typedef typename Refs::SHalfloop_handle SHalfloop_handle; typedef typename Refs::SFace_handle SFace_handle; - typedef typename Refs::Halffacet_triangle_handle - Halffacet_triangle_handle; - typedef typename Refs::Vertex_iterator Vertex_iterator; typedef typename Refs::Halfedge_iterator Halfedge_iterator; typedef typename Refs::Halffacet_iterator Halffacet_iterator; @@ -76,9 +73,6 @@ typedef typename Refs::SHalfloop_const_handle SHalfloop_handle; typedef typename Refs::SFace_const_handle SFace_handle; - typedef typename Refs::Halffacet_triangle_const_handle - Halffacet_triangle_handle; - typedef typename Refs::Vertex_const_iterator Vertex_iterator; typedef typename Refs::Halfedge_const_iterator Halfedge_iterator; typedef typename Refs::Halffacet_const_iterator Halffacet_iterator; diff -Nru cgal-5.4.1/include/CGAL/Nef_3/SNC_external_structure.h cgal-5.5/include/CGAL/Nef_3/SNC_external_structure.h --- cgal-5.4.1/include/CGAL/Nef_3/SNC_external_structure.h 2022-06-03 19:04:55.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_3/SNC_external_structure.h 2022-07-13 19:05:48.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_3/include/CGAL/Nef_3/SNC_external_structure.h $ -// $Id: SNC_external_structure.h 521c72d 2021-10-04T13:22:00+02:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_3/include/CGAL/Nef_3/SNC_external_structure.h $ +// $Id: SNC_external_structure.h 9567522 2022-04-19T17:02:20+01:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -30,6 +30,7 @@ #include #include #include +#include #undef CGAL_NEF_DEBUG #define CGAL_NEF_DEBUG 43 @@ -796,9 +797,11 @@ // CGAL_NEF_SETDTHREAD(37*43*503*509); CGAL_NEF_TRACEN(">>>>>create_volumes"); - Sface_shell_hash ShellSf(0); - Face_shell_hash ShellF(0); - SFace_visited_hash Done(false); + auto face_count = this->sncp()->number_of_halffacets(); + auto sface_count = this->sncp()->number_of_sfaces(); + Sface_shell_hash ShellSf(0, sface_count); + Face_shell_hash ShellF(0, face_count); + SFace_visited_hash Done(false, sface_count); Shell_explorer V(*this,ShellSf,ShellF,Done); std::vector MinimalSFace; std::vector EntrySFace; @@ -828,11 +831,14 @@ Closed.push_back(false); Halffacet_iterator hf; - CGAL_forall_facets(hf,*this) - if(ShellF[hf] != ShellF[hf->twin()]) { - Closed[ShellF[hf]] = true; - Closed[ShellF[hf->twin()]] = true; + CGAL_forall_facets(hf,*this) { + unsigned int shf = ShellF[hf]; + unsigned int shf_twin = ShellF[hf->twin()]; + if(shf != shf_twin) { + Closed[shf] = true; + Closed[shf_twin] = true; } + } CGAL_assertion( pl != nullptr); @@ -914,7 +920,7 @@ number_of_ray_shooting_queries++; timer_ray_shooting.start(); #endif - Object_handle o = pl->shoot(ray); + Object_handle o = pl->shoot(ray, vi); #ifdef CGAL_NEF3_TIMER_POINT_LOCATION timer_ray_shooting.stop(); #endif @@ -1303,8 +1309,9 @@ // O0.print(); link_shalfedges_to_facet_cycles(); - std::map hash; - CGAL::Unique_hash_map done(false); + std::size_t num_shalfedges = this->sncp()->number_of_shalfedges(); + std::unordered_map hash(num_shalfedges); + CGAL::Unique_hash_map done(false, num_shalfedges); SHalfedge_iterator sei; CGAL_forall_shalfedges(sei, *this->sncp()) { @@ -1381,17 +1388,7 @@ SNC_simplify simp(*this->sncp()); simp.vertex_simplificationI(); - // std::map hash; - CGAL::Unique_hash_map - done(false); - /* - SHalfedge_iterator sei; - CGAL_forall_shalfedges(sei, *this->sncp()) { - hash[sei->get_forward_index()] = sei->get_forward_index(); - hash[sei->get_backward_index()] = sei->get_backward_index(); - } - */ categorize_facet_cycles_and_create_facets(); create_volumes(); diff -Nru cgal-5.4.1/include/CGAL/Nef_3/SNC_FM_decorator.h cgal-5.5/include/CGAL/Nef_3/SNC_FM_decorator.h --- cgal-5.4.1/include/CGAL/Nef_3/SNC_FM_decorator.h 2022-06-03 19:04:55.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_3/SNC_FM_decorator.h 2022-07-13 19:05:48.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_3/include/CGAL/Nef_3/SNC_FM_decorator.h $ -// $Id: SNC_FM_decorator.h 5038986 2021-04-07T12:01:02+01:00 Andreas Fabri +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_3/include/CGAL/Nef_3/SNC_FM_decorator.h $ +// $Id: SNC_FM_decorator.h 0a8ef64 2022-03-11T22:48:44+00:00 Giles Bathgate // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -110,14 +110,14 @@ template struct Halffacet_output { -Halffacet_output(CGAL::Unique_hash_map& F, std::vector& S) +Halffacet_output(const CGAL::Unique_hash_map& F, std::vector& S) : From(F), Support(S) { edge_number=0; Support[0]=E(); } typedef P Point; typedef V Vertex_handle; typedef unsigned Halfedge_handle; -CGAL::Unique_hash_map& From; +const CGAL::Unique_hash_map& From; std::vector& Support; unsigned edge_number; @@ -467,12 +467,11 @@ Object_list_iterator start, Object_list_iterator end) const { CGAL_NEF_TRACEN(">>>>>create_facet_objects " << normalized(plane_supporting_facet)); - CGAL::Unique_hash_map FacetCycle(-1); + std::vector MinimalEdge; std::list SHalfedges; std::list SHalfloops; - CGAL::Unique_hash_map From; Segment_list Segments; SHalfedge_handle e; SHalfloop_handle l; @@ -503,6 +502,7 @@ CGAL_error_msg("Damn wrong handle."); } + CGAL::Unique_hash_map FacetCycle(-1, SHalfedges.size()); /* We iterate all shalfedges and assign a number for each facet cycle. After that iteration for an edge |e| the number of its facet cycle is |FacetCycle[e]| and for a facet cycle |c| we know @@ -606,6 +606,7 @@ // Insertion of SHalfedges into Segments is shifted below in order // to guarantee that there are no gaps in the overlay. + CGAL::Unique_hash_map From(SHalfedge_handle(), SHalfedges.size()); // SHalfedges.sort(Sort_sedges2()); SHalfedges.sort(Sort_sedges()); diff -Nru cgal-5.4.1/include/CGAL/Nef_3/SNC_indexed_items.h cgal-5.5/include/CGAL/Nef_3/SNC_indexed_items.h --- cgal-5.4.1/include/CGAL/Nef_3/SNC_indexed_items.h 2022-06-03 19:04:55.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_3/SNC_indexed_items.h 2022-07-13 19:05:48.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_3/include/CGAL/Nef_3/SNC_indexed_items.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_3/include/CGAL/Nef_3/SNC_indexed_items.h $ // $Id: SNC_indexed_items.h 2a54687 2021-06-04T13:52:14+02:00 albert-github // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_3/SNC_intersection.h cgal-5.5/include/CGAL/Nef_3/SNC_intersection.h --- cgal-5.4.1/include/CGAL/Nef_3/SNC_intersection.h 2022-06-03 19:04:55.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_3/SNC_intersection.h 2022-07-13 19:05:48.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_3/include/CGAL/Nef_3/SNC_intersection.h $ -// $Id: SNC_intersection.h 458ecf1 2021-06-08T17:32:12+01:00 Giles Bathgate +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_3/include/CGAL/Nef_3/SNC_intersection.h $ +// $Id: SNC_intersection.h dc18d7a 2022-03-22T21:00:57+00:00 Giles Bathgate // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -17,6 +17,7 @@ #include +#include #undef CGAL_NEF_DEBUG #define CGAL_NEF_DEBUG 37 @@ -39,13 +40,10 @@ }; template -class SNC_intersection : public SNC_const_decorator { - // TODO: granados: is it really necessary to inherit from the decorator? +class SNC_intersection { typedef SNC_structure_ SNC_structure; typedef SNC_intersection Self; - typedef SNC_const_decorator Base; - // typedef SNC_const_decorator SNC_const_decorator; typedef typename SNC_structure::SHalfedge SHalfedge; typedef typename SNC_structure::Halfedge_handle Halfedge_handle; @@ -58,112 +56,31 @@ typedef typename SNC_structure::Halffacet_cycle_const_iterator Halffacet_cycle_const_iterator; - typedef typename SNC_structure::Point_3 Point_3; typedef typename SNC_structure::Vector_3 Vector_3; typedef typename SNC_structure::Segment_3 Segment_3; typedef typename SNC_structure::Line_3 Line_3; typedef typename SNC_structure::Ray_3 Ray_3; typedef typename SNC_structure::Plane_3 Plane_3; - typedef typename SNC_structure::Triangle_3 Triangle_3; public: - SNC_intersection() : Base() {} - SNC_intersection(const SNC_structure& W) : Base(W) {} - - bool does_contain_internally(const Segment_3& s, const Point_3& p) const { - if(!are_strictly_ordered_along_line (s.source(), p, s.target())) - return false; - if(!s.supporting_line().has_on(p)) - return false; - return true; - } - - bool does_contain_internally( Halffacet_const_handle f, - const Point_3& p, - bool check_has_on = true) const { - if(check_has_on && !f->plane().has_on(p)) - return false; - return (locate_point_in_halffacet( p, f) == CGAL::ON_BOUNDED_SIDE); - } - - - bool does_contain_on_boundary( Halffacet_const_handle f, const Point_3& p) const { - typedef Project_shalfedge_point - < SHalfedge, const Point_3> Project; - typedef Circulator_project - < SHalfedge_around_facet_const_circulator, Project, - const Point_3&, const Point_3*> Circulator; - Halffacet_cycle_const_iterator fc = f->facet_cycles_begin(); - CGAL_assertion(fc.is_shalfedge()); - if (fc.is_shalfedge() ) { - SHalfedge_const_handle se(fc); - SHalfedge_around_facet_const_circulator hfc(se); - Circulator c(hfc), cp(c), cend(c); - do { - c++; - CGAL_NEF_TRACEN("contained on edge "<facet_cycles_end(); - ++fc; - CGAL_For_all(fc, fe) { - if (fc.is_shalfloop() ) { - SHalfloop_const_handle l(fc); - CGAL_NEF_TRACEN("isolated point on "<incident_sface()->center_vertex()->point()<<"? "); - if( l->incident_sface()->center_vertex()->point() == p) - return true; - } - else if (fc.is_shalfedge() ) { - SHalfedge_const_handle se(fc); - SHalfedge_around_facet_const_circulator hfc(se); - Circulator c(hfc), cp(c), cend(c); - do { - c++; - CGAL_NEF_TRACEN("contained on edge "<plane().has_on(p)) return false; - if ( s1.has_on(s2.source()) || s1.has_on(s2.target()) || - s2.has_on(s1.source()) || s2.has_on(s1.target())) - /* the segments does intersect at one endpoint */ - return false; - Object o = intersection(Line_3(ray), Line_3(s)); - if ( !CGAL::assign(p, o)) - return false; - return( does_contain_internally( s, p)); + return point_in_facet_interior( p, f); } -#else // LINE3_LINE3_INTERSECTION - - bool does_intersect_internally( const Segment_3& s1, - const Segment_3& s2, - Point_3& p) const { + static bool does_intersect_internally(const Segment_3& s1, + const Segment_3& s2, + Point_3& p) { if(s2.has_on(s1.target())) return false; Ray_3 r(s1.source(), s1.target()); @@ -173,14 +90,10 @@ return (pl.oriented_side(p) == CGAL::NEGATIVE); } - bool does_intersect_internally( const Ray_3& s1, - const Segment_3& s2, - Point_3& p) const { - CGAL_NEF_TRACEN("does intersect internally without LINE3_LINE3_INTERSECTION"); - CGAL_assertion(!s1.is_degenerate()); - CGAL_assertion(!s2.is_degenerate()); - if ( orientation( s1.source(), s1.point(1), s2.source(), s2.target()) - != COPLANAR) + static bool does_intersect_internally(const Ray_3& s1, + const Segment_3& s2, + Point_3& p) { + if (!coplanar( s1.source(), s1.point(1), s2.source(), s2.target())) // the segments doesn't define a plane return false; if ( s1.has_on(s2.source()) || s1.has_on(s2.target()) || @@ -194,7 +107,7 @@ return false; Vector_3 vs1(s1.to_vector()), vs2(s2.to_vector()), vt(cross_product( vs1, vs2)), - ws1(cross_product( vt, vs1)); // , ws2(cross_product( vt, vs2)); + ws1(cross_product( vt, vs1)); Plane_3 hs1( s1.source(), ws1); Object o = intersection(hs1, ls2); CGAL_assertion(CGAL::assign( p, o)); @@ -211,73 +124,28 @@ return (pl.oriented_side(p) == CGAL::NEGATIVE); } -#endif // LINE3_LINE3_INTERSECTION - - bool does_intersect( const Ray_3& r, const Triangle_3& tr, - Point_3& ip) const { - // Intersection between an open ray and - // a closed 2d-triangular region in the space - CGAL_NEF_TRACEN("-> Intersection triangle - ray"); - CGAL_NEF_TRACEN(" -> Ray: "< Triangle: "< intersection point: "< Intersection triangle - segment"); - CGAL_NEF_TRACEN(" -> Segment: "< Triangle: "< intersection point: "< Intersection facet - ray"); Plane_3 h( f->plane()); CGAL_NEF_TRACEN("-> facet's plane: " << h); CGAL_NEF_TRACEN("-> a point on the plane: " << h.point()); CGAL_NEF_TRACEN("-> ray: " << ray); CGAL_assertion(!ray.is_degenerate()); - if(checkHasOn) { - if(h.has_on(ray.source())) - return false; - } else - CGAL_assertion(!h.has_on(ray.source())); + if(h.has_on(ray.source())) + return false; Object o = intersection( h, ray); if( !CGAL::assign( p, o)) return false; CGAL_NEF_TRACEN( "-> intersection point: " << p ); - CGAL_NEF_TRACEN( "-> point in facet interior? "< point in facet interior? "< Intersection facet - segment"); Plane_3 h( f->plane()); CGAL_NEF_TRACEN("-> facet's plane: " << h); @@ -287,24 +155,23 @@ if( h.has_on( seg.source()) || h.has_on(seg.target())) /* no possible internal intersection */ return false; - return does_intersect(seg, f, p); - } - - bool does_intersect(const Segment_3& seg, - Halffacet_const_handle f, - Point_3& p) const { - Plane_3 h( f->plane()); Object o = intersection( h, seg); if( !CGAL::assign( p, o)) return false; CGAL_NEF_TRACEN( "-> intersection point: " << p ); - CGAL_NEF_TRACEN( "-> point in facet interior? "< point in facet interior? "<plane()); typedef Project_shalfedge_point < SHalfedge, const Point_3> Project; diff -Nru cgal-5.4.1/include/CGAL/Nef_3/SNC_io_parser.h cgal-5.5/include/CGAL/Nef_3/SNC_io_parser.h --- cgal-5.4.1/include/CGAL/Nef_3/SNC_io_parser.h 2022-06-03 19:04:55.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_3/SNC_io_parser.h 2022-07-13 19:05:48.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_3/include/CGAL/Nef_3/SNC_io_parser.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_3/include/CGAL/Nef_3/SNC_io_parser.h $ // $Id: SNC_io_parser.h c552735 2021-09-29T11:46:49+02:00 Laurent Rineau // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_3/SNC_items.h cgal-5.5/include/CGAL/Nef_3/SNC_items.h --- cgal-5.4.1/include/CGAL/Nef_3/SNC_items.h 2022-06-03 19:04:55.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_3/SNC_items.h 2022-07-13 19:05:48.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_3/include/CGAL/Nef_3/SNC_items.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_3/include/CGAL/Nef_3/SNC_items.h $ // $Id: SNC_items.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_3/SNC_iteration.h cgal-5.5/include/CGAL/Nef_3/SNC_iteration.h --- cgal-5.4.1/include/CGAL/Nef_3/SNC_iteration.h 2022-06-03 19:04:55.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_3/SNC_iteration.h 2022-07-13 19:05:48.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_3/include/CGAL/Nef_3/SNC_iteration.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_3/include/CGAL/Nef_3/SNC_iteration.h $ // $Id: SNC_iteration.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_3/SNC_k3_tree_traits.h cgal-5.5/include/CGAL/Nef_3/SNC_k3_tree_traits.h --- cgal-5.4.1/include/CGAL/Nef_3/SNC_k3_tree_traits.h 2022-06-03 19:04:55.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_3/SNC_k3_tree_traits.h 2022-07-13 19:05:48.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_3/include/CGAL/Nef_3/SNC_k3_tree_traits.h $ -// $Id: SNC_k3_tree_traits.h a7cad1c 2021-06-25T09:31:00+02:00 Sebastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_3/include/CGAL/Nef_3/SNC_k3_tree_traits.h $ +// $Id: SNC_k3_tree_traits.h 263c168 2022-03-10T18:24:07+00:00 Giles Bathgate // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -18,6 +18,7 @@ #include #include +#include #include #undef CGAL_NEF_DEBUG @@ -28,11 +29,11 @@ template -class ComparePoints { +class Compare_points { typedef typename Kernel::Point_3 Point_3; public: - ComparePoints(Coordinate c) : coord(c) { + Compare_points(Coordinate c) : coord(c) { CGAL_assertion( c >= 0 && c <=2); } CGAL::Comparison_result operator()(const Point_3& p1, const Point_3& p2) { @@ -55,61 +56,15 @@ }; -template -class ComparePoints, Coordinate> { - - typedef CGAL::Lazy_kernel Kernel; - typedef typename Kernel::Point_3 Point_3; - public: - ComparePoints(Coordinate c) : coord(c) { - CGAL_assertion( c >= 0 && c <=2); - } - CGAL::Comparison_result operator()( const Point_3 p1, const Point_3 p2) { - switch(coord) { - case 0: - if(CGAL::to_interval(p1.x()).second < - CGAL::to_interval(p2.x()).first) - return CGAL::SMALLER; - else if(CGAL::to_interval(p2.x()).second < - CGAL::to_interval(p1.x()).first) - return CGAL::LARGER; - return CGAL::EQUAL; - case 1: - if(CGAL::to_interval(p1.y()).second < - CGAL::to_interval(p2.y()).first) - return CGAL::SMALLER; - else if(CGAL::to_interval(p2.y()).second < - CGAL::to_interval(p1.y()).first) - return CGAL::LARGER; - return CGAL::EQUAL; - case 2: - if(CGAL::to_interval(p1.z()).second < - CGAL::to_interval(p2.z()).first) - return CGAL::SMALLER; - else if(CGAL::to_interval(p2.z()).second < - CGAL::to_interval(p1.z()).first) - return CGAL::LARGER; - return CGAL::EQUAL; - default: CGAL_error(); - } - return CGAL::EQUAL; - } -private: - Coordinate coord; -}; - template class Side_of_plane { -public: - typedef typename SNC_decorator::SNC_structure SNC_structure; + typedef typename SNC_decorator::Decorator_traits Decorator_traits; typedef typename Decorator_traits::Vertex_handle Vertex_handle; typedef typename Decorator_traits::Halfedge_handle Halfedge_handle; typedef typename Decorator_traits::Halffacet_handle Halffacet_handle; - typedef typename SNC_structure::Object_handle Object_handle; - typedef typename Decorator_traits::Halffacet_cycle_iterator Halffacet_cycle_iterator; typedef typename Decorator_traits::SHalfedge_around_facet_circulator @@ -118,154 +73,34 @@ typedef typename SNC_decorator::Kernel Kernel; typedef typename Kernel::Point_3 Point_3; - typedef typename Kernel::Segment_3 Segment_3; - typedef typename Kernel::Plane_3 Plane_3; - typedef typename Kernel::Triangle_3 Triangle_3; - typedef typename Kernel::Vector_3 Vector_3; - typedef typename Kernel::RT RT; - - typedef ComparePoints ComparePoints_; - #ifdef CGAL_NEF_EXPLOIT_REFERENCE_COUNTING - Side_of_plane(bool rc = false) : reference_counted(rc) {} -#else - Side_of_plane() {} + typedef typename Kernel::RT RT; #endif + typedef Compare_points Compare; + static constexpr Oriented_side unknown_side = static_cast(-2); - - template Oriented_side operator() - ( const Point_3& pop, Object_handle o, Depth depth); - template Oriented_side operator() - ( const Point_3& pop, Vertex_handle v, Depth depth); - template Oriented_side operator() - ( const Point_3& pop, Halfedge_handle e, Depth depth); - template Oriented_side operator() - ( const Point_3& pop, Halffacet_handle f, Depth depth); +public: #ifdef CGAL_NEF_EXPLOIT_REFERENCE_COUNTING - bool reference_counted; + Side_of_plane(const Point_3& p, int c, bool rc = false) : reference_counted(rc), coord(c), pop(p) {} +#else + Side_of_plane(const Point_3& p, int c) : OnSideMap(unknown_side), coord(c), pop(p) {} #endif - Unique_hash_map OnSideMap; + void reserve(std::size_t n) { OnSideMap.reserve(n); } + Oriented_side operator()(Vertex_handle v); + Oriented_side operator()(Halfedge_handle e); + Oriented_side operator()(Halffacet_handle f); +private: + Unique_hash_map OnSideMap; #ifdef CGAL_NEF_EXPLOIT_REFERENCE_COUNTING Unique_hash_map OnSideMapRC; + bool reference_counted; #endif + int coord; + const Point_3 pop; }; template -class Objects_bbox { -public: - typedef typename SNC_decorator::SNC_structure SNC_structure; - typedef typename SNC_decorator::Decorator_traits Decorator_traits; - - typedef typename Decorator_traits::Vertex_handle Vertex_handle; - typedef typename Decorator_traits::Halfedge_handle Halfedge_handle; - typedef typename Decorator_traits::Halffacet_handle Halffacet_handle; - - typedef typename SNC_structure::Halffacet_triangle_handle Halffacet_triangle_handle; - typedef typename SNC_structure::Object_handle Object_handle; - typedef std::vector Object_list; - - typedef typename Decorator_traits::Halffacet_cycle_iterator - Halffacet_cycle_iterator; - typedef typename Decorator_traits::SHalfedge_around_facet_circulator - SHalfedge_around_facet_circulator; - typedef typename Decorator_traits::SHalfedge_handle SHalfedge_handle; - - typedef typename SNC_decorator::Kernel Kernel; - typedef typename Kernel::Plane_3 Plane_3; - typedef typename Kernel::Segment_3 Segment_3; - typedef typename Kernel::Point_3 Point_3; - typedef typename Kernel::Triangle_3 Triangle_3; - - typedef typename Kernel::RT RT; - typedef typename Kernel::FT FT; - typedef typename Kernel::Kernel_tag Kernel_tag; - typedef CGAL::Bounding_box_3 - Bounding_box_3; - // typedef CGAL::Bounding_box_3 - // ::value_type, Kernel> - // Bounding_box_3; - - Bounding_box_3 operator()( const Object_list& O) const { - Bounding_box_3 b; - typename Object_list::const_iterator o = O.begin(); - Vertex_handle v; - while(o != O.end() && !CGAL::assign(v, *o)) ++o; - if(o != O.end()) { - FT q[3]; - q[0] = v->point().x(); - q[1] = v->point().y(); - q[2] = v->point().z(); - Bounding_box_3 b(q); - for(++o; o != O.end(); ++o) { - if( CGAL::assign( v, *o)) { - b.extend(v->point()); - } - } - return b; - } - FT q[3]; - q[0] = q[1] = q[2] = 0; - return Bounding_box_3(q); - } - - /* - Bounding_box_3 operator()(Object_handle o) const { - Vertex_handle v; - Halfedge_handle e; - Halffacet_handle f; - if( CGAL::assign( v, o)) - return operator()(v); - else if( CGAL::assign( e, o)) - return operator()(e); - else if( CGAL::assign( f, o)) - return operator()(f); - else { - Halffacet_triangle_handle t; - if( CGAL::assign( t, o)) - return operator()(t); - else - CGAL_error_msg( "wrong handle"); - } - return Bounding_box_3(); // never reached - } - - Bounding_box_3 operator()(Vertex_handle v) const { - Bounding_box_3 b; - b.extend(v->point()); - return b; - } - - Bounding_box_3 operator()(Halfedge_handle e) const { - Bounding_box_3 b; - b.extend(e->source()->point()); - b.extend(e->twin()->source()->point()); - return b; - } - - Bounding_box_3 operator()(Halffacet_triangle_handle t) const { - Bounding_box_3 bbox; - Triangle_3 tr(t.get_triangle()); - for( int i = 0; i < 3; ++i) - bbox.extend(tr[i]); - return bbox; - } - - Bounding_box_3 operator()(Halffacet_handle f) const { - CGAL_assertion( f->facet_cycles_begin() != - Halffacet_cycle_iterator()); - Halffacet_cycle_iterator fc(f->facet_cycles_begin()); - SHalfedge_handle e; - CGAL_assertion(fc.is_shalfedge()); - e = SHalfedge_handle(fc); - SHalfedge_around_facet_circulator sc(e), send(sc); - CGAL_assertion( !is_empty_range( sc, send)); - Bounding_box_3 b; - CGAL_For_all( sc, send) - b.extend(sc->source()->source()->point()); - return b; - } - */ -}; +constexpr Oriented_side Side_of_plane::unknown_side; template class SNC_k3_tree_traits { @@ -283,6 +118,9 @@ typedef typename SNC_structure::Object_handle Object_handle; typedef std::vector Object_list; + typedef std::vector Vertex_list; + typedef std::vector Halfedge_list; + typedef std::vector Halffacet_list; typedef typename Kernel::Point_3 Point_3; typedef typename Kernel::Segment_3 Segment_3; @@ -294,55 +132,24 @@ typedef typename Kernel::RT RT; typedef typename Kernel::Kernel_tag Kernel_tag; - // typedef CGAL::Bounding_box_3 - // ::value_type, Kernel> - // Bounding_box_3; - typedef CGAL::Bounding_box_3 - Bounding_box_3; - + typedef CGAL::Bounding_box_3 Bounding_box_3; typedef typename Kernel::Intersect_3 Intersect; - typedef CGAL::Objects_bbox Objects_bbox; typedef CGAL::Side_of_plane Side_of_plane; Intersect intersect_object() const { return Intersect(); } - Objects_bbox objects_bbox_object() const { - return Objects_bbox(); - } }; template -template Oriented_side -Side_of_plane::operator() - (const Point_3& pop, Object_handle o, Depth depth) { - Vertex_handle v; - Halfedge_handle e; - Halffacet_handle f; - if( CGAL::assign( v, o)) - return (*this)(pop, v, depth); - else if( CGAL::assign( e, o)) - return (*this)(pop, e, depth); - else if( CGAL::assign( f, o)) - return (*this)(pop, f, depth); - else - CGAL_error_msg( "wrong handle"); - - return Oriented_side(); // never reached -} - -template -template -Oriented_side -Side_of_plane::operator() -( const Point_3& pop, Vertex_handle v, Depth depth) { - Comparison_result cr; +Side_of_plane::operator()(Vertex_handle v) { +Comparison_result cr; #ifdef CGAL_NEF_EXPLOIT_REFERENCE_COUNTING if(reference_counted) { if(!OnSideMapRC.is_defined(&(v->point().hw()))) - switch(depth%3) { + switch(coord) { case 0: cr = CGAL::compare_x(v->point(), pop); OnSideMapRC[&(v->point().hw())] = cr == LARGER ? ON_POSITIVE_SIDE : @@ -363,13 +170,14 @@ return OnSideMapRC[&(v->point().hw())]; } else { #endif - ComparePoints_ compare(depth%3); - if(!OnSideMap.is_defined(v)) { - cr = compare(v->point(), pop); - OnSideMap[v] = cr == LARGER ? ON_POSITIVE_SIDE : - cr == SMALLER ? ON_NEGATIVE_SIDE : ON_ORIENTED_BOUNDARY; - } - return OnSideMap[v]; + Oriented_side& side = OnSideMap[v]; + if(side == unknown_side) { + Compare compare(coord); + cr = compare(v->point(), pop); + side = cr == LARGER ? ON_POSITIVE_SIDE : + cr == SMALLER ? ON_NEGATIVE_SIDE : ON_ORIENTED_BOUNDARY; + } + return side; #ifdef CGAL_NEF_EXPLOIT_REFERENCE_COUNTING } #endif @@ -383,57 +191,13 @@ */ template -template Oriented_side -Side_of_plane::operator() -( const Point_3& pop, Halfedge_handle e, Depth depth) { +Side_of_plane::operator()(Halfedge_handle e) { Vertex_handle v = e->source(); Vertex_handle vt = e->twin()->source(); - /* - Comparison_result cr; - if(!OnSideMap.is_defined(v)) - switch(depth%3) { - case 0: - cr = CGAL::compare_x(v->point(), pop); - OnSideMap[v] = cr == LARGER ? ON_POSITIVE_SIDE : - cr == SMALLER ? ON_NEGATIVE_SIDE : ON_ORIENTED_BOUNDARY; - break; - case 1: - cr = CGAL::compare_y(v->point(), pop); - OnSideMap[v] = cr == LARGER ? ON_POSITIVE_SIDE : - cr == SMALLER ? ON_NEGATIVE_SIDE : ON_ORIENTED_BOUNDARY; - break; - case 2: - cr = CGAL::compare_z(v->point(), pop); - OnSideMap[v] = cr == LARGER ? ON_POSITIVE_SIDE : - cr == SMALLER ? ON_NEGATIVE_SIDE : ON_ORIENTED_BOUNDARY; - break; - default: CGAL_error_msg( "wrong value"); - } - if(!OnSideMap.is_defined(vt)) - switch(depth%3) { - case 0: - cr = CGAL::compare_x(vt->point(), pop); - OnSideMap[vt] = cr == LARGER ? ON_POSITIVE_SIDE : - cr == SMALLER ? ON_NEGATIVE_SIDE : ON_ORIENTED_BOUNDARY; - break; - case 1: - cr = CGAL::compare_y(vt->point(), pop); - OnSideMap[vt] = cr == LARGER ? ON_POSITIVE_SIDE : - cr == SMALLER ? ON_NEGATIVE_SIDE : ON_ORIENTED_BOUNDARY; - break; - case 2: - cr = CGAL::compare_z(vt->point(), pop); - OnSideMap[vt] = cr == LARGER ? ON_POSITIVE_SIDE : - cr == SMALLER ? ON_NEGATIVE_SIDE : ON_ORIENTED_BOUNDARY; - break; - default: CGAL_error_msg( "wrong value"); - } - Oriented_side src_side = OnSideMap[v]; - Oriented_side tgt_side = OnSideMap[vt]; -*/ - Oriented_side src_side = (*this) (pop, v, depth); - Oriented_side tgt_side = (*this) (pop, vt, depth); + + Oriented_side src_side = (*this) (v); + Oriented_side tgt_side = (*this) (vt); if( src_side == tgt_side) return src_side; if( src_side == ON_ORIENTED_BOUNDARY) @@ -457,37 +221,10 @@ template -template Oriented_side -Side_of_plane::operator() - (const Point_3& pop, Halffacet_handle f, Depth depth) { +Side_of_plane::operator()(Halffacet_handle f) { CGAL_assertion( std::distance( f->facet_cycles_begin(), f->facet_cycles_end()) > 0); - /* -#ifdef CGAL_NEF3_FACET_WITH_BOX - switch(depth%3) { - case 0: - if(f->b.min_coord(0) > pop.x()) - return ON_POSITIVE_SIDE; - if(f->b.max_coord(0) < pop.x()) - return ON_NEGATIVE_SIDE; - break; - case 1: - if(f->b.min_coord(1) > pop.y()) - return ON_POSITIVE_SIDE; - if(f->b.max_coord(1) < pop.y()) - return ON_NEGATIVE_SIDE; - break; - case 2: - if(f->b.min_coord(2) > pop.z()) - return ON_POSITIVE_SIDE; - if(f->b.max_coord(2) < pop.z()) - return ON_NEGATIVE_SIDE; - break; - default: CGAL_error_msg( "wrong value"); - } - return ON_ORIENTED_BOUNDARY; -#else - */ + Halffacet_cycle_iterator fc(f->facet_cycles_begin()); SHalfedge_handle e; CGAL_assertion(fc.is_shalfedge()); @@ -499,7 +236,7 @@ Vertex_handle v; do { v = sc->source()->center_vertex(); - facet_side = (*this) (pop, v, depth); + facet_side = (*this) (v); ++sc; } while( facet_side == ON_ORIENTED_BOUNDARY && sc != send); @@ -509,7 +246,7 @@ Oriented_side point_side; while( sc != send) { v = sc->source()->center_vertex(); - point_side = (*this) (pop, v, depth); + point_side = (*this) (v); ++sc; if( point_side == ON_ORIENTED_BOUNDARY) continue; diff -Nru cgal-5.4.1/include/CGAL/Nef_3/SNC_list.h cgal-5.5/include/CGAL/Nef_3/SNC_list.h --- cgal-5.4.1/include/CGAL/Nef_3/SNC_list.h 2022-06-03 19:04:55.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_3/SNC_list.h 2022-07-13 19:05:48.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_3/include/CGAL/Nef_3/SNC_list.h $ -// $Id: SNC_list.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_3/include/CGAL/Nef_3/SNC_list.h $ +// $Id: SNC_list.h e5f4796 2022-03-19T12:43:38+00:00 Giles Bathgate // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -17,7 +17,6 @@ #include -#include namespace CGAL { @@ -27,8 +26,7 @@ public In_place_list_base > { public: typedef SNC_in_place_list_sm Self; - // typedef typename Vertex::Vertex_handle Vertex_handle; - // typedef typename Vertex::Vertex_const_handle Vertex_const_handle; + SNC_in_place_list_sm() {} SNC_in_place_list_sm(const Self&)=default; SNC_in_place_list_sm(const Sphere_map& sm) // down cast @@ -47,8 +45,7 @@ public In_place_list_base > { public: typedef SNC_in_place_list_halffacet Self; - // typedef typename Halffacet::Halffacet_handle Halffacet_handle; - // typedef typename Halffacet::Halffacet_const_handle Halffacet_const_handle; + SNC_in_place_list_halffacet() {} SNC_in_place_list_halffacet(const Halffacet& v) // down cast : Halffacet(v) {} @@ -67,8 +64,7 @@ public In_place_list_base > { public: typedef SNC_in_place_list_volume Self; - // typedef typename Volume::Volume_handle Volume_handle; - // typedef typename Volume::Volume_const_handle Volume_const_handle; + SNC_in_place_list_volume() {} SNC_in_place_list_volume(const Volume& v) // down cast : Volume(v) {} @@ -87,8 +83,7 @@ public In_place_list_base > { public: typedef SNC_in_place_list_shalfloop Self; - // typedef typename SHalfloop::SHalfloop_handle SHalfloop_handle; - // typedef typename SHalfloop::SHalfloop_const_handle SHalfloop_const_handle; + SNC_in_place_list_shalfloop() {} SNC_in_place_list_shalfloop(const SHalfloop& v) // down cast : SHalfloop(v) {} @@ -101,672 +96,6 @@ } }; -/* -template class SNC_sphere_map; -template class SM_decorator; - -template -class SNC_list : public SM_list,Items_> { - - public: - typedef Kernel_ Kernel; - typedef Items_ Items; - typedef CGAL::Sphere_geometry Sphere_kernel; - typedef CGAL::SNC_list Self; - typedef CGAL::SM_list Base; - typedef CGAL::SNC_sphere_map Sphere_map; - typedef CGAL::SM_decorator SM_decorator; - - typedef typename Base::Mark Mark; - typedef typename Base::Size_type Size_type; - - typedef typename Kernel::Point_3 Point_3; - typedef typename Kernel::Plane_3 Plane_3; - typedef typename Kernel::Vector_3 Vector_3; - typedef typename Kernel::Direction_3 Direction_3; - typedef typename Kernel::Segment_3 Segment_3; - typedef typename Kernel::Line_3 Line_3; - typedef typename Kernel::Ray_3 Ray_3; - typedef typename Kernel::Triangle_3 Triangle_3; - typedef typename Kernel::Aff_transformation_3 Aff_transformation_3; - - typedef typename Sphere_kernel::Sphere_point Sphere_point; - typedef typename Sphere_kernel::Sphere_segment Sphere_segment; - typedef typename Sphere_kernel::Sphere_circle Sphere_circle; - typedef typename Sphere_kernel::Sphere_direction Sphere_direction; - - typedef Sphere_map Vertex_base; - typedef SNC_in_place_list_sm Vertex; - typedef CGAL::In_place_list Vertex_list; - typedef CGAL_ALLOCATOR(Vertex) Vertex_alloc; - typedef typename Vertex_list::iterator Vertex_handle; - typedef typename Vertex_list::const_iterator Vertex_const_handle; - typedef typename Vertex_list::iterator Vertex_iterator; - typedef typename Vertex_list::const_iterator Vertex_const_iterator; - - typedef typename Items::template Halffacet Halffacet_base; - typedef SNC_in_place_list_halffacet Halffacet; - typedef CGAL::In_place_list Halffacet_list; - typedef CGAL_ALLOCATOR(Halffacet) Halffacet_alloc; - typedef typename Halffacet_list::iterator Halffacet_handle; - typedef typename Halffacet_list::const_iterator Halffacet_const_handle; - typedef typename Halffacet_list::iterator Halffacet_iterator; - typedef typename Halffacet_list::const_iterator Halffacet_const_iterator; - - typedef typename Items::template Volume Volume_base; - typedef SNC_in_place_list_volume Volume; - typedef CGAL::In_place_list Volume_list; - typedef CGAL_ALLOCATOR(Volume) Volume_alloc; - typedef typename Volume_list::iterator Volume_handle; - typedef typename Volume_list::const_iterator Volume_const_handle; - typedef typename Volume_list::iterator Volume_iterator; - typedef typename Volume_list::const_iterator Volume_const_iterator; - - typedef typename Items::template SVertex SVertex_base; - typedef SNC_in_place_list_svertex SVertex; - typedef CGAL::In_place_list SVertex_list; - typedef CGAL_ALLOCATOR(SVertex) SVertex_alloc; - typedef typename SVertex_list::iterator SVertex_handle; - typedef typename SVertex_list::const_iterator SVertex_const_handle; - typedef typename SVertex_list::iterator SVertex_iterator; - typedef typename SVertex_list::const_iterator SVertex_const_iterator; - - typedef typename Items::template SVertex Halfedge_base; - typedef SNC_in_place_list_svertex Halfedge; - typedef CGAL::In_place_list Halfedge_list; - typedef CGAL_ALLOCATOR(SVertex) Halfedge_alloc; - typedef typename SVertex_list::iterator Halfedge_handle; - typedef typename SVertex_list::const_iterator Halfedge_const_handle; - typedef typename SVertex_list::iterator Halfedge_iterator; - typedef typename SVertex_list::const_iterator Halfedge_const_iterator; - - typedef typename Items::template SHalfedge SHalfedge_base; - typedef SNC_in_place_list_shalfedge SHalfedge; - typedef CGAL::In_place_list SHalfedge_list; - typedef CGAL_ALLOCATOR(SHalfedge) SHalfedge_alloc; - typedef typename SHalfedge_list::iterator SHalfedge_handle; - typedef typename SHalfedge_list::const_iterator SHalfedge_const_handle; - typedef typename SHalfedge_list::iterator SHalfedge_iterator; - typedef typename SHalfedge_list::const_iterator SHalfedge_const_iterator; - - typedef typename Items::template SHalfloop SHalfloop_base; - typedef SNC_in_place_list_shalfloop SHalfloop; - typedef CGAL::In_place_list SHalfloop_list; - typedef CGAL_ALLOCATOR(SHalfloop) SHalfloop_alloc; - typedef typename SHalfloop_list::iterator SHalfloop_handle; - typedef typename SHalfloop_list::const_iterator SHalfloop_const_handle; - typedef typename SHalfloop_list::iterator SHalfloop_iterator; - typedef typename SHalfloop_list::const_iterator SHalfloop_const_iterator; - - typedef typename Items::template SFace SFace_base; - typedef SNC_in_place_list_sface SFace; - typedef CGAL::In_place_list SFace_list; - typedef CGAL_ALLOCATOR(SFace) SFace_alloc; - typedef typename SFace_list::iterator SFace_handle; - typedef typename SFace_list::const_iterator SFace_const_handle; - typedef typename SFace_list::iterator SFace_iterator; - typedef typename SFace_list::const_iterator SFace_const_iterator; - - typedef typename Base::SVertex Halfedge; - typedef typename Base::SVertex_handle Halfedge_handle; - typedef typename Base::SVertex_iterator Halfedge_iterator; - typedef typename Base::SVertex_const_handle Halfedge_const_handle; - typedef typename Base::SVertex_const_iterator Halfedge_const_iterator; - typedef typename Base::SVertex SVertex; - typedef typename Base::SVertex_handle SVertex_handle; - typedef typename Base::SVertex_iterator SVertex_iterator; - typedef typename Base::SVertex_const_handle SVertex_const_handle; - typedef typename Base::SVertex_const_iterator SVertex_const_iterator; - typedef typename Base::SHalfedge SHalfedge; - typedef typename Base::SHalfedge_handle SHalfedge_handle; - typedef typename Base::SHalfedge_iterator SHalfedge_iterator; - typedef typename Base::SHalfedge_const_handle SHalfedge_const_handle; - typedef typename Base::SHalfedge_const_iterator SHalfedge_const_iterator; - typedef typename Base::SFace SFace; - typedef typename Base::SFace_handle SFace_handle; - typedef typename Base::SFace_iterator SFace_iterator; - typedef typename Base::SFace_const_handle SFace_const_handle; - typedef typename Base::SFace_const_iterator SFace_const_iterator; - typedef typename Base::SHalfloop SHalfloop; - typedef typename Base::SHalfloop_handle SHalfloop_handle; - typedef typename Base::SHalfloop_iterator SHalfloop_iterator; - typedef typename Base::SHalfloop_const_handle SHalfloop_const_handle; - typedef typename Base::SHalfloop_const_iterator SHalfloop_const_iterator; - - typedef typename Base::Object_handle Object_handle; - typedef typename Base::Object_list Object_list; - typedef typename Base::Object_iterator Object_iterator; - typedef typename Base::Object_const_iterator Object_const_iterator; - - typedef typename Base::SHalfedge_around_svertex_circulator - SHalfedge_around_svertex_circulator; - typedef typename Base::SHalfedge_around_sface_circulator - SHalfedge_around_sface_circulator; - typedef typename Base::SHalfedge_around_svertex_const_circulator - SHalfedge_around_svertex_const_circulator; - typedef typename Base::SHalfedge_around_sface_const_circulator - SHalfedge_around_sface_const_circulator; - - typedef typename Base::SFace_cycle_iterator - SFace_cycle_iterator; - typedef typename Base::SFace_cycle_const_iterator - SFace_cycle_const_iterator; - - typedef CircFromIt > - SHalfedge_around_facet_const_circulator; - - typedef CircFromIt > - SHalfedge_around_facet_circulator; - - class Halffacet_cycle_iterator : public Object_iterator - { typedef Object_iterator Ibase; - public: - Halffacet_cycle_iterator() : Ibase() {} - Halffacet_cycle_iterator(const Ibase& b) : Ibase(b) {} - Halffacet_cycle_iterator(const Halffacet_cycle_iterator& i) - : Ibase(i) {} - bool is_shalfedge() const - { SHalfedge_handle e; return CGAL::assign(e,Ibase::operator*()); } - bool is_shalfloop() const - { SHalfloop_handle l; return CGAL::assign(l,Ibase::operator*()); } - - operator SHalfedge_handle() const - { SHalfedge_handle e; CGAL::assign(e,Ibase::operator*()); return e; } - operator SHalfloop_handle() const - { SHalfloop_handle l; CGAL::assign(l,Ibase::operator*()); return l; } - - operator Object_handle() const { return Ibase::operator*(); } - Object_handle& operator*() const { return Ibase::operator*(); } - Object_handle operator->() const - { CGAL_error_msg("not impl."); } - }; - - class Halffacet_cycle_const_iterator : public Object_const_iterator - { typedef Object_const_iterator Ibase; - public: - Halffacet_cycle_const_iterator() : Ibase() {} - Halffacet_cycle_const_iterator(const Ibase& b) : Ibase(b) {} - Halffacet_cycle_const_iterator(const Halffacet_cycle_const_iterator& i) - : Ibase(i) {} - bool is_shalfedge() const - { SHalfedge_handle e; return CGAL::assign(e,Ibase::operator*()); } - bool is_shalfloop() const - { SHalfloop_handle l; return CGAL::assign(l,Ibase::operator*()); } - - operator SHalfedge_const_handle() const - { SHalfedge_handle e; CGAL::assign(e,Ibase::operator*()); - return SHalfedge_const_handle(e); } - operator SHalfloop_const_handle() const - { SHalfloop_handle l; CGAL::assign(l,Ibase::operator*()); - return SHalfloop_const_handle(l); } - - operator Object_handle() const { return Ibase::operator*(); } - Object_handle& operator*() const { return Ibase::operator*(); } - Object_handle operator->() const - { CGAL_error_msg("not impl."); } - }; - - class Shell_entry_iterator : public Object_iterator - { typedef Object_iterator Ibase; - public: - Shell_entry_iterator() : Ibase() {} - Shell_entry_iterator(const Ibase& b) : Ibase(b) {} - Shell_entry_iterator(const Shell_entry_iterator& i) : Ibase(i) {} - - operator SFace_handle() const - { SFace_handle f; - CGAL_assertion( CGAL::assign(f,Ibase::operator*()) ); - CGAL::assign(f,Ibase::operator*()); return f; } - - operator Object_handle() const { return Ibase::operator*(); } - Object_handle& operator*() const { return Ibase::operator*(); } - Object_handle operator->() const - { CGAL_nef_assertion_msg(0,"not impl."); } - }; - - class Shell_entry_const_iterator : public Object_const_iterator - { typedef Object_const_iterator Ibase; - public: - Shell_entry_const_iterator() : Ibase() {} - Shell_entry_const_iterator(const Ibase& b) : Ibase(b) {} - Shell_entry_const_iterator(const Shell_entry_const_iterator& i) : - Ibase(i) {} - - operator SFace_const_handle() const - { SFace_handle f; - CGAL_assertion( CGAL::assign(f,Ibase::operator*()) ); - CGAL::assign(f,Ibase::operator*()); - return SFace_const_handle(f); } - - operator Object_handle() const { return Ibase::operator*(); } - Object_handle& operator*() const { return Ibase::operator*(); } - Object_handle operator->() const - { CGAL_nef_assertion_msg(0,"not impl."); } - }; - - private: - Vertex_alloc vertex_allocator; - Vertex* get_vertex_node( const Vertex& t) { - Vertex* p = vertex_allocator.allocate(1); - vertex_allocator.construct( p, Vertex()); - return p; - } - void put_vertex_node( Vertex* p) { - vertex_allocator.destroy(p); - vertex_allocator.deallocate( p, 1); - } - - Halffacet_alloc halffacet_allocator; - Halffacet* get_halffacet_node( const Halffacet& t) { - Halffacet* p = halffacet_allocator.allocate(1); - halffacet_allocator.construct( p, Halffacet()); - return p; - } - void put_halffacet_node( Halffacet* p) { - halffacet_allocator.destroy(p); - halffacet_allocator.deallocate( p, 1); - } - - Volume_alloc volume_allocator; - Volume* get_volume_node( const Volume& t) { - Volume* p = volume_allocator.allocate(1); - volume_allocator.construct( p, Volume()); - return p; - } - void put_volume_node( Volume* p) { - volume_allocator.destroy(p); - volume_allocator.deallocate( p, 1); - } - - public: - SNC_list() : - boundary_item_(undef_), - vertices_(), halffacets_(), volumes_() {} - - ~SNC_list() { clear(); } - - SNC_list(const Self& D) : - boundary_item_(undef_), - vertices_(D.vertices_), - halffacets_(D.halffacets_), - volumes_(D.volumes_) { - pointer_update(D); - } - - Self& operator=(const Self& D) { - if ( this == &D ) - return *this; - clear(); - boundary_item_.clear(undef_); - vertices_ = D.vertices_; - halffacets_ = D.halffacets_; - volumes_ = D.volumes_; - pointer_update(D); - return *this; - } - - void clear() { - Base::clear(); - boundary_item_.clear(); - vertices_.destroy(); - halffacets_.destroy(); - volumes_.destroy(); - } - - Vertex_const_iterator vertices_begin() const {return vertices_.begin();} - Vertex_const_iterator vertices_end() const {return vertices_.end();} - Halfedge_const_iterator halfedges_begin() const {return svertices_.begin();} - Halfedge_const_iterator halfedges_end() const {return svertices_.end();} - Halffacet_const_iterator halffacets_begin() const {return halffacets_.begin();} - Halffacet_const_iterator halffacets_end() const {return halffacets_.end();} - Volume_const_iterator volumes_begin() const {return volumes_.begin();} - Volume_const_iterator volumes_end() const {return volumes_.end();} - - Vertex_iterator vertices_begin() { return vertices_.begin();} - Vertex_iterator vertices_end() { return vertices_.end();} - Halfedge_iterator halfedges_begin() { return halfedges_.begin();} - Halfedge_iterator halfedges_end() { return halfedges_.end();} - Halffacet_iterator halffacets_begin() { return halffacets_.begin();} - Halffacet_iterator halffacets_end() { return halffacets_.end();} - Volume_iterator volumes_begin() { return volumes_.begin();} - Volume_iterator volumes_end() { return volumes_.end();} - - Size_type number_of_vertices() const { return vertices_.size(); } - Size_type number_of_halfedges() const { return svertices_.size(); } - Size_type number_of_edges() const { return svertices_.size()/2; } - Size_type number_of_halffacets() const { return halffacets_.size();} - Size_type number_of_facets() const { return halffacets_.size()/2;} - Size_type number_of_volumes() const { return volumes_.size();} - - template - bool is_boundary_object(H h) - { return boundary_item_[h]!=undef_; } - - template - Object_iterator& boundary_item(H h) - { return boundary_item_[h]; } - - template - void store_boundary_item(H h, Object_iterator o) - { boundary_item_[h] = o; } - - template - void undef_boundary_item(H h) - { CGAL_assertion(boundary_item_[h]!=undef_); - boundary_item_[h] = undef_; } - - void reset_iterator_hash(Object_iterator it) - { SVertex_handle sv; - SHalfedge_handle se; - SHalfloop_handle sl; - if ( CGAL::assign(se,*it) ) { - if( is_boundary_object(se)) - undef_boundary_item(se); - return; - } - if ( CGAL::assign(sl,*it) ) { - if( is_boundary_object(sl)) - undef_boundary_item(sl); - return; - } - if ( CGAL::assign(sv,*it) ) { - if( is_boundary_object(sv)) - undef_boundary_item(sv); - return; - } - } - - void reset_object_list(Object_list& L) - { Object_iterator oit; - CGAL_forall_iterators(oit,L) reset_iterator_hash(oit); - L.clear(); - } - - Vertex_handle new_vertex(const Point_3& p = Point_3(), Mark m = Mark()) { - Vertex_handle vh = new_vertex_only(); - vh->point() = p; - vh->mark() = m; - vh->sncp() = this; - vh->svertices_begin() = vh->svertices_last() = svertices_end(); - vh->shalfedges_begin() = vh->shalfedges_last() = shalfedges_end(); - vh->sfaces_begin() = vh->sfaces_last() = sfaces_end(); - vh->shalfloop() = shalfloops_end(); - return vh; - } - - Halfedge_handle new_halfedge_pair(Vertex_handle v1, Vertex_handle v2, - Mark m = Mark()) { - SM_decorator D1(&*v1); - SM_decorator D2(&*v2); - SVertex_handle e1 = D1.new_vertex(); - SVertex_handle e2 = D2.new_vertex(); - make_twins(e1,e2); - e1->mark() = m; - return e1; - } - - Halffacet_handle new_halffacet_pair(const Plane_3& h = Plane_3(), - Mark m = Mark()) { - Halffacet_handle f1 = new_halffacet_only(); - Halffacet_handle f2 = new_halffacet_only(); - f1->supporting_plane_ = h; f2->supporting_plane_ = h.opposite(); - make_twins(f1,f2); - f1->mark() = f2->mark() = m; - return f1; - } - - Volume_handle new_volume(Mark m = Mark()) { - Volume_handle vh = new_volume_only(); - vh->mark() = m; - return vh; - } - - void delete_vertex(Vertex_handle v) - CGAL_NEF_TRACEN("~ deleting vertex "<<&*v<<" from "<<&*this); - v->clear(true); - delete_vertex_only(v); - CGAL_NEF_TRACEN("~~ vertex deleted"<<&*v); - } - - void delete_halfedge_pair(Halfedge_handle e) - CGAL_NEF_TRACEN("~ deleting halfedges pair "<<&*e<<", "<<&*(e->twin())<< - " from "<<&*this); - Halfedge_handle et = e->twin(); - SM_decorator D1(&*e->center_vertex()), D2(&*et->center_vertex()); - D1.delete_vertex(e); - D2.delete_vertex(et); - } - - void delete_halffacet_pair(Halffacet_handle f) - CGAL_NEF_TRACEN("~ deleting halffacets pair "<<&*f<<", "<<&*(f->twin())<< - " from "<<&*this); - reset_object_list(f->boundary_entry_objects()); - reset_object_list(f->twin()->boundary_entry_objects()); - delete_halffacet_only(f->twin()); - delete_halffacet_only(f); - } - - void delete_volume(Volume_handle c) - CGAL_NEF_TRACEN("~ deleting volume "<<&*c<<" from "<<&*this); - reset_object_list(c->shell_entry_objects()); - delete_volume_only(c); - } - - Vertex_handle new_vertex_only() { - vertices_.push_back(* get_vertex_node(Vertex())); - CGAL_NEF_TRACEN(" new vertex only "<<&*(--vertices_end())); - return --vertices_end(); - } - Halfedge_handle new_halfedge_only(Halfedge_handle e) { - Halfedge_handle ne = halfedges_.insert(e, * get_halfedge_node(Halfedge())); - CGAL_NEF_TRACEN(" after "<<&*e<<" new halfedge only "<<&*ne); - return ne; - } - Halfedge_handle new_halfedge_only() { - CGAL_NEF_TRACEN(" new halfedge only "<<&*(--halfedges_end())); - halfedges_.push_back( * get_halfedge_node(Halfedge())); - return --halfedges_end(); - } - Halffacet_handle new_halffacet_only() { - halffacets_.push_back( * get_halffacet_node(Halffacet())); - CGAL_NEF_TRACEN(" new halffacet only "<<&*(--halffacets_end())); - return --halffacets_end(); - } - Volume_handle new_volume_only() { - volumes_.push_back( * get_volume_node(Volume())); - CGAL_NEF_TRACEN(" new volume only "<<&*(--volumes_end())); - return --volumes_end(); - } - SHalfedge_handle new_shalfedge_only() { - shalfedges_.push_back( * get_shalfedge_node(SHalfedge())); - CGAL_NEF_TRACEN(" new shalfedge only "<<&*(--shalfedges_end())); - return --shalfedges_end(); - } - SHalfloop_handle new_shalfloop_only() { - shalfloops_.push_back( * get_shalfloop_node(SHalfloop())); - CGAL_NEF_TRACEN(" new shalfloop only "<<&*(--shalfloops_end())); - return --shalfloops_end(); - } - SFace_handle new_sface_only() { - sfaces_.push_back( * get_sface_node(SFace())); - CGAL_NEF_TRACEN(" new sface only "<<&*(--sfaces_end())); - return --sfaces_end(); - } - - void delete_vertex_only(Vertex_handle h) { - CGAL_NEF_TRACEN("~ deleting vertex only "<<&*h<<" from "<<&*this); - vertices_.erase(h); - put_vertex_node(&*h); - } - void delete_halfedge_only(Halfedge_handle h) { - CGAL_NEF_TRACEN("~ deleting halfedge only "<<&*h<<" from "<<&*this); - CGAL_assertion(!is_sm_boundary_object(h)); - halfedges_.erase(h); - put_halfedge_node(&*h); - } - void delete_halffacet_only(Halffacet_handle h) { - CGAL_NEF_TRACEN("~ deleting halffacet only "<<&*h<<" from "<<&*this); - halffacets_.erase(h); - put_halffacet_node(&*h); - } - void delete_volume_only(Volume_handle h) { - CGAL_NEF_TRACEN("~ deleting volume only "<<&*h<<" from "<<&*this); - volumes_.erase(h); - put_volume_node(&*h); - } - void delete_shalfedge_only(SHalfedge_handle h) { - CGAL_NEF_TRACEN("~ deleting shalfedge only "<<&*h<<" from "<<&*this); - CGAL_assertion(!is_sm_boundary_object(h)); - shalfedges_.erase(h); - put_shalfedge_node(&*h); - } - void delete_shalfloop_only(SHalfloop_handle h) { - CGAL_NEF_TRACEN("~ deleting shalfloop only "<<&*h<<" from "<<&*this); - CGAL_assertion(!is_sm_boundary_object(h)); - shalfloops_.erase(h); - put_shalfloop_node(&*h); - } - void delete_sface_only(SFace_handle h) { - CGAL_NEF_TRACEN("~ deleting sface only "<<&*h<<" from "<<&*this); - CGAL_assertion(!is_boundary_object(h)); - sfaces_.erase(h); - put_sface_node(&*h); - } - - protected: - Generic_handle_map boundary_item_; - - Vertex_list vertices_; - Halffacet_list halffacets_; - Volume_list volumes_; - - void pointer_update(const Self& D); -}; - -template -void SNC_list:: -pointer_update(const SNC_list& D) -{ - CGAL::Unique_hash_map VM; - CGAL::Unique_hash_map EM; - CGAL::Unique_hash_map FM; - CGAL::Unique_hash_map CM; - CGAL::Unique_hash_map SEM; - CGAL::Unique_hash_map SLM; - CGAL::Unique_hash_map SFM; - Vertex_const_iterator vc = D.vertices_begin(); - Vertex_iterator v = vertices_begin(); - for ( ; vc != D.vertices_end(); ++vc,++v) VM[vc] = v; - VM[D.vertices_end()] = vertices_end(); - Halfedge_const_iterator ec = D.halfedges_begin(); - Halfedge_iterator e = halfedges_begin(); - for ( ; ec != D.halfedges_end(); ++ec,++e) EM[ec] = e; - EM[D.halfedges_end()] = halfedges_end(); - Halffacet_const_iterator fc = D.halffacets_begin(); - Halffacet_iterator f = halffacets_begin(); - for ( ; fc != D.halffacets_end(); ++fc,++f) FM[fc] = f; - FM[D.halffacets_end()] = halffacets_end(); - Volume_const_iterator cc = D.volumes_begin(); - Volume_iterator c = volumes_begin(); - for ( ; cc != D.volumes_end(); ++cc,++c) CM[cc] = c; - CM[D.volumes_end()] = volumes_end(); - SHalfedge_const_iterator sec = D.shalfedges_begin(); - SHalfedge_iterator se = shalfedges_begin(); - for ( ; sec != D.shalfedges_end(); ++sec,++se) SEM[sec] = se; - SEM[D.shalfedges_end()] = shalfedges_end(); - SHalfloop_const_iterator slc = D.shalfloops_begin(); - SHalfloop_iterator sl = shalfloops_begin(); - for ( ; slc != D.shalfloops_end(); ++slc,++sl) SLM[slc] = sl; - SLM[D.shalfloops_end()] = shalfloops_end(); - SFace_const_iterator sfc = D.sfaces_begin(); - SFace_iterator sf = sfaces_begin(); - for ( ; sfc != D.sfaces_end(); ++sfc,++sf) SFM[sfc] = sf; - SFM[D.sfaces_end()] = sfaces_end(); - - CGAL_forall_vertices(v,*this) { - // Local Graph update: (SVertices are postponed/updated as Edges) - v->sncp() = this; - v->svertices_begin() = EM[v->svertices_begin()]; - v->svertices_last() = EM[v->svertices_last()]; - v->shalfedges_begin() = SEM[v->shalfedges_begin()]; - v->shalfedges_last() = SEM[v->shalfedges_last()]; - v->sfaces_begin() = SFM[v->sfaces_begin()]; - v->sfaces_last() = SFM[v->sfaces_last()]; - v->shalfloop() = SLM[v->shalfloop()]; - } - // Halfedge update: - CGAL_forall_halfedges(e,*this) { - e->center_vertex() = VM[e->center_vertex()]; - e->twin() = EM[e->twin()]; - e->out_sedge() = SEM[e->out_sedge()]; - e->incident_sface() = SFM[e->incident_sface()]; - } - // Halffacet update - CGAL_forall_halffacets(f,*this) { - f->twin() = FM[f->twin()]; - f->volume_ = CM[f->volume_]; - Halffacet_cycle_iterator ftc; - for(ftc = f->boundary_entry_objects().begin(); - ftc != f->boundary_entry_objects().end(); ++ftc) { - if ( assign( se, ftc) ) - { *ftc = Object_handle(SEM[se]); store_boundary_item(se,ftc); } - else if ( assign( sl, ftc) ) - { *ftc = Object_handle(SLM[sl]); store_boundary_item(sl,ftc); } - else CGAL_error_msg("damn wrong boundary item in facet."); - } - } - - // Volume update - CGAL_forall_volumes(c,*this) { - Shell_entry_iterator sei; - CGAL_forall_shells_of(sei,c) { - sf = sei; // conversion from generic iterator to sface const handle - *sei = Object_handle(SFM[sf]); - store_boundary_item(sf,sei); - } - } - - CGAL_forall_shalfedges(se,*this) { - se->source() = EM[se->source()]; - se->sprev() = SEM[se->sprev()]; se->snext() = SEM[se->snext()]; - se->incident_sface() = SFM[se->incident_sface()]; - se->twin() = SEM[se->twin()]; - se->prev() = SEM[se->prev()]; se->next() = SEM[se->next()]; - se->incident_facet() = FM[se->incident_facet()]; - } - - CGAL_forall_shalfloops(sl,*this) { - sl->twin() = SLM[sl->twin()]; - sl->incident_sface() = SFM[sl->incident_sface()]; - sl->incident_facet() = FM[sl->incident_facet()]; - } - for ( slc = D.shalfloops_begin(), sl = shalfloops_begin(); - slc != D.shalfloops_end(); ++slc, ++sl) { - CGAL_assertion_code( if( slc->is_twin() == sl->is_twin()) - CGAL_assertion( slc->mark() == sl->mark())); - if( !sl->is_twin() && slc->is_twin()) sl->mark() = sl->twin()->mark(); - } - - CGAL_forall_sfaces(sf,*this) { - sf->center_vertex() = VM[sf->center_vertex()]; - sf->incident_volume() = CM[sf->incident_volume()]; - SFace_cycle_iterator sfc; - for(sfc = sf->sface_cycles_begin(); - sfc != sf->sface_cycles_end(); ++sfc) { - SVertex_handle sv; - if ( assign(sv,sfc) ) - { *sfc = Object_handle(EM[sv]); store_sm_boundary_item(sv,sfc); } - else if ( assign(se,sfc) ) - { *sfc = Object_handle(SEM[se]); store_sm_boundary_item(se,sfc); } - else if ( assign(sl,sfc) ) - { *sfc = Object_handle(SLM[sl]); store_sm_boundary_item(sl,sfc); } - else CGAL_error_msg("damn wrong boundary item in sface."); - } - } -} -*/ } //namespace CGAL #endif // CGAL_SNC_LIST_H diff -Nru cgal-5.4.1/include/CGAL/Nef_3/SNC_point_locator.h cgal-5.5/include/CGAL/Nef_3/SNC_point_locator.h --- cgal-5.4.1/include/CGAL/Nef_3/SNC_point_locator.h 2022-06-03 19:04:55.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_3/SNC_point_locator.h 2022-07-13 19:05:48.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_3/include/CGAL/Nef_3/SNC_point_locator.h $ -// $Id: SNC_point_locator.h a99916f 2021-07-19T08:04:47+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_3/include/CGAL/Nef_3/SNC_point_locator.h $ +// $Id: SNC_point_locator.h 36f2260 2022-04-14T08:36:36+01:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -82,6 +82,8 @@ virtual Object_handle shoot(const Ray_3& s, int mask=255) const = 0; + virtual Object_handle shoot(const Ray_3& s, Vertex_handle ray_source_vertex, int mask=255) const = 0; + virtual void intersect_with_edges( Halfedge_handle edge, const Intersection_call_back& call_back) const = 0; @@ -91,14 +93,15 @@ const = 0; virtual void intersect_with_edges_and_facets( Halfedge_handle edge, - const Intersection_call_back& call_back) const = 0; + const Intersection_call_back& call_back) const = 0; class Intersection_call_back { public: - virtual void operator()( Halfedge_handle edge, Object_handle object, + virtual void operator()( Halfedge_handle edge0, Halfedge_handle edge1, + const Point_3& intersection_point) const = 0; + virtual void operator()( Halfedge_handle edge0, Halffacet_handle facet1, const Point_3& intersection_point) const = 0; - virtual ~Intersection_call_back() {} }; @@ -180,8 +183,14 @@ typedef typename SNC_candidate_provider::Object_list Object_list; typedef typename Object_list::iterator Object_list_iterator; - typedef typename SNC_candidate_provider::Objects_along_ray Objects_along_ray; - typedef typename Objects_along_ray::Iterator Objects_along_ray_iterator; + + typedef typename SNC_candidate_provider::Node_handle Node_handle; + typedef typename SNC_candidate_provider::Node_list Node_list; + typedef typename SNC_candidate_provider::Vertex_list Vertex_list; + typedef typename SNC_candidate_provider::Halfedge_list Halfedge_list; + typedef typename SNC_candidate_provider::Halffacet_list Halffacet_list; + typedef typename SNC_point_locator::Intersection_call_back Intersection_call_back; + using Base::get_visible_facet; public: @@ -190,37 +199,13 @@ virtual void initialize(SNC_structure* W) { -#ifdef CGAL_NEF_LIST_OF_TRIANGLES - this->set_snc(*W); - candidate_provider = new SNC_candidate_provider(W); -#else // CGAL_NEF_LIST_OF_TRIANGLES - CGAL_NEF_TIMER(ct_t.start()); - this->version_ = std::string("Point Locator by Spatial Subdivision (tm)"); - CGAL_NEF_CLOG(version()); - CGAL_assertion( W != nullptr); -// (Base) *this = SNC_decorator(*W); - this->set_snc(*W); - Object_list objects; - Vertex_iterator v; - Halfedge_iterator e; - Halffacet_iterator f; - CGAL_forall_vertices( v, *this->sncp()) - objects.push_back(make_object(Vertex_handle(v))); - typename Object_list::difference_type v_end = objects.size(); - CGAL_forall_edges( e, *this->sncp()) - objects.push_back(make_object(Halfedge_handle(e))); - CGAL_forall_facets( f, *this->sncp()) { - objects.push_back(make_object(Halffacet_handle(f))); - } + if(initialized) delete candidate_provider; - Object_list_iterator oli=objects.begin()+v_end; - candidate_provider = new SNC_candidate_provider(objects,oli); + this->set_snc(*W); + candidate_provider = new SNC_candidate_provider(W); - // CGAL_NEF_TRACEN(*candidate_provider); - CGAL_NEF_TIMER(ct_t.stop()); -#endif // CGAL_NEF_LIST_OF_TRIANGLES initialized = true; } @@ -241,220 +226,210 @@ } virtual Object_handle shoot(const Ray_3& ray, int mask=255) const { + Vertex_handle null_handle; + return this->shoot(ray, null_handle, mask); + } + + enum SOLUTION { is_vertex_, is_edge_, is_facet_ , is_none_}; + + virtual Object_handle shoot(const Ray_3& ray, Vertex_handle ray_source_vertex, int mask=255) const { CGAL_NEF_TIMER(rs_t.start()); CGAL_assertion( initialized); _CGAL_NEF_TRACEN( "shooting: "<objects_along_ray(ray); - Objects_along_ray_iterator objects_iterator = objects.begin(); - while( !hit && objects_iterator != objects.end()) { - Object_list candidates = *objects_iterator; - Object_list_iterator o; - CGAL_for_each( o, candidates) { - if( CGAL::assign( v, *o) && ((mask&1) != 0)) { + + Node_list nodes = candidate_provider->nodes_along_ray(ray); + typename Node_list::iterator nodes_iterator = nodes.begin(); + + while( !hit && nodes_iterator != nodes.end()) { + Node_handle n(*nodes_iterator); + if((mask&1)!=0) { + for(typename Vertex_list::const_iterator vi=n->vertices_begin(); vi!=n->vertices_end(); ++vi) { + Vertex_handle v(*vi); _CGAL_NEF_TRACEN("trying vertex on "<point()); - if( ray.source() != v->point() && ray.has_on(v->point())) { + if( (ray.source() != v->point()) && ray.has_on(v->point())) { _CGAL_NEF_TRACEN("the ray intersects the vertex"); _CGAL_NEF_TRACEN("prev. intersection? "<point())) continue; eor = v->point(); - result = make_object(v); + v_res = v; + solution = is_vertex_; hit = true; _CGAL_NEF_TRACEN("the vertex becomes the new hit object"); } } - else if( CGAL::assign( e, *o) && ((mask&2) != 0)) { + } + if((mask&2)!=0) { + for(typename Halfedge_list::const_iterator ei=n->edges_begin(); ei!=n->edges_end(); ++ei) { + Halfedge_handle e(*ei); Point_3 q; _CGAL_NEF_TRACEN("trying edge on "<< Segment_3(e->source()->point(),e->twin()->source()->point())); - if( is.does_intersect_internally( ray, Segment_3(e->source()->point(), - e->twin()->source()->point()), q)) { - _CGAL_NEF_TRACEN("ray intersects edge on "<is_point_on_cell( q, objects_iterator)); - if( !candidate_provider->is_point_on_cell( q, objects_iterator)) + if ( (ray_source_vertex == Vertex_handle()) || ( (ray_source_vertex != e->source()) && (ray_source_vertex != e->twin()->source())) ) { + if( SNC_intersection::does_intersect_internally( ray, Segment_3(e->source()->point(), + e->twin()->source()->point()), q)) { + _CGAL_NEF_TRACEN("ray intersects edge on "<is_point_in_node( q, n)); + if( !candidate_provider->is_point_in_node( q, n)) + continue; + eor = q; + e_res = e; + solution = is_edge_; + hit = true; + _CGAL_NEF_TRACEN("the edge becomes the new hit object"); + } } } - else if( CGAL::assign( f, *o) && ((mask&4) != 0)) { + } + if((mask&4)!=0) { + for(typename Halffacet_list::const_iterator fi=n->facets_begin(); fi!=n->facets_end(); ++fi) { + Halffacet_handle f(*fi); Point_3 q; _CGAL_NEF_TRACEN("trying facet with on plane "<plane()<< - " with point on "<plane().point()); - if( is.does_intersect_internally( ray, f, q, true) ) { + " with point on "<plane().point()); + if( SNC_intersection::does_intersect_internally( ray, f, q) ) { _CGAL_NEF_TRACEN("ray intersects facet on "<is_point_on_cell( q, objects_iterator)); - if( !candidate_provider->is_point_on_cell( q, objects_iterator)) + candidate_provider->is_point_in_node( q, n)); + if( !candidate_provider->is_point_in_node( q, n)) continue; eor = q; - result = make_object(f); + f_res = f; + solution = is_facet_; hit = true; _CGAL_NEF_TRACEN("the facet becomes the new hit object"); } } - else if((mask&15) == 15) - CGAL_error_msg( "wrong handle"); } if(!hit) - ++objects_iterator; + ++nodes_iterator; } + CGAL_NEF_TIMER(rs_t.stop()); - return result; + switch (solution) { + case is_vertex_: return make_object(v_res); + case is_edge_: return make_object(e_res); + case is_facet_: return make_object(f_res); + case is_none_ : break; + } + return Object_handle(); } virtual Object_handle locate( const Point_3& p) const { if(Infi_box::extended_kernel()) { - CGAL_NEF_TIMER(pl_t.start()); - CGAL_assertion( initialized); - _CGAL_NEF_TRACEN( "locate "<objects_around_point(p); - Object_list_iterator o = candidates.begin(); - bool found = false; - while( !found && o != candidates.end()) { - if( CGAL::assign( v, *o)) { + CGAL_NEF_TIMER(pl_t.start()); + CGAL_assertion( initialized); + _CGAL_NEF_TRACEN( "locate "<locate_node_containing(p); + for(typename Vertex_list::const_iterator vi=n->vertices_begin(); vi!=n->vertices_end(); ++vi) { + Vertex_handle v(*vi); if ( p == v->point()) { _CGAL_NEF_TRACEN("found on vertex "<point()); - result = make_object(v); - found = true; + return make_object(v); } } - else if( CGAL::assign( e, *o)) { - if ( is.does_contain_internally(Segment_3(e->source()->point(),e->twin()->source()->point()), p) ) { + for(typename Halfedge_list::const_iterator ei=n->edges_begin(); ei!=n->edges_end(); ++ei) { + Halfedge_handle e(*ei); + if (SNC_intersection::does_contain_internally(e->source()->point(),e->twin()->source()->point(), p) ) { _CGAL_NEF_TRACEN("found on edge "<source()->point(),e->twin()->source()->point())); - result = make_object(e); - found = true; + return make_object(e); } } - else if( CGAL::assign( f, *o)) { - if (is.does_contain_internally( f, p) ) { + for(typename Halffacet_list::const_iterator fi=n->facets_begin(); fi!=n->facets_end(); ++fi) { + Halffacet_handle f(*fi); + if (SNC_intersection::does_contain_internally( f, p) ) { _CGAL_NEF_TRACEN("found on facet..."); - result = make_object(f); - found = true; + return make_object(f); } } - o++; - } - if( !found) { + _CGAL_NEF_TRACEN("point not found in 2-skeleton"); _CGAL_NEF_TRACEN("shooting ray to determine the volume"); Ray_3 r( p, Vector_3( -1, 0, 0)); - result = make_object(determine_volume(r)); - } CGAL_NEF_TIMER(pl_t.start()); - CGAL_NEF_TIMER(pl_t.stop()); - return result; + return make_object(determine_volume(r)); + } else { // standard kernel - } else { // standard kernel + CGAL_assertion( initialized); + _CGAL_NEF_TRACEN( "locate "<objects_around_point(p); - Object_list_iterator o = candidates.begin(); + Node_handle n = candidate_provider->locate_node_containing(p); + typename Vertex_list::const_iterator vi = n->vertices_begin(); - if(candidates.empty()) - return make_object(Base(*this).volumes_begin()); + if(n->empty()) + return make_object(Base(*this).volumes_begin()); - CGAL::assign(v,*o); - CGAL_assertion(CGAL::assign(v,*o)); - if(p==v->point()) - return make_object(v); - - min_distance = CGAL::squared_distance(v->point(),p); - result = make_object(v); - ++o; - while(o!=candidates.end() && CGAL::assign(v,*o)) { - if ( p == v->point()) { - _CGAL_NEF_TRACEN("found on vertex "<point()); + Vertex_handle v(*vi),closest; + if(p==v->point()) return make_object(v); - } - tmp_distance = CGAL::squared_distance(v->point(),p); - if(tmp_distance < min_distance) { - result = make_object(v); - min_distance = tmp_distance; - } - ++o; - } - CGAL::assign(v, result); - Segment_3 s(p,v->point()); - // bool first = true; - Point_3 ip; - - /* - // TODO: das geht effizienter - Object_list_iterator of(o); - while(of != candidates.end() && assign(e, *of)) ++of; - - typename SNC_structure::SHalfedge_iterator sei; - for(sei=v->shalfedges_begin(); sei!=v->shalfedges_end(); ++sei){ - if(sei->is_twin()) continue; - Halffacet_handle fout = sei->facet(); - if(fout->is_twin()) fout = fout->twin(); - Object_list_iterator ofc(of); - for(;ofc!=candidates.end();++ofc) { - if(CGAL::assign(f,*ofc)) { - if(f == fout->twin()) - std::cerr << "shit" << std::endl; - if(f == fout) { - Object_list_iterator oe(ofc); - --ofc; - candidates.erase(oe); - } + closest = v; + ++vi; + while(vi!=n->vertices_end()) { + v = *vi; + if ( p == v->point()) { + _CGAL_NEF_TRACEN("found on vertex "<point()); + return make_object(v); + } + + if(CGAL::has_smaller_distance_to_point(p, v->point(), closest->point())){ + closest = v; } + ++vi; } - } - */ - for(;o!=candidates.end();++o) { - if( CGAL::assign( e, *o)) { - // if(first && - // (e->source() == v || e->twin()->source() == v)) continue; - Segment_3 ss(e->source()->point(),e->twin()->source()->point()); + + v = closest; + Vertex_handle v_res; + Halfedge_handle e_res; + Halffacet_handle f_res; + v_res = v; + solution = is_vertex_; + + Segment_3 s(p,v->point()); + Point_3 ip; + + Halfedge_handle e; + for(typename Halfedge_list::const_iterator ei=n->edges_begin(); ei!=n->edges_end(); ++ei) { + e = *ei; CGAL_NEF_TRACEN("test edge " << e->source()->point() << "->" << e->twin()->source()->point()); - if (is.does_contain_internally(ss, p)) { - _CGAL_NEF_TRACEN("found on edge "<< ss); + if (SNC_intersection::does_contain_internally(e->source()->point(), e->twin()->source()->point(), p)) { + _CGAL_NEF_TRACEN("found on edge "<< ss); return make_object(e); } - if((e->source() != v) && (e->twin()->source() != v) && is.does_intersect_internally(s, ss, ip)) { - // first = false; + if((e->source() != v) && (e->twin()->source() != v) && + SNC_intersection::does_intersect_internally(s, Segment_3(e->source()->point(),e->twin()->source()->point()), ip)) { s = Segment_3(p, normalized(ip)); - result = make_object(e); + e_res = e; + solution = is_edge_; } + } - } else - if( CGAL::assign( f, *o)) { + Halffacet_handle f; + for(typename Halffacet_list::const_iterator fi=n->facets_begin(); fi!=n->facets_end(); ++fi) { + f = *fi; CGAL_NEF_TRACEN("test facet " << f->plane()); - if (is.does_contain_internally(f,p) ) { + if (SNC_intersection::does_contain_internally(f,p) ) { _CGAL_NEF_TRACEN("found on facet..."); return make_object(f); } @@ -474,215 +449,119 @@ } } - - if( (! v_vertex_of_f) && is.does_intersect_internally(s,f,ip) ) { + if( (! v_vertex_of_f) && SNC_intersection::does_intersect_internally(s,f,ip) ) { s = Segment_3(p, normalized(ip)); - result = make_object(f); + f_res = f; + solution = is_facet_; } } - else CGAL_error_msg( "wrong handle type"); - } - //CGAL_warning("altered code in SNC_point_locator"); - /* - Halffacet_iterator fc; - CGAL_forall_facets(fc, *this->sncp()) { - CGAL_assertion(!is.does_intersect_internally(s,f,ip)); - } - - Halfedge_iterator ec; - CGAL_forall_edges(ec, *this->sncp()) { - Segment_3 ss(ec->source()->point(), ec->twin()->source()->point()); - CGAL_assertion(!is.does_intersect_internally(s,ss,ip)); - } - - Vertex_iterator vc; - CGAL_forall_vertices(vc, *this->sncp()) { - std::cerr << "test vertex " << vc->point() << std::endl; - CGAL_assertion(vc->point() == s.target() || !s.has_on(vc->point())); - } - */ - - if( CGAL::assign( v, result)) { - _CGAL_NEF_TRACEN("vertex hit, obtaining volume..." << v->point()); - - //CGAL_warning("altered code in SNC_point_locator"); - SM_point_locator L(&*v); - // Object_handle so = L.locate(s.source()-s.target(), true); - Object_handle so = L.locate(s.source()-s.target()); - SFace_handle sf; - if(CGAL::assign(sf,so)) - return make_object(sf->volume()); + if( solution == is_vertex_) { + _CGAL_NEF_TRACEN("vertex hit, obtaining volume..." << v_res->point()); + + //CGAL_warning("altered code in SNC_point_locator"); + SM_point_locator L(&*v_res); + Object_handle so = L.locate(s.source()-s.target(), true); + SFace_handle sf; + if(CGAL::assign(sf,so)) + return make_object(sf->volume()); + CGAL_error_msg( "wrong handle type"); + return Object_handle(); + + } else if( solution == is_facet_) { + _CGAL_NEF_TRACEN("facet hit, obtaining volume..."); + if(f_res->plane().oriented_side(p) == ON_NEGATIVE_SIDE) + f_res = f_res->twin(); + return make_object(f_res->incident_volume()); + } else if( solution == is_edge_) { + SM_decorator SD(&*e_res->source()); + if( SD.is_isolated(e_res)) + return make_object(e_res->incident_sface()->volume()); + return make_object(get_visible_facet(e_res,Ray_3(s.source(),s.to_vector()))->incident_volume()); + } CGAL_error_msg( "wrong handle type"); return Object_handle(); -/* - SHalfedge_handle se; - CGAL_assertion(CGAL::assign(se,so)); - CGAL_NEF_TRACEN("intersect segment " << s << " with edges"); - for(;ox!=candidates.end();++ox) { - if(!CGAL::assign(e,*ox)) continue; - CGAL_NEF_TRACEN("test edge " << e->source()->point() << "->" << e->twin()->source()->point()); - if(is.does_intersect_internally(s,Segment_3(e->source()->point(),e->twin()->source()->point()),ip)) { - s = Segment_3(p, normalized(ip)); - result = make_object(e); - } - } - CGAL_assertion(CGAL::assign(e,result)); - CGAL::assign(e,result); - f = get_visible_facet(e, Ray_3(p, s.target())); - if( f != Halffacet_handle()) - return f->incident_volume(); - SM_decorator SD(&*v); // now, the vertex has no incident facets - CGAL_assertion( SD.number_of_sfaces() == 1); - return SD.sfaces_begin()->volume(); -*/ - } else if( CGAL::assign( f, result)) { - _CGAL_NEF_TRACEN("facet hit, obtaining volume..."); - if(f->plane().oriented_side(p) == ON_NEGATIVE_SIDE) - f = f->twin(); - return make_object(f->incident_volume()); - } else if( CGAL::assign(e, result)) { - SM_decorator SD(&*e->source()); - if( SD.is_isolated(e)) - return make_object(e->incident_sface()->volume()); - return make_object(get_visible_facet(e,Ray_3(s.source(),s.to_vector()))->incident_volume()); } - CGAL_error_msg( "wrong handle type"); - return Object_handle(); - } } virtual void intersect_with_edges_and_facets( Halfedge_handle e0, - const typename SNC_point_locator::Intersection_call_back& call_back) const { - - CGAL_NEF_TIMER(it_t.start()); - CGAL_assertion( initialized); + const Intersection_call_back& call_back) const { _CGAL_NEF_TRACEN( "intersecting edge: "<<&*e0<<' '<source()->point(), - e0->twin()->source()->point())); - - - Segment_3 s(Segment_3(e0->source()->point(),e0->twin()->source()->point())); - Vertex_handle v; - Halfedge_handle e; - Halffacet_handle f; - Object_list_iterator o; - Object_list objects = candidate_provider->objects_around_segment(s); - CGAL_for_each( o, objects) { - if( CGAL::assign( v, *o)) { - /* do nothing */ - } - else if( CGAL::assign( e, *o)) { - -#ifdef CGAL_NEF3_DUMP_STATISTICS - ++number_of_intersection_candidates; -#endif - - Point_3 q; - if( is.does_intersect_internally( s, Segment_3(e->source()->point(), - e->twin()->source()->point()), q)) { - q = normalized(q); - call_back( e0, make_object(Halfedge_handle(e)), q); - _CGAL_NEF_TRACEN("edge intersects edge "<<' '<<&*e<< Segment_3(e->source()->point(), - e->twin()->source()->point())<<" on "<plane()<<" on "<twin()->source()->point())); + Segment_3 s(e0->source()->point(),e0->twin()->source()->point()); + Node_list nodes = candidate_provider->nodes_around_segment(s); + intersect_with_edges(e0,call_back,s,nodes); + intersect_with_facets(e0,call_back,s,nodes); } virtual void intersect_with_edges( Halfedge_handle e0, - const typename SNC_point_locator::Intersection_call_back& call_back) const { + const Intersection_call_back& call_back) const { CGAL_NEF_TIMER(it_t.start()); - CGAL_assertion( initialized); _CGAL_NEF_TRACEN( "intersecting edge: "<<&*e0<<' '<source()->point(), - e0->twin()->source()->point())); - Segment_3 s(Segment_3(e0->source()->point(),e0->twin()->source()->point())); - Vertex_handle v; - Halfedge_handle e; - Halffacet_handle f; - Object_list_iterator o; - Object_list objects = candidate_provider->objects_around_segment(s); - CGAL_for_each( o, objects) { - if( CGAL::assign( v, *o)) { - /* do nothing */ - } - else if( CGAL::assign( e, *o)) { + e0->twin()->source()->point())); + Segment_3 s(e0->source()->point(),e0->twin()->source()->point()); + Node_list nodes = candidate_provider->nodes_around_segment(s); + intersect_with_edges(e0,call_back,s,nodes); + } + + virtual void intersect_with_facets( Halfedge_handle e0, + const Intersection_call_back& call_back) const { + CGAL_assertion( initialized); + _CGAL_NEF_TRACEN( "intersecting edge: "<< Segment_3(e0->source()->point(), + e0->twin()->source()->point())); + Segment_3 s(e0->source()->point(),e0->twin()->source()->point()); + Node_list nodes = candidate_provider->nodes_around_segment(s); + intersect_with_facets(e0,call_back,s,nodes); + } + +private: + void intersect_with_edges( Halfedge_handle e0, + const Intersection_call_back& call_back, Segment_3& s, Node_list& nodes) const { + Unique_hash_map visited(false); + for(typename Node_list::iterator ni = nodes.begin(); ni!=nodes.end(); ++ni) { + Node_handle n(*ni); + for(typename Halfedge_list::const_iterator e = n->edges_begin(); e!=n->edges_end(); ++e) { + if(!visited[*e]) { #ifdef CGAL_NEF3_DUMP_STATISTICS - ++number_of_intersection_candidates; + ++number_of_intersection_candidates; #endif - - Point_3 q; - if( is.does_intersect_internally( s, Segment_3(e->source()->point(), - e->twin()->source()->point()), q)) { - q = normalized(q); - call_back( e0, make_object(Halfedge_handle(e)), q); - _CGAL_NEF_TRACEN("edge intersects edge "<<' '<<&*e<< Segment_3(e->source()->point(), - e->twin()->source()->point())<<" on "<source()->point(), + (*e)->twin()->source()->point()), q)) { + q = normalized(q); + call_back( e0, *e, q); + _CGAL_NEF_TRACEN("edge intersects edge "<<' '<<&*e<< Segment_3((*e)->source()->point(), + (*e)->twin()->source()->point())<<" on "<source()->point(), - e0->twin()->source()->point())); - Segment_3 s(Segment_3(e0->source()->point(),e0->twin()->source()->point())); - Vertex_handle v; - Halfedge_handle e; - Halffacet_handle f; - Object_list_iterator o; - Object_list objects = candidate_provider->objects_around_segment(s); - CGAL_for_each( o, objects) { - if( CGAL::assign( v, *o)) { - /* do nothing */ - } - else if( CGAL::assign( e, *o)) { - /* do nothing */ - } - else if( CGAL::assign( f, *o)) { - + void intersect_with_facets( Halfedge_handle e0, + const Intersection_call_back& call_back,Segment_3& s, Node_list& nodes) const { + Unique_hash_map visited(false); + for(typename Node_list::iterator ni = nodes.begin(); ni!=nodes.end(); ++ni) { + Node_handle n(*ni); + for(typename Halffacet_list::const_iterator f = n->facets_begin(); f!=n->facets_end(); ++f) { + if(!visited[*f]) { #ifdef CGAL_NEF3_DUMP_STATISTICS - ++number_of_intersection_candidates; + ++number_of_intersection_candidates; #endif - - Point_3 q; - if( is.does_intersect_internally( s, f, q) ) { - q = normalized(q); - call_back( e0, make_object(Halffacet_handle(f)), q); - _CGAL_NEF_TRACEN("edge intersects facet on plane "<plane()<<" on "<plane()<<" on "<>> simplifying"); SNC_decorator D(*this->sncp()); - Unique_hash_map< Volume_handle, UFH_volume> hash_volume; - Unique_hash_map< Halffacet_handle, UFH_facet> hash_facet; - Unique_hash_map< SFace_handle, UFH_sface> hash_sface; + Unique_hash_map< Volume_handle, UFH_volume> hash_volume(UFH_volume(), this->sncp()->number_of_volumes()); + Unique_hash_map< Halffacet_handle, UFH_facet> hash_facet(UFH_facet(), this->sncp()->number_of_halffacets()); + Unique_hash_map< SFace_handle, UFH_sface> hash_sface(UFH_sface(), this->sncp()->number_of_sfaces()); Union_find< Volume_handle> uf_volume; Union_find< Halffacet_handle> uf_facet; Union_find< SFace_handle> uf_sface; @@ -544,7 +544,8 @@ void create_boundary_links_forall_sfaces( Unique_hash_map< SFace_handle, UFH_sface>& hash, Union_find< SFace_handle>& uf ) { - Unique_hash_map< SHalfedge_handle, bool> linked(false); + Unique_hash_map< SHalfedge_handle, bool> linked(false, this->sncp()->number_of_shalfedges()); + SNC_decorator D(*this->sncp()); SHalfedge_iterator e; CGAL_forall_shalfedges(e, *this->sncp()) { @@ -597,7 +598,7 @@ void create_boundary_links_forall_facets( Unique_hash_map< Halffacet_handle, UFH_facet>& hash, Union_find< Halffacet_handle>& uf) { - Unique_hash_map< SHalfedge_handle, bool> linked(false); + Unique_hash_map< SHalfedge_handle, bool> linked(false, this->sncp()->number_of_shalfedges()); SNC_decorator D(*this->sncp()); SHalfedge_iterator u; CGAL_forall_shalfedges(u, *this->sncp()) { @@ -651,6 +652,7 @@ SNC_decorator D(*this->sncp()); Volume_setter setter(D); + setter.reserve(this->sncp()->number_of_sfaces()); SFace_iterator sf; Volume_handle c; diff -Nru cgal-5.4.1/include/CGAL/Nef_3/SNC_SM_explorer.h cgal-5.5/include/CGAL/Nef_3/SNC_SM_explorer.h --- cgal-5.4.1/include/CGAL/Nef_3/SNC_SM_explorer.h 2022-06-03 19:04:55.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_3/SNC_SM_explorer.h 2022-07-13 19:05:48.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_3/include/CGAL/Nef_3/SNC_SM_explorer.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_3/include/CGAL/Nef_3/SNC_SM_explorer.h $ // $Id: SNC_SM_explorer.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_3/SNC_SM_overlayer.h cgal-5.5/include/CGAL/Nef_3/SNC_SM_overlayer.h --- cgal-5.4.1/include/CGAL/Nef_3/SNC_SM_overlayer.h 2022-06-03 19:04:55.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_3/SNC_SM_overlayer.h 2022-07-13 19:05:48.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_3/include/CGAL/Nef_3/SNC_SM_overlayer.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_3/include/CGAL/Nef_3/SNC_SM_overlayer.h $ // $Id: SNC_SM_overlayer.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_3/SNC_SM_visualizor.h cgal-5.5/include/CGAL/Nef_3/SNC_SM_visualizor.h --- cgal-5.4.1/include/CGAL/Nef_3/SNC_SM_visualizor.h 2022-06-03 19:04:55.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_3/SNC_SM_visualizor.h 2022-07-13 19:05:48.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_3/include/CGAL/Nef_3/SNC_SM_visualizor.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_3/include/CGAL/Nef_3/SNC_SM_visualizor.h $ // $Id: SNC_SM_visualizor.h fb6f703 2021-05-04T14:07:49+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_3/SNC_sphere_map.h cgal-5.5/include/CGAL/Nef_3/SNC_sphere_map.h --- cgal-5.4.1/include/CGAL/Nef_3/SNC_sphere_map.h 2022-06-03 19:04:55.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_3/SNC_sphere_map.h 2022-07-13 19:05:48.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_3/include/CGAL/Nef_3/SNC_sphere_map.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_3/include/CGAL/Nef_3/SNC_sphere_map.h $ // $Id: SNC_sphere_map.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_3/SNC_structure.h cgal-5.5/include/CGAL/Nef_3/SNC_structure.h --- cgal-5.4.1/include/CGAL/Nef_3/SNC_structure.h 2022-06-03 19:04:55.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_3/SNC_structure.h 2022-07-13 19:05:48.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_3/include/CGAL/Nef_3/SNC_structure.h $ -// $Id: SNC_structure.h 458ecf1 2021-06-08T17:32:12+01:00 Giles Bathgate +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_3/include/CGAL/Nef_3/SNC_structure.h $ +// $Id: SNC_structure.h 4c4aeb7 2022-03-29T17:47:51+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -221,55 +221,6 @@ typedef Vertex_handle Constructor_parameter; typedef Vertex_const_handle Constructor_const_parameter; - // Halffacet triangle - -#ifdef CGAL_NEF_LIST_OF_TRIANGLES - class Halffacet_triangle_handle : public Halffacet_handle { - typedef Halffacet_handle Base; - Triangle_3* triangle; - public: - Halffacet_triangle_handle() : Base() {} - Halffacet_triangle_handle( Halffacet_handle h, Triangle_3& t) : - Base(h), triangle(&t) {} - Triangle_3& get_triangle() { return *triangle; } - void transform(const Aff_transformation_3& t) { - *triangle = Triangle_3((*triangle)[0].transform(t), - (*triangle)[1].transform(t), - (*triangle)[2].transform(t)); - } - }; -#else - class Halffacet_triangle_const_handle : public Halffacet_const_handle { - typedef Halffacet_const_handle Base; - Triangle_3 triangle; - public: - Halffacet_triangle_const_handle() : Base() {} - Halffacet_triangle_const_handle( Halffacet_const_handle h, Triangle_3& t) : - Base(h), triangle(t) {} - Triangle_3 get_triangle() { return triangle; } - void transform(const Aff_transformation_3& t) { - triangle = Triangle_3(triangle[0].transform(t), - triangle[1].transform(t), - triangle[2].transform(t)); - } - }; - - class Halffacet_triangle_handle : public Halffacet_handle { - typedef Halffacet_handle Base; - Triangle_3 triangle; - public: - Halffacet_triangle_handle() : Base() {} - Halffacet_triangle_handle( Halffacet_handle h, Triangle_3& t) : - Base(h), triangle(t) {} - Triangle_3 get_triangle() { return triangle; } - void transform(const Aff_transformation_3& t) { - triangle = Triangle_3(triangle[0].transform(t), - triangle[1].transform(t), - triangle[2].transform(t)); - } - }; -#endif - class Halffacet_cycle_iterator : public Object_iterator /*{\Mtypemember a generic handle to an object in the boundary of a facet. Convertible to |Object_handle|.}*/ @@ -462,6 +413,10 @@ return *this; } + void reserve_sm_boundary_items(Size_type n) { + sm_boundary_item_.reserve(n); + } + void clear_boundary() { boundary_item_.clear(boost::none); sm_boundary_item_.clear(boost::none); @@ -484,10 +439,10 @@ } template - bool is_boundary_object(H h) + bool is_boundary_object(H h) const { return boundary_item_[h]!=boost::none; } template - bool is_sm_boundary_object(H h) + bool is_sm_boundary_object(H h) const { return sm_boundary_item_[h]!=boost::none; } template @@ -1099,13 +1054,13 @@ void SNC_structure:: pointer_update(const SNC_structure& D) { - CGAL::Unique_hash_map VM; - CGAL::Unique_hash_map EM; - CGAL::Unique_hash_map FM; - CGAL::Unique_hash_map CM; - CGAL::Unique_hash_map SEM; - CGAL::Unique_hash_map SLM; - CGAL::Unique_hash_map SFM; + CGAL::Unique_hash_map VM(Vertex_handle(), D.number_of_vertices()); + CGAL::Unique_hash_map EM(Halfedge_handle(), D.number_of_halfedges()); + CGAL::Unique_hash_map FM(Halffacet_handle(), D.number_of_halffacets()); + CGAL::Unique_hash_map CM(Volume_handle(), D.number_of_volumes()); + CGAL::Unique_hash_map SEM(SHalfedge_handle(), D.number_of_shalfedges()); + CGAL::Unique_hash_map SLM(SHalfloop_handle(), D.number_of_shalfloops()); + CGAL::Unique_hash_map SFM(SFace_handle(), D.number_of_sfaces()); Vertex_const_iterator vc = D.vertices_begin(); Vertex_iterator v = vertices_begin(); for ( ; vc != D.vertices_end(); ++vc,++v) VM[vc] = v; diff -Nru cgal-5.4.1/include/CGAL/Nef_3/vertex_cycle_to_nef_3.h cgal-5.5/include/CGAL/Nef_3/vertex_cycle_to_nef_3.h --- cgal-5.4.1/include/CGAL/Nef_3/vertex_cycle_to_nef_3.h 2022-06-03 19:04:56.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_3/vertex_cycle_to_nef_3.h 2022-07-13 19:05:49.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_3/include/CGAL/Nef_3/vertex_cycle_to_nef_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_3/include/CGAL/Nef_3/vertex_cycle_to_nef_3.h $ // $Id: vertex_cycle_to_nef_3.h 30e536b 2021-03-01T08:06:48+00:00 Giles Bathgate // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_3/Vertex.h cgal-5.5/include/CGAL/Nef_3/Vertex.h --- cgal-5.4.1/include/CGAL/Nef_3/Vertex.h 2022-06-03 19:04:56.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_3/Vertex.h 2022-07-13 19:05:48.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_3/include/CGAL/Nef_3/Vertex.h $ -// $Id: Vertex.h 4e519a3 2021-05-05T13:15:37+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_3/include/CGAL/Nef_3/Vertex.h $ +// $Id: Vertex.h 2d4a857 2022-03-12T12:06:17+00:00 Giles Bathgate // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -261,8 +261,7 @@ fend = sfaces_end(); while (fit != fend) { SFace_iterator fdel = fit++; - /* TO VERIFY: next statement needs access to a private attribute */ - sncp()->reset_sm_object_list(fdel->boundary_entry_objects_); + sncp()->reset_sm_object_list(fdel->boundary_entry_objects()); sncp()->delete_sface_only(fdel); } sfaces_begin_ = sfaces_last_ = sncp()->sfaces_end(); diff -Nru cgal-5.4.1/include/CGAL/Nef_3/Volume.h cgal-5.5/include/CGAL/Nef_3/Volume.h --- cgal-5.4.1/include/CGAL/Nef_3/Volume.h 2022-06-03 19:04:56.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_3/Volume.h 2022-07-13 19:05:48.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_3/include/CGAL/Nef_3/Volume.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_3/include/CGAL/Nef_3/Volume.h $ // $Id: Volume.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_nary_intersection_3.h cgal-5.5/include/CGAL/Nef_nary_intersection_3.h --- cgal-5.4.1/include/CGAL/Nef_nary_intersection_3.h 2022-06-03 19:04:56.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_nary_intersection_3.h 2022-07-13 19:05:49.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_3/include/CGAL/Nef_nary_intersection_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_3/include/CGAL/Nef_nary_intersection_3.h $ // $Id: Nef_nary_intersection_3.h a86712d 2020-06-07T15:25:18+02:00 Thomas Krijnen // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_nary_union_3.h cgal-5.5/include/CGAL/Nef_nary_union_3.h --- cgal-5.4.1/include/CGAL/Nef_nary_union_3.h 2022-06-03 19:04:56.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_nary_union_3.h 2022-07-13 19:05:49.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_3/include/CGAL/Nef_nary_union_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_3/include/CGAL/Nef_nary_union_3.h $ // $Id: Nef_nary_union_3.h a86712d 2020-06-07T15:25:18+02:00 Thomas Krijnen // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_polyhedron_2.h cgal-5.5/include/CGAL/Nef_polyhedron_2.h --- cgal-5.4.1/include/CGAL/Nef_polyhedron_2.h 2022-06-03 19:04:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_polyhedron_2.h 2022-07-13 19:05:47.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_2/include/CGAL/Nef_polyhedron_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_2/include/CGAL/Nef_polyhedron_2.h $ // $Id: Nef_polyhedron_2.h 618b409 2021-01-18T15:40:40+01:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_polyhedron_3.h cgal-5.5/include/CGAL/Nef_polyhedron_3.h --- cgal-5.4.1/include/CGAL/Nef_polyhedron_3.h 2022-06-03 19:04:56.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_polyhedron_3.h 2022-07-13 19:05:49.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_3/include/CGAL/Nef_polyhedron_3.h $ -// $Id: Nef_polyhedron_3.h 28cdf9b 2021-12-03T15:27:31+01:00 Laurent Rineau +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_3/include/CGAL/Nef_polyhedron_3.h $ +// $Id: Nef_polyhedron_3.h f1f201b 2022-06-29T10:47:14+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -117,7 +117,7 @@ SNC_point_locator* pl_; public: - Nef_polyhedron_3_rep() : snc_(), pl_() {} + Nef_polyhedron_3_rep() : snc_(), pl_(nullptr) {} ~Nef_polyhedron_3_rep() { CGAL_NEF_TRACEN( "Nef_polyhedron_3_rep: destroying SNC structure "<<&snc_<< ", point locator "< - Nef_polyhedron_3(InputIterator begin, InputIterator end, Polylines_tag) { + Nef_polyhedron_3(InputIterator begin, InputIterator end, Polylines_tag) + : Nef_polyhedron_3(Private_tag{}) + { typedef typename std::iterator_traits::value_type point_iterator_pair; typedef typename point_iterator_pair::first_type point_iterator; - empty_rep(); - set_snc(snc()); initialize_infibox_vertices(EMPTY); point_iterator pbegin, pend, pnext, pprev; @@ -556,9 +566,9 @@ } explicit - Nef_polyhedron_3(const Segment_3& s) { - empty_rep(); - set_snc(snc()); + Nef_polyhedron_3(const Segment_3& s) + : Nef_polyhedron_3(Private_tag{}) + { initialize_infibox_vertices(EMPTY); Sphere_map_creator smc; @@ -573,9 +583,9 @@ } template - Nef_polyhedron_3(InputIterator begin, InputIterator end, Points_tag) { - empty_rep(); - set_snc(snc()); + Nef_polyhedron_3(InputIterator begin, InputIterator end, Points_tag) + : Nef_polyhedron_3(Private_tag{}) + { initialize_infibox_vertices(EMPTY); for(InputIterator it=begin; it!=end;++it) @@ -589,9 +599,9 @@ } explicit - Nef_polyhedron_3(const Point_3& p) { - empty_rep(); - set_snc(snc()); + Nef_polyhedron_3(const Point_3& p) + : Nef_polyhedron_3(Private_tag{}) + { initialize_infibox_vertices(EMPTY); Vertex_handle v(snc().new_vertex(p, true)); @@ -602,33 +612,17 @@ simplify(); } - template - class T3, class T4 > - Nef_polyhedron_3( CGAL::Polyhedron_3& P) { - CGAL_NEF_TRACEN("construction from Polyhedron_3"); - SNC_structure rsnc; - *this = Nef_polyhedron_3(rsnc, new SNC_point_locator_default, false); - initialize_infibox_vertices(EMPTY); - polyhedron_3_to_nef_3 - , SNC_structure>( P, snc()); - build_external_structure(); - mark_bounded_volumes(); - simplify(); - set_snc(snc()); - } - template - explicit Nef_polyhedron_3(const PolygonMesh& pm) { + explicit Nef_polyhedron_3(const PolygonMesh& pm) + : Nef_polyhedron_3(Private_tag{}) + { CGAL_NEF_TRACEN("construction from PolygonMesh with internal index maps"); - SNC_structure rsnc; - *this = Nef_polyhedron_3(rsnc, new SNC_point_locator_default, false); + reserve_for_vertices(num_vertices(pm)); initialize_infibox_vertices(EMPTY); - polygon_mesh_to_nef_3(const_cast(pm), snc()); + polygon_mesh_to_nef_3(pm, snc()); build_external_structure(); mark_bounded_volumes(); simplify(); - set_snc(snc()); } template @@ -638,30 +632,26 @@ typename boost::disable_if < boost::is_same >::type* = nullptr // disambiguate with another constructor - ) + ) : Nef_polyhedron_3(Private_tag{}) { CGAL_NEF_TRACEN("construction from PolygonMesh"); - SNC_structure rsnc; - *this = Nef_polyhedron_3(rsnc, new SNC_point_locator_default, false); + reserve_for_vertices(num_vertices(pm)); initialize_infibox_vertices(EMPTY); - polygon_mesh_to_nef_3(const_cast(pm), snc(), fim, him); + polygon_mesh_to_nef_3(pm, snc(), fim, him); build_external_structure(); mark_bounded_volumes(); simplify(); - set_snc(snc()); } Nef_polyhedron_3(const Nef_polyhedron& N, SFace_const_iterator sf) + : Nef_polyhedron_3(Private_tag{}) { - SNC_structure rsnc; - *this = Nef_polyhedron_3(rsnc, new SNC_point_locator_default, false); initialize_infibox_vertices(EMPTY); shell_to_nef_3(N, sf, snc()); build_external_structure(); mark_bounded_volumes(); simplify(); - set_snc(snc()); } @@ -1421,8 +1411,7 @@ if (is_space()) return N1; if (N1.is_space()) return *this; AND _and; - SNC_structure rsnc; - Nef_polyhedron_3 res(rsnc, new SNC_point_locator_default, false); + Nef_polyhedron_3 res(Private_tag{}); Binary_operation bo( res.snc()); bo(res.pl(), snc(), pl(), N1.snc(), N1.pl(), _and); return res; @@ -1432,8 +1421,7 @@ intersection(const Plane_3& plane, Intersection_mode im) const { AND _and; - SNC_structure rsnc; - Nef_polyhedron_3 res(rsnc, new SNC_point_locator_default, false); + Nef_polyhedron_3 res(Private_tag{}); Combine_with_halfspace cwh(res.snc(), res.pl()); cwh.combine_with_halfspace(snc(), plane, _and, static_cast(im)); @@ -1450,8 +1438,7 @@ if (N1.is_space()) return N1; OR _or; //CGAL::binop_intersection_tests_allpairs tests_impl; - SNC_structure rsnc; - Nef_polyhedron_3 res(rsnc, new SNC_point_locator_default, false); + Nef_polyhedron_3 res(Private_tag{}); Binary_operation bo(res.snc()); bo(res.pl(), snc(), pl(), N1.snc(), N1.pl(), _or); return res; @@ -1467,8 +1454,7 @@ if (N1.is_space()) return Nef_polyhedron_3(EMPTY); DIFF _diff; //CGAL::binop_intersection_tests_allpairs tests_impl; - SNC_structure rsnc; - Nef_polyhedron_3 res(rsnc, new SNC_point_locator_default, false); + Nef_polyhedron_3 res(Private_tag{}); Binary_operation bo(res.snc()); bo(res.pl(), snc(), pl(), N1.snc(), N1.pl(), _diff); return res; @@ -1485,8 +1471,7 @@ if (N1.is_space()) return Nef_polyhedron_3(EMPTY); XOR _xor; //CGAL::binop_intersection_tests_allpairs tests_impl; - SNC_structure rsnc; - Nef_polyhedron_3 res(rsnc, new SNC_point_locator_default, false); + Nef_polyhedron_3 res(Private_tag{}); Binary_operation bo(res.snc()); bo(res.pl(), snc(), pl(), N1.snc(), N1.pl(), _xor); return res; @@ -2003,10 +1988,10 @@ template Nef_polyhedron_3:: -Nef_polyhedron_3( Content space) { +Nef_polyhedron_3( Content space) + : Nef_polyhedron_3(Private_tag{}) +{ CGAL_NEF_TRACEN("construction from empty or space."); - empty_rep(); - set_snc(snc()); if(Infi_box::extended_kernel()) { initialize_infibox_vertices(space); build_external_structure(); @@ -2018,10 +2003,10 @@ template Nef_polyhedron_3:: -Nef_polyhedron_3(const Plane_3& h, Boundary b) { +Nef_polyhedron_3(const Plane_3& h, Boundary b) + : Nef_polyhedron_3(Private_tag{}) +{ CGAL_NEF_TRACEN("construction from plane "< void initialize_hash(Handle /*h*/) {} void initialize_hash(int /*i*/) {} diff -Nru cgal-5.4.1/include/CGAL/Nef_S2/leda_sphere_map.h cgal-5.5/include/CGAL/Nef_S2/leda_sphere_map.h --- cgal-5.4.1/include/CGAL/Nef_S2/leda_sphere_map.h 2022-06-03 19:04:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_S2/leda_sphere_map.h 2022-07-13 19:05:50.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_S2/include/CGAL/Nef_S2/leda_sphere_map.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_S2/include/CGAL/Nef_S2/leda_sphere_map.h $ // $Id: leda_sphere_map.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_S2/Normalizing.h cgal-5.5/include/CGAL/Nef_S2/Normalizing.h --- cgal-5.4.1/include/CGAL/Nef_S2/Normalizing.h 2022-06-03 19:04:56.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_S2/Normalizing.h 2022-07-13 19:05:49.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_S2/include/CGAL/Nef_S2/Normalizing.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_S2/include/CGAL/Nef_S2/Normalizing.h $ // $Id: Normalizing.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_S2/OGL_base_object.h cgal-5.5/include/CGAL/Nef_S2/OGL_base_object.h --- cgal-5.4.1/include/CGAL/Nef_S2/OGL_base_object.h 2022-06-03 19:04:56.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_S2/OGL_base_object.h 2022-07-13 19:05:49.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_S2/include/CGAL/Nef_S2/OGL_base_object.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_S2/include/CGAL/Nef_S2/OGL_base_object.h $ // $Id: OGL_base_object.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_S2/SM_checker.h cgal-5.5/include/CGAL/Nef_S2/SM_checker.h --- cgal-5.4.1/include/CGAL/Nef_S2/SM_checker.h 2022-06-03 19:04:56.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_S2/SM_checker.h 2022-07-13 19:05:49.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_S2/include/CGAL/Nef_S2/SM_checker.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_S2/include/CGAL/Nef_S2/SM_checker.h $ // $Id: SM_checker.h 4e519a3 2021-05-05T13:15:37+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_S2/SM_const_decorator.h cgal-5.5/include/CGAL/Nef_S2/SM_const_decorator.h --- cgal-5.4.1/include/CGAL/Nef_S2/SM_const_decorator.h 2022-06-03 19:04:56.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_S2/SM_const_decorator.h 2022-07-13 19:05:49.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_S2/include/CGAL/Nef_S2/SM_const_decorator.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_S2/include/CGAL/Nef_S2/SM_const_decorator.h $ // $Id: SM_const_decorator.h 9c6712c 2021-02-08T19:32:33+00:00 Giles Bathgate // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_S2/SM_constrained_triang_traits.h cgal-5.5/include/CGAL/Nef_S2/SM_constrained_triang_traits.h --- cgal-5.4.1/include/CGAL/Nef_S2/SM_constrained_triang_traits.h 2022-06-03 19:04:56.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_S2/SM_constrained_triang_traits.h 2022-07-13 19:05:49.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_S2/include/CGAL/Nef_S2/SM_constrained_triang_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_S2/include/CGAL/Nef_S2/SM_constrained_triang_traits.h $ // $Id: SM_constrained_triang_traits.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_S2/SM_decorator.h cgal-5.5/include/CGAL/Nef_S2/SM_decorator.h --- cgal-5.4.1/include/CGAL/Nef_S2/SM_decorator.h 2022-06-03 19:04:56.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_S2/SM_decorator.h 2022-07-13 19:05:49.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_S2/include/CGAL/Nef_S2/SM_decorator.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_S2/include/CGAL/Nef_S2/SM_decorator.h $ // $Id: SM_decorator.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_S2/SM_decorator_traits.h cgal-5.5/include/CGAL/Nef_S2/SM_decorator_traits.h --- cgal-5.4.1/include/CGAL/Nef_S2/SM_decorator_traits.h 2022-06-03 19:04:56.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_S2/SM_decorator_traits.h 2022-07-13 19:05:49.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_S2/include/CGAL/Nef_S2/SM_decorator_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_S2/include/CGAL/Nef_S2/SM_decorator_traits.h $ // $Id: SM_decorator_traits.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_S2/SM_io_parser.h cgal-5.5/include/CGAL/Nef_S2/SM_io_parser.h --- cgal-5.4.1/include/CGAL/Nef_S2/SM_io_parser.h 2022-06-03 19:04:56.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_S2/SM_io_parser.h 2022-07-13 19:05:49.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_S2/include/CGAL/Nef_S2/SM_io_parser.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_S2/include/CGAL/Nef_S2/SM_io_parser.h $ // $Id: SM_io_parser.h 4e519a3 2021-05-05T13:15:37+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_S2/SM_items.h cgal-5.5/include/CGAL/Nef_S2/SM_items.h --- cgal-5.4.1/include/CGAL/Nef_S2/SM_items.h 2022-06-03 19:04:56.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_S2/SM_items.h 2022-07-13 19:05:49.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_S2/include/CGAL/Nef_S2/SM_items.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_S2/include/CGAL/Nef_S2/SM_items.h $ // $Id: SM_items.h 4e519a3 2021-05-05T13:15:37+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_S2/SM_iteration.h cgal-5.5/include/CGAL/Nef_S2/SM_iteration.h --- cgal-5.4.1/include/CGAL/Nef_S2/SM_iteration.h 2022-06-03 19:04:56.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_S2/SM_iteration.h 2022-07-13 19:05:49.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_S2/include/CGAL/Nef_S2/SM_iteration.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_S2/include/CGAL/Nef_S2/SM_iteration.h $ // $Id: SM_iteration.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_S2/SM_list.h cgal-5.5/include/CGAL/Nef_S2/SM_list.h --- cgal-5.4.1/include/CGAL/Nef_S2/SM_list.h 2022-06-03 19:04:56.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_S2/SM_list.h 2022-07-13 19:05:49.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_S2/include/CGAL/Nef_S2/SM_list.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_S2/include/CGAL/Nef_S2/SM_list.h $ // $Id: SM_list.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_S2/SM_overlayer.h cgal-5.5/include/CGAL/Nef_S2/SM_overlayer.h --- cgal-5.4.1/include/CGAL/Nef_S2/SM_overlayer.h 2022-06-03 19:04:56.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_S2/SM_overlayer.h 2022-07-13 19:05:49.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_S2/include/CGAL/Nef_S2/SM_overlayer.h $ -// $Id: SM_overlayer.h c586c3c 2020-11-18T08:56:02+00:00 Giles Bathgate +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_S2/include/CGAL/Nef_S2/SM_overlayer.h $ +// $Id: SM_overlayer.h 6e8f312 2022-06-20T11:57:23+02:00 Laurent Rineau // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -1954,11 +1954,13 @@ int i = start->intersection(xycircle,s1,s2); CGAL_NEF_TRACEN("segment " << start->source() << " " << start->target()); if (i>1) { - L.push_back(s2); M[--L.end()] = M[start]; + auto value = M[start]; + L.push_back(s2); M[--L.end()] = std::move(value); CGAL_NEF_TRACEN(">1 " << s2.source() << " " << s2.target()); } if (i>0) { - L.push_back(s1); M[--L.end()] = M[start]; + auto value = M[start]; + L.push_back(s1); M[--L.end()] = std::move(value); CGAL_NEF_TRACEN(">0 " << s1.source() << " " << s1.target()); } ++start; @@ -1967,7 +1969,7 @@ else { while(start != beyond) { L.push_back(*start); - M[--L.end()] = M[start]; + auto value = M[start]; M[--L.end()] = std::move(value); ++start; } } @@ -1987,23 +1989,23 @@ bool added=false; int n1 = it->intersection(yzcircle,s1,s2); if (n1 > 1 && !s2.is_degenerate()) { - M[ L.insert(it,s2) ] = M[it]; + auto value = M[it]; M[ L.insert(it,s2) ] = std::move(value); added=true; CGAL_NEF_TRACEN(">1 " << s2.source() << " " << s2.target()); } if (n1 > 0 && !s1.is_degenerate()) { - M[ L.insert(it,s1) ] = M[it]; + auto value = M[it]; M[ L.insert(it,s1) ] = std::move(value); added = true; CGAL_NEF_TRACEN(">1 " << s1.source() << " " << s1.target()); } int n2 = it->intersection(yzcircle.opposite(),s1,s2); if (n2 > 1 && !s2.is_degenerate()) { - M[ L.insert(it,s2) ] = M[it]; + auto value = M[it]; M[ L.insert(it,s2) ] = std::move(value); added=true; CGAL_NEF_TRACEN(">1 " << s2.source() << " " << s2.target()); } if (n2 > 0 && !s1.is_degenerate()) { - M[ L.insert(it,s1) ] = M[it]; + auto value = M[it]; M[ L.insert(it,s1) ] = std::move(value); added=true; CGAL_NEF_TRACEN(">1 " << s1.source() << " " << s1.target()); } @@ -2022,7 +2024,7 @@ CGAL_NEF_TRACEN(" into " << s1); CGAL_NEF_TRACEN(" into " << s2); *it = s2; - M[ L.insert(it,s1) ] = M[it]; + auto value = M[it]; M[ L.insert(it,s1) ] = std::move(value); } } diff -Nru cgal-5.4.1/include/CGAL/Nef_S2/SM_point_locator.h cgal-5.5/include/CGAL/Nef_S2/SM_point_locator.h --- cgal-5.4.1/include/CGAL/Nef_S2/SM_point_locator.h 2022-06-03 19:04:56.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_S2/SM_point_locator.h 2022-07-13 19:05:49.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_S2/include/CGAL/Nef_S2/SM_point_locator.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_S2/include/CGAL/Nef_S2/SM_point_locator.h $ // $Id: SM_point_locator.h 2334ec5 2021-03-10T18:40:03+00:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_S2/SM_triangulator.h cgal-5.5/include/CGAL/Nef_S2/SM_triangulator.h --- cgal-5.4.1/include/CGAL/Nef_S2/SM_triangulator.h 2022-06-03 19:04:56.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_S2/SM_triangulator.h 2022-07-13 19:05:49.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_S2/include/CGAL/Nef_S2/SM_triangulator.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_S2/include/CGAL/Nef_S2/SM_triangulator.h $ // $Id: SM_triangulator.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_S2/SM_visualizor.h cgal-5.5/include/CGAL/Nef_S2/SM_visualizor.h --- cgal-5.4.1/include/CGAL/Nef_S2/SM_visualizor.h 2022-06-03 19:04:56.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_S2/SM_visualizor.h 2022-07-13 19:05:49.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_S2/include/CGAL/Nef_S2/SM_visualizor.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_S2/include/CGAL/Nef_S2/SM_visualizor.h $ // $Id: SM_visualizor.h fb6f703 2021-05-04T14:07:49+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_S2/Sphere_circle.h cgal-5.5/include/CGAL/Nef_S2/Sphere_circle.h --- cgal-5.4.1/include/CGAL/Nef_S2/Sphere_circle.h 2022-06-03 19:04:56.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_S2/Sphere_circle.h 2022-07-13 19:05:49.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_S2/include/CGAL/Nef_S2/Sphere_circle.h $ -// $Id: Sphere_circle.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_S2/include/CGAL/Nef_S2/Sphere_circle.h $ +// $Id: Sphere_circle.h 9cdf8ba 2022-04-02T18:10:06+01:00 Giles Bathgate // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -17,6 +17,7 @@ #include +#include namespace CGAL { @@ -47,6 +48,7 @@ typedef typename R_::Plane_3 Plane_3; typedef typename R_::Line_3 Line_3; typedef typename R_::Point_3 Point_3; +typedef typename R_::Vector_3 Vector_3; typedef Sphere_circle Self; typedef typename R_::Plane_3 Base; @@ -61,15 +63,15 @@ such that a walk along |\Mvar| meets $p$ just before the shorter segment between $p$ and $q$. If $p$ and $q$ are antipodal of each other then we create any great circle that contains $p$ and $q$.}*/ -{ Point_3 p1(0,0,0), p4 = CGAL::ORIGIN + ((Base*) this)->orthogonal_vector(); +{ if ( p != q.antipode() ) { - if (R_().orientation_3_object()(p1,Point_3(p), - Point_3(q), p4) != CGAL::POSITIVE ) - *this = Self(opposite()); + Point_3 po = CGAL::ORIGIN + Base::orthogonal_vector(); + if (R_().orientation_3_object()(CGAL::ORIGIN, Point_3(p), + Point_3(q), po) != CGAL::POSITIVE ) + *this = opposite(); } else { - /* previous method was: *this = Self(Plane_3(p1,q-p)); - but p, q don't belong to he plane ((0,0,0), q-p) */ - + /* previous method was: *this = Self(Plane_3((0,0,0),q-p)); + but p, q don't belong to the plane ((0,0,0), q-p) */ if(!Line_3(p,q).has_on(Point_3(1,0,0))) *this = Self(Plane_3(p,q,Point_3(1,0,0))); else @@ -78,16 +80,22 @@ } } - Sphere_circle(const Plane_3& h) : Base(h) +Sphere_circle(const Plane_3& h) : Base(h) /*{\Mcreate creates the circle of $S_2$ corresponding to the plane |h|. If |h| does not contain the origin, then |\Mvar| becomes the circle parallel to |h| containing the origin.}*/ { - if(h.d() != 0) *this = Plane_3(h.a(),h.b(),h.c(),RT(0)); + if(!is_zero(h.d())) + *this = Plane_3(h.a(),h.b(),h.c(),RT(0)); } -Sphere_circle(const RT& x, const RT& y, const RT& z): Base(x,y,z,0) {} +Sphere_circle(const Origin& o, const Vector_3& v) : Base(o,v) {} + +Sphere_circle(const Origin&, const Plane_3& h) : Base(h.a(),h.b(),h.c(),RT(0)) +{/* Even if |h| does not contain the origin, the circle will contain the origin +and be parallel to |h| */} +Sphere_circle(const RT& x, const RT& y, const RT& z) : Base(x,y,z,0) {} /*{\Mcreate creates the circle orthogonal to the vector $(x,y,z)$.}*/ Sphere_circle(Sphere_circle c, const Sphere_point& p) @@ -102,10 +110,9 @@ } /*{\Moperations 4 2}*/ - Sphere_circle opposite() const /*{\Mop returns the opposite of |\Mvar|.}*/ -{ return Base::opposite(); } +{ return Sphere_circle(Base::opposite(),Assume_d_equal_0{}); } bool has_on(const Sphere_point& p) const /*{\Mop returns true iff |\Mvar| contains |p|.}*/ @@ -117,12 +124,12 @@ Plane_3 plane_through(const Point_3& p) const /*{\Mop returns the plane parallel to |\Mvar| that contains point |p|.}*/ -{ return Plane_3(p,((Base*) this)->orthogonal_direction()); } +{ return Plane_3(p,Base::orthogonal_vector()); } Sphere_point orthogonal_pole() const /*{\Mop returns the point that is the pole of the hemisphere left of |\Mvar|.}*/ -{ return CGAL::ORIGIN+((Base*) this)->orthogonal_vector(); } +{ return CGAL::ORIGIN+Base::orthogonal_vector(); } Sphere_segment_pair split_at(const Sphere_point& p) const; /*{\Mop returns the pair of circle segments that is the result @@ -134,6 +141,10 @@ is not part of it. Otherwise |\Mvar| is split at the $x$-$z$-coordinate plane.}*/ +private: +struct Assume_d_equal_0{}; +Sphere_circle(const Plane_3& h, Assume_d_equal_0) : Base(h){} + }; // Sphere_circle /*{\Mtext\headerline{Global functions}}*/ @@ -162,11 +173,9 @@ |c1| and |c2|. \precond |c1 != c2| as sets.}*/ { CGAL_assertion(!equal_as_sets(c1,c2)); - typename R::Line_3 lres; CGAL_NEF_TRACEN("circle_intersection "<:: pointer_update(const Sphere_map& D) { - CGAL::Unique_hash_map VM; - CGAL::Unique_hash_map EM; - CGAL::Unique_hash_map LM; - CGAL::Unique_hash_map FM; + CGAL::Unique_hash_map VM(SVertex_handle(), D.number_of_svertices()); + CGAL::Unique_hash_map EM(SHalfedge_handle(), D.number_of_shalfedges()); + CGAL::Unique_hash_map LM(SHalfloop_handle(), D.number_of_shalfloops()); + CGAL::Unique_hash_map FM(SFace_handle(), D.number_of_sfaces()); SVertex_const_iterator vc = D.svertices_begin(); SVertex_iterator v = svertices_begin(); diff -Nru cgal-5.4.1/include/CGAL/Nef_S2/Sphere_point.h cgal-5.5/include/CGAL/Nef_S2/Sphere_point.h --- cgal-5.4.1/include/CGAL/Nef_S2/Sphere_point.h 2022-06-03 19:04:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_S2/Sphere_point.h 2022-07-13 19:05:49.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_S2/include/CGAL/Nef_S2/Sphere_point.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_S2/include/CGAL/Nef_S2/Sphere_point.h $ // $Id: Sphere_point.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_S2/sphere_predicates.h cgal-5.5/include/CGAL/Nef_S2/sphere_predicates.h --- cgal-5.4.1/include/CGAL/Nef_S2/sphere_predicates.h 2022-06-03 19:04:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_S2/sphere_predicates.h 2022-07-13 19:05:50.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_S2/include/CGAL/Nef_S2/sphere_predicates.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_S2/include/CGAL/Nef_S2/sphere_predicates.h $ // $Id: sphere_predicates.h 31e4638 2020-11-11T18:47:25+00:00 Giles Bathgate // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nef_S2/Sphere_segment.h cgal-5.5/include/CGAL/Nef_S2/Sphere_segment.h --- cgal-5.4.1/include/CGAL/Nef_S2/Sphere_segment.h 2022-06-03 19:04:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_S2/Sphere_segment.h 2022-07-13 19:05:49.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_S2/include/CGAL/Nef_S2/Sphere_segment.h $ -// $Id: Sphere_segment.h 0572bc5 2021-06-13T17:00:52+01:00 Giles Bathgate +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_S2/include/CGAL/Nef_S2/Sphere_segment.h $ +// $Id: Sphere_segment.h 9a50014 2022-03-17T14:08:23+01:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -37,14 +37,15 @@ Sphere_segment_rep(const Point& p1, const Point& p2, bool shorter_arc=true) : - ps_(p1), pt_(p2), c_(Plane_3(p1,p2,Point_3(CGAL::ORIGIN))) + ps_(p1), pt_(p2), + c_(CGAL::ORIGIN,R_().construct_orthogonal_vector_3_object()(CGAL::ORIGIN,p1,p2)) { // warning stays as reminder that one gets an arbitrary plane equation // in this degenerate case CGAL_warning(p1 != p2.antipode()); CGAL_assertion(p1 != p2.antipode()); if ( p1 == p2 ) { - Plane_3 h(Point_3(CGAL::ORIGIN),(p1-CGAL::ORIGIN)); - c_ = Sphere_circle(Plane_3(Point_3(CGAL::ORIGIN),h.base1())); + Plane_3 h(CGAL::ORIGIN,p1-CGAL::ORIGIN); + c_ = Sphere_circle(CGAL::ORIGIN,h.base1()); } if (!shorter_arc) c_ = c_.opposite(); CGAL_exactness_assertion(c_.has_on(p1) && c_.has_on(p2)); @@ -59,7 +60,7 @@ { CGAL_assertion(!equal_as_sets(c1,c2)); ps_ = intersection(c1,c2); pt_ = ps_.antipode(); - if ( R_::orientation(Point_3(CGAL::ORIGIN),ps_,pt_, + if ( R_().orientation_3_object()(CGAL::ORIGIN,ps_,pt_, CGAL::ORIGIN + c_.orthogonal_vector()) != CGAL::POSITIVE ) std::swap(ps_,pt_); } @@ -176,7 +177,7 @@ /*{\Mop splits a halfcircle into two equally sized segments. \precond |\Mvar| is a halfcircle.}*/ { CGAL_assertion( is_halfcircle() ); - Plane_3 h(Point_3(CGAL::ORIGIN),(target()-CGAL::ORIGIN)); + Plane_3 h(CGAL::ORIGIN,(target()-CGAL::ORIGIN)); Sphere_point p = CGAL::intersection(sphere_circle(),Sphere_circle(h)); if ( !has_on_after_intersection(p) ) p = p.antipode(); @@ -187,17 +188,17 @@ bool is_short() const /*{\Mop a segment is short iff it is shorter than a halfcircle.}*/ { - return R().orientation_3_object()(Point_3(CGAL::ORIGIN), - Point_3(source()), - Point_3(target()), + return R().orientation_3_object()(CGAL::ORIGIN, + source(), + target(), orthogonal_pole()) == CGAL::POSITIVE; } bool is_long() const /*{\Mop a segment is long iff it is longer than a halfcircle.}*/ -{ return R().orientation_3_object()(Point_3(CGAL::ORIGIN), - Point_3(source()), - Point_3(target()), +{ return R().orientation_3_object()(CGAL::ORIGIN, + source(), + target(), orthogonal_pole()) == CGAL::NEGATIVE; } @@ -229,17 +230,17 @@ { return CGAL::ORIGIN + sphere_circle().orthogonal_vector(); } CGAL::Orientation source_orientation(const CGAL::Sphere_point& p) const -{ return orientation(Point_3(CGAL::ORIGIN), - orthogonal_pole(), - source(), - p); +{ return R().orientation_3_object()(CGAL::ORIGIN, + orthogonal_pole(), + source(), + p); } CGAL::Orientation target_orientation(const CGAL::Sphere_point& p) const -{ return orientation(Point_3(CGAL::ORIGIN), - target(), - orthogonal_pole(), - p); +{ return R().orientation_3_object()(CGAL::ORIGIN, + target(), + orthogonal_pole(), + p); } }; diff -Nru cgal-5.4.1/include/CGAL/Nef_S2/Sphere_triangle.h cgal-5.5/include/CGAL/Nef_S2/Sphere_triangle.h --- cgal-5.4.1/include/CGAL/Nef_S2/Sphere_triangle.h 2022-06-03 19:04:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Nef_S2/Sphere_triangle.h 2022-07-13 19:05:49.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_S2/include/CGAL/Nef_S2/Sphere_triangle.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_S2/include/CGAL/Nef_S2/Sphere_triangle.h $ // $Id: Sphere_triangle.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Nested_iterator.h cgal-5.5/include/CGAL/Nested_iterator.h --- cgal-5.4.1/include/CGAL/Nested_iterator.h 2022-06-03 19:05:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Nested_iterator.h 2022-07-13 19:06:28.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/Nested_iterator.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/Nested_iterator.h $ // $Id: Nested_iterator.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/NewKernel_d/Cartesian_base.h cgal-5.5/include/CGAL/NewKernel_d/Cartesian_base.h --- cgal-5.4.1/include/CGAL/NewKernel_d/Cartesian_base.h 2022-06-03 19:04:57.000000000 +0000 +++ cgal-5.5/include/CGAL/NewKernel_d/Cartesian_base.h 2022-07-13 19:05:50.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/NewKernel_d/include/CGAL/NewKernel_d/Cartesian_base.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/NewKernel_d/include/CGAL/NewKernel_d/Cartesian_base.h $ // $Id: Cartesian_base.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/NewKernel_d/Cartesian_change_FT.h cgal-5.5/include/CGAL/NewKernel_d/Cartesian_change_FT.h --- cgal-5.4.1/include/CGAL/NewKernel_d/Cartesian_change_FT.h 2022-06-03 19:04:57.000000000 +0000 +++ cgal-5.5/include/CGAL/NewKernel_d/Cartesian_change_FT.h 2022-07-13 19:05:50.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/NewKernel_d/include/CGAL/NewKernel_d/Cartesian_change_FT.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/NewKernel_d/include/CGAL/NewKernel_d/Cartesian_change_FT.h $ // $Id: Cartesian_change_FT.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/NewKernel_d/Cartesian_complete.h cgal-5.5/include/CGAL/NewKernel_d/Cartesian_complete.h --- cgal-5.4.1/include/CGAL/NewKernel_d/Cartesian_complete.h 2022-06-03 19:04:57.000000000 +0000 +++ cgal-5.5/include/CGAL/NewKernel_d/Cartesian_complete.h 2022-07-13 19:05:50.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/NewKernel_d/include/CGAL/NewKernel_d/Cartesian_complete.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/NewKernel_d/include/CGAL/NewKernel_d/Cartesian_complete.h $ // $Id: Cartesian_complete.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/NewKernel_d/Cartesian_filter_K.h cgal-5.5/include/CGAL/NewKernel_d/Cartesian_filter_K.h --- cgal-5.4.1/include/CGAL/NewKernel_d/Cartesian_filter_K.h 2022-06-03 19:04:57.000000000 +0000 +++ cgal-5.5/include/CGAL/NewKernel_d/Cartesian_filter_K.h 2022-07-13 19:05:50.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/NewKernel_d/include/CGAL/NewKernel_d/Cartesian_filter_K.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/NewKernel_d/include/CGAL/NewKernel_d/Cartesian_filter_K.h $ // $Id: Cartesian_filter_K.h 634fe39 2020-12-30T19:56:58+01:00 Marc Glisse // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/NewKernel_d/Cartesian_filter_NT.h cgal-5.5/include/CGAL/NewKernel_d/Cartesian_filter_NT.h --- cgal-5.4.1/include/CGAL/NewKernel_d/Cartesian_filter_NT.h 2022-06-03 19:04:57.000000000 +0000 +++ cgal-5.5/include/CGAL/NewKernel_d/Cartesian_filter_NT.h 2022-07-13 19:05:50.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/NewKernel_d/include/CGAL/NewKernel_d/Cartesian_filter_NT.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/NewKernel_d/include/CGAL/NewKernel_d/Cartesian_filter_NT.h $ // $Id: Cartesian_filter_NT.h 74c029c 2021-09-09T11:44:36+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/NewKernel_d/Cartesian_LA_base.h cgal-5.5/include/CGAL/NewKernel_d/Cartesian_LA_base.h --- cgal-5.4.1/include/CGAL/NewKernel_d/Cartesian_LA_base.h 2022-06-03 19:04:57.000000000 +0000 +++ cgal-5.5/include/CGAL/NewKernel_d/Cartesian_LA_base.h 2022-07-13 19:05:50.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/NewKernel_d/include/CGAL/NewKernel_d/Cartesian_LA_base.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/NewKernel_d/include/CGAL/NewKernel_d/Cartesian_LA_base.h $ // $Id: Cartesian_LA_base.h bdc0ce3 2021-01-27T16:33:59+01:00 Marc Glisse // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/NewKernel_d/Cartesian_LA_functors.h cgal-5.5/include/CGAL/NewKernel_d/Cartesian_LA_functors.h --- cgal-5.4.1/include/CGAL/NewKernel_d/Cartesian_LA_functors.h 2022-06-03 19:04:57.000000000 +0000 +++ cgal-5.5/include/CGAL/NewKernel_d/Cartesian_LA_functors.h 2022-07-13 19:05:50.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/NewKernel_d/include/CGAL/NewKernel_d/Cartesian_LA_functors.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/NewKernel_d/include/CGAL/NewKernel_d/Cartesian_LA_functors.h $ // $Id: Cartesian_LA_functors.h 2d8f804 2021-02-15T21:06:12+01:00 Marc Glisse // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/NewKernel_d/Cartesian_per_dimension.h cgal-5.5/include/CGAL/NewKernel_d/Cartesian_per_dimension.h --- cgal-5.4.1/include/CGAL/NewKernel_d/Cartesian_per_dimension.h 2022-06-03 19:04:57.000000000 +0000 +++ cgal-5.5/include/CGAL/NewKernel_d/Cartesian_per_dimension.h 2022-07-13 19:05:50.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/NewKernel_d/include/CGAL/NewKernel_d/Cartesian_per_dimension.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/NewKernel_d/include/CGAL/NewKernel_d/Cartesian_per_dimension.h $ // $Id: Cartesian_per_dimension.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/NewKernel_d/Cartesian_static_filters.h cgal-5.5/include/CGAL/NewKernel_d/Cartesian_static_filters.h --- cgal-5.4.1/include/CGAL/NewKernel_d/Cartesian_static_filters.h 2022-06-03 19:04:57.000000000 +0000 +++ cgal-5.5/include/CGAL/NewKernel_d/Cartesian_static_filters.h 2022-07-13 19:05:50.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/NewKernel_d/include/CGAL/NewKernel_d/Cartesian_static_filters.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/NewKernel_d/include/CGAL/NewKernel_d/Cartesian_static_filters.h $ // $Id: Cartesian_static_filters.h 5945e48 2021-09-17T08:14:06+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/NewKernel_d/Coaffine.h cgal-5.5/include/CGAL/NewKernel_d/Coaffine.h --- cgal-5.4.1/include/CGAL/NewKernel_d/Coaffine.h 2022-06-03 19:04:57.000000000 +0000 +++ cgal-5.5/include/CGAL/NewKernel_d/Coaffine.h 2022-07-13 19:05:50.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/NewKernel_d/include/CGAL/NewKernel_d/Coaffine.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/NewKernel_d/include/CGAL/NewKernel_d/Coaffine.h $ // $Id: Coaffine.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/NewKernel_d/Define_kernel_types.h cgal-5.5/include/CGAL/NewKernel_d/Define_kernel_types.h --- cgal-5.4.1/include/CGAL/NewKernel_d/Define_kernel_types.h 2022-06-03 19:04:57.000000000 +0000 +++ cgal-5.5/include/CGAL/NewKernel_d/Define_kernel_types.h 2022-07-13 19:05:50.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/NewKernel_d/include/CGAL/NewKernel_d/Define_kernel_types.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/NewKernel_d/include/CGAL/NewKernel_d/Define_kernel_types.h $ // $Id: Define_kernel_types.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/NewKernel_d/Dimension_base.h cgal-5.5/include/CGAL/NewKernel_d/Dimension_base.h --- cgal-5.4.1/include/CGAL/NewKernel_d/Dimension_base.h 2022-06-03 19:04:57.000000000 +0000 +++ cgal-5.5/include/CGAL/NewKernel_d/Dimension_base.h 2022-07-13 19:05:50.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/NewKernel_d/include/CGAL/NewKernel_d/Dimension_base.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/NewKernel_d/include/CGAL/NewKernel_d/Dimension_base.h $ // $Id: Dimension_base.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/NewKernel_d/Filtered_predicate2.h cgal-5.5/include/CGAL/NewKernel_d/Filtered_predicate2.h --- cgal-5.4.1/include/CGAL/NewKernel_d/Filtered_predicate2.h 2022-06-03 19:04:57.000000000 +0000 +++ cgal-5.5/include/CGAL/NewKernel_d/Filtered_predicate2.h 2022-07-13 19:05:50.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/NewKernel_d/include/CGAL/NewKernel_d/Filtered_predicate2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/NewKernel_d/include/CGAL/NewKernel_d/Filtered_predicate2.h $ // $Id: Filtered_predicate2.h 6bae0e3 2021-09-09T11:09:16+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/NewKernel_d/function_objects_cartesian.h cgal-5.5/include/CGAL/NewKernel_d/function_objects_cartesian.h --- cgal-5.4.1/include/CGAL/NewKernel_d/function_objects_cartesian.h 2022-06-03 19:04:58.000000000 +0000 +++ cgal-5.5/include/CGAL/NewKernel_d/function_objects_cartesian.h 2022-07-13 19:05:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/NewKernel_d/include/CGAL/NewKernel_d/function_objects_cartesian.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/NewKernel_d/include/CGAL/NewKernel_d/function_objects_cartesian.h $ // $Id: function_objects_cartesian.h 634fe39 2020-12-30T19:56:58+01:00 Marc Glisse // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/NewKernel_d/functor_properties.h cgal-5.5/include/CGAL/NewKernel_d/functor_properties.h --- cgal-5.4.1/include/CGAL/NewKernel_d/functor_properties.h 2022-06-03 19:04:58.000000000 +0000 +++ cgal-5.5/include/CGAL/NewKernel_d/functor_properties.h 2022-07-13 19:05:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/NewKernel_d/include/CGAL/NewKernel_d/functor_properties.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/NewKernel_d/include/CGAL/NewKernel_d/functor_properties.h $ // $Id: functor_properties.h 634fe39 2020-12-30T19:56:58+01:00 Marc Glisse // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/NewKernel_d/functor_tags.h cgal-5.5/include/CGAL/NewKernel_d/functor_tags.h --- cgal-5.4.1/include/CGAL/NewKernel_d/functor_tags.h 2022-06-03 19:04:58.000000000 +0000 +++ cgal-5.5/include/CGAL/NewKernel_d/functor_tags.h 2022-07-13 19:05:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/NewKernel_d/include/CGAL/NewKernel_d/functor_tags.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/NewKernel_d/include/CGAL/NewKernel_d/functor_tags.h $ // $Id: functor_tags.h 8bb22d5 2020-03-26T14:23:37+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/NewKernel_d/Kernel_2_interface.h cgal-5.5/include/CGAL/NewKernel_d/Kernel_2_interface.h --- cgal-5.4.1/include/CGAL/NewKernel_d/Kernel_2_interface.h 2022-06-03 19:04:57.000000000 +0000 +++ cgal-5.5/include/CGAL/NewKernel_d/Kernel_2_interface.h 2022-07-13 19:05:50.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/NewKernel_d/include/CGAL/NewKernel_d/Kernel_2_interface.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/NewKernel_d/include/CGAL/NewKernel_d/Kernel_2_interface.h $ // $Id: Kernel_2_interface.h cf54055 2021-02-14T01:16:52+01:00 Marc Glisse // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/NewKernel_d/Kernel_3_interface.h cgal-5.5/include/CGAL/NewKernel_d/Kernel_3_interface.h --- cgal-5.4.1/include/CGAL/NewKernel_d/Kernel_3_interface.h 2022-06-03 19:04:57.000000000 +0000 +++ cgal-5.5/include/CGAL/NewKernel_d/Kernel_3_interface.h 2022-07-13 19:05:50.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/NewKernel_d/include/CGAL/NewKernel_d/Kernel_3_interface.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/NewKernel_d/include/CGAL/NewKernel_d/Kernel_3_interface.h $ // $Id: Kernel_3_interface.h cf54055 2021-02-14T01:16:52+01:00 Marc Glisse // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/NewKernel_d/KernelD_converter.h cgal-5.5/include/CGAL/NewKernel_d/KernelD_converter.h --- cgal-5.4.1/include/CGAL/NewKernel_d/KernelD_converter.h 2022-06-03 19:04:57.000000000 +0000 +++ cgal-5.5/include/CGAL/NewKernel_d/KernelD_converter.h 2022-07-13 19:05:50.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/NewKernel_d/include/CGAL/NewKernel_d/KernelD_converter.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/NewKernel_d/include/CGAL/NewKernel_d/KernelD_converter.h $ // $Id: KernelD_converter.h 209513d 2020-07-31T15:58:38+02:00 Dmitry Anisimov // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/NewKernel_d/Kernel_d_interface.h cgal-5.5/include/CGAL/NewKernel_d/Kernel_d_interface.h --- cgal-5.4.1/include/CGAL/NewKernel_d/Kernel_d_interface.h 2022-06-03 19:04:57.000000000 +0000 +++ cgal-5.5/include/CGAL/NewKernel_d/Kernel_d_interface.h 2022-07-13 19:05:50.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/NewKernel_d/include/CGAL/NewKernel_d/Kernel_d_interface.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/NewKernel_d/include/CGAL/NewKernel_d/Kernel_d_interface.h $ // $Id: Kernel_d_interface.h 31a0557 2021-08-13T16:45:28+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/NewKernel_d/Kernel_object_converter.h cgal-5.5/include/CGAL/NewKernel_d/Kernel_object_converter.h --- cgal-5.4.1/include/CGAL/NewKernel_d/Kernel_object_converter.h 2022-06-03 19:04:57.000000000 +0000 +++ cgal-5.5/include/CGAL/NewKernel_d/Kernel_object_converter.h 2022-07-13 19:05:50.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/NewKernel_d/include/CGAL/NewKernel_d/Kernel_object_converter.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/NewKernel_d/include/CGAL/NewKernel_d/Kernel_object_converter.h $ // $Id: Kernel_object_converter.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/NewKernel_d/LA_eigen/constructors.h cgal-5.5/include/CGAL/NewKernel_d/LA_eigen/constructors.h --- cgal-5.4.1/include/CGAL/NewKernel_d/LA_eigen/constructors.h 2022-06-03 19:04:57.000000000 +0000 +++ cgal-5.5/include/CGAL/NewKernel_d/LA_eigen/constructors.h 2022-07-13 19:05:50.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/NewKernel_d/include/CGAL/NewKernel_d/LA_eigen/constructors.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/NewKernel_d/include/CGAL/NewKernel_d/LA_eigen/constructors.h $ // $Id: constructors.h 77ae994 2021-11-03T23:20:12+01:00 Andreas Fabri // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/NewKernel_d/LA_eigen/LA.h cgal-5.5/include/CGAL/NewKernel_d/LA_eigen/LA.h --- cgal-5.4.1/include/CGAL/NewKernel_d/LA_eigen/LA.h 2022-06-03 19:04:57.000000000 +0000 +++ cgal-5.5/include/CGAL/NewKernel_d/LA_eigen/LA.h 2022-07-13 19:05:50.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/NewKernel_d/include/CGAL/NewKernel_d/LA_eigen/LA.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/NewKernel_d/include/CGAL/NewKernel_d/LA_eigen/LA.h $ // $Id: LA.h 8a52dd3 2020-05-12T11:21:06+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/NewKernel_d/Lazy_cartesian.h cgal-5.5/include/CGAL/NewKernel_d/Lazy_cartesian.h --- cgal-5.4.1/include/CGAL/NewKernel_d/Lazy_cartesian.h 2022-06-03 19:04:57.000000000 +0000 +++ cgal-5.5/include/CGAL/NewKernel_d/Lazy_cartesian.h 2022-07-13 19:05:50.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/NewKernel_d/include/CGAL/NewKernel_d/Lazy_cartesian.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/NewKernel_d/include/CGAL/NewKernel_d/Lazy_cartesian.h $ // $Id: Lazy_cartesian.h 74c029c 2021-09-09T11:44:36+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/NewKernel_d/static_int.h cgal-5.5/include/CGAL/NewKernel_d/static_int.h --- cgal-5.4.1/include/CGAL/NewKernel_d/static_int.h 2022-06-03 19:04:58.000000000 +0000 +++ cgal-5.5/include/CGAL/NewKernel_d/static_int.h 2022-07-13 19:05:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/NewKernel_d/include/CGAL/NewKernel_d/static_int.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/NewKernel_d/include/CGAL/NewKernel_d/static_int.h $ // $Id: static_int.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/NewKernel_d/store_kernel.h cgal-5.5/include/CGAL/NewKernel_d/store_kernel.h --- cgal-5.4.1/include/CGAL/NewKernel_d/store_kernel.h 2022-06-03 19:04:58.000000000 +0000 +++ cgal-5.5/include/CGAL/NewKernel_d/store_kernel.h 2022-07-13 19:05:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/NewKernel_d/include/CGAL/NewKernel_d/store_kernel.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/NewKernel_d/include/CGAL/NewKernel_d/store_kernel.h $ // $Id: store_kernel.h a03eff6 2020-04-08T16:03:18+02:00 Marc Glisse // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/NewKernel_d/Types/Aff_transformation.h cgal-5.5/include/CGAL/NewKernel_d/Types/Aff_transformation.h --- cgal-5.4.1/include/CGAL/NewKernel_d/Types/Aff_transformation.h 2022-06-03 19:04:57.000000000 +0000 +++ cgal-5.5/include/CGAL/NewKernel_d/Types/Aff_transformation.h 2022-07-13 19:05:50.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/NewKernel_d/include/CGAL/NewKernel_d/Types/Aff_transformation.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/NewKernel_d/include/CGAL/NewKernel_d/Types/Aff_transformation.h $ // $Id: Aff_transformation.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/NewKernel_d/Types/Hyperplane.h cgal-5.5/include/CGAL/NewKernel_d/Types/Hyperplane.h --- cgal-5.4.1/include/CGAL/NewKernel_d/Types/Hyperplane.h 2022-06-03 19:04:57.000000000 +0000 +++ cgal-5.5/include/CGAL/NewKernel_d/Types/Hyperplane.h 2022-07-13 19:05:50.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/NewKernel_d/include/CGAL/NewKernel_d/Types/Hyperplane.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/NewKernel_d/include/CGAL/NewKernel_d/Types/Hyperplane.h $ // $Id: Hyperplane.h 634fe39 2020-12-30T19:56:58+01:00 Marc Glisse // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/NewKernel_d/Types/Iso_box.h cgal-5.5/include/CGAL/NewKernel_d/Types/Iso_box.h --- cgal-5.4.1/include/CGAL/NewKernel_d/Types/Iso_box.h 2022-06-03 19:04:57.000000000 +0000 +++ cgal-5.5/include/CGAL/NewKernel_d/Types/Iso_box.h 2022-07-13 19:05:50.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/NewKernel_d/include/CGAL/NewKernel_d/Types/Iso_box.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/NewKernel_d/include/CGAL/NewKernel_d/Types/Iso_box.h $ // $Id: Iso_box.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/NewKernel_d/Types/Line.h cgal-5.5/include/CGAL/NewKernel_d/Types/Line.h --- cgal-5.4.1/include/CGAL/NewKernel_d/Types/Line.h 2022-06-03 19:04:57.000000000 +0000 +++ cgal-5.5/include/CGAL/NewKernel_d/Types/Line.h 2022-07-13 19:05:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/NewKernel_d/include/CGAL/NewKernel_d/Types/Line.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/NewKernel_d/include/CGAL/NewKernel_d/Types/Line.h $ // $Id: Line.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/NewKernel_d/Types/Ray.h cgal-5.5/include/CGAL/NewKernel_d/Types/Ray.h --- cgal-5.4.1/include/CGAL/NewKernel_d/Types/Ray.h 2022-06-03 19:04:57.000000000 +0000 +++ cgal-5.5/include/CGAL/NewKernel_d/Types/Ray.h 2022-07-13 19:05:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/NewKernel_d/include/CGAL/NewKernel_d/Types/Ray.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/NewKernel_d/include/CGAL/NewKernel_d/Types/Ray.h $ // $Id: Ray.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/NewKernel_d/Types/Segment.h cgal-5.5/include/CGAL/NewKernel_d/Types/Segment.h --- cgal-5.4.1/include/CGAL/NewKernel_d/Types/Segment.h 2022-06-03 19:04:57.000000000 +0000 +++ cgal-5.5/include/CGAL/NewKernel_d/Types/Segment.h 2022-07-13 19:05:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/NewKernel_d/include/CGAL/NewKernel_d/Types/Segment.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/NewKernel_d/include/CGAL/NewKernel_d/Types/Segment.h $ // $Id: Segment.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/NewKernel_d/Types/Sphere.h cgal-5.5/include/CGAL/NewKernel_d/Types/Sphere.h --- cgal-5.4.1/include/CGAL/NewKernel_d/Types/Sphere.h 2022-06-03 19:04:57.000000000 +0000 +++ cgal-5.5/include/CGAL/NewKernel_d/Types/Sphere.h 2022-07-13 19:05:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/NewKernel_d/include/CGAL/NewKernel_d/Types/Sphere.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/NewKernel_d/include/CGAL/NewKernel_d/Types/Sphere.h $ // $Id: Sphere.h 634fe39 2020-12-30T19:56:58+01:00 Marc Glisse // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/NewKernel_d/Types/Weighted_point.h cgal-5.5/include/CGAL/NewKernel_d/Types/Weighted_point.h --- cgal-5.4.1/include/CGAL/NewKernel_d/Types/Weighted_point.h 2022-06-03 19:04:58.000000000 +0000 +++ cgal-5.5/include/CGAL/NewKernel_d/Types/Weighted_point.h 2022-07-13 19:05:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/NewKernel_d/include/CGAL/NewKernel_d/Types/Weighted_point.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/NewKernel_d/include/CGAL/NewKernel_d/Types/Weighted_point.h $ // $Id: Weighted_point.h 53ed991 2020-08-27T15:39:08+02:00 Marc Glisse // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/NewKernel_d/utils.h cgal-5.5/include/CGAL/NewKernel_d/utils.h --- cgal-5.4.1/include/CGAL/NewKernel_d/utils.h 2022-06-03 19:04:58.000000000 +0000 +++ cgal-5.5/include/CGAL/NewKernel_d/utils.h 2022-07-13 19:05:52.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/NewKernel_d/include/CGAL/NewKernel_d/utils.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/NewKernel_d/include/CGAL/NewKernel_d/utils.h $ // $Id: utils.h 9c28a54 2021-03-18T09:38:30+01:00 Laurent Rineau // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/NewKernel_d/Vector/array.h cgal-5.5/include/CGAL/NewKernel_d/Vector/array.h --- cgal-5.4.1/include/CGAL/NewKernel_d/Vector/array.h 2022-06-03 19:04:58.000000000 +0000 +++ cgal-5.5/include/CGAL/NewKernel_d/Vector/array.h 2022-07-13 19:05:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/NewKernel_d/include/CGAL/NewKernel_d/Vector/array.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/NewKernel_d/include/CGAL/NewKernel_d/Vector/array.h $ // $Id: array.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/NewKernel_d/Vector/avx4.h cgal-5.5/include/CGAL/NewKernel_d/Vector/avx4.h --- cgal-5.4.1/include/CGAL/NewKernel_d/Vector/avx4.h 2022-06-03 19:04:58.000000000 +0000 +++ cgal-5.5/include/CGAL/NewKernel_d/Vector/avx4.h 2022-07-13 19:05:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/NewKernel_d/include/CGAL/NewKernel_d/Vector/avx4.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/NewKernel_d/include/CGAL/NewKernel_d/Vector/avx4.h $ // $Id: avx4.h e6c767d 2021-05-12T15:45:07+02:00 Maxime Gimeno // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/NewKernel_d/Vector/determinant_of_iterator_to_points_from_iterator_to_vectors.h cgal-5.5/include/CGAL/NewKernel_d/Vector/determinant_of_iterator_to_points_from_iterator_to_vectors.h --- cgal-5.4.1/include/CGAL/NewKernel_d/Vector/determinant_of_iterator_to_points_from_iterator_to_vectors.h 2022-06-03 19:04:58.000000000 +0000 +++ cgal-5.5/include/CGAL/NewKernel_d/Vector/determinant_of_iterator_to_points_from_iterator_to_vectors.h 2022-07-13 19:05:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/NewKernel_d/include/CGAL/NewKernel_d/Vector/determinant_of_iterator_to_points_from_iterator_to_vectors.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/NewKernel_d/include/CGAL/NewKernel_d/Vector/determinant_of_iterator_to_points_from_iterator_to_vectors.h $ // $Id: determinant_of_iterator_to_points_from_iterator_to_vectors.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/NewKernel_d/Vector/determinant_of_iterator_to_points_from_points.h cgal-5.5/include/CGAL/NewKernel_d/Vector/determinant_of_iterator_to_points_from_points.h --- cgal-5.4.1/include/CGAL/NewKernel_d/Vector/determinant_of_iterator_to_points_from_points.h 2022-06-03 19:04:58.000000000 +0000 +++ cgal-5.5/include/CGAL/NewKernel_d/Vector/determinant_of_iterator_to_points_from_points.h 2022-07-13 19:05:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/NewKernel_d/include/CGAL/NewKernel_d/Vector/determinant_of_iterator_to_points_from_points.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/NewKernel_d/include/CGAL/NewKernel_d/Vector/determinant_of_iterator_to_points_from_points.h $ // $Id: determinant_of_iterator_to_points_from_points.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/NewKernel_d/Vector/determinant_of_iterator_to_vectors_from_vectors.h cgal-5.5/include/CGAL/NewKernel_d/Vector/determinant_of_iterator_to_vectors_from_vectors.h --- cgal-5.4.1/include/CGAL/NewKernel_d/Vector/determinant_of_iterator_to_vectors_from_vectors.h 2022-06-03 19:04:58.000000000 +0000 +++ cgal-5.5/include/CGAL/NewKernel_d/Vector/determinant_of_iterator_to_vectors_from_vectors.h 2022-07-13 19:05:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/NewKernel_d/include/CGAL/NewKernel_d/Vector/determinant_of_iterator_to_vectors_from_vectors.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/NewKernel_d/include/CGAL/NewKernel_d/Vector/determinant_of_iterator_to_vectors_from_vectors.h $ // $Id: determinant_of_iterator_to_vectors_from_vectors.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/NewKernel_d/Vector/determinant_of_points_from_vectors.h cgal-5.5/include/CGAL/NewKernel_d/Vector/determinant_of_points_from_vectors.h --- cgal-5.4.1/include/CGAL/NewKernel_d/Vector/determinant_of_points_from_vectors.h 2022-06-03 19:04:58.000000000 +0000 +++ cgal-5.5/include/CGAL/NewKernel_d/Vector/determinant_of_points_from_vectors.h 2022-07-13 19:05:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/NewKernel_d/include/CGAL/NewKernel_d/Vector/determinant_of_points_from_vectors.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/NewKernel_d/include/CGAL/NewKernel_d/Vector/determinant_of_points_from_vectors.h $ // $Id: determinant_of_points_from_vectors.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/NewKernel_d/Vector/determinant_of_vectors_small_dim.h cgal-5.5/include/CGAL/NewKernel_d/Vector/determinant_of_vectors_small_dim.h --- cgal-5.4.1/include/CGAL/NewKernel_d/Vector/determinant_of_vectors_small_dim.h 2022-06-03 19:04:58.000000000 +0000 +++ cgal-5.5/include/CGAL/NewKernel_d/Vector/determinant_of_vectors_small_dim.h 2022-07-13 19:05:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/NewKernel_d/include/CGAL/NewKernel_d/Vector/determinant_of_vectors_small_dim.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/NewKernel_d/include/CGAL/NewKernel_d/Vector/determinant_of_vectors_small_dim.h $ // $Id: determinant_of_vectors_small_dim.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/NewKernel_d/Vector/determinant_of_vectors_small_dim_internal.h cgal-5.5/include/CGAL/NewKernel_d/Vector/determinant_of_vectors_small_dim_internal.h --- cgal-5.4.1/include/CGAL/NewKernel_d/Vector/determinant_of_vectors_small_dim_internal.h 2022-06-03 19:04:58.000000000 +0000 +++ cgal-5.5/include/CGAL/NewKernel_d/Vector/determinant_of_vectors_small_dim_internal.h 2022-07-13 19:05:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/NewKernel_d/include/CGAL/NewKernel_d/Vector/determinant_of_vectors_small_dim_internal.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/NewKernel_d/include/CGAL/NewKernel_d/Vector/determinant_of_vectors_small_dim_internal.h $ // $Id: determinant_of_vectors_small_dim_internal.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/NewKernel_d/Vector/mix.h cgal-5.5/include/CGAL/NewKernel_d/Vector/mix.h --- cgal-5.4.1/include/CGAL/NewKernel_d/Vector/mix.h 2022-06-03 19:04:58.000000000 +0000 +++ cgal-5.5/include/CGAL/NewKernel_d/Vector/mix.h 2022-07-13 19:05:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/NewKernel_d/include/CGAL/NewKernel_d/Vector/mix.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/NewKernel_d/include/CGAL/NewKernel_d/Vector/mix.h $ // $Id: mix.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/NewKernel_d/Vector/sse2.h cgal-5.5/include/CGAL/NewKernel_d/Vector/sse2.h --- cgal-5.4.1/include/CGAL/NewKernel_d/Vector/sse2.h 2022-06-03 19:04:58.000000000 +0000 +++ cgal-5.5/include/CGAL/NewKernel_d/Vector/sse2.h 2022-07-13 19:05:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/NewKernel_d/include/CGAL/NewKernel_d/Vector/sse2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/NewKernel_d/include/CGAL/NewKernel_d/Vector/sse2.h $ // $Id: sse2.h e6c767d 2021-05-12T15:45:07+02:00 Maxime Gimeno // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/NewKernel_d/Vector/v2int.h cgal-5.5/include/CGAL/NewKernel_d/Vector/v2int.h --- cgal-5.4.1/include/CGAL/NewKernel_d/Vector/v2int.h 2022-06-03 19:04:58.000000000 +0000 +++ cgal-5.5/include/CGAL/NewKernel_d/Vector/v2int.h 2022-07-13 19:05:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/NewKernel_d/include/CGAL/NewKernel_d/Vector/v2int.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/NewKernel_d/include/CGAL/NewKernel_d/Vector/v2int.h $ // $Id: v2int.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/NewKernel_d/Vector/vector.h cgal-5.5/include/CGAL/NewKernel_d/Vector/vector.h --- cgal-5.4.1/include/CGAL/NewKernel_d/Vector/vector.h 2022-06-03 19:04:58.000000000 +0000 +++ cgal-5.5/include/CGAL/NewKernel_d/Vector/vector.h 2022-07-13 19:05:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/NewKernel_d/include/CGAL/NewKernel_d/Vector/vector.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/NewKernel_d/include/CGAL/NewKernel_d/Vector/vector.h $ // $Id: vector.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/NewKernel_d/Wrapper/Cartesian_wrap.h cgal-5.5/include/CGAL/NewKernel_d/Wrapper/Cartesian_wrap.h --- cgal-5.4.1/include/CGAL/NewKernel_d/Wrapper/Cartesian_wrap.h 2022-06-03 19:04:58.000000000 +0000 +++ cgal-5.5/include/CGAL/NewKernel_d/Wrapper/Cartesian_wrap.h 2022-07-13 19:05:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/NewKernel_d/include/CGAL/NewKernel_d/Wrapper/Cartesian_wrap.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/NewKernel_d/include/CGAL/NewKernel_d/Wrapper/Cartesian_wrap.h $ // $Id: Cartesian_wrap.h 31a0557 2021-08-13T16:45:28+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/NewKernel_d/Wrapper/Hyperplane_d.h cgal-5.5/include/CGAL/NewKernel_d/Wrapper/Hyperplane_d.h --- cgal-5.4.1/include/CGAL/NewKernel_d/Wrapper/Hyperplane_d.h 2022-06-03 19:04:58.000000000 +0000 +++ cgal-5.5/include/CGAL/NewKernel_d/Wrapper/Hyperplane_d.h 2022-07-13 19:05:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/NewKernel_d/include/CGAL/NewKernel_d/Wrapper/Hyperplane_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/NewKernel_d/include/CGAL/NewKernel_d/Wrapper/Hyperplane_d.h $ // $Id: Hyperplane_d.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/NewKernel_d/Wrapper/Point_d.h cgal-5.5/include/CGAL/NewKernel_d/Wrapper/Point_d.h --- cgal-5.4.1/include/CGAL/NewKernel_d/Wrapper/Point_d.h 2022-06-03 19:04:58.000000000 +0000 +++ cgal-5.5/include/CGAL/NewKernel_d/Wrapper/Point_d.h 2022-07-13 19:05:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/NewKernel_d/include/CGAL/NewKernel_d/Wrapper/Point_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/NewKernel_d/include/CGAL/NewKernel_d/Wrapper/Point_d.h $ // $Id: Point_d.h cca0a19 2022-04-12T16:14:39+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/NewKernel_d/Wrapper/Ref_count_obj.h cgal-5.5/include/CGAL/NewKernel_d/Wrapper/Ref_count_obj.h --- cgal-5.4.1/include/CGAL/NewKernel_d/Wrapper/Ref_count_obj.h 2022-06-03 19:04:58.000000000 +0000 +++ cgal-5.5/include/CGAL/NewKernel_d/Wrapper/Ref_count_obj.h 2022-07-13 19:05:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/NewKernel_d/include/CGAL/NewKernel_d/Wrapper/Ref_count_obj.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/NewKernel_d/include/CGAL/NewKernel_d/Wrapper/Ref_count_obj.h $ // $Id: Ref_count_obj.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/NewKernel_d/Wrapper/Segment_d.h cgal-5.5/include/CGAL/NewKernel_d/Wrapper/Segment_d.h --- cgal-5.4.1/include/CGAL/NewKernel_d/Wrapper/Segment_d.h 2022-06-03 19:04:58.000000000 +0000 +++ cgal-5.5/include/CGAL/NewKernel_d/Wrapper/Segment_d.h 2022-07-13 19:05:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/NewKernel_d/include/CGAL/NewKernel_d/Wrapper/Segment_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/NewKernel_d/include/CGAL/NewKernel_d/Wrapper/Segment_d.h $ // $Id: Segment_d.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/NewKernel_d/Wrapper/Sphere_d.h cgal-5.5/include/CGAL/NewKernel_d/Wrapper/Sphere_d.h --- cgal-5.4.1/include/CGAL/NewKernel_d/Wrapper/Sphere_d.h 2022-06-03 19:04:58.000000000 +0000 +++ cgal-5.5/include/CGAL/NewKernel_d/Wrapper/Sphere_d.h 2022-07-13 19:05:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/NewKernel_d/include/CGAL/NewKernel_d/Wrapper/Sphere_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/NewKernel_d/include/CGAL/NewKernel_d/Wrapper/Sphere_d.h $ // $Id: Sphere_d.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/NewKernel_d/Wrapper/Vector_d.h cgal-5.5/include/CGAL/NewKernel_d/Wrapper/Vector_d.h --- cgal-5.4.1/include/CGAL/NewKernel_d/Wrapper/Vector_d.h 2022-06-03 19:04:58.000000000 +0000 +++ cgal-5.5/include/CGAL/NewKernel_d/Wrapper/Vector_d.h 2022-07-13 19:05:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/NewKernel_d/include/CGAL/NewKernel_d/Wrapper/Vector_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/NewKernel_d/include/CGAL/NewKernel_d/Wrapper/Vector_d.h $ // $Id: Vector_d.h 4e519a3 2021-05-05T13:15:37+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/NewKernel_d/Wrapper/Weighted_point_d.h cgal-5.5/include/CGAL/NewKernel_d/Wrapper/Weighted_point_d.h --- cgal-5.4.1/include/CGAL/NewKernel_d/Wrapper/Weighted_point_d.h 2022-06-03 19:04:58.000000000 +0000 +++ cgal-5.5/include/CGAL/NewKernel_d/Wrapper/Weighted_point_d.h 2022-07-13 19:05:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/NewKernel_d/include/CGAL/NewKernel_d/Wrapper/Weighted_point_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/NewKernel_d/include/CGAL/NewKernel_d/Wrapper/Weighted_point_d.h $ // $Id: Weighted_point_d.h 4e519a3 2021-05-05T13:15:37+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/No_intersection_surface_sweep_2.h cgal-5.5/include/CGAL/No_intersection_surface_sweep_2.h --- cgal-5.4.1/include/CGAL/No_intersection_surface_sweep_2.h 2022-06-03 19:06:01.000000000 +0000 +++ cgal-5.5/include/CGAL/No_intersection_surface_sweep_2.h 2022-07-13 19:06:58.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_sweep_2/include/CGAL/No_intersection_surface_sweep_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_sweep_2/include/CGAL/No_intersection_surface_sweep_2.h $ // $Id: No_intersection_surface_sweep_2.h 6b64dc8 2020-11-11T09:38:55+02:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/normal_vector_newell_3.h cgal-5.5/include/CGAL/normal_vector_newell_3.h --- cgal-5.4.1/include/CGAL/normal_vector_newell_3.h 2022-06-03 19:04:56.000000000 +0000 +++ cgal-5.5/include/CGAL/normal_vector_newell_3.h 2022-07-13 19:05:49.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_3/include/CGAL/normal_vector_newell_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_3/include/CGAL/normal_vector_newell_3.h $ // $Id: normal_vector_newell_3.h 5345986 2021-02-10T11:13:14+00:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/N_step_adaptor_derived.h cgal-5.5/include/CGAL/N_step_adaptor_derived.h --- cgal-5.4.1/include/CGAL/N_step_adaptor_derived.h 2022-06-03 19:05:32.000000000 +0000 +++ cgal-5.5/include/CGAL/N_step_adaptor_derived.h 2022-07-13 19:06:28.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/N_step_adaptor_derived.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/N_step_adaptor_derived.h $ // $Id: N_step_adaptor_derived.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/N_step_adaptor.h cgal-5.5/include/CGAL/N_step_adaptor.h --- cgal-5.4.1/include/CGAL/N_step_adaptor.h 2022-06-03 19:05:32.000000000 +0000 +++ cgal-5.5/include/CGAL/N_step_adaptor.h 2022-07-13 19:06:28.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/N_step_adaptor.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/N_step_adaptor.h $ // $Id: N_step_adaptor.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/NT_converter.h cgal-5.5/include/CGAL/NT_converter.h --- cgal-5.4.1/include/CGAL/NT_converter.h 2022-06-03 19:05:00.000000000 +0000 +++ cgal-5.5/include/CGAL/NT_converter.h 2022-07-13 19:05:54.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/NT_converter.h $ -// $Id: NT_converter.h 848aa7d 2021-02-08T10:16:59+01:00 Simon Giraudot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/NT_converter.h $ +// $Id: NT_converter.h cd92000 2022-01-10T15:40:04+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // @@ -13,16 +13,20 @@ #ifndef CGAL_NT_CONVERTER_H #define CGAL_NT_CONVERTER_H -#include #include #include -template class Interval_nt; +#include namespace CGAL { -// A number type converter usable as default, using the conversion operator. +template +class Interval_nt; + +template +class Quotient; +// A number type converter usable as default, using the conversion operator. template < class NT1, class NT2 > struct NT_converter : public CGAL::cpp98::unary_function< NT1, NT2 > @@ -38,6 +42,7 @@ // - double to call to_double(). // - Interval_nt<> to call to_interval(). // - NT1 == NT2 to return a reference instead of copying. +// - Quotient conversions template < class NT1 > struct NT_converter < NT1, NT1 > @@ -116,6 +121,29 @@ } }; +template < class NT > +struct NT_converter < Quotient, Quotient > + : public CGAL::cpp98::unary_function< Quotient, Quotient > +{ + const Quotient& + operator()(const Quotient & q) const + { + return q; + } +}; + +template < class NT1, class NT2 > +struct NT_converter < Quotient, Quotient > + : public CGAL::cpp98::unary_function< Quotient, Quotient > +{ + Quotient + operator()(const Quotient & q) const + { + NT_converter < NT1, NT2 > nt; + return Quotient(nt(q.numerator()), nt(q.denominator())); + } +}; + } //namespace CGAL #endif // CGAL_NT_CONVERTER_H diff -Nru cgal-5.4.1/include/CGAL/Null_matrix.h cgal-5.5/include/CGAL/Null_matrix.h --- cgal-5.4.1/include/CGAL/Null_matrix.h 2022-06-03 19:05:56.000000000 +0000 +++ cgal-5.5/include/CGAL/Null_matrix.h 2022-07-13 19:06:53.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_simplification/include/CGAL/Null_matrix.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_simplification/include/CGAL/Null_matrix.h $ // $Id: Null_matrix.h ff09c5d 2019-10-25T16:35:53+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/number_type_basic.h cgal-5.5/include/CGAL/number_type_basic.h --- cgal-5.4.1/include/CGAL/number_type_basic.h 2022-06-03 19:05:02.000000000 +0000 +++ cgal-5.5/include/CGAL/number_type_basic.h 2022-07-13 19:05:55.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/number_type_basic.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/number_type_basic.h $ // $Id: number_type_basic.h a88a84b 2021-08-13T15:46:50+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Number_type_checker.h cgal-5.5/include/CGAL/Number_type_checker.h --- cgal-5.4.1/include/CGAL/Number_type_checker.h 2022-06-03 19:05:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Number_type_checker.h 2022-07-13 19:05:54.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/Number_type_checker.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/Number_type_checker.h $ // $Id: Number_type_checker.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/number_type_config.h cgal-5.5/include/CGAL/number_type_config.h --- cgal-5.4.1/include/CGAL/number_type_config.h 2022-06-03 19:05:02.000000000 +0000 +++ cgal-5.5/include/CGAL/number_type_config.h 2022-07-13 19:05:55.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/number_type_config.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/number_type_config.h $ // $Id: number_type_config.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Number_types/internal/Exact_type_selector.h cgal-5.5/include/CGAL/Number_types/internal/Exact_type_selector.h --- cgal-5.4.1/include/CGAL/Number_types/internal/Exact_type_selector.h 2022-06-03 19:05:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Number_types/internal/Exact_type_selector.h 2022-07-13 19:05:54.000000000 +0000 @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/Number_types/internal/Exact_type_selector.h $ -// $Id: Exact_type_selector.h 521c72d 2021-10-04T13:22:00+02:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/Number_types/internal/Exact_type_selector.h $ +// $Id: Exact_type_selector.h 4bd7049 2022-05-03T12:14:50+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // @@ -40,7 +40,7 @@ # include #endif #ifdef CGAL_USE_CORE -// # include +// # include namespace CORE { class Expr; } @@ -54,23 +54,39 @@ // It should support the built-in types. template < typename > struct Exact_field_selector + +#if ( (defined(CGAL_TEST_SUITE) && CGAL_VERSION_NR == 1050500900) || defined(CGAL_FORCE_USE_BOOST_MP))\ + && BOOST_VERSION > 107800 && defined(CGAL_USE_BOOST_MP) +// use boost-mp by default in the testsuite until 5.5-beta is out +// Boost +{ typedef BOOST_cpp_arithmetic_kernel::Rational Type; }; +#else // BOOST_VERSION > 107800 #ifdef CGAL_USE_GMPXX { typedef mpq_class Type; }; #elif defined(CGAL_USE_GMP) -# if defined(CGAL_USE_BOOST_MP) -{ typedef boost::multiprecision::mpq_rational Type; }; -# else +#if defined(CGAL_USE_BOOST_MP) +{ typedef BOOST_gmp_arithmetic_kernel::Rational Type; }; +#else { typedef Gmpq Type; }; -# endif +#endif #elif defined(CGAL_USE_LEDA) { typedef leda_rational Type; }; -#elif 0 && defined(CGAL_USE_BOOST_MP) +#elif defined(CGAL_USE_BOOST_MP) // See the discussion in https://github.com/CGAL/cgal/pull/3614 // This is disabled for now because cpp_rational is even slower than Quotient. Quotient will be a good candidate after some polishing. +// In fact, the new version of cpp_rational from here: https://github.com/boostorg/multiprecision/pull/366 +// is much better than Quotient because it is using smart gcd and is well-supported +// while Quotient does not. Though, we can still use it if needed. +#if BOOST_VERSION <= 107800 +// See this comment: https://github.com/CGAL/cgal/pull/5937#discussion_r721533675 +{ typedef Quotient Type; }; +#else { typedef BOOST_cpp_arithmetic_kernel::Rational Type; }; +#endif #else { typedef Quotient Type; }; #endif +#endif // BOOST_VERSION > 107800 // By default, a field is a safe choice of ring. template < typename T > diff -Nru cgal-5.4.1/include/CGAL/Number_types/internal_functions_comparison_root_of_2.h cgal-5.5/include/CGAL/Number_types/internal_functions_comparison_root_of_2.h --- cgal-5.4.1/include/CGAL/Number_types/internal_functions_comparison_root_of_2.h 2022-06-03 19:05:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Number_types/internal_functions_comparison_root_of_2.h 2022-07-13 19:05:54.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/Number_types/internal_functions_comparison_root_of_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/Number_types/internal_functions_comparison_root_of_2.h $ // $Id: internal_functions_comparison_root_of_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/number_utils_classes.h cgal-5.5/include/CGAL/number_utils_classes.h --- cgal-5.4.1/include/CGAL/number_utils_classes.h 2022-06-03 19:03:30.000000000 +0000 +++ cgal-5.5/include/CGAL/number_utils_classes.h 2022-07-13 19:04:13.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_foundations/include/CGAL/number_utils_classes.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_foundations/include/CGAL/number_utils_classes.h $ // $Id: number_utils_classes.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/number_utils.h cgal-5.5/include/CGAL/number_utils.h --- cgal-5.4.1/include/CGAL/number_utils.h 2022-06-03 19:03:30.000000000 +0000 +++ cgal-5.5/include/CGAL/number_utils.h 2022-07-13 19:04:13.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_foundations/include/CGAL/number_utils.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_foundations/include/CGAL/number_utils.h $ // $Id: number_utils.h e222e77 2021-05-18T18:16:44+02:00 Laurent Rineau // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Object.h cgal-5.5/include/CGAL/Object.h --- cgal-5.4.1/include/CGAL/Object.h 2022-06-03 19:05:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Object.h 2022-07-13 19:06:28.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/Object.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/Object.h $ // $Id: Object.h b575892 2021-06-08T18:21:46+01:00 Giles Bathgate // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Octree.h cgal-5.5/include/CGAL/Octree.h --- cgal-5.4.1/include/CGAL/Octree.h 2022-06-03 19:05:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Octree.h 2022-07-13 19:05:58.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Orthtree/include/CGAL/Octree.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Orthtree/include/CGAL/Octree.h $ // $Id: Octree.h 4d761ed 2021-04-01T14:21:01+02:00 Simon Giraudot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/odt_optimize_mesh_3.h cgal-5.5/include/CGAL/odt_optimize_mesh_3.h --- cgal-5.4.1/include/CGAL/odt_optimize_mesh_3.h 2022-06-03 19:04:49.000000000 +0000 +++ cgal-5.5/include/CGAL/odt_optimize_mesh_3.h 2022-07-13 19:05:41.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/odt_optimize_mesh_3.h $ -// $Id: odt_optimize_mesh_3.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/odt_optimize_mesh_3.h $ +// $Id: odt_optimize_mesh_3.h 1c3e09f 2022-01-10T15:32:38+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -51,9 +51,9 @@ (optional (time_limit_, *, 0 ) (max_iteration_number_, *, 0 ) - (convergence_, *, parameters::default_values::odt_convergence_ratio ) - (freeze_bound_, *, parameters::default_values::odt_freeze_ratio ) - (do_freeze_, *, parameters::default_values::do_freeze )) + (convergence_, *, parameters::default_values_for_mesh_3::odt_convergence_ratio ) + (freeze_bound_, *, parameters::default_values_for_mesh_3::odt_freeze_ratio ) + (do_freeze_, *, parameters::default_values_for_mesh_3::do_freeze )) ) { return odt_optimize_mesh_3_impl(c3t3, domain, diff -Nru cgal-5.4.1/include/CGAL/offset_polygon_2.h cgal-5.5/include/CGAL/offset_polygon_2.h --- cgal-5.4.1/include/CGAL/offset_polygon_2.h 2022-06-03 19:04:52.000000000 +0000 +++ cgal-5.5/include/CGAL/offset_polygon_2.h 2022-07-13 19:05:45.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Minkowski_sum_2/include/CGAL/offset_polygon_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Minkowski_sum_2/include/CGAL/offset_polygon_2.h $ // $Id: offset_polygon_2.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/OFF_to_nef_3.h cgal-5.5/include/CGAL/OFF_to_nef_3.h --- cgal-5.4.1/include/CGAL/OFF_to_nef_3.h 2022-06-03 19:04:56.000000000 +0000 +++ cgal-5.5/include/CGAL/OFF_to_nef_3.h 2022-07-13 19:05:49.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_3/include/CGAL/OFF_to_nef_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_3/include/CGAL/OFF_to_nef_3.h $ // $Id: OFF_to_nef_3.h 6d6dc0c 2020-06-24T17:41:20+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/OpenGR/compute_registration_transformation.h cgal-5.5/include/CGAL/OpenGR/compute_registration_transformation.h --- cgal-5.4.1/include/CGAL/OpenGR/compute_registration_transformation.h 2022-06-03 19:05:12.000000000 +0000 +++ cgal-5.5/include/CGAL/OpenGR/compute_registration_transformation.h 2022-07-13 19:06:06.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Point_set_processing_3/include/CGAL/OpenGR/compute_registration_transformation.h $ -// $Id: compute_registration_transformation.h c253679 2020-04-18T16:27:58+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Point_set_processing_3/include/CGAL/OpenGR/compute_registration_transformation.h $ +// $Id: compute_registration_transformation.h 75b03e6 2022-01-10T15:33:04+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Sebastien Loriot, Necip Fazil Yildiran @@ -18,7 +18,7 @@ #include #include -#include +#include #include #include @@ -287,40 +287,43 @@ registration score. */ template + class NamedParameters1 = parameters::Default_named_parameters, + class NamedParameters2 = parameters::Default_named_parameters> #ifdef DOXYGEN_RUNNING std::pair #else -std::pair - ::Kernel::Aff_transformation_3, double> +std::pair + ::Geom_traits::Aff_transformation_3, double> #endif compute_registration_transformation (const PointRange1& point_set_1, const PointRange2& point_set_2, - const NamedParameters1& np1, const NamedParameters2& np2) + const NamedParameters1& np1 = parameters::default_values(), + const NamedParameters2& np2 = parameters::default_values()) { - namespace PSP = CGAL::Point_set_processing_3; namespace GR = gr; using parameters::choose_parameter; using parameters::get_parameter; // property map types - typedef typename CGAL::GetPointMap::type PointMap1; - typedef typename CGAL::GetPointMap::type PointMap2; + typedef Point_set_processing_3_np_helper NP_helper1; + typedef Point_set_processing_3_np_helper NP_helper2; + typedef typename NP_helper1::Const_point_map PointMap1; + typedef typename NP_helper2::Const_point_map PointMap2; CGAL_static_assertion_msg((boost::is_same< typename boost::property_traits::value_type, typename boost::property_traits::value_type> ::value), "The point type of input ranges must be the same"); - typedef typename PSP::GetNormalMap::type NormalMap1; - typedef typename PSP::GetNormalMap::type NormalMap2; + typedef typename NP_helper1::Normal_map NormalMap1; + typedef typename NP_helper2::Normal_map NormalMap2; CGAL_static_assertion_msg((boost::is_same< typename boost::property_traits::value_type, typename boost::property_traits::value_type> ::value), "The vector type of input ranges must be the same"); - typedef typename PSP::GetK::Kernel Kernel; + typedef typename NP_helper1::Geom_traits Kernel; - PointMap1 point_map1 = choose_parameter(get_parameter(np1, internal_np::point_map), PointMap1()); - NormalMap1 normal_map1 = choose_parameter(get_parameter(np1, internal_np::normal_map), NormalMap1()); - PointMap2 point_map2 = choose_parameter(get_parameter(np2, internal_np::point_map), PointMap2()); - NormalMap2 normal_map2 = choose_parameter(get_parameter(np2, internal_np::normal_map), NormalMap2()); + PointMap1 point_map1 = NP_helper1::get_const_point_map(point_set_1, np1); + NormalMap1 normal_map1 = NP_helper2::get_normal_map(point_set_1, np1); + PointMap2 point_map2 = NP_helper2::get_const_point_map(point_set_2, np2); + NormalMap2 normal_map2 = NP_helper2::get_normal_map(point_set_2, np2); Options options; options.sample_size = choose_parameter(get_parameter(np1, internal_np::number_of_samples), 200); @@ -339,30 +342,6 @@ } -// convenience overloads -template -std::pair - ::Kernel::Aff_transformation_3, double> -compute_registration_transformation(const PointRange1& point_set_1, PointRange2& point_set_2, - const NamedParameters1& np1) -{ - namespace params = CGAL::Point_set_processing_3::parameters; - return compute_registration_transformation(point_set_1, point_set_2, np1, params::all_default(point_set_1)); -} - -template -std::pair > - ::Kernel::Aff_transformation_3, double> -compute_registration_transformation(const PointRange1& point_set_1, PointRange2& point_set_2) -{ - namespace params = CGAL::Point_set_processing_3::parameters; - return compute_registration_transformation(point_set_1, point_set_2, - params::all_default(point_set_1), - params::all_default(point_set_2)); -} - } } // end of namespace CGAL::OpenGR #endif // CGAL_LINKED_WITH_OPENGR diff -Nru cgal-5.4.1/include/CGAL/OpenGR/register_point_sets.h cgal-5.5/include/CGAL/OpenGR/register_point_sets.h --- cgal-5.4.1/include/CGAL/OpenGR/register_point_sets.h 2022-06-03 19:05:12.000000000 +0000 +++ cgal-5.5/include/CGAL/OpenGR/register_point_sets.h 2022-07-13 19:06:06.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Point_set_processing_3/include/CGAL/OpenGR/register_point_sets.h $ -// $Id: register_point_sets.h c253679 2020-04-18T16:27:58+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Point_set_processing_3/include/CGAL/OpenGR/register_point_sets.h $ +// $Id: register_point_sets.h 75b03e6 2022-01-10T15:33:04+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Sebastien Loriot, Necip Fazil Yildiran @@ -18,7 +18,7 @@ #include #include -#include +#include #include #include @@ -206,35 +206,38 @@ \return the registration score. */ template + class NamedParameters1 = parameters::Default_named_parameters, + class NamedParameters2 = parameters::Default_named_parameters> double register_point_sets (const PointRange1& point_set_1, PointRange2& point_set_2, - const NamedParameters1& np1, const NamedParameters2& np2) + const NamedParameters1& np1 = parameters::default_values(), + const NamedParameters2& np2 = parameters::default_values()) { - namespace PSP = CGAL::Point_set_processing_3; namespace GR = gr; using parameters::choose_parameter; using parameters::get_parameter; // property map types - typedef typename CGAL::GetPointMap::type PointMap1; - typedef typename CGAL::GetPointMap::type PointMap2; + typedef Point_set_processing_3_np_helper NP_helper1; + typedef Point_set_processing_3_np_helper NP_helper2; + typedef typename NP_helper1::Const_point_map PointMap1; + typedef typename NP_helper2::Const_point_map PointMap2; CGAL_static_assertion_msg((boost::is_same< typename boost::property_traits::value_type, typename boost::property_traits::value_type> ::value), "The point type of input ranges must be the same"); - typedef typename PSP::GetNormalMap::type NormalMap1; - typedef typename PSP::GetNormalMap::type NormalMap2; + typedef typename NP_helper1::Normal_map NormalMap1; + typedef typename NP_helper2::Normal_map NormalMap2; CGAL_static_assertion_msg((boost::is_same< typename boost::property_traits::value_type, typename boost::property_traits::value_type> ::value), "The vector type of input ranges must be the same"); - typedef typename PSP::GetK::Kernel Kernel; + typedef typename NP_helper1::Geom_traits Kernel; - PointMap1 point_map1 = choose_parameter(get_parameter(np1, internal_np::point_map), PointMap1()); - NormalMap1 normal_map1 = choose_parameter(get_parameter(np1, internal_np::normal_map), NormalMap1()); - PointMap1 point_map2 = choose_parameter(get_parameter(np2, internal_np::point_map), PointMap2()); - NormalMap2 normal_map2 = choose_parameter(get_parameter(np2, internal_np::normal_map), NormalMap2()); + PointMap1 point_map1 = NP_helper1::get_const_point_map(point_set_1, np1); + NormalMap1 normal_map1 = NP_helper1::get_normal_map(point_set_1, np1); + PointMap2 point_map2 = NP_helper2::get_const_point_map(point_set_2, np2); + NormalMap2 normal_map2 = NP_helper2::get_normal_map(point_set_2, np2); Options options; options.sample_size = choose_parameter(get_parameter(np1, internal_np::number_of_samples), 200); @@ -252,27 +255,6 @@ options); } -// convenience overloads -template -double -register_point_sets(const PointRange1& point_set_1, PointRange2& point_set_2, - const NamedParameters1& np1) -{ - namespace params = CGAL::Point_set_processing_3::parameters; - return register_point_sets(point_set_1, point_set_2, np1, params::all_default(point_set_1)); -} - -template -double -register_point_sets(const PointRange1& point_set_1, PointRange2& point_set_2) -{ - namespace params = CGAL::Point_set_processing_3::parameters; - return register_point_sets(point_set_1, point_set_2, - params::all_default(point_set_1), - params::all_default(point_set_2)); -} - } } // end of namespace CGAL::OpenGR #endif // CGAL_LINKED_WITH_OPENGR diff -Nru cgal-5.4.1/include/CGAL/OpenNL/bicgstab.h cgal-5.5/include/CGAL/OpenNL/bicgstab.h --- cgal-5.4.1/include/CGAL/OpenNL/bicgstab.h 2022-06-03 19:05:02.000000000 +0000 +++ cgal-5.5/include/CGAL/OpenNL/bicgstab.h 2022-07-13 19:05:56.000000000 +0000 @@ -23,7 +23,7 @@ * - added comments and traces * - copied BICGSTAB algorithm WITH preconditioner from Graphite 1.9 code * - * $URL: https://github.com/CGAL/cgal/blob/v5.4.1/OpenNL/include/CGAL/OpenNL/bicgstab.h $ + * $URL: https://github.com/CGAL/cgal/blob/v5.5/OpenNL/include/CGAL/OpenNL/bicgstab.h $ * $Id: bicgstab.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot * SPDX-License-Identifier: LGPL-3.0-or-later */ diff -Nru cgal-5.4.1/include/CGAL/OpenNL/blas.h cgal-5.5/include/CGAL/OpenNL/blas.h --- cgal-5.4.1/include/CGAL/OpenNL/blas.h 2022-06-03 19:05:02.000000000 +0000 +++ cgal-5.5/include/CGAL/OpenNL/blas.h 2022-07-13 19:05:56.000000000 +0000 @@ -21,7 +21,7 @@ * Andreas Meyer 2007 changes for CGAL: * - replaced assert with CGAL_assertion/CGAL_error etc. * - * $URL: https://github.com/CGAL/cgal/blob/v5.4.1/OpenNL/include/CGAL/OpenNL/blas.h $ + * $URL: https://github.com/CGAL/cgal/blob/v5.5/OpenNL/include/CGAL/OpenNL/blas.h $ * $Id: blas.h fcd0529 2019-10-20T00:47:56+02:00 Sébastien Loriot * SPDX-License-Identifier: LGPL-3.0-or-later */ diff -Nru cgal-5.4.1/include/CGAL/OpenNL/conjugate_gradient.h cgal-5.5/include/CGAL/OpenNL/conjugate_gradient.h --- cgal-5.4.1/include/CGAL/OpenNL/conjugate_gradient.h 2022-06-03 19:05:02.000000000 +0000 +++ cgal-5.5/include/CGAL/OpenNL/conjugate_gradient.h 2022-07-13 19:05:56.000000000 +0000 @@ -23,7 +23,7 @@ * - added comments * - copied Conjugate Gradient algorithm WITH preconditioner from Graphite 1.9 code * - * $URL: https://github.com/CGAL/cgal/blob/v5.4.1/OpenNL/include/CGAL/OpenNL/conjugate_gradient.h $ + * $URL: https://github.com/CGAL/cgal/blob/v5.5/OpenNL/include/CGAL/OpenNL/conjugate_gradient.h $ * $Id: conjugate_gradient.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot * SPDX-License-Identifier: LGPL-3.0-or-later */ diff -Nru cgal-5.4.1/include/CGAL/OpenNL/full_vector.h cgal-5.5/include/CGAL/OpenNL/full_vector.h --- cgal-5.4.1/include/CGAL/OpenNL/full_vector.h 2022-06-03 19:05:02.000000000 +0000 +++ cgal-5.5/include/CGAL/OpenNL/full_vector.h 2022-07-13 19:05:56.000000000 +0000 @@ -21,7 +21,7 @@ * - FullVector is now a model of the SparseLinearAlgebraTraits_d::Vector concept * - Coefficients are initialized with zeros * - * $URL: https://github.com/CGAL/cgal/blob/v5.4.1/OpenNL/include/CGAL/OpenNL/full_vector.h $ + * $URL: https://github.com/CGAL/cgal/blob/v5.5/OpenNL/include/CGAL/OpenNL/full_vector.h $ * $Id: full_vector.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot * SPDX-License-Identifier: LGPL-3.0-or-later */ diff -Nru cgal-5.4.1/include/CGAL/OpenNL/linear_solver.h cgal-5.5/include/CGAL/OpenNL/linear_solver.h --- cgal-5.4.1/include/CGAL/OpenNL/linear_solver.h 2022-06-03 19:05:03.000000000 +0000 +++ cgal-5.5/include/CGAL/OpenNL/linear_solver.h 2022-07-13 19:05:56.000000000 +0000 @@ -22,7 +22,7 @@ * - Added SymmetricLinearSolverTraits * - copied Jacobi preconditioner from Graphite 1.9 code * - * $URL: https://github.com/CGAL/cgal/blob/v5.4.1/OpenNL/include/CGAL/OpenNL/linear_solver.h $ + * $URL: https://github.com/CGAL/cgal/blob/v5.5/OpenNL/include/CGAL/OpenNL/linear_solver.h $ * $Id: linear_solver.h fcd0529 2019-10-20T00:47:56+02:00 Sébastien Loriot * SPDX-License-Identifier: LGPL-3.0-or-later */ diff -Nru cgal-5.4.1/include/CGAL/OpenNL/preconditioner.h cgal-5.5/include/CGAL/OpenNL/preconditioner.h --- cgal-5.4.1/include/CGAL/OpenNL/preconditioner.h 2022-06-03 19:05:03.000000000 +0000 +++ cgal-5.5/include/CGAL/OpenNL/preconditioner.h 2022-07-13 19:05:56.000000000 +0000 @@ -20,7 +20,7 @@ * - copied Jacobi preconditioner from Graphite 1.9 code * - Added OpenNL namespace * - * $URL: https://github.com/CGAL/cgal/blob/v5.4.1/OpenNL/include/CGAL/OpenNL/preconditioner.h $ + * $URL: https://github.com/CGAL/cgal/blob/v5.5/OpenNL/include/CGAL/OpenNL/preconditioner.h $ * $Id: preconditioner.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot * SPDX-License-Identifier: LGPL-3.0-or-later */ diff -Nru cgal-5.4.1/include/CGAL/OpenNL/sparse_matrix.h cgal-5.5/include/CGAL/OpenNL/sparse_matrix.h --- cgal-5.4.1/include/CGAL/OpenNL/sparse_matrix.h 2022-06-03 19:05:03.000000000 +0000 +++ cgal-5.5/include/CGAL/OpenNL/sparse_matrix.h 2022-07-13 19:05:56.000000000 +0000 @@ -20,7 +20,7 @@ * - Added OpenNL namespace * - SparseMatrix is now a model of the SparseLinearAlgebraTraits_d::Matrix concept * - * $URL: https://github.com/CGAL/cgal/blob/v5.4.1/OpenNL/include/CGAL/OpenNL/sparse_matrix.h $ + * $URL: https://github.com/CGAL/cgal/blob/v5.5/OpenNL/include/CGAL/OpenNL/sparse_matrix.h $ * $Id: sparse_matrix.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot * SPDX-License-Identifier: LGPL-3.0-or-later */ diff -Nru cgal-5.4.1/include/CGAL/Optimal_bounding_box/internal/evolution.h cgal-5.5/include/CGAL/Optimal_bounding_box/internal/evolution.h --- cgal-5.4.1/include/CGAL/Optimal_bounding_box/internal/evolution.h 2022-06-03 19:05:03.000000000 +0000 +++ cgal-5.5/include/CGAL/Optimal_bounding_box/internal/evolution.h 2022-07-13 19:05:56.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Optimal_bounding_box/include/CGAL/Optimal_bounding_box/internal/evolution.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Optimal_bounding_box/include/CGAL/Optimal_bounding_box/internal/evolution.h $ // $Id: evolution.h 6fe47ed 2020-05-06T12:10:48+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Optimal_bounding_box/internal/fitness_function.h cgal-5.5/include/CGAL/Optimal_bounding_box/internal/fitness_function.h --- cgal-5.4.1/include/CGAL/Optimal_bounding_box/internal/fitness_function.h 2022-06-03 19:05:03.000000000 +0000 +++ cgal-5.5/include/CGAL/Optimal_bounding_box/internal/fitness_function.h 2022-07-13 19:05:56.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Optimal_bounding_box/include/CGAL/Optimal_bounding_box/internal/fitness_function.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Optimal_bounding_box/include/CGAL/Optimal_bounding_box/internal/fitness_function.h $ // $Id: fitness_function.h e9d41d7 2020-04-21T10:03:00+02:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Optimal_bounding_box/internal/helper.h cgal-5.5/include/CGAL/Optimal_bounding_box/internal/helper.h --- cgal-5.4.1/include/CGAL/Optimal_bounding_box/internal/helper.h 2022-06-03 19:05:03.000000000 +0000 +++ cgal-5.5/include/CGAL/Optimal_bounding_box/internal/helper.h 2022-07-13 19:05:56.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Optimal_bounding_box/include/CGAL/Optimal_bounding_box/internal/helper.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Optimal_bounding_box/include/CGAL/Optimal_bounding_box/internal/helper.h $ // $Id: helper.h ba99311 2019-12-12T11:18:29+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Optimal_bounding_box/internal/nelder_mead_functions.h cgal-5.5/include/CGAL/Optimal_bounding_box/internal/nelder_mead_functions.h --- cgal-5.4.1/include/CGAL/Optimal_bounding_box/internal/nelder_mead_functions.h 2022-06-03 19:05:03.000000000 +0000 +++ cgal-5.5/include/CGAL/Optimal_bounding_box/internal/nelder_mead_functions.h 2022-07-13 19:05:56.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Optimal_bounding_box/include/CGAL/Optimal_bounding_box/internal/nelder_mead_functions.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Optimal_bounding_box/include/CGAL/Optimal_bounding_box/internal/nelder_mead_functions.h $ // $Id: nelder_mead_functions.h f0f2799 2020-03-28T12:18:16+01:00 Mael // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Optimal_bounding_box/internal/optimize_2.h cgal-5.5/include/CGAL/Optimal_bounding_box/internal/optimize_2.h --- cgal-5.4.1/include/CGAL/Optimal_bounding_box/internal/optimize_2.h 2022-06-03 19:05:03.000000000 +0000 +++ cgal-5.5/include/CGAL/Optimal_bounding_box/internal/optimize_2.h 2022-07-13 19:05:56.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Optimal_bounding_box/include/CGAL/Optimal_bounding_box/internal/optimize_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Optimal_bounding_box/include/CGAL/Optimal_bounding_box/internal/optimize_2.h $ // $Id: optimize_2.h 93ee230 2021-08-23T22:25:14+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Optimal_bounding_box/internal/population.h cgal-5.5/include/CGAL/Optimal_bounding_box/internal/population.h --- cgal-5.4.1/include/CGAL/Optimal_bounding_box/internal/population.h 2022-06-03 19:05:03.000000000 +0000 +++ cgal-5.5/include/CGAL/Optimal_bounding_box/internal/population.h 2022-07-13 19:05:56.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Optimal_bounding_box/include/CGAL/Optimal_bounding_box/internal/population.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Optimal_bounding_box/include/CGAL/Optimal_bounding_box/internal/population.h $ // $Id: population.h e9d41d7 2020-04-21T10:03:00+02:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Optimal_bounding_box/oriented_bounding_box.h cgal-5.5/include/CGAL/Optimal_bounding_box/oriented_bounding_box.h --- cgal-5.4.1/include/CGAL/Optimal_bounding_box/oriented_bounding_box.h 2022-06-03 19:05:03.000000000 +0000 +++ cgal-5.5/include/CGAL/Optimal_bounding_box/oriented_bounding_box.h 2022-07-13 19:05:56.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Optimal_bounding_box/include/CGAL/Optimal_bounding_box/oriented_bounding_box.h $ -// $Id: oriented_bounding_box.h 93ee230 2021-08-23T22:25:14+02:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Optimal_bounding_box/include/CGAL/Optimal_bounding_box/oriented_bounding_box.h $ +// $Id: oriented_bounding_box.h 477353d 2022-04-20T15:55:50+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -22,7 +22,7 @@ #include #include #include -#include +#include #include #include #include @@ -44,11 +44,6 @@ #include #include -#ifdef DOXYGEN_RUNNING -#define CGAL_BGL_NP_TEMPLATE_PARAMETERS NamedParameters -#define CGAL_BGL_NP_CLASS NamedParameters -#endif - namespace CGAL { namespace Optimal_bounding_box { namespace internal { @@ -97,7 +92,7 @@ obb_points[6] = cp(xmax, ymin, zmax); obb_points[7] = cp(xmax, ymax, zmax); - // Apply the inverse rotation to the rotated axis aligned bounding box + // Apply the inverse rotation to the rotated axis-aligned bounding box for(std::size_t i=0; i<8; ++i) { obb_points[i] = inverse_transformation.transform(obb_points[i]); @@ -146,13 +141,13 @@ rot(1, 0), rot(1, 1), rot(1, 2), rot(2, 0), rot(2, 1), rot(2, 2)); - // inverse transformation is simply the transposed since the matrix is unitary + // the inverse transformation is simply the transposed matrix since the matrix is unitary inverse_transformation = Aff_transformation_3(rot(0, 0), rot(1, 0), rot(2, 0), rot(0, 1), rot(1, 1), rot(2, 1), rot(0, 2), rot(1, 2), rot(2, 2)); } -// Following two functions are overloads to dispatch depending on return type +// The following two functions are overloads to dispatch depending on the return type template void construct_oriented_bounding_box(const PointRange& points, CGAL::Aff_transformation_3& transformation, @@ -317,10 +312,10 @@ /// template + typename NamedParameters = parameters::Default_named_parameters> void oriented_bounding_box(const PointRange& points, Output& out, - const CGAL_BGL_NP_CLASS& np + const NamedParameters& np = parameters::default_values() #ifndef DOXYGEN_RUNNING , typename boost::enable_if< typename boost::has_range_iterator @@ -330,8 +325,9 @@ { using CGAL::parameters::choose_parameter; using CGAL::parameters::get_parameter; + using CGAL::parameters::is_default_parameter; - typedef typename CGAL::GetPointMap::type PointMap; + typedef typename CGAL::GetPointMap::type PointMap; #if defined(CGAL_EIGEN3_ENABLED) typedef typename boost::property_traits::value_type Point; @@ -342,7 +338,7 @@ #endif typedef typename internal_np::Lookup_named_param_def::type Geom_traits; CGAL_static_assertion_msg(!(std::is_same::value), @@ -355,7 +351,8 @@ const unsigned int seed = choose_parameter(get_parameter(np, internal_np::random_seed), -1); // undocumented CGAL::Random fixed_seed_rng(seed); - CGAL::Random& rng = (seed == unsigned(-1)) ? CGAL::get_default_random() : fixed_seed_rng; + CGAL::Random& rng = is_default_parameter::value ? + CGAL::get_default_random() : fixed_seed_rng; #ifdef CGAL_OPTIMAL_BOUNDING_BOX_DEBUG std::cout << "Random seed: " << rng.get_seed() << std::endl; @@ -418,10 +415,10 @@ /// template + typename NamedParameters = parameters::Default_named_parameters> void oriented_bounding_box(const PolygonMesh& pmesh, Output& out, - const CGAL_BGL_NP_CLASS& np + const NamedParameters& np = parameters::default_values() #ifndef DOXYGEN_RUNNING , typename boost::disable_if< typename boost::has_range_iterator @@ -432,7 +429,7 @@ using CGAL::parameters::choose_parameter; using CGAL::parameters::get_parameter; - typedef typename CGAL::GetVertexPointMap::const_type VPM; + typedef typename CGAL::GetVertexPointMap::const_type VPM; VPM vpm = choose_parameter(get_parameter(np, internal_np::vertex_point), get_const_property_map(vertex_point, pmesh)); @@ -440,20 +437,6 @@ oriented_bounding_box(vertices(pmesh), out, np.point_map(vpm)); } -/// \cond SKIP_IN_MANUAL - -/////////////////////////////////////////////////////////////////////////////////////////////////// -/// Convenience overloads -///////////////////////////////////////////////////////////////////////////////////////////////// - -template -void oriented_bounding_box(const Input& in, Output& out) -{ - return oriented_bounding_box(in, out, CGAL::parameters::all_default()); -} - -/// \endcond - } // end namespace CGAL #endif // CGAL_OPTIMAL_BOUNDING_BOX_ORIENTED_BOUNDING_BOX_H diff -Nru cgal-5.4.1/include/CGAL/Optimal_bounding_box/Oriented_bounding_box_traits_3.h cgal-5.5/include/CGAL/Optimal_bounding_box/Oriented_bounding_box_traits_3.h --- cgal-5.4.1/include/CGAL/Optimal_bounding_box/Oriented_bounding_box_traits_3.h 2022-06-03 19:05:03.000000000 +0000 +++ cgal-5.5/include/CGAL/Optimal_bounding_box/Oriented_bounding_box_traits_3.h 2022-07-13 19:05:56.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Optimal_bounding_box/include/CGAL/Optimal_bounding_box/Oriented_bounding_box_traits_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Optimal_bounding_box/include/CGAL/Optimal_bounding_box/Oriented_bounding_box_traits_3.h $ // $Id: Oriented_bounding_box_traits_3.h b3968d2 2020-03-27T18:19:39+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/optimal_bounding_box.h cgal-5.5/include/CGAL/optimal_bounding_box.h --- cgal-5.4.1/include/CGAL/optimal_bounding_box.h 2022-06-03 19:05:03.000000000 +0000 +++ cgal-5.5/include/CGAL/optimal_bounding_box.h 2022-07-13 19:05:56.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Optimal_bounding_box/include/CGAL/optimal_bounding_box.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Optimal_bounding_box/include/CGAL/optimal_bounding_box.h $ // $Id: optimal_bounding_box.h ae19de5 2020-01-10T10:11:00+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Optimal_transportation_reconstruction_2.h cgal-5.5/include/CGAL/Optimal_transportation_reconstruction_2.h --- cgal-5.4.1/include/CGAL/Optimal_transportation_reconstruction_2.h 2022-06-03 19:05:03.000000000 +0000 +++ cgal-5.5/include/CGAL/Optimal_transportation_reconstruction_2.h 2022-07-13 19:05:57.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Optimal_transportation_reconstruction_2/include/CGAL/Optimal_transportation_reconstruction_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Optimal_transportation_reconstruction_2/include/CGAL/Optimal_transportation_reconstruction_2.h $ // $Id: Optimal_transportation_reconstruction_2.h 9847fd7 2022-01-03T19:15:11+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Optimisation/Access_coordinates_begin_2.h cgal-5.5/include/CGAL/Optimisation/Access_coordinates_begin_2.h --- cgal-5.4.1/include/CGAL/Optimisation/Access_coordinates_begin_2.h 2022-06-03 19:05:03.000000000 +0000 +++ cgal-5.5/include/CGAL/Optimisation/Access_coordinates_begin_2.h 2022-07-13 19:05:57.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Optimisation_basic/include/CGAL/Optimisation/Access_coordinates_begin_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Optimisation_basic/include/CGAL/Optimisation/Access_coordinates_begin_2.h $ // $Id: Access_coordinates_begin_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Optimisation/Access_coordinates_begin_3.h cgal-5.5/include/CGAL/Optimisation/Access_coordinates_begin_3.h --- cgal-5.4.1/include/CGAL/Optimisation/Access_coordinates_begin_3.h 2022-06-03 19:05:03.000000000 +0000 +++ cgal-5.5/include/CGAL/Optimisation/Access_coordinates_begin_3.h 2022-07-13 19:05:57.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Optimisation_basic/include/CGAL/Optimisation/Access_coordinates_begin_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Optimisation_basic/include/CGAL/Optimisation/Access_coordinates_begin_3.h $ // $Id: Access_coordinates_begin_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Optimisation/Access_coordinates_begin_d.h cgal-5.5/include/CGAL/Optimisation/Access_coordinates_begin_d.h --- cgal-5.4.1/include/CGAL/Optimisation/Access_coordinates_begin_d.h 2022-06-03 19:05:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Optimisation/Access_coordinates_begin_d.h 2022-07-13 19:05:57.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Optimisation_basic/include/CGAL/Optimisation/Access_coordinates_begin_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Optimisation_basic/include/CGAL/Optimisation/Access_coordinates_begin_d.h $ // $Id: Access_coordinates_begin_d.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Optimisation/Access_dimension_2.h cgal-5.5/include/CGAL/Optimisation/Access_dimension_2.h --- cgal-5.4.1/include/CGAL/Optimisation/Access_dimension_2.h 2022-06-03 19:05:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Optimisation/Access_dimension_2.h 2022-07-13 19:05:57.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Optimisation_basic/include/CGAL/Optimisation/Access_dimension_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Optimisation_basic/include/CGAL/Optimisation/Access_dimension_2.h $ // $Id: Access_dimension_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Optimisation/Access_dimension_3.h cgal-5.5/include/CGAL/Optimisation/Access_dimension_3.h --- cgal-5.4.1/include/CGAL/Optimisation/Access_dimension_3.h 2022-06-03 19:05:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Optimisation/Access_dimension_3.h 2022-07-13 19:05:57.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Optimisation_basic/include/CGAL/Optimisation/Access_dimension_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Optimisation_basic/include/CGAL/Optimisation/Access_dimension_3.h $ // $Id: Access_dimension_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Optimisation/Access_dimension_d.h cgal-5.5/include/CGAL/Optimisation/Access_dimension_d.h --- cgal-5.4.1/include/CGAL/Optimisation/Access_dimension_d.h 2022-06-03 19:05:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Optimisation/Access_dimension_d.h 2022-07-13 19:05:57.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Optimisation_basic/include/CGAL/Optimisation/Access_dimension_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Optimisation_basic/include/CGAL/Optimisation/Access_dimension_d.h $ // $Id: Access_dimension_d.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Optimisation/assertions.h cgal-5.5/include/CGAL/Optimisation/assertions.h --- cgal-5.4.1/include/CGAL/Optimisation/assertions.h 2022-06-03 19:05:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Optimisation/assertions.h 2022-07-13 19:05:57.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Optimisation_basic/include/CGAL/Optimisation/assertions.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Optimisation_basic/include/CGAL/Optimisation/assertions.h $ // $Id: assertions.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Optimisation/basic.h cgal-5.5/include/CGAL/Optimisation/basic.h --- cgal-5.4.1/include/CGAL/Optimisation/basic.h 2022-06-03 19:05:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Optimisation/basic.h 2022-07-13 19:05:57.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Optimisation_basic/include/CGAL/Optimisation/basic.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Optimisation_basic/include/CGAL/Optimisation/basic.h $ // $Id: basic.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Optimisation/Construct_point_2.h cgal-5.5/include/CGAL/Optimisation/Construct_point_2.h --- cgal-5.4.1/include/CGAL/Optimisation/Construct_point_2.h 2022-06-03 19:05:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Optimisation/Construct_point_2.h 2022-07-13 19:05:57.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Optimisation_basic/include/CGAL/Optimisation/Construct_point_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Optimisation_basic/include/CGAL/Optimisation/Construct_point_2.h $ // $Id: Construct_point_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Optimisation/Construct_point_3.h cgal-5.5/include/CGAL/Optimisation/Construct_point_3.h --- cgal-5.4.1/include/CGAL/Optimisation/Construct_point_3.h 2022-06-03 19:05:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Optimisation/Construct_point_3.h 2022-07-13 19:05:57.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Optimisation_basic/include/CGAL/Optimisation/Construct_point_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Optimisation_basic/include/CGAL/Optimisation/Construct_point_3.h $ // $Id: Construct_point_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Optimisation/Construct_point_d.h cgal-5.5/include/CGAL/Optimisation/Construct_point_d.h --- cgal-5.4.1/include/CGAL/Optimisation/Construct_point_d.h 2022-06-03 19:05:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Optimisation/Construct_point_d.h 2022-07-13 19:05:57.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Optimisation_basic/include/CGAL/Optimisation/Construct_point_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Optimisation_basic/include/CGAL/Optimisation/Construct_point_d.h $ // $Id: Construct_point_d.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Optimisation/debug.h cgal-5.5/include/CGAL/Optimisation/debug.h --- cgal-5.4.1/include/CGAL/Optimisation/debug.h 2022-06-03 19:05:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Optimisation/debug.h 2022-07-13 19:05:57.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Optimisation_basic/include/CGAL/Optimisation/debug.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Optimisation_basic/include/CGAL/Optimisation/debug.h $ // $Id: debug.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Optimisation_d_traits_2.h cgal-5.5/include/CGAL/Optimisation_d_traits_2.h --- cgal-5.4.1/include/CGAL/Optimisation_d_traits_2.h 2022-06-03 19:05:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Optimisation_d_traits_2.h 2022-07-13 19:05:58.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Optimisation_basic/include/CGAL/Optimisation_d_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Optimisation_basic/include/CGAL/Optimisation_d_traits_2.h $ // $Id: Optimisation_d_traits_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Optimisation_d_traits_3.h cgal-5.5/include/CGAL/Optimisation_d_traits_3.h --- cgal-5.4.1/include/CGAL/Optimisation_d_traits_3.h 2022-06-03 19:05:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Optimisation_d_traits_3.h 2022-07-13 19:05:58.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Optimisation_basic/include/CGAL/Optimisation_d_traits_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Optimisation_basic/include/CGAL/Optimisation_d_traits_3.h $ // $Id: Optimisation_d_traits_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Optimisation_d_traits_d.h cgal-5.5/include/CGAL/Optimisation_d_traits_d.h --- cgal-5.4.1/include/CGAL/Optimisation_d_traits_d.h 2022-06-03 19:05:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Optimisation_d_traits_d.h 2022-07-13 19:05:58.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Optimisation_basic/include/CGAL/Optimisation_d_traits_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Optimisation_basic/include/CGAL/Optimisation_d_traits_d.h $ // $Id: Optimisation_d_traits_d.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/optimize_mesh_3.h cgal-5.5/include/CGAL/optimize_mesh_3.h --- cgal-5.4.1/include/CGAL/optimize_mesh_3.h 2022-06-03 19:04:49.000000000 +0000 +++ cgal-5.5/include/CGAL/optimize_mesh_3.h 2022-07-13 19:05:42.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/optimize_mesh_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/optimize_mesh_3.h $ // $Id: optimize_mesh_3.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/optimize_periodic_3_mesh_3.h cgal-5.5/include/CGAL/optimize_periodic_3_mesh_3.h --- cgal-5.4.1/include/CGAL/optimize_periodic_3_mesh_3.h 2022-06-03 19:05:09.000000000 +0000 +++ cgal-5.5/include/CGAL/optimize_periodic_3_mesh_3.h 2022-07-13 19:06:03.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_3_mesh_3/include/CGAL/optimize_periodic_3_mesh_3.h $ -// $Id: optimize_periodic_3_mesh_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_3_mesh_3/include/CGAL/optimize_periodic_3_mesh_3.h $ +// $Id: optimize_periodic_3_mesh_3.h 1c3e09f 2022-01-10T15:32:38+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Stephane Tayeb, @@ -43,8 +43,8 @@ (required (in_out(c3t3),*) (domain,*)) (optional (time_limit_, *, 0) - (sliver_bound_, *, parameters::default_values::perturb_sliver_bound) - (sliver_criterion_, *, parameters::default_values::default_sliver_criterion(c3t3, sliver_bound_)) + (sliver_bound_, *, parameters::default_values_for_mesh_3::perturb_sliver_bound) + (sliver_criterion_, *, parameters::default_values_for_mesh_3::default_sliver_criterion(c3t3, sliver_bound_)) (perturbation_vector_, *, default_perturbation_vector(c3t3,domain,sliver_criterion_)) ) ) @@ -63,7 +63,7 @@ (required (in_out(c3t3),*)) (optional (time_limit_, *, 0) - (sliver_bound_, *, parameters::default_values::exude_sliver_bound) + (sliver_bound_, *, parameters::default_values_for_mesh_3::exude_sliver_bound) ) ) { @@ -81,9 +81,9 @@ (optional (time_limit_, *, 0) (max_iteration_number_, *, 0) - (convergence_, *, parameters::default_values::odt_convergence_ratio) - (freeze_bound_, *, parameters::default_values::odt_freeze_ratio) - (do_freeze_, *, parameters::default_values::do_freeze) + (convergence_, *, parameters::default_values_for_mesh_3::odt_convergence_ratio) + (freeze_bound_, *, parameters::default_values_for_mesh_3::odt_freeze_ratio) + (do_freeze_, *, parameters::default_values_for_mesh_3::do_freeze) ) ) { @@ -103,9 +103,9 @@ (optional (time_limit_, *, 0) (max_iteration_number_, *, 0) - (convergence_, *, parameters::default_values::lloyd_convergence_ratio) - (freeze_bound_, *, parameters::default_values::lloyd_freeze_ratio) - (do_freeze_, *, parameters::default_values::do_freeze) + (convergence_, *, parameters::default_values_for_mesh_3::lloyd_convergence_ratio) + (freeze_bound_, *, parameters::default_values_for_mesh_3::lloyd_freeze_ratio) + (do_freeze_, *, parameters::default_values_for_mesh_3::do_freeze) ) ) { diff -Nru cgal-5.4.1/include/CGAL/Orientation_Linf_2.h cgal-5.5/include/CGAL/Orientation_Linf_2.h --- cgal-5.4.1/include/CGAL/Orientation_Linf_2.h 2022-06-03 19:05:39.000000000 +0000 +++ cgal-5.5/include/CGAL/Orientation_Linf_2.h 2022-07-13 19:06:35.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_Linf_2/include/CGAL/Orientation_Linf_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_Linf_2/include/CGAL/Orientation_Linf_2.h $ // $Id: Orientation_Linf_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Origin.h cgal-5.5/include/CGAL/Origin.h --- cgal-5.4.1/include/CGAL/Origin.h 2022-06-03 19:04:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Origin.h 2022-07-13 19:05:23.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Origin.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Origin.h $ // $Id: Origin.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Origin_impl.h cgal-5.5/include/CGAL/Origin_impl.h --- cgal-5.4.1/include/CGAL/Origin_impl.h 2022-06-03 19:04:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Origin_impl.h 2022-07-13 19:05:23.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Origin_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Origin_impl.h $ // $Id: Origin_impl.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Orthogonal_incremental_neighbor_search.h cgal-5.5/include/CGAL/Orthogonal_incremental_neighbor_search.h --- cgal-5.4.1/include/CGAL/Orthogonal_incremental_neighbor_search.h 2022-06-03 19:05:47.000000000 +0000 +++ cgal-5.5/include/CGAL/Orthogonal_incremental_neighbor_search.h 2022-07-13 19:06:43.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Spatial_searching/include/CGAL/Orthogonal_incremental_neighbor_search.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Spatial_searching/include/CGAL/Orthogonal_incremental_neighbor_search.h $ // $Id: Orthogonal_incremental_neighbor_search.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Orthogonal_k_neighbor_search.h cgal-5.5/include/CGAL/Orthogonal_k_neighbor_search.h --- cgal-5.4.1/include/CGAL/Orthogonal_k_neighbor_search.h 2022-06-03 19:05:47.000000000 +0000 +++ cgal-5.5/include/CGAL/Orthogonal_k_neighbor_search.h 2022-07-13 19:06:43.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Spatial_searching/include/CGAL/Orthogonal_k_neighbor_search.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Spatial_searching/include/CGAL/Orthogonal_k_neighbor_search.h $ // $Id: Orthogonal_k_neighbor_search.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Orthtree/Cartesian_ranges.h cgal-5.5/include/CGAL/Orthtree/Cartesian_ranges.h --- cgal-5.4.1/include/CGAL/Orthtree/Cartesian_ranges.h 2022-06-03 19:05:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Orthtree/Cartesian_ranges.h 2022-07-13 19:05:58.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Orthtree/include/CGAL/Orthtree/Cartesian_ranges.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Orthtree/include/CGAL/Orthtree/Cartesian_ranges.h $ // $Id: Cartesian_ranges.h 4d761ed 2021-04-01T14:21:01+02:00 Simon Giraudot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Orthtree/IO.h cgal-5.5/include/CGAL/Orthtree/IO.h --- cgal-5.4.1/include/CGAL/Orthtree/IO.h 2022-06-03 19:05:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Orthtree/IO.h 2022-07-13 19:05:58.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Orthtree/include/CGAL/Orthtree/IO.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Orthtree/include/CGAL/Orthtree/IO.h $ // $Id: IO.h 0fcb4cb 2020-10-27T09:04:13+01:00 Simon Giraudot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Orthtree/Node.h cgal-5.5/include/CGAL/Orthtree/Node.h --- cgal-5.4.1/include/CGAL/Orthtree/Node.h 2022-06-03 19:05:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Orthtree/Node.h 2022-07-13 19:05:58.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Orthtree/include/CGAL/Orthtree/Node.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Orthtree/include/CGAL/Orthtree/Node.h $ // $Id: Node.h 8f8679e 2021-04-13T09:42:15+02:00 Simon Giraudot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Orthtree/Split_predicates.h cgal-5.5/include/CGAL/Orthtree/Split_predicates.h --- cgal-5.4.1/include/CGAL/Orthtree/Split_predicates.h 2022-06-03 19:05:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Orthtree/Split_predicates.h 2022-07-13 19:05:58.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Orthtree/include/CGAL/Orthtree/Split_predicates.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Orthtree/include/CGAL/Orthtree/Split_predicates.h $ // $Id: Split_predicates.h 4d761ed 2021-04-01T14:21:01+02:00 Simon Giraudot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Orthtree/Traversal_iterator.h cgal-5.5/include/CGAL/Orthtree/Traversal_iterator.h --- cgal-5.4.1/include/CGAL/Orthtree/Traversal_iterator.h 2022-06-03 19:05:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Orthtree/Traversal_iterator.h 2022-07-13 19:05:58.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Orthtree/include/CGAL/Orthtree/Traversal_iterator.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Orthtree/include/CGAL/Orthtree/Traversal_iterator.h $ // $Id: Traversal_iterator.h 0747b09 2020-10-26T15:56:42+01:00 Simon Giraudot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Orthtree/Traversals.h cgal-5.5/include/CGAL/Orthtree/Traversals.h --- cgal-5.4.1/include/CGAL/Orthtree/Traversals.h 2022-06-03 19:05:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Orthtree/Traversals.h 2022-07-13 19:05:58.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Orthtree/include/CGAL/Orthtree/Traversals.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Orthtree/include/CGAL/Orthtree/Traversals.h $ // $Id: Traversals.h 4d761ed 2021-04-01T14:21:01+02:00 Simon Giraudot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Orthtree.h cgal-5.5/include/CGAL/Orthtree.h --- cgal-5.4.1/include/CGAL/Orthtree.h 2022-06-03 19:05:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Orthtree.h 2022-07-13 19:05:58.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Orthtree/include/CGAL/Orthtree.h $ -// $Id: Orthtree.h 24aa93d 2021-04-07T14:26:50+02:00 Simon Giraudot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Orthtree/include/CGAL/Orthtree.h $ +// $Id: Orthtree.h 191e99a 2022-05-17T10:41:26+01:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Jackson Campolattaro, Simon Giraudot, Cédric Portaneri, Tong Zhao @@ -855,19 +855,19 @@ } /*! - \brief finds the `k` points within a specific radius that are nearest to `query`. + \brief finds the `k` points within a specific radius that are + nearest to the center of `query_sphere`. This function guarantees that there are no closer points than the ones returned, but it does not guarantee that it will return at least `k` points. For a query where the search radius encloses `k` or fewer points, all enclosed points will be returned. - If the search radius passed is too small, no points may be returned. + If the search radius is too small, no points may be returned. This function is useful when the user already knows how sparse the points are, or if they do not care about points that are too far away. Setting a small radius may have performance benefits. \tparam OutputIterator must be a model of `OutputIterator` that accepts points - \param search_point the location to find points near - \param search_radius_squared the size of the region to search within + \param query_sphere the region to search within \param k the number of points to find \param output the output iterator to add the found points to (in order of increasing distance) */ diff -Nru cgal-5.4.1/include/CGAL/Orthtree_traits_2.h cgal-5.5/include/CGAL/Orthtree_traits_2.h --- cgal-5.4.1/include/CGAL/Orthtree_traits_2.h 2022-06-03 19:05:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Orthtree_traits_2.h 2022-07-13 19:05:58.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Orthtree/include/CGAL/Orthtree_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Orthtree/include/CGAL/Orthtree_traits_2.h $ // $Id: Orthtree_traits_2.h 4d761ed 2021-04-01T14:21:01+02:00 Simon Giraudot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Orthtree_traits_3.h cgal-5.5/include/CGAL/Orthtree_traits_3.h --- cgal-5.4.1/include/CGAL/Orthtree_traits_3.h 2022-06-03 19:05:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Orthtree_traits_3.h 2022-07-13 19:05:58.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Orthtree/include/CGAL/Orthtree_traits_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Orthtree/include/CGAL/Orthtree_traits_3.h $ // $Id: Orthtree_traits_3.h 4d761ed 2021-04-01T14:21:01+02:00 Simon Giraudot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Orthtree_traits_d.h cgal-5.5/include/CGAL/Orthtree_traits_d.h --- cgal-5.4.1/include/CGAL/Orthtree_traits_d.h 2022-06-03 19:05:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Orthtree_traits_d.h 2022-07-13 19:05:58.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Orthtree/include/CGAL/Orthtree_traits_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Orthtree/include/CGAL/Orthtree_traits_d.h $ // $Id: Orthtree_traits_d.h 4d761ed 2021-04-01T14:21:01+02:00 Simon Giraudot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/OSQP_quadratic_program_traits.h cgal-5.5/include/CGAL/OSQP_quadratic_program_traits.h --- cgal-5.4.1/include/CGAL/OSQP_quadratic_program_traits.h 2022-06-03 19:05:45.000000000 +0000 +++ cgal-5.5/include/CGAL/OSQP_quadratic_program_traits.h 2022-07-13 19:06:42.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Solver_interface/include/CGAL/OSQP_quadratic_program_traits.h $ -// $Id: OSQP_quadratic_program_traits.h 072c1bf 2021-08-03T18:17:14+02:00 Dmitry Anisimov +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Solver_interface/include/CGAL/OSQP_quadratic_program_traits.h $ +// $Id: OSQP_quadratic_program_traits.h 599d7b3 2022-04-26T09:53:42+02:00 albert-github // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Dmitry Anisimov @@ -46,7 +46,7 @@ \note The `FT` type is provided for convenience. Internally, this FT type is converted to `c_float` type that can be set either to `float` or `double`. By default, the `double` type is used. After the optimization is complete, the `c_float` type is converted back to `FT`. - See more about `c_float` here. + See more about `c_float` here. \cgalModels `QuadraticProgramTraits` */ diff -Nru cgal-5.4.1/include/CGAL/OTR_2/Cost.h cgal-5.5/include/CGAL/OTR_2/Cost.h --- cgal-5.4.1/include/CGAL/OTR_2/Cost.h 2022-06-03 19:05:03.000000000 +0000 +++ cgal-5.5/include/CGAL/OTR_2/Cost.h 2022-07-13 19:05:57.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Optimal_transportation_reconstruction_2/include/CGAL/OTR_2/Cost.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Optimal_transportation_reconstruction_2/include/CGAL/OTR_2/Cost.h $ // $Id: Cost.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/OTR_2/Reconstruction_edge_2.h cgal-5.5/include/CGAL/OTR_2/Reconstruction_edge_2.h --- cgal-5.4.1/include/CGAL/OTR_2/Reconstruction_edge_2.h 2022-06-03 19:05:03.000000000 +0000 +++ cgal-5.5/include/CGAL/OTR_2/Reconstruction_edge_2.h 2022-07-13 19:05:57.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Optimal_transportation_reconstruction_2/include/CGAL/OTR_2/Reconstruction_edge_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Optimal_transportation_reconstruction_2/include/CGAL/OTR_2/Reconstruction_edge_2.h $ // $Id: Reconstruction_edge_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/OTR_2/Reconstruction_face_base_2.h cgal-5.5/include/CGAL/OTR_2/Reconstruction_face_base_2.h --- cgal-5.4.1/include/CGAL/OTR_2/Reconstruction_face_base_2.h 2022-06-03 19:05:03.000000000 +0000 +++ cgal-5.5/include/CGAL/OTR_2/Reconstruction_face_base_2.h 2022-07-13 19:05:57.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Optimal_transportation_reconstruction_2/include/CGAL/OTR_2/Reconstruction_face_base_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Optimal_transportation_reconstruction_2/include/CGAL/OTR_2/Reconstruction_face_base_2.h $ // $Id: Reconstruction_face_base_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/OTR_2/Reconstruction_triangulation_2.h cgal-5.5/include/CGAL/OTR_2/Reconstruction_triangulation_2.h --- cgal-5.4.1/include/CGAL/OTR_2/Reconstruction_triangulation_2.h 2022-06-03 19:05:03.000000000 +0000 +++ cgal-5.5/include/CGAL/OTR_2/Reconstruction_triangulation_2.h 2022-07-13 19:05:57.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Optimal_transportation_reconstruction_2/include/CGAL/OTR_2/Reconstruction_triangulation_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Optimal_transportation_reconstruction_2/include/CGAL/OTR_2/Reconstruction_triangulation_2.h $ // $Id: Reconstruction_triangulation_2.h 263ad6b 2020-08-20T18:25:01+02:00 Dmitry Anisimov // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/OTR_2/Reconstruction_vertex_base_2.h cgal-5.5/include/CGAL/OTR_2/Reconstruction_vertex_base_2.h --- cgal-5.4.1/include/CGAL/OTR_2/Reconstruction_vertex_base_2.h 2022-06-03 19:05:03.000000000 +0000 +++ cgal-5.5/include/CGAL/OTR_2/Reconstruction_vertex_base_2.h 2022-07-13 19:05:57.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Optimal_transportation_reconstruction_2/include/CGAL/OTR_2/Reconstruction_vertex_base_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Optimal_transportation_reconstruction_2/include/CGAL/OTR_2/Reconstruction_vertex_base_2.h $ // $Id: Reconstruction_vertex_base_2.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/OTR_2/Sample.h cgal-5.5/include/CGAL/OTR_2/Sample.h --- cgal-5.4.1/include/CGAL/OTR_2/Sample.h 2022-06-03 19:05:03.000000000 +0000 +++ cgal-5.5/include/CGAL/OTR_2/Sample.h 2022-07-13 19:05:57.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Optimal_transportation_reconstruction_2/include/CGAL/OTR_2/Sample.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Optimal_transportation_reconstruction_2/include/CGAL/OTR_2/Sample.h $ // $Id: Sample.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Parabola_2.h cgal-5.5/include/CGAL/Parabola_2.h --- cgal-5.4.1/include/CGAL/Parabola_2.h 2022-06-03 19:03:36.000000000 +0000 +++ cgal-5.5/include/CGAL/Parabola_2.h 2022-07-13 19:04:20.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Apollonius_graph_2/include/CGAL/Parabola_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Apollonius_graph_2/include/CGAL/Parabola_2.h $ // $Id: Parabola_2.h d2a2532 2021-06-17T10:29:02+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Parabola_segment_2.h cgal-5.5/include/CGAL/Parabola_segment_2.h --- cgal-5.4.1/include/CGAL/Parabola_segment_2.h 2022-06-03 19:03:36.000000000 +0000 +++ cgal-5.5/include/CGAL/Parabola_segment_2.h 2022-07-13 19:04:20.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Apollonius_graph_2/include/CGAL/Parabola_segment_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Apollonius_graph_2/include/CGAL/Parabola_segment_2.h $ // $Id: Parabola_segment_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Partition_2/Circulator_pair.h cgal-5.5/include/CGAL/Partition_2/Circulator_pair.h --- cgal-5.4.1/include/CGAL/Partition_2/Circulator_pair.h 2022-06-03 19:05:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Partition_2/Circulator_pair.h 2022-07-13 19:05:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Partition_2/include/CGAL/Partition_2/Circulator_pair.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Partition_2/include/CGAL/Partition_2/Circulator_pair.h $ // $Id: Circulator_pair.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Partition_2/Indirect_edge_compare.h cgal-5.5/include/CGAL/Partition_2/Indirect_edge_compare.h --- cgal-5.4.1/include/CGAL/Partition_2/Indirect_edge_compare.h 2022-06-03 19:05:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Partition_2/Indirect_edge_compare.h 2022-07-13 19:05:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Partition_2/include/CGAL/Partition_2/Indirect_edge_compare.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Partition_2/include/CGAL/Partition_2/Indirect_edge_compare.h $ // $Id: Indirect_edge_compare.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Partition_2/Indirect_less_xy_2.h cgal-5.5/include/CGAL/Partition_2/Indirect_less_xy_2.h --- cgal-5.4.1/include/CGAL/Partition_2/Indirect_less_xy_2.h 2022-06-03 19:05:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Partition_2/Indirect_less_xy_2.h 2022-07-13 19:05:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Partition_2/include/CGAL/Partition_2/Indirect_less_xy_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Partition_2/include/CGAL/Partition_2/Indirect_less_xy_2.h $ // $Id: Indirect_less_xy_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Partition_2/Indirect_not_less_yx_2.h cgal-5.5/include/CGAL/Partition_2/Indirect_not_less_yx_2.h --- cgal-5.4.1/include/CGAL/Partition_2/Indirect_not_less_yx_2.h 2022-06-03 19:05:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Partition_2/Indirect_not_less_yx_2.h 2022-07-13 19:05:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Partition_2/include/CGAL/Partition_2/Indirect_not_less_yx_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Partition_2/include/CGAL/Partition_2/Indirect_not_less_yx_2.h $ // $Id: Indirect_not_less_yx_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Partition_2/is_degenerate_polygon_2.h cgal-5.5/include/CGAL/Partition_2/is_degenerate_polygon_2.h --- cgal-5.4.1/include/CGAL/Partition_2/is_degenerate_polygon_2.h 2022-06-03 19:05:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Partition_2/is_degenerate_polygon_2.h 2022-07-13 19:05:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Partition_2/include/CGAL/Partition_2/is_degenerate_polygon_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Partition_2/include/CGAL/Partition_2/is_degenerate_polygon_2.h $ // $Id: is_degenerate_polygon_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Partition_2/Iterator_list.h cgal-5.5/include/CGAL/Partition_2/Iterator_list.h --- cgal-5.4.1/include/CGAL/Partition_2/Iterator_list.h 2022-06-03 19:05:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Partition_2/Iterator_list.h 2022-07-13 19:05:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Partition_2/include/CGAL/Partition_2/Iterator_list.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Partition_2/include/CGAL/Partition_2/Iterator_list.h $ // $Id: Iterator_list.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Partition_2/Matrix.h cgal-5.5/include/CGAL/Partition_2/Matrix.h --- cgal-5.4.1/include/CGAL/Partition_2/Matrix.h 2022-06-03 19:05:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Partition_2/Matrix.h 2022-07-13 19:05:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Partition_2/include/CGAL/Partition_2/Matrix.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Partition_2/include/CGAL/Partition_2/Matrix.h $ // $Id: Matrix.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Partition_2/partition_approx_convex_2.h cgal-5.5/include/CGAL/Partition_2/partition_approx_convex_2.h --- cgal-5.4.1/include/CGAL/Partition_2/partition_approx_convex_2.h 2022-06-03 19:05:06.000000000 +0000 +++ cgal-5.5/include/CGAL/Partition_2/partition_approx_convex_2.h 2022-07-13 19:05:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Partition_2/include/CGAL/Partition_2/partition_approx_convex_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Partition_2/include/CGAL/Partition_2/partition_approx_convex_2.h $ // $Id: partition_approx_convex_2.h e6c767d 2021-05-12T15:45:07+02:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Partition_2/partition_assertions.h cgal-5.5/include/CGAL/Partition_2/partition_assertions.h --- cgal-5.4.1/include/CGAL/Partition_2/partition_assertions.h 2022-06-03 19:05:06.000000000 +0000 +++ cgal-5.5/include/CGAL/Partition_2/partition_assertions.h 2022-07-13 19:05:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Partition_2/include/CGAL/Partition_2/partition_assertions.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Partition_2/include/CGAL/Partition_2/partition_assertions.h $ // $Id: partition_assertions.h 5a36ff8 2020-12-04T08:02:26+00:00 Giles Bathgate // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Partition_2/Partitioned_polygon_2.h cgal-5.5/include/CGAL/Partition_2/Partitioned_polygon_2.h --- cgal-5.4.1/include/CGAL/Partition_2/Partitioned_polygon_2.h 2022-06-03 19:05:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Partition_2/Partitioned_polygon_2.h 2022-07-13 19:05:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Partition_2/include/CGAL/Partition_2/Partitioned_polygon_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Partition_2/include/CGAL/Partition_2/Partitioned_polygon_2.h $ // $Id: Partitioned_polygon_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Partition_2/partition_greene_approx_convex_2.h cgal-5.5/include/CGAL/Partition_2/partition_greene_approx_convex_2.h --- cgal-5.4.1/include/CGAL/Partition_2/partition_greene_approx_convex_2.h 2022-06-03 19:05:06.000000000 +0000 +++ cgal-5.5/include/CGAL/Partition_2/partition_greene_approx_convex_2.h 2022-07-13 19:05:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Partition_2/include/CGAL/Partition_2/partition_greene_approx_convex_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Partition_2/include/CGAL/Partition_2/partition_greene_approx_convex_2.h $ // $Id: partition_greene_approx_convex_2.h 521c72d 2021-10-04T13:22:00+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Partition_2/Partition_opt_cvx_diagonal_list.h cgal-5.5/include/CGAL/Partition_2/Partition_opt_cvx_diagonal_list.h --- cgal-5.4.1/include/CGAL/Partition_2/Partition_opt_cvx_diagonal_list.h 2022-06-03 19:05:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Partition_2/Partition_opt_cvx_diagonal_list.h 2022-07-13 19:05:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Partition_2/include/CGAL/Partition_2/Partition_opt_cvx_diagonal_list.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Partition_2/include/CGAL/Partition_2/Partition_opt_cvx_diagonal_list.h $ // $Id: Partition_opt_cvx_diagonal_list.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Partition_2/Partition_opt_cvx_edge.h cgal-5.5/include/CGAL/Partition_2/Partition_opt_cvx_edge.h --- cgal-5.4.1/include/CGAL/Partition_2/Partition_opt_cvx_edge.h 2022-06-03 19:05:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Partition_2/Partition_opt_cvx_edge.h 2022-07-13 19:05:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Partition_2/include/CGAL/Partition_2/Partition_opt_cvx_edge.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Partition_2/include/CGAL/Partition_2/Partition_opt_cvx_edge.h $ // $Id: Partition_opt_cvx_edge.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Partition_2/Partition_opt_cvx_vertex.h cgal-5.5/include/CGAL/Partition_2/Partition_opt_cvx_vertex.h --- cgal-5.4.1/include/CGAL/Partition_2/Partition_opt_cvx_vertex.h 2022-06-03 19:05:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Partition_2/Partition_opt_cvx_vertex.h 2022-07-13 19:05:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Partition_2/include/CGAL/Partition_2/Partition_opt_cvx_vertex.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Partition_2/include/CGAL/Partition_2/Partition_opt_cvx_vertex.h $ // $Id: Partition_opt_cvx_vertex.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Partition_2/partition_optimal_convex_2.h cgal-5.5/include/CGAL/Partition_2/partition_optimal_convex_2.h --- cgal-5.4.1/include/CGAL/Partition_2/partition_optimal_convex_2.h 2022-06-03 19:05:06.000000000 +0000 +++ cgal-5.5/include/CGAL/Partition_2/partition_optimal_convex_2.h 2022-07-13 19:05:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Partition_2/include/CGAL/Partition_2/partition_optimal_convex_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Partition_2/include/CGAL/Partition_2/partition_optimal_convex_2.h $ // $Id: partition_optimal_convex_2.h 5a36ff8 2020-12-04T08:02:26+00:00 Giles Bathgate // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Partition_2/Partition_traits_2_base.h cgal-5.5/include/CGAL/Partition_2/Partition_traits_2_base.h --- cgal-5.4.1/include/CGAL/Partition_2/Partition_traits_2_base.h 2022-06-03 19:05:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Partition_2/Partition_traits_2_base.h 2022-07-13 19:05:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Partition_2/include/CGAL/Partition_2/Partition_traits_2_base.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Partition_2/include/CGAL/Partition_2/Partition_traits_2_base.h $ // $Id: Partition_traits_2_base.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Partition_2/Partition_vertex_map.h cgal-5.5/include/CGAL/Partition_2/Partition_vertex_map.h --- cgal-5.4.1/include/CGAL/Partition_2/Partition_vertex_map.h 2022-06-03 19:05:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Partition_2/Partition_vertex_map.h 2022-07-13 19:05:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Partition_2/include/CGAL/Partition_2/Partition_vertex_map.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Partition_2/include/CGAL/Partition_2/Partition_vertex_map.h $ // $Id: Partition_vertex_map.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Partition_2/partition_y_monotone_2.h cgal-5.5/include/CGAL/Partition_2/partition_y_monotone_2.h --- cgal-5.4.1/include/CGAL/Partition_2/partition_y_monotone_2.h 2022-06-03 19:05:06.000000000 +0000 +++ cgal-5.5/include/CGAL/Partition_2/partition_y_monotone_2.h 2022-07-13 19:05:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Partition_2/include/CGAL/Partition_2/partition_y_monotone_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Partition_2/include/CGAL/Partition_2/partition_y_monotone_2.h $ // $Id: partition_y_monotone_2.h 5a36ff8 2020-12-04T08:02:26+00:00 Giles Bathgate // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Partition_2/Point_pair_less_xy_2.h cgal-5.5/include/CGAL/Partition_2/Point_pair_less_xy_2.h --- cgal-5.4.1/include/CGAL/Partition_2/Point_pair_less_xy_2.h 2022-06-03 19:05:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Partition_2/Point_pair_less_xy_2.h 2022-07-13 19:05:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Partition_2/include/CGAL/Partition_2/Point_pair_less_xy_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Partition_2/include/CGAL/Partition_2/Point_pair_less_xy_2.h $ // $Id: Point_pair_less_xy_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Partition_2/Rotation_tree_2.h cgal-5.5/include/CGAL/Partition_2/Rotation_tree_2.h --- cgal-5.4.1/include/CGAL/Partition_2/Rotation_tree_2.h 2022-06-03 19:05:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Partition_2/Rotation_tree_2.h 2022-07-13 19:05:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Partition_2/include/CGAL/Partition_2/Rotation_tree_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Partition_2/include/CGAL/Partition_2/Rotation_tree_2.h $ // $Id: Rotation_tree_2.h 4bb0406 2021-02-04T18:12:12+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Partition_2/Rotation_tree_2_impl.h cgal-5.5/include/CGAL/Partition_2/Rotation_tree_2_impl.h --- cgal-5.4.1/include/CGAL/Partition_2/Rotation_tree_2_impl.h 2022-06-03 19:05:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Partition_2/Rotation_tree_2_impl.h 2022-07-13 19:05:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Partition_2/include/CGAL/Partition_2/Rotation_tree_2_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Partition_2/include/CGAL/Partition_2/Rotation_tree_2_impl.h $ // $Id: Rotation_tree_2_impl.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Partition_2/Rotation_tree_node_2.h cgal-5.5/include/CGAL/Partition_2/Rotation_tree_node_2.h --- cgal-5.4.1/include/CGAL/Partition_2/Rotation_tree_node_2.h 2022-06-03 19:05:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Partition_2/Rotation_tree_node_2.h 2022-07-13 19:05:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Partition_2/include/CGAL/Partition_2/Rotation_tree_node_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Partition_2/include/CGAL/Partition_2/Rotation_tree_node_2.h $ // $Id: Rotation_tree_node_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Partition_2/Segment_less_yx_2.h cgal-5.5/include/CGAL/Partition_2/Segment_less_yx_2.h --- cgal-5.4.1/include/CGAL/Partition_2/Segment_less_yx_2.h 2022-06-03 19:05:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Partition_2/Segment_less_yx_2.h 2022-07-13 19:05:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Partition_2/include/CGAL/Partition_2/Segment_less_yx_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Partition_2/include/CGAL/Partition_2/Segment_less_yx_2.h $ // $Id: Segment_less_yx_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Partition_2/Triangulation_indirect_traits_2.h cgal-5.5/include/CGAL/Partition_2/Triangulation_indirect_traits_2.h --- cgal-5.4.1/include/CGAL/Partition_2/Triangulation_indirect_traits_2.h 2022-06-03 19:05:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Partition_2/Triangulation_indirect_traits_2.h 2022-07-13 19:05:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Partition_2/include/CGAL/Partition_2/Triangulation_indirect_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Partition_2/include/CGAL/Partition_2/Triangulation_indirect_traits_2.h $ // $Id: Triangulation_indirect_traits_2.h 2e8a59d 2020-07-21T15:25:54+02:00 Laurent Rineau // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Partition_2/Turn_reverser.h cgal-5.5/include/CGAL/Partition_2/Turn_reverser.h --- cgal-5.4.1/include/CGAL/Partition_2/Turn_reverser.h 2022-06-03 19:05:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Partition_2/Turn_reverser.h 2022-07-13 19:05:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Partition_2/include/CGAL/Partition_2/Turn_reverser.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Partition_2/include/CGAL/Partition_2/Turn_reverser.h $ // $Id: Turn_reverser.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Partition_2/Vertex_visibility_graph_2.h cgal-5.5/include/CGAL/Partition_2/Vertex_visibility_graph_2.h --- cgal-5.4.1/include/CGAL/Partition_2/Vertex_visibility_graph_2.h 2022-06-03 19:05:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Partition_2/Vertex_visibility_graph_2.h 2022-07-13 19:05:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Partition_2/include/CGAL/Partition_2/Vertex_visibility_graph_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Partition_2/include/CGAL/Partition_2/Vertex_visibility_graph_2.h $ // $Id: Vertex_visibility_graph_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Partition_2/Vertex_visibility_graph_2_impl.h cgal-5.5/include/CGAL/Partition_2/Vertex_visibility_graph_2_impl.h --- cgal-5.4.1/include/CGAL/Partition_2/Vertex_visibility_graph_2_impl.h 2022-06-03 19:05:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Partition_2/Vertex_visibility_graph_2_impl.h 2022-07-13 19:05:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Partition_2/include/CGAL/Partition_2/Vertex_visibility_graph_2_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Partition_2/include/CGAL/Partition_2/Vertex_visibility_graph_2_impl.h $ // $Id: Vertex_visibility_graph_2_impl.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/partition_2.h cgal-5.5/include/CGAL/partition_2.h --- cgal-5.4.1/include/CGAL/partition_2.h 2022-06-03 19:05:06.000000000 +0000 +++ cgal-5.5/include/CGAL/partition_2.h 2022-07-13 19:06:00.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Partition_2/include/CGAL/partition_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Partition_2/include/CGAL/partition_2.h $ // $Id: partition_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/partition_is_valid_2.h cgal-5.5/include/CGAL/partition_is_valid_2.h --- cgal-5.4.1/include/CGAL/partition_is_valid_2.h 2022-06-03 19:05:06.000000000 +0000 +++ cgal-5.5/include/CGAL/partition_is_valid_2.h 2022-07-13 19:06:00.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Partition_2/include/CGAL/partition_is_valid_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Partition_2/include/CGAL/partition_is_valid_2.h $ // $Id: partition_is_valid_2.h 521c72d 2021-10-04T13:22:00+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Partition_is_valid_traits_2.h cgal-5.5/include/CGAL/Partition_is_valid_traits_2.h --- cgal-5.4.1/include/CGAL/Partition_is_valid_traits_2.h 2022-06-03 19:05:06.000000000 +0000 +++ cgal-5.5/include/CGAL/Partition_is_valid_traits_2.h 2022-07-13 19:05:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Partition_2/include/CGAL/Partition_is_valid_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Partition_2/include/CGAL/Partition_is_valid_traits_2.h $ // $Id: Partition_is_valid_traits_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Partition_traits_2.h cgal-5.5/include/CGAL/Partition_traits_2.h --- cgal-5.4.1/include/CGAL/Partition_traits_2.h 2022-06-03 19:05:06.000000000 +0000 +++ cgal-5.5/include/CGAL/Partition_traits_2.h 2022-07-13 19:05:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Partition_2/include/CGAL/Partition_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Partition_2/include/CGAL/Partition_traits_2.h $ // $Id: Partition_traits_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Partition_traits_adapter_2.h cgal-5.5/include/CGAL/Partition_traits_adapter_2.h --- cgal-5.4.1/include/CGAL/Partition_traits_adapter_2.h 2022-06-03 19:05:06.000000000 +0000 +++ cgal-5.5/include/CGAL/Partition_traits_adapter_2.h 2022-07-13 19:06:00.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Partition_2/include/CGAL/Partition_traits_adapter_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Partition_2/include/CGAL/Partition_traits_adapter_2.h $ // $Id: Partition_traits_adapter_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Path_on_surface.h cgal-5.5/include/CGAL/Path_on_surface.h --- cgal-5.4.1/include/CGAL/Path_on_surface.h 2022-06-03 19:05:58.000000000 +0000 +++ cgal-5.5/include/CGAL/Path_on_surface.h 2022-07-13 19:06:55.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_topology/include/CGAL/Path_on_surface.h $ -// $Id: Path_on_surface.h 393ae7d 2021-05-12T15:03:53+02:00 Maxime Gimeno +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_topology/include/CGAL/Path_on_surface.h $ +// $Id: Path_on_surface.h c5c6098 2022-01-27T11:02:17+01:00 Guillaume Damiand // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Guillaume Damiand @@ -70,7 +70,7 @@ { extend_straight_negative(-(it->length), false); } } update_is_closed(); - CGAL_assertion(is_valid(true)); + CGAL_expensive_assertion(is_valid(true)); } Path_on_surface(const Self& apath) : m_map(apath.m_map), @@ -1099,7 +1099,7 @@ /// @return the primitive root and the power of the path in the sense of string. /// use the linear Knuth-Morris-Pratt search std::pair factorize() { - CGAL_assertion(is_valid()); + CGAL_expensive_assertion(is_valid()); if (!is_closed()) { // if a path is not closed, it is already primitive return std::make_pair(Path_on_surface(*this), 1); diff -Nru cgal-5.4.1/include/CGAL/pca_estimate_normals.h cgal-5.5/include/CGAL/pca_estimate_normals.h --- cgal-5.4.1/include/CGAL/pca_estimate_normals.h 2022-06-03 19:05:12.000000000 +0000 +++ cgal-5.5/include/CGAL/pca_estimate_normals.h 2022-07-13 19:06:06.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Point_set_processing_3/include/CGAL/pca_estimate_normals.h $ -// $Id: pca_estimate_normals.h 3b7754f 2021-09-20T12:44:38+01:00 Andreas Fabri +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Point_set_processing_3/include/CGAL/pca_estimate_normals.h $ +// $Id: pca_estimate_normals.h 75b03e6 2022-01-10T15:33:04+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Pierre Alliez and Laurent Saboret @@ -27,7 +27,7 @@ #include #include -#include +#include #include #include @@ -148,13 +148,13 @@ */ template void pca_estimate_normals( PointRange& points, unsigned int k, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { using parameters::choose_parameter; using parameters::get_parameter; @@ -162,17 +162,16 @@ CGAL_TRACE_STREAM << "Calls pca_estimate_normals()\n"; // basic geometric types - typedef typename CGAL::GetPointMap::type PointMap; - typedef typename Point_set_processing_3::GetNormalMap::type NormalMap; - typedef typename Point_set_processing_3::GetK::Kernel Kernel; + typedef Point_set_processing_3_np_helper NP_helper; + typedef typename NP_helper::Point_map PointMap; + typedef typename NP_helper::Normal_map NormalMap; + typedef typename NP_helper::Geom_traits Kernel; typedef typename Kernel::FT FT; - CGAL_static_assertion_msg(!(boost::is_same::NoMap>::value), - "Error: no normal map"); + CGAL_static_assertion_msg(NP_helper::has_normal_map(), "Error: no normal map"); - PointMap point_map = choose_parameter(get_parameter(np, internal_np::point_map)); - NormalMap normal_map = choose_parameter(get_parameter(np, internal_np::normal_map)); + PointMap point_map = NP_helper::get_point_map(points, np); + NormalMap normal_map = NP_helper::get_normal_map(points, np); FT neighbor_radius = choose_parameter(get_parameter(np, internal_np::neighbor_radius), FT(0)); const std::function& callback = choose_parameter(get_parameter(np, internal_np::callback), std::function()); @@ -230,22 +229,6 @@ CGAL_TRACE_STREAM << "End of pca_estimate_normals()\n"; } -/// \cond SKIP_IN_MANUAL -// variant with default NP -template -void -pca_estimate_normals( - PointRange& points, - unsigned int k) ///< number of neighbors. -{ - return pca_estimate_normals - (points, k, CGAL::Point_set_processing_3::parameters::all_default(points)); -} -/// \endcond - - } //namespace CGAL #include diff -Nru cgal-5.4.1/include/CGAL/PCA_util_Eigen.h cgal-5.5/include/CGAL/PCA_util_Eigen.h --- cgal-5.4.1/include/CGAL/PCA_util_Eigen.h 2022-06-03 19:05:27.000000000 +0000 +++ cgal-5.5/include/CGAL/PCA_util_Eigen.h 2022-07-13 19:06:22.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Principal_component_analysis/include/CGAL/PCA_util_Eigen.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Principal_component_analysis/include/CGAL/PCA_util_Eigen.h $ // $Id: PCA_util_Eigen.h 7d716c0 2021-04-06T08:38:56+02:00 Simon Giraudot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/PCA_util.h cgal-5.5/include/CGAL/PCA_util.h --- cgal-5.4.1/include/CGAL/PCA_util.h 2022-06-03 19:05:27.000000000 +0000 +++ cgal-5.5/include/CGAL/PCA_util.h 2022-07-13 19:06:22.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Principal_component_analysis/include/CGAL/PCA_util.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Principal_component_analysis/include/CGAL/PCA_util.h $ // $Id: PCA_util.h 39df599 2022-04-22T15:36:38+02:00 Sven Oesau // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Periodic_2_Delaunay_triangulation_2.h cgal-5.5/include/CGAL/Periodic_2_Delaunay_triangulation_2.h --- cgal-5.4.1/include/CGAL/Periodic_2_Delaunay_triangulation_2.h 2022-06-03 19:05:08.000000000 +0000 +++ cgal-5.5/include/CGAL/Periodic_2_Delaunay_triangulation_2.h 2022-07-13 19:06:01.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_2_triangulation_2/include/CGAL/Periodic_2_Delaunay_triangulation_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_2_triangulation_2/include/CGAL/Periodic_2_Delaunay_triangulation_2.h $ // $Id: Periodic_2_Delaunay_triangulation_2.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Periodic_2_Delaunay_triangulation_traits_2.h cgal-5.5/include/CGAL/Periodic_2_Delaunay_triangulation_traits_2.h --- cgal-5.4.1/include/CGAL/Periodic_2_Delaunay_triangulation_traits_2.h 2022-06-03 19:05:08.000000000 +0000 +++ cgal-5.5/include/CGAL/Periodic_2_Delaunay_triangulation_traits_2.h 2022-07-13 19:06:01.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_2_triangulation_2/include/CGAL/Periodic_2_Delaunay_triangulation_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_2_triangulation_2/include/CGAL/Periodic_2_Delaunay_triangulation_traits_2.h $ // $Id: Periodic_2_Delaunay_triangulation_traits_2.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Periodic_2_offset_2.h cgal-5.5/include/CGAL/Periodic_2_offset_2.h --- cgal-5.4.1/include/CGAL/Periodic_2_offset_2.h 2022-06-03 19:05:08.000000000 +0000 +++ cgal-5.5/include/CGAL/Periodic_2_offset_2.h 2022-07-13 19:06:01.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_2_triangulation_2/include/CGAL/Periodic_2_offset_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_2_triangulation_2/include/CGAL/Periodic_2_offset_2.h $ // $Id: Periodic_2_offset_2.h 4e519a3 2021-05-05T13:15:37+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Periodic_2_triangulation_2/internal/Functor_with_offset_points_adaptor_2.h cgal-5.5/include/CGAL/Periodic_2_triangulation_2/internal/Functor_with_offset_points_adaptor_2.h --- cgal-5.4.1/include/CGAL/Periodic_2_triangulation_2/internal/Functor_with_offset_points_adaptor_2.h 2022-06-03 19:05:08.000000000 +0000 +++ cgal-5.5/include/CGAL/Periodic_2_triangulation_2/internal/Functor_with_offset_points_adaptor_2.h 2022-07-13 19:06:01.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_2_triangulation_2/include/CGAL/Periodic_2_triangulation_2/internal/Functor_with_offset_points_adaptor_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_2_triangulation_2/include/CGAL/Periodic_2_triangulation_2/internal/Functor_with_offset_points_adaptor_2.h $ // $Id: Functor_with_offset_points_adaptor_2.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Periodic_2_triangulation_2/internal/Periodic_2_construct_point_2.h cgal-5.5/include/CGAL/Periodic_2_triangulation_2/internal/Periodic_2_construct_point_2.h --- cgal-5.4.1/include/CGAL/Periodic_2_triangulation_2/internal/Periodic_2_construct_point_2.h 2022-06-03 19:05:08.000000000 +0000 +++ cgal-5.5/include/CGAL/Periodic_2_triangulation_2/internal/Periodic_2_construct_point_2.h 2022-07-13 19:06:02.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_2_triangulation_2/include/CGAL/Periodic_2_triangulation_2/internal/Periodic_2_construct_point_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_2_triangulation_2/include/CGAL/Periodic_2_triangulation_2/internal/Periodic_2_construct_point_2.h $ // $Id: Periodic_2_construct_point_2.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Periodic_2_triangulation_2/internal/Periodic_2_Delaunay_triangulation_filtered_traits_2.h cgal-5.5/include/CGAL/Periodic_2_triangulation_2/internal/Periodic_2_Delaunay_triangulation_filtered_traits_2.h --- cgal-5.4.1/include/CGAL/Periodic_2_triangulation_2/internal/Periodic_2_Delaunay_triangulation_filtered_traits_2.h 2022-06-03 19:05:08.000000000 +0000 +++ cgal-5.5/include/CGAL/Periodic_2_triangulation_2/internal/Periodic_2_Delaunay_triangulation_filtered_traits_2.h 2022-07-13 19:06:01.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_2_triangulation_2/include/CGAL/Periodic_2_triangulation_2/internal/Periodic_2_Delaunay_triangulation_filtered_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_2_triangulation_2/include/CGAL/Periodic_2_triangulation_2/internal/Periodic_2_Delaunay_triangulation_filtered_traits_2.h $ // $Id: Periodic_2_Delaunay_triangulation_filtered_traits_2.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Periodic_2_triangulation_2/internal/Periodic_2_Delaunay_triangulation_statically_filtered_traits_2.h cgal-5.5/include/CGAL/Periodic_2_triangulation_2/internal/Periodic_2_Delaunay_triangulation_statically_filtered_traits_2.h --- cgal-5.4.1/include/CGAL/Periodic_2_triangulation_2/internal/Periodic_2_Delaunay_triangulation_statically_filtered_traits_2.h 2022-06-03 19:05:08.000000000 +0000 +++ cgal-5.5/include/CGAL/Periodic_2_triangulation_2/internal/Periodic_2_Delaunay_triangulation_statically_filtered_traits_2.h 2022-07-13 19:06:01.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_2_triangulation_2/include/CGAL/Periodic_2_triangulation_2/internal/Periodic_2_Delaunay_triangulation_statically_filtered_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_2_triangulation_2/include/CGAL/Periodic_2_triangulation_2/internal/Periodic_2_Delaunay_triangulation_statically_filtered_traits_2.h $ // $Id: Periodic_2_Delaunay_triangulation_statically_filtered_traits_2.h 5945e48 2021-09-17T08:14:06+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Periodic_2_triangulation_2/internal/Periodic_2_triangulation_filtered_traits_2.h cgal-5.5/include/CGAL/Periodic_2_triangulation_2/internal/Periodic_2_triangulation_filtered_traits_2.h --- cgal-5.4.1/include/CGAL/Periodic_2_triangulation_2/internal/Periodic_2_triangulation_filtered_traits_2.h 2022-06-03 19:05:08.000000000 +0000 +++ cgal-5.5/include/CGAL/Periodic_2_triangulation_2/internal/Periodic_2_triangulation_filtered_traits_2.h 2022-07-13 19:06:02.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_2_triangulation_2/include/CGAL/Periodic_2_triangulation_2/internal/Periodic_2_triangulation_filtered_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_2_triangulation_2/include/CGAL/Periodic_2_triangulation_2/internal/Periodic_2_triangulation_filtered_traits_2.h $ // $Id: Periodic_2_triangulation_filtered_traits_2.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Periodic_2_triangulation_2/internal/Periodic_2_triangulation_statically_filtered_traits_2.h cgal-5.5/include/CGAL/Periodic_2_triangulation_2/internal/Periodic_2_triangulation_statically_filtered_traits_2.h --- cgal-5.4.1/include/CGAL/Periodic_2_triangulation_2/internal/Periodic_2_triangulation_statically_filtered_traits_2.h 2022-06-03 19:05:08.000000000 +0000 +++ cgal-5.5/include/CGAL/Periodic_2_triangulation_2/internal/Periodic_2_triangulation_statically_filtered_traits_2.h 2022-07-13 19:06:02.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_2_triangulation_2/include/CGAL/Periodic_2_triangulation_2/internal/Periodic_2_triangulation_statically_filtered_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_2_triangulation_2/include/CGAL/Periodic_2_triangulation_2/internal/Periodic_2_triangulation_statically_filtered_traits_2.h $ // $Id: Periodic_2_triangulation_statically_filtered_traits_2.h 5945e48 2021-09-17T08:14:06+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Periodic_2_triangulation_2/internal/Static_filters/Periodic_2_orientation_2.h cgal-5.5/include/CGAL/Periodic_2_triangulation_2/internal/Static_filters/Periodic_2_orientation_2.h --- cgal-5.4.1/include/CGAL/Periodic_2_triangulation_2/internal/Static_filters/Periodic_2_orientation_2.h 2022-06-03 19:05:08.000000000 +0000 +++ cgal-5.5/include/CGAL/Periodic_2_triangulation_2/internal/Static_filters/Periodic_2_orientation_2.h 2022-07-13 19:06:02.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_2_triangulation_2/include/CGAL/Periodic_2_triangulation_2/internal/Static_filters/Periodic_2_orientation_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_2_triangulation_2/include/CGAL/Periodic_2_triangulation_2/internal/Static_filters/Periodic_2_orientation_2.h $ // $Id: Periodic_2_orientation_2.h 5945e48 2021-09-17T08:14:06+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Periodic_2_triangulation_2/internal/Static_filters/Periodic_2_side_of_oriented_circle_2.h cgal-5.5/include/CGAL/Periodic_2_triangulation_2/internal/Static_filters/Periodic_2_side_of_oriented_circle_2.h --- cgal-5.4.1/include/CGAL/Periodic_2_triangulation_2/internal/Static_filters/Periodic_2_side_of_oriented_circle_2.h 2022-06-03 19:05:08.000000000 +0000 +++ cgal-5.5/include/CGAL/Periodic_2_triangulation_2/internal/Static_filters/Periodic_2_side_of_oriented_circle_2.h 2022-07-13 19:06:02.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_2_triangulation_2/include/CGAL/Periodic_2_triangulation_2/internal/Static_filters/Periodic_2_side_of_oriented_circle_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_2_triangulation_2/include/CGAL/Periodic_2_triangulation_2/internal/Static_filters/Periodic_2_side_of_oriented_circle_2.h $ // $Id: Periodic_2_side_of_oriented_circle_2.h 5945e48 2021-09-17T08:14:06+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Periodic_2_triangulation_2.h cgal-5.5/include/CGAL/Periodic_2_triangulation_2.h --- cgal-5.4.1/include/CGAL/Periodic_2_triangulation_2.h 2022-06-03 19:05:08.000000000 +0000 +++ cgal-5.5/include/CGAL/Periodic_2_triangulation_2.h 2022-07-13 19:06:01.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_2_triangulation_2/include/CGAL/Periodic_2_triangulation_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_2_triangulation_2/include/CGAL/Periodic_2_triangulation_2.h $ // $Id: Periodic_2_triangulation_2.h cdbf0d7 2022-03-09T11:34:12+00:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Periodic_2_triangulation_dummy_12.h cgal-5.5/include/CGAL/Periodic_2_triangulation_dummy_12.h --- cgal-5.4.1/include/CGAL/Periodic_2_triangulation_dummy_12.h 2022-06-03 19:05:08.000000000 +0000 +++ cgal-5.5/include/CGAL/Periodic_2_triangulation_dummy_12.h 2022-07-13 19:06:02.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_2_triangulation_2/include/CGAL/Periodic_2_triangulation_dummy_12.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_2_triangulation_2/include/CGAL/Periodic_2_triangulation_dummy_12.h $ // $Id: Periodic_2_triangulation_dummy_12.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Periodic_2_triangulation_face_base_2.h cgal-5.5/include/CGAL/Periodic_2_triangulation_face_base_2.h --- cgal-5.4.1/include/CGAL/Periodic_2_triangulation_face_base_2.h 2022-06-03 19:05:08.000000000 +0000 +++ cgal-5.5/include/CGAL/Periodic_2_triangulation_face_base_2.h 2022-07-13 19:06:02.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_2_triangulation_2/include/CGAL/Periodic_2_triangulation_face_base_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_2_triangulation_2/include/CGAL/Periodic_2_triangulation_face_base_2.h $ // $Id: Periodic_2_triangulation_face_base_2.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Periodic_2_triangulation_hierarchy_2.h cgal-5.5/include/CGAL/Periodic_2_triangulation_hierarchy_2.h --- cgal-5.4.1/include/CGAL/Periodic_2_triangulation_hierarchy_2.h 2022-06-03 19:05:08.000000000 +0000 +++ cgal-5.5/include/CGAL/Periodic_2_triangulation_hierarchy_2.h 2022-07-13 19:06:02.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_2_triangulation_2/include/CGAL/Periodic_2_triangulation_hierarchy_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_2_triangulation_2/include/CGAL/Periodic_2_triangulation_hierarchy_2.h $ // $Id: Periodic_2_triangulation_hierarchy_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Periodic_2_triangulation_iterators_2.h cgal-5.5/include/CGAL/Periodic_2_triangulation_iterators_2.h --- cgal-5.4.1/include/CGAL/Periodic_2_triangulation_iterators_2.h 2022-06-03 19:05:08.000000000 +0000 +++ cgal-5.5/include/CGAL/Periodic_2_triangulation_iterators_2.h 2022-07-13 19:06:02.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_2_triangulation_2/include/CGAL/Periodic_2_triangulation_iterators_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_2_triangulation_2/include/CGAL/Periodic_2_triangulation_iterators_2.h $ // $Id: Periodic_2_triangulation_iterators_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Periodic_2_triangulation_traits_2.h cgal-5.5/include/CGAL/Periodic_2_triangulation_traits_2.h --- cgal-5.4.1/include/CGAL/Periodic_2_triangulation_traits_2.h 2022-06-03 19:05:08.000000000 +0000 +++ cgal-5.5/include/CGAL/Periodic_2_triangulation_traits_2.h 2022-07-13 19:06:02.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_2_triangulation_2/include/CGAL/Periodic_2_triangulation_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_2_triangulation_2/include/CGAL/Periodic_2_triangulation_traits_2.h $ // $Id: Periodic_2_triangulation_traits_2.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Periodic_2_triangulation_vertex_base_2.h cgal-5.5/include/CGAL/Periodic_2_triangulation_vertex_base_2.h --- cgal-5.4.1/include/CGAL/Periodic_2_triangulation_vertex_base_2.h 2022-06-03 19:05:08.000000000 +0000 +++ cgal-5.5/include/CGAL/Periodic_2_triangulation_vertex_base_2.h 2022-07-13 19:06:02.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_2_triangulation_2/include/CGAL/Periodic_2_triangulation_vertex_base_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_2_triangulation_2/include/CGAL/Periodic_2_triangulation_vertex_base_2.h $ // $Id: Periodic_2_triangulation_vertex_base_2.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Periodic_3_Delaunay_triangulation_3.h cgal-5.5/include/CGAL/Periodic_3_Delaunay_triangulation_3.h --- cgal-5.4.1/include/CGAL/Periodic_3_Delaunay_triangulation_3.h 2022-06-03 19:05:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Periodic_3_Delaunay_triangulation_3.h 2022-07-13 19:06:04.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_3_triangulation_3/include/CGAL/Periodic_3_Delaunay_triangulation_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_3_triangulation_3/include/CGAL/Periodic_3_Delaunay_triangulation_3.h $ // $Id: Periodic_3_Delaunay_triangulation_3.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Periodic_3_Delaunay_triangulation_traits_3.h cgal-5.5/include/CGAL/Periodic_3_Delaunay_triangulation_traits_3.h --- cgal-5.4.1/include/CGAL/Periodic_3_Delaunay_triangulation_traits_3.h 2022-06-03 19:05:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Periodic_3_Delaunay_triangulation_traits_3.h 2022-07-13 19:06:04.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_3_triangulation_3/include/CGAL/Periodic_3_Delaunay_triangulation_traits_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_3_triangulation_3/include/CGAL/Periodic_3_Delaunay_triangulation_traits_3.h $ // $Id: Periodic_3_Delaunay_triangulation_traits_3.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Periodic_3_function_wrapper.h cgal-5.5/include/CGAL/Periodic_3_function_wrapper.h --- cgal-5.4.1/include/CGAL/Periodic_3_function_wrapper.h 2022-06-03 19:05:09.000000000 +0000 +++ cgal-5.5/include/CGAL/Periodic_3_function_wrapper.h 2022-07-13 19:06:02.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_3_mesh_3/include/CGAL/Periodic_3_function_wrapper.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_3_mesh_3/include/CGAL/Periodic_3_function_wrapper.h $ // $Id: Periodic_3_function_wrapper.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Periodic_3_mesh_3/config.h cgal-5.5/include/CGAL/Periodic_3_mesh_3/config.h --- cgal-5.4.1/include/CGAL/Periodic_3_mesh_3/config.h 2022-06-03 19:05:09.000000000 +0000 +++ cgal-5.5/include/CGAL/Periodic_3_mesh_3/config.h 2022-07-13 19:06:02.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_3_mesh_3/include/CGAL/Periodic_3_mesh_3/config.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_3_mesh_3/include/CGAL/Periodic_3_mesh_3/config.h $ // $Id: config.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Periodic_3_mesh_3/IO/File_medit.h cgal-5.5/include/CGAL/Periodic_3_mesh_3/IO/File_medit.h --- cgal-5.4.1/include/CGAL/Periodic_3_mesh_3/IO/File_medit.h 2022-06-03 19:05:09.000000000 +0000 +++ cgal-5.5/include/CGAL/Periodic_3_mesh_3/IO/File_medit.h 2022-07-13 19:06:02.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_3_mesh_3/include/CGAL/Periodic_3_mesh_3/IO/File_medit.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_3_mesh_3/include/CGAL/Periodic_3_mesh_3/IO/File_medit.h $ // $Id: File_medit.h fb6f703 2021-05-04T14:07:49+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Periodic_3_mesh_3/Protect_edges_sizing_field.h cgal-5.5/include/CGAL/Periodic_3_mesh_3/Protect_edges_sizing_field.h --- cgal-5.4.1/include/CGAL/Periodic_3_mesh_3/Protect_edges_sizing_field.h 2022-06-03 19:05:09.000000000 +0000 +++ cgal-5.5/include/CGAL/Periodic_3_mesh_3/Protect_edges_sizing_field.h 2022-07-13 19:06:02.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_3_mesh_3/include/CGAL/Periodic_3_mesh_3/Protect_edges_sizing_field.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_3_mesh_3/include/CGAL/Periodic_3_mesh_3/Protect_edges_sizing_field.h $ // $Id: Protect_edges_sizing_field.h a93dda8 2021-09-10T17:43:47+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Periodic_3_mesh_triangulation_3.h cgal-5.5/include/CGAL/Periodic_3_mesh_triangulation_3.h --- cgal-5.4.1/include/CGAL/Periodic_3_mesh_triangulation_3.h 2022-06-03 19:05:09.000000000 +0000 +++ cgal-5.5/include/CGAL/Periodic_3_mesh_triangulation_3.h 2022-07-13 19:06:02.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_3_mesh_3/include/CGAL/Periodic_3_mesh_triangulation_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_3_mesh_3/include/CGAL/Periodic_3_mesh_triangulation_3.h $ // $Id: Periodic_3_mesh_triangulation_3.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Periodic_3_offset_3.h cgal-5.5/include/CGAL/Periodic_3_offset_3.h --- cgal-5.4.1/include/CGAL/Periodic_3_offset_3.h 2022-06-03 19:05:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Periodic_3_offset_3.h 2022-07-13 19:06:04.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_3_triangulation_3/include/CGAL/Periodic_3_offset_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_3_triangulation_3/include/CGAL/Periodic_3_offset_3.h $ // $Id: Periodic_3_offset_3.h 4e519a3 2021-05-05T13:15:37+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Periodic_3_regular_triangulation_3.h cgal-5.5/include/CGAL/Periodic_3_regular_triangulation_3.h --- cgal-5.4.1/include/CGAL/Periodic_3_regular_triangulation_3.h 2022-06-03 19:05:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Periodic_3_regular_triangulation_3.h 2022-07-13 19:06:04.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_3_triangulation_3/include/CGAL/Periodic_3_regular_triangulation_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_3_triangulation_3/include/CGAL/Periodic_3_regular_triangulation_3.h $ // $Id: Periodic_3_regular_triangulation_3.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Periodic_3_regular_triangulation_traits_3.h cgal-5.5/include/CGAL/Periodic_3_regular_triangulation_traits_3.h --- cgal-5.4.1/include/CGAL/Periodic_3_regular_triangulation_traits_3.h 2022-06-03 19:05:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Periodic_3_regular_triangulation_traits_3.h 2022-07-13 19:06:04.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_3_triangulation_3/include/CGAL/Periodic_3_regular_triangulation_traits_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_3_triangulation_3/include/CGAL/Periodic_3_regular_triangulation_traits_3.h $ // $Id: Periodic_3_regular_triangulation_traits_3.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Periodic_3_triangulation_3/internal/canonicalize_helper.h cgal-5.5/include/CGAL/Periodic_3_triangulation_3/internal/canonicalize_helper.h --- cgal-5.4.1/include/CGAL/Periodic_3_triangulation_3/internal/canonicalize_helper.h 2022-06-03 19:05:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Periodic_3_triangulation_3/internal/canonicalize_helper.h 2022-07-13 19:06:04.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_3/internal/canonicalize_helper.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_3/internal/canonicalize_helper.h $ // $Id: canonicalize_helper.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Periodic_3_triangulation_3/internal/Functor_with_offset_points_adaptor_3.h cgal-5.5/include/CGAL/Periodic_3_triangulation_3/internal/Functor_with_offset_points_adaptor_3.h --- cgal-5.4.1/include/CGAL/Periodic_3_triangulation_3/internal/Functor_with_offset_points_adaptor_3.h 2022-06-03 19:05:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Periodic_3_triangulation_3/internal/Functor_with_offset_points_adaptor_3.h 2022-07-13 19:06:04.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_3/internal/Functor_with_offset_points_adaptor_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_3/internal/Functor_with_offset_points_adaptor_3.h $ // $Id: Functor_with_offset_points_adaptor_3.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Periodic_3_triangulation_3/internal/Functor_with_offset_weighted_points_adaptor_3.h cgal-5.5/include/CGAL/Periodic_3_triangulation_3/internal/Functor_with_offset_weighted_points_adaptor_3.h --- cgal-5.4.1/include/CGAL/Periodic_3_triangulation_3/internal/Functor_with_offset_weighted_points_adaptor_3.h 2022-06-03 19:05:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Periodic_3_triangulation_3/internal/Functor_with_offset_weighted_points_adaptor_3.h 2022-07-13 19:06:04.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_3/internal/Functor_with_offset_weighted_points_adaptor_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_3/internal/Functor_with_offset_weighted_points_adaptor_3.h $ // $Id: Functor_with_offset_weighted_points_adaptor_3.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_construct_point_3.h cgal-5.5/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_construct_point_3.h --- cgal-5.4.1/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_construct_point_3.h 2022-06-03 19:05:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_construct_point_3.h 2022-07-13 19:06:04.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_construct_point_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_construct_point_3.h $ // $Id: Periodic_3_construct_point_3.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_construct_weighted_point_3.h cgal-5.5/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_construct_weighted_point_3.h --- cgal-5.4.1/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_construct_weighted_point_3.h 2022-06-03 19:05:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_construct_weighted_point_3.h 2022-07-13 19:06:04.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_construct_weighted_point_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_construct_weighted_point_3.h $ // $Id: Periodic_3_construct_weighted_point_3.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_Delaunay_triangulation_filtered_traits_3.h cgal-5.5/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_Delaunay_triangulation_filtered_traits_3.h --- cgal-5.4.1/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_Delaunay_triangulation_filtered_traits_3.h 2022-06-03 19:05:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_Delaunay_triangulation_filtered_traits_3.h 2022-07-13 19:06:04.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_Delaunay_triangulation_filtered_traits_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_Delaunay_triangulation_filtered_traits_3.h $ // $Id: Periodic_3_Delaunay_triangulation_filtered_traits_3.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_Delaunay_triangulation_remove_traits_3.h cgal-5.5/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_Delaunay_triangulation_remove_traits_3.h --- cgal-5.4.1/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_Delaunay_triangulation_remove_traits_3.h 2022-06-03 19:05:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_Delaunay_triangulation_remove_traits_3.h 2022-07-13 19:06:04.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_Delaunay_triangulation_remove_traits_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_Delaunay_triangulation_remove_traits_3.h $ // $Id: Periodic_3_Delaunay_triangulation_remove_traits_3.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_Delaunay_triangulation_statically_filtered_traits_3.h cgal-5.5/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_Delaunay_triangulation_statically_filtered_traits_3.h --- cgal-5.4.1/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_Delaunay_triangulation_statically_filtered_traits_3.h 2022-06-03 19:05:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_Delaunay_triangulation_statically_filtered_traits_3.h 2022-07-13 19:06:04.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_Delaunay_triangulation_statically_filtered_traits_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_Delaunay_triangulation_statically_filtered_traits_3.h $ // $Id: Periodic_3_Delaunay_triangulation_statically_filtered_traits_3.h 5945e48 2021-09-17T08:14:06+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_regular_triangulation_dummy_288.h cgal-5.5/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_regular_triangulation_dummy_288.h --- cgal-5.4.1/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_regular_triangulation_dummy_288.h 2022-06-03 19:05:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_regular_triangulation_dummy_288.h 2022-07-13 19:06:04.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_regular_triangulation_dummy_288.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_regular_triangulation_dummy_288.h $ // $Id: Periodic_3_regular_triangulation_dummy_288.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_regular_triangulation_filtered_traits_3.h cgal-5.5/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_regular_triangulation_filtered_traits_3.h --- cgal-5.4.1/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_regular_triangulation_filtered_traits_3.h 2022-06-03 19:05:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_regular_triangulation_filtered_traits_3.h 2022-07-13 19:06:04.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_regular_triangulation_filtered_traits_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_regular_triangulation_filtered_traits_3.h $ // $Id: Periodic_3_regular_triangulation_filtered_traits_3.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_regular_triangulation_remove_traits_3.h cgal-5.5/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_regular_triangulation_remove_traits_3.h --- cgal-5.4.1/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_regular_triangulation_remove_traits_3.h 2022-06-03 19:05:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_regular_triangulation_remove_traits_3.h 2022-07-13 19:06:04.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_regular_triangulation_remove_traits_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_regular_triangulation_remove_traits_3.h $ // $Id: Periodic_3_regular_triangulation_remove_traits_3.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_regular_triangulation_statically_filtered_traits_3.h cgal-5.5/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_regular_triangulation_statically_filtered_traits_3.h --- cgal-5.4.1/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_regular_triangulation_statically_filtered_traits_3.h 2022-06-03 19:05:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_regular_triangulation_statically_filtered_traits_3.h 2022-07-13 19:06:04.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_regular_triangulation_statically_filtered_traits_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_regular_triangulation_statically_filtered_traits_3.h $ // $Id: Periodic_3_regular_triangulation_statically_filtered_traits_3.h 5945e48 2021-09-17T08:14:06+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_triangulation_dummy_36.h cgal-5.5/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_triangulation_dummy_36.h --- cgal-5.4.1/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_triangulation_dummy_36.h 2022-06-03 19:05:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_triangulation_dummy_36.h 2022-07-13 19:06:04.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_triangulation_dummy_36.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_triangulation_dummy_36.h $ // $Id: Periodic_3_triangulation_dummy_36.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_triangulation_filtered_traits_3.h cgal-5.5/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_triangulation_filtered_traits_3.h --- cgal-5.4.1/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_triangulation_filtered_traits_3.h 2022-06-03 19:05:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_triangulation_filtered_traits_3.h 2022-07-13 19:06:04.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_triangulation_filtered_traits_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_triangulation_filtered_traits_3.h $ // $Id: Periodic_3_triangulation_filtered_traits_3.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_triangulation_iterators_3.h cgal-5.5/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_triangulation_iterators_3.h --- cgal-5.4.1/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_triangulation_iterators_3.h 2022-06-03 19:05:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_triangulation_iterators_3.h 2022-07-13 19:06:04.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_triangulation_iterators_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_triangulation_iterators_3.h $ // $Id: Periodic_3_triangulation_iterators_3.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_triangulation_statically_filtered_traits_3.h cgal-5.5/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_triangulation_statically_filtered_traits_3.h --- cgal-5.4.1/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_triangulation_statically_filtered_traits_3.h 2022-06-03 19:05:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_triangulation_statically_filtered_traits_3.h 2022-07-13 19:06:04.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_triangulation_statically_filtered_traits_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_triangulation_statically_filtered_traits_3.h $ // $Id: Periodic_3_triangulation_statically_filtered_traits_3.h 5945e48 2021-09-17T08:14:06+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Periodic_3_triangulation_3/internal/Robust_periodic_weighted_circumcenter_traits_3.h cgal-5.5/include/CGAL/Periodic_3_triangulation_3/internal/Robust_periodic_weighted_circumcenter_traits_3.h --- cgal-5.4.1/include/CGAL/Periodic_3_triangulation_3/internal/Robust_periodic_weighted_circumcenter_traits_3.h 2022-06-03 19:05:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Periodic_3_triangulation_3/internal/Robust_periodic_weighted_circumcenter_traits_3.h 2022-07-13 19:06:04.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_3/internal/Robust_periodic_weighted_circumcenter_traits_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_3/internal/Robust_periodic_weighted_circumcenter_traits_3.h $ // $Id: Robust_periodic_weighted_circumcenter_traits_3.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Periodic_3_triangulation_3/internal/Static_filters/Periodic_3_orientation_3.h cgal-5.5/include/CGAL/Periodic_3_triangulation_3/internal/Static_filters/Periodic_3_orientation_3.h --- cgal-5.4.1/include/CGAL/Periodic_3_triangulation_3/internal/Static_filters/Periodic_3_orientation_3.h 2022-06-03 19:05:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Periodic_3_triangulation_3/internal/Static_filters/Periodic_3_orientation_3.h 2022-07-13 19:06:04.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_3/internal/Static_filters/Periodic_3_orientation_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_3/internal/Static_filters/Periodic_3_orientation_3.h $ // $Id: Periodic_3_orientation_3.h 5945e48 2021-09-17T08:14:06+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Periodic_3_triangulation_3/internal/Static_filters/Periodic_3_power_side_of_oriented_power_sphere_3.h cgal-5.5/include/CGAL/Periodic_3_triangulation_3/internal/Static_filters/Periodic_3_power_side_of_oriented_power_sphere_3.h --- cgal-5.4.1/include/CGAL/Periodic_3_triangulation_3/internal/Static_filters/Periodic_3_power_side_of_oriented_power_sphere_3.h 2022-06-03 19:05:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Periodic_3_triangulation_3/internal/Static_filters/Periodic_3_power_side_of_oriented_power_sphere_3.h 2022-07-13 19:06:04.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_3/internal/Static_filters/Periodic_3_power_side_of_oriented_power_sphere_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_3/internal/Static_filters/Periodic_3_power_side_of_oriented_power_sphere_3.h $ // $Id: Periodic_3_power_side_of_oriented_power_sphere_3.h 5945e48 2021-09-17T08:14:06+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Periodic_3_triangulation_3/internal/Static_filters/Periodic_3_side_of_oriented_sphere_3.h cgal-5.5/include/CGAL/Periodic_3_triangulation_3/internal/Static_filters/Periodic_3_side_of_oriented_sphere_3.h --- cgal-5.4.1/include/CGAL/Periodic_3_triangulation_3/internal/Static_filters/Periodic_3_side_of_oriented_sphere_3.h 2022-06-03 19:05:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Periodic_3_triangulation_3/internal/Static_filters/Periodic_3_side_of_oriented_sphere_3.h 2022-07-13 19:06:04.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_3/internal/Static_filters/Periodic_3_side_of_oriented_sphere_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_3/internal/Static_filters/Periodic_3_side_of_oriented_sphere_3.h $ // $Id: Periodic_3_side_of_oriented_sphere_3.h 5945e48 2021-09-17T08:14:06+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Periodic_3_triangulation_3.h cgal-5.5/include/CGAL/Periodic_3_triangulation_3.h --- cgal-5.4.1/include/CGAL/Periodic_3_triangulation_3.h 2022-06-03 19:05:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Periodic_3_triangulation_3.h 2022-07-13 19:06:04.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_3.h $ -// $Id: Periodic_3_triangulation_3.h 4eac47f 2022-03-09T12:57:23+00:00 Andreas Fabri +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_3.h $ +// $Id: Periodic_3_triangulation_3.h 81ac3b9 2022-06-10T09:46:09+02:00 Laurent Rineau // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Monique Teillaud @@ -3256,6 +3256,7 @@ typename Vertex_triple_Facet_map::iterator oit = outer_map.begin(); typename Vertex_triple_Facet_map::value_type o_vt_f_pair = *oit; + outer_map.erase(oit); Cell_handle o_ch = o_vt_f_pair.second.first; unsigned int o_i = o_vt_f_pair.second.second; @@ -3314,7 +3315,6 @@ } } } - outer_map.erase(oit); } // finally set the neighboring relations diff -Nru cgal-5.4.1/include/CGAL/periodic_3_triangulation_3_io.h cgal-5.5/include/CGAL/periodic_3_triangulation_3_io.h --- cgal-5.4.1/include/CGAL/periodic_3_triangulation_3_io.h 2022-06-03 19:05:10.000000000 +0000 +++ cgal-5.5/include/CGAL/periodic_3_triangulation_3_io.h 2022-07-13 19:06:04.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_3_triangulation_3/include/CGAL/periodic_3_triangulation_3_io.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_3_triangulation_3/include/CGAL/periodic_3_triangulation_3_io.h $ // $Id: periodic_3_triangulation_3_io.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Periodic_3_triangulation_ds_cell_base_3.h cgal-5.5/include/CGAL/Periodic_3_triangulation_ds_cell_base_3.h --- cgal-5.4.1/include/CGAL/Periodic_3_triangulation_ds_cell_base_3.h 2022-06-03 19:05:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Periodic_3_triangulation_ds_cell_base_3.h 2022-07-13 19:06:04.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_ds_cell_base_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_ds_cell_base_3.h $ // $Id: Periodic_3_triangulation_ds_cell_base_3.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Periodic_3_triangulation_ds_vertex_base_3.h cgal-5.5/include/CGAL/Periodic_3_triangulation_ds_vertex_base_3.h --- cgal-5.4.1/include/CGAL/Periodic_3_triangulation_ds_vertex_base_3.h 2022-06-03 19:05:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Periodic_3_triangulation_ds_vertex_base_3.h 2022-07-13 19:06:04.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_ds_vertex_base_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_ds_vertex_base_3.h $ // $Id: Periodic_3_triangulation_ds_vertex_base_3.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Periodic_3_triangulation_hierarchy_3.h cgal-5.5/include/CGAL/Periodic_3_triangulation_hierarchy_3.h --- cgal-5.4.1/include/CGAL/Periodic_3_triangulation_hierarchy_3.h 2022-06-03 19:05:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Periodic_3_triangulation_hierarchy_3.h 2022-07-13 19:06:04.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_hierarchy_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_hierarchy_3.h $ // $Id: Periodic_3_triangulation_hierarchy_3.h a049e63 2020-09-25T16:55:18+02:00 Jane Tournois // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Periodic_3_triangulation_traits_3.h cgal-5.5/include/CGAL/Periodic_3_triangulation_traits_3.h --- cgal-5.4.1/include/CGAL/Periodic_3_triangulation_traits_3.h 2022-06-03 19:05:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Periodic_3_triangulation_traits_3.h 2022-07-13 19:06:04.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_traits_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_traits_3.h $ // $Id: Periodic_3_triangulation_traits_3.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Periodic_4_hyperbolic_Delaunay_triangulation_2.h cgal-5.5/include/CGAL/Periodic_4_hyperbolic_Delaunay_triangulation_2.h --- cgal-5.4.1/include/CGAL/Periodic_4_hyperbolic_Delaunay_triangulation_2.h 2022-06-03 19:05:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Periodic_4_hyperbolic_Delaunay_triangulation_2.h 2022-07-13 19:06:05.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_4_hyperbolic_triangulation_2/include/CGAL/Periodic_4_hyperbolic_Delaunay_triangulation_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_4_hyperbolic_triangulation_2/include/CGAL/Periodic_4_hyperbolic_Delaunay_triangulation_2.h $ // $Id: Periodic_4_hyperbolic_Delaunay_triangulation_2.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Periodic_4_hyperbolic_Delaunay_triangulation_traits_2.h cgal-5.5/include/CGAL/Periodic_4_hyperbolic_Delaunay_triangulation_traits_2.h --- cgal-5.4.1/include/CGAL/Periodic_4_hyperbolic_Delaunay_triangulation_traits_2.h 2022-06-03 19:05:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Periodic_4_hyperbolic_Delaunay_triangulation_traits_2.h 2022-07-13 19:06:05.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_4_hyperbolic_triangulation_2/include/CGAL/Periodic_4_hyperbolic_Delaunay_triangulation_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_4_hyperbolic_triangulation_2/include/CGAL/Periodic_4_hyperbolic_Delaunay_triangulation_traits_2.h $ // $Id: Periodic_4_hyperbolic_Delaunay_triangulation_traits_2.h 5c8df66 2020-09-25T14:25:14+02:00 Jane Tournois // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Periodic_4_hyperbolic_triangulation_2/internal/Dehn_hyperbolic_octagon_translation_word.h cgal-5.5/include/CGAL/Periodic_4_hyperbolic_triangulation_2/internal/Dehn_hyperbolic_octagon_translation_word.h --- cgal-5.4.1/include/CGAL/Periodic_4_hyperbolic_triangulation_2/internal/Dehn_hyperbolic_octagon_translation_word.h 2022-06-03 19:05:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Periodic_4_hyperbolic_triangulation_2/internal/Dehn_hyperbolic_octagon_translation_word.h 2022-07-13 19:06:05.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_4_hyperbolic_triangulation_2/include/CGAL/Periodic_4_hyperbolic_triangulation_2/internal/Dehn_hyperbolic_octagon_translation_word.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_4_hyperbolic_triangulation_2/include/CGAL/Periodic_4_hyperbolic_triangulation_2/internal/Dehn_hyperbolic_octagon_translation_word.h $ // $Id: Dehn_hyperbolic_octagon_translation_word.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Periodic_4_hyperbolic_triangulation_2/internal/Hyperbolic_octagon_translation_matrix.h cgal-5.5/include/CGAL/Periodic_4_hyperbolic_triangulation_2/internal/Hyperbolic_octagon_translation_matrix.h --- cgal-5.4.1/include/CGAL/Periodic_4_hyperbolic_triangulation_2/internal/Hyperbolic_octagon_translation_matrix.h 2022-06-03 19:05:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Periodic_4_hyperbolic_triangulation_2/internal/Hyperbolic_octagon_translation_matrix.h 2022-07-13 19:06:05.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_4_hyperbolic_triangulation_2/include/CGAL/Periodic_4_hyperbolic_triangulation_2/internal/Hyperbolic_octagon_translation_matrix.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_4_hyperbolic_triangulation_2/include/CGAL/Periodic_4_hyperbolic_triangulation_2/internal/Hyperbolic_octagon_translation_matrix.h $ // $Id: Hyperbolic_octagon_translation_matrix.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Periodic_4_hyperbolic_triangulation_2/internal/Hyperbolic_octagon_translation_word.h cgal-5.5/include/CGAL/Periodic_4_hyperbolic_triangulation_2/internal/Hyperbolic_octagon_translation_word.h --- cgal-5.4.1/include/CGAL/Periodic_4_hyperbolic_triangulation_2/internal/Hyperbolic_octagon_translation_word.h 2022-06-03 19:05:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Periodic_4_hyperbolic_triangulation_2/internal/Hyperbolic_octagon_translation_word.h 2022-07-13 19:06:05.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_4_hyperbolic_triangulation_2/include/CGAL/Periodic_4_hyperbolic_triangulation_2/internal/Hyperbolic_octagon_translation_word.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_4_hyperbolic_triangulation_2/include/CGAL/Periodic_4_hyperbolic_triangulation_2/internal/Hyperbolic_octagon_translation_word.h $ // $Id: Hyperbolic_octagon_translation_word.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Periodic_4_hyperbolic_triangulation_2/internal/Periodic_4_hyperbolic_triangulation_dummy_14.h cgal-5.5/include/CGAL/Periodic_4_hyperbolic_triangulation_2/internal/Periodic_4_hyperbolic_triangulation_dummy_14.h --- cgal-5.4.1/include/CGAL/Periodic_4_hyperbolic_triangulation_2/internal/Periodic_4_hyperbolic_triangulation_dummy_14.h 2022-06-03 19:05:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Periodic_4_hyperbolic_triangulation_2/internal/Periodic_4_hyperbolic_triangulation_dummy_14.h 2022-07-13 19:06:05.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_4_hyperbolic_triangulation_2/include/CGAL/Periodic_4_hyperbolic_triangulation_2/internal/Periodic_4_hyperbolic_triangulation_dummy_14.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_4_hyperbolic_triangulation_2/include/CGAL/Periodic_4_hyperbolic_triangulation_2/internal/Periodic_4_hyperbolic_triangulation_dummy_14.h $ // $Id: Periodic_4_hyperbolic_triangulation_dummy_14.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Periodic_4_hyperbolic_triangulation_2.h cgal-5.5/include/CGAL/Periodic_4_hyperbolic_triangulation_2.h --- cgal-5.4.1/include/CGAL/Periodic_4_hyperbolic_triangulation_2.h 2022-06-03 19:05:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Periodic_4_hyperbolic_triangulation_2.h 2022-07-13 19:06:05.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_4_hyperbolic_triangulation_2/include/CGAL/Periodic_4_hyperbolic_triangulation_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_4_hyperbolic_triangulation_2/include/CGAL/Periodic_4_hyperbolic_triangulation_2.h $ // $Id: Periodic_4_hyperbolic_triangulation_2.h 26355e2 2020-06-25T12:31:21+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Periodic_4_hyperbolic_triangulation_face_base_2.h cgal-5.5/include/CGAL/Periodic_4_hyperbolic_triangulation_face_base_2.h --- cgal-5.4.1/include/CGAL/Periodic_4_hyperbolic_triangulation_face_base_2.h 2022-06-03 19:05:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Periodic_4_hyperbolic_triangulation_face_base_2.h 2022-07-13 19:06:05.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_4_hyperbolic_triangulation_2/include/CGAL/Periodic_4_hyperbolic_triangulation_face_base_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_4_hyperbolic_triangulation_2/include/CGAL/Periodic_4_hyperbolic_triangulation_face_base_2.h $ // $Id: Periodic_4_hyperbolic_triangulation_face_base_2.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Periodic_4_hyperbolic_triangulation_vertex_base_2.h cgal-5.5/include/CGAL/Periodic_4_hyperbolic_triangulation_vertex_base_2.h --- cgal-5.4.1/include/CGAL/Periodic_4_hyperbolic_triangulation_vertex_base_2.h 2022-06-03 19:05:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Periodic_4_hyperbolic_triangulation_vertex_base_2.h 2022-07-13 19:06:05.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_4_hyperbolic_triangulation_2/include/CGAL/Periodic_4_hyperbolic_triangulation_vertex_base_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_4_hyperbolic_triangulation_2/include/CGAL/Periodic_4_hyperbolic_triangulation_vertex_base_2.h $ // $Id: Periodic_4_hyperbolic_triangulation_vertex_base_2.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/perturb_mesh_3.h cgal-5.5/include/CGAL/perturb_mesh_3.h --- cgal-5.4.1/include/CGAL/perturb_mesh_3.h 2022-06-03 19:04:49.000000000 +0000 +++ cgal-5.5/include/CGAL/perturb_mesh_3.h 2022-07-13 19:05:42.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/perturb_mesh_3.h $ -// $Id: perturb_mesh_3.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/perturb_mesh_3.h $ +// $Id: perturb_mesh_3.h 1c3e09f 2022-01-10T15:32:38+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -52,9 +52,9 @@ (required (in_out(c3t3),*) (domain,*) ) (optional (time_limit_, *, 0 ) - (sliver_bound_, *, parameters::default_values::perturb_sliver_bound ) + (sliver_bound_, *, parameters::default_values_for_mesh_3::perturb_sliver_bound ) (sliver_criterion_, *, - parameters::default_values::default_sliver_criterion(c3t3,sliver_bound_)) + parameters::default_values_for_mesh_3::default_sliver_criterion(c3t3,sliver_bound_)) (perturbation_vector_, *, default_perturbation_vector(c3t3,domain,sliver_criterion_)) ) diff -Nru cgal-5.4.1/include/CGAL/pierce_rectangles_2.h cgal-5.5/include/CGAL/pierce_rectangles_2.h --- cgal-5.4.1/include/CGAL/pierce_rectangles_2.h 2022-06-03 19:03:54.000000000 +0000 +++ cgal-5.5/include/CGAL/pierce_rectangles_2.h 2022-07-13 19:04:40.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Bounding_volumes/include/CGAL/pierce_rectangles_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Bounding_volumes/include/CGAL/pierce_rectangles_2.h $ // $Id: pierce_rectangles_2.h bf325bf 2021-01-06T10:54:49+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Plane_3.h cgal-5.5/include/CGAL/Plane_3.h --- cgal-5.4.1/include/CGAL/Plane_3.h 2022-06-03 19:04:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Plane_3.h 2022-07-13 19:05:23.000000000 +0000 @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Plane_3.h $ -// $Id: Plane_3.h e7357ac 2021-07-19T14:53:27+02:00 Marc Glisse +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Plane_3.h $ +// $Id: Plane_3.h 71bba3e 2022-03-17T22:35:09+01:00 Andreas Fabri // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // @@ -78,6 +78,9 @@ Plane_3(const Point_3& p, const Vector_3& v) : Rep(typename R::Construct_plane_3()(Return_base_tag(), p, v)) {} + Plane_3(Origin o, const Vector_3& v) + : Rep(typename R::Construct_plane_3()(Return_base_tag(), o, v)) {} + Plane_3(const RT& a, const RT& b, const RT& c, const RT& d) : Rep(typename R::Construct_plane_3()(Return_base_tag(), a, b, c, d)) {} diff -Nru cgal-5.4.1/include/CGAL/Plane_separator.h cgal-5.5/include/CGAL/Plane_separator.h --- cgal-5.4.1/include/CGAL/Plane_separator.h 2022-06-03 19:05:47.000000000 +0000 +++ cgal-5.5/include/CGAL/Plane_separator.h 2022-07-13 19:06:43.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Spatial_searching/include/CGAL/Plane_separator.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Spatial_searching/include/CGAL/Plane_separator.h $ // $Id: Plane_separator.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Point_2.h cgal-5.5/include/CGAL/Point_2.h --- cgal-5.4.1/include/CGAL/Point_2.h 2022-06-03 19:04:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Point_2.h 2022-07-13 19:05:24.000000000 +0000 @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Point_2.h $ -// $Id: Point_2.h 1538fdb 2022-04-27T16:30:53+02:00 Laurent Rineau +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Point_2.h $ +// $Id: Point_2.h 2884569 2022-04-27T16:32:06+02:00 Laurent Rineau // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // diff -Nru cgal-5.4.1/include/CGAL/Point_3.h cgal-5.5/include/CGAL/Point_3.h --- cgal-5.4.1/include/CGAL/Point_3.h 2022-06-03 19:04:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Point_3.h 2022-07-13 19:05:24.000000000 +0000 @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Point_3.h $ -// $Id: Point_3.h 1538fdb 2022-04-27T16:30:53+02:00 Laurent Rineau +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Point_3.h $ +// $Id: Point_3.h 2884569 2022-04-27T16:32:06+02:00 Laurent Rineau // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // diff -Nru cgal-5.4.1/include/CGAL/Point_container.h cgal-5.5/include/CGAL/Point_container.h --- cgal-5.4.1/include/CGAL/Point_container.h 2022-06-03 19:05:47.000000000 +0000 +++ cgal-5.5/include/CGAL/Point_container.h 2022-07-13 19:06:43.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Spatial_searching/include/CGAL/Point_container.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Spatial_searching/include/CGAL/Point_container.h $ // $Id: Point_container.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/point_generators_2.h cgal-5.5/include/CGAL/point_generators_2.h --- cgal-5.4.1/include/CGAL/point_generators_2.h 2022-06-03 19:04:13.000000000 +0000 +++ cgal-5.5/include/CGAL/point_generators_2.h 2022-07-13 19:05:01.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Generator/include/CGAL/point_generators_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Generator/include/CGAL/point_generators_2.h $ // $Id: point_generators_2.h d370326 2021-10-27T14:45:10+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/point_generators_3.h cgal-5.5/include/CGAL/point_generators_3.h --- cgal-5.4.1/include/CGAL/point_generators_3.h 2022-06-03 19:04:13.000000000 +0000 +++ cgal-5.5/include/CGAL/point_generators_3.h 2022-07-13 19:05:01.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Generator/include/CGAL/point_generators_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Generator/include/CGAL/point_generators_3.h $ // $Id: point_generators_3.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/point_generators_d.h cgal-5.5/include/CGAL/point_generators_d.h --- cgal-5.4.1/include/CGAL/point_generators_d.h 2022-06-03 19:04:13.000000000 +0000 +++ cgal-5.5/include/CGAL/point_generators_d.h 2022-07-13 19:05:01.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Generator/include/CGAL/point_generators_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Generator/include/CGAL/point_generators_d.h $ // $Id: point_generators_d.h 8bb22d5 2020-03-26T14:23:37+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/pointmatcher/compute_registration_transformation.h cgal-5.5/include/CGAL/pointmatcher/compute_registration_transformation.h --- cgal-5.4.1/include/CGAL/pointmatcher/compute_registration_transformation.h 2022-06-03 19:05:12.000000000 +0000 +++ cgal-5.5/include/CGAL/pointmatcher/compute_registration_transformation.h 2022-07-13 19:06:06.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Point_set_processing_3/include/CGAL/pointmatcher/compute_registration_transformation.h $ -// $Id: compute_registration_transformation.h 3efa431 2021-05-04T10:37:58+02:00 Dmitry Anisimov +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Point_set_processing_3/include/CGAL/pointmatcher/compute_registration_transformation.h $ +// $Id: compute_registration_transformation.h 75b03e6 2022-01-10T15:33:04+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Necip Fazil Yildiran @@ -18,7 +18,7 @@ #include #include -#include +#include #include #include #include @@ -583,35 +583,37 @@ converge is written to `std::cerr` if the registration cannot converge. */ template + class NamedParameters1 = parameters::Default_named_parameters, + class NamedParameters2 = parameters::Default_named_parameters> #ifdef DOXYGEN_RUNNING std::pair #else -std::pair - ::Kernel::Aff_transformation_3, bool> +std::pair + ::Geom_traits::Aff_transformation_3, bool> #endif compute_registration_transformation (const PointRange1& point_set_1, const PointRange2& point_set_2, - const NamedParameters1& np1, const NamedParameters2& np2) + const NamedParameters1& np1 = parameters::default_values(), + const NamedParameters2& np2 = parameters::default_values()) { using parameters::choose_parameter; using parameters::get_parameter; - namespace PSP = CGAL::Point_set_processing_3; - // basic types - typedef typename PSP::GetK::Kernel Kernel; + typedef Point_set_processing_3_np_helper NP_helper1; + typedef Point_set_processing_3_np_helper NP_helper2; + typedef typename NP_helper1::Geom_traits Kernel; typedef typename Kernel::FT Scalar; typedef typename Kernel::Aff_transformation_3 Transformation; // property map types - typedef typename CGAL::GetPointMap::type PointMap1; - typedef typename CGAL::GetPointMap::type PointMap2; + typedef typename NP_helper1::Const_point_map PointMap1; + typedef typename NP_helper2::Const_point_map PointMap2; CGAL_static_assertion_msg((boost::is_same< typename boost::property_traits::value_type, typename boost::property_traits::value_type> ::value), "The point type of input ranges must be the same"); - typedef typename PSP::GetNormalMap::type NormalMap1; - typedef typename PSP::GetNormalMap::type NormalMap2; + typedef typename NP_helper1::Normal_map NormalMap1; + typedef typename NP_helper2::Normal_map NormalMap2; CGAL_static_assertion_msg((boost::is_same< typename boost::property_traits::value_type, typename boost::property_traits::value_type> ::value), "The vector type of input ranges must be the same"); @@ -622,11 +624,11 @@ typedef typename CGAL::Constant_property_map DefaultWeightMap1; typedef typename CGAL::Constant_property_map DefaultWeightMap2; - PointMap1 point_map1 = choose_parameter(get_parameter(np1, internal_np::point_map), PointMap1()); - NormalMap1 normal_map1 = choose_parameter(get_parameter(np1, internal_np::normal_map), NormalMap1()); + PointMap1 point_map1 = NP_helper1::get_const_point_map(point_set_1, np1); + NormalMap1 normal_map1 = NP_helper1::get_normal_map(point_set_1, np1); auto weight_map1 = choose_parameter(get_parameter(np1, internal_np::scalar_map), DefaultWeightMap1(Scalar(1))); - PointMap2 point_map2 = choose_parameter(get_parameter(np2, internal_np::point_map), PointMap2()); - NormalMap2 normal_map2 = choose_parameter(get_parameter(np2, internal_np::normal_map), NormalMap2()); + PointMap2 point_map2 = NP_helper2::get_const_point_map(point_set_2, np2); + NormalMap2 normal_map2 = NP_helper2::get_normal_map(point_set_2, np2); auto weight_map2 = choose_parameter(get_parameter(np2, internal_np::scalar_map), DefaultWeightMap2(Scalar(1))); CGAL_static_assertion_msg((boost::is_same< typename boost::property_traits::value_type, @@ -645,31 +647,6 @@ internal::construct_icp(np1, np2)); } -// convenience overloads -template -std::pair - ::Kernel::Aff_transformation_3, bool> -compute_registration_transformation(const PointRange1& point_set_1, const PointRange2& point_set_2, - const NamedParameters1& np1) -{ - namespace params = CGAL::Point_set_processing_3::parameters; - return compute_registration_transformation(point_set_1, point_set_2, np1, params::all_default(point_set_1)); -} - -template -std::pair > - ::Kernel::Aff_transformation_3, bool> -compute_registration_transformation(const PointRange1& point_set_1, const PointRange2& point_set_2) -{ - namespace params = CGAL::Point_set_processing_3::parameters; - return compute_registration_transformation(point_set_1, point_set_2, - params::all_default(point_set_1), - params::all_default(point_set_2)); -} - - } } // end of namespace CGAL::pointmatcher #endif // CGAL_LINKED_WITH_POINTMATCHER diff -Nru cgal-5.4.1/include/CGAL/pointmatcher/register_point_sets.h cgal-5.5/include/CGAL/pointmatcher/register_point_sets.h --- cgal-5.4.1/include/CGAL/pointmatcher/register_point_sets.h 2022-06-03 19:05:12.000000000 +0000 +++ cgal-5.5/include/CGAL/pointmatcher/register_point_sets.h 2022-07-13 19:06:06.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Point_set_processing_3/include/CGAL/pointmatcher/register_point_sets.h $ -// $Id: register_point_sets.h c253679 2020-04-18T16:27:58+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Point_set_processing_3/include/CGAL/pointmatcher/register_point_sets.h $ +// $Id: register_point_sets.h 75b03e6 2022-01-10T15:33:04+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Necip Fazil Yildiran @@ -18,7 +18,7 @@ #include #include -#include +#include #include #include @@ -225,24 +225,23 @@ failed to converge is written to `std::cerr` if the registration cannot converge. */ template + class NamedParameters1 = parameters::Default_named_parameters, + class NamedParameters2 = parameters::Default_named_parameters> bool register_point_sets (const PointRange1& point_set_1, PointRange2& point_set_2, - const NamedParameters1& np1, const NamedParameters2& np2) + const NamedParameters1& np1 = parameters::default_values(), + const NamedParameters2& np2 = parameters::default_values()) { - using parameters::choose_parameter; - using parameters::get_parameter; - - namespace PSP = CGAL::Point_set_processing_3; - typedef typename PSP::GetK::Kernel Kernel; + typedef typename Point_set_processing_3_np_helper::Geom_traits Kernel; // compute registration transformation std::pair res = compute_registration_transformation(point_set_1, point_set_2, np1, np2); // property map type of point_set_2 - typedef typename CGAL::GetPointMap::type PointMap2; - PointMap2 point_map2 = choose_parameter(get_parameter(np2, internal_np::point_map), PointMap2()); + typedef Point_set_processing_3_np_helper NP_helper2; + typedef typename NP_helper2::Const_point_map PointMap2; + PointMap2 point_map2 = NP_helper2::get_const_point_map(point_set_2, np2); // update CGAL points for (typename PointRange2::iterator it=point_set_2.begin(), @@ -254,27 +253,6 @@ return res.second; } -// convenience overloads -template -bool -register_point_sets(const PointRange1& point_set_1, PointRange2& point_set_2, - const NamedParameters1& np1) -{ - namespace params = CGAL::Point_set_processing_3::parameters; - return register_point_sets(point_set_1, point_set_2, np1, params::all_default(point_set_1)); -} - -template -bool -register_point_sets(const PointRange1& point_set_1, PointRange2& point_set_2) -{ - namespace params = CGAL::Point_set_processing_3::parameters; - return register_point_sets(point_set_1, point_set_2, - params::all_default(point_set_1), - params::all_default(point_set_2)); -} - } } // end of namespace CGAL::pointmatcher #endif // CGAL_LINKED_WITH_POINTMATCHER diff -Nru cgal-5.4.1/include/CGAL/Point_set_2.h cgal-5.5/include/CGAL/Point_set_2.h --- cgal-5.4.1/include/CGAL/Point_set_2.h 2022-06-03 19:05:12.000000000 +0000 +++ cgal-5.5/include/CGAL/Point_set_2.h 2022-07-13 19:06:06.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Point_set_2/include/CGAL/Point_set_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Point_set_2/include/CGAL/Point_set_2.h $ // $Id: Point_set_2.h 7e62c02 2021-04-12T14:02:37+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Point_set_3/IO/LAS.h cgal-5.5/include/CGAL/Point_set_3/IO/LAS.h --- cgal-5.4.1/include/CGAL/Point_set_3/IO/LAS.h 2022-06-03 19:05:12.000000000 +0000 +++ cgal-5.5/include/CGAL/Point_set_3/IO/LAS.h 2022-07-13 19:06:06.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Point_set_3/include/CGAL/Point_set_3/IO/LAS.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Point_set_3/include/CGAL/Point_set_3/IO/LAS.h $ // $Id: LAS.h c8cc074 2021-09-27T15:33:42+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Point_set_3/IO/OFF.h cgal-5.5/include/CGAL/Point_set_3/IO/OFF.h --- cgal-5.4.1/include/CGAL/Point_set_3/IO/OFF.h 2022-06-03 19:05:12.000000000 +0000 +++ cgal-5.5/include/CGAL/Point_set_3/IO/OFF.h 2022-07-13 19:06:06.000000000 +0000 @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Point_set_3/include/CGAL/Point_set_3/IO/OFF.h $ -// $Id: OFF.h a34debc 2021-06-23T22:56:35+02:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Point_set_3/include/CGAL/Point_set_3/IO/OFF.h $ +// $Id: OFF.h 10b0af3 2022-01-13T14:43:34+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Simon Giraudot @@ -13,7 +13,7 @@ #include -#include +#include #include #include #include @@ -22,12 +22,6 @@ #include #include -#ifdef DOXYGEN_RUNNING -#define CGAL_BGL_NP_TEMPLATE_PARAMETERS NamedParameters -#define CGAL_BGL_NP_CLASS NamedParameters -#define CGAL_DEPRECATED -#endif - namespace CGAL { template @@ -146,10 +140,10 @@ \return `true` if the writing was successful, `false` otherwise. */ -template +template bool write_OFF(std::ostream& os, const CGAL::Point_set_3& point_set, - const CGAL_BGL_NP_CLASS& np) + const CGAL_NP_CLASS& np = parameters::default_values()) { if(point_set.has_normal_map()) return Point_set_processing_3::internal::write_OFF_PSP(os, point_set, @@ -160,16 +154,6 @@ np.point_map(point_set.point_map())); } -/// \cond SKIP_IN_MANUAL - -template -bool write_OFF(std::ostream& os, const CGAL::Point_set_3& point_set) -{ - return write_OFF(os, point_set, parameters::all_default()); -} - -/// \endcond - /*! \ingroup PkgPointSet3IOOFF @@ -195,24 +179,13 @@ \return `true` if the writing was successful, `false` otherwise. */ -template -bool write_OFF(const std::string& fname, const CGAL::Point_set_3& point_set, const CGAL_BGL_NP_CLASS& np) +template +bool write_OFF(const std::string& fname, const CGAL::Point_set_3& point_set, const CGAL_NP_CLASS& np = parameters::default_values()) { std::ofstream os(fname); return write_OFF(os, point_set, np); } -/// \cond SKIP_IN_MANUAL - -template -bool write_OFF(const std::string& fname, const CGAL::Point_set_3& point_set) -{ - std::ofstream os(fname); - return write_OFF(os, point_set, parameters::all_default()); -} - -/// \endcond - } // namespace IO #ifndef CGAL_NO_DEPRECATED_CODE diff -Nru cgal-5.4.1/include/CGAL/Point_set_3/IO/PLY.h cgal-5.5/include/CGAL/Point_set_3/IO/PLY.h --- cgal-5.4.1/include/CGAL/Point_set_3/IO/PLY.h 2022-06-03 19:05:12.000000000 +0000 +++ cgal-5.5/include/CGAL/Point_set_3/IO/PLY.h 2022-07-13 19:06:06.000000000 +0000 @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Point_set_3/include/CGAL/Point_set_3/IO/PLY.h $ -// $Id: PLY.h ad79d37 2021-09-29T11:46:30+02:00 Laurent Rineau +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Point_set_3/include/CGAL/Point_set_3/IO/PLY.h $ +// $Id: PLY.h 10b0af3 2022-01-13T14:43:34+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Simon Giraudot @@ -13,7 +13,7 @@ #include -#include +#include #include #include #include @@ -22,12 +22,6 @@ #include #include -#ifdef DOXYGEN_RUNNING -#define CGAL_BGL_NP_TEMPLATE_PARAMETERS NamedParameters -#define CGAL_BGL_NP_CLASS NamedParameters -#define CGAL_DEPRECATED -#endif - namespace CGAL { template @@ -339,11 +333,11 @@ \return `true` if the reading was successful, `false` otherwise. */ -template +template bool read_PLY(const std::string& fname, CGAL::Point_set_3& point_set, std::string& comments, - const CGAL_BGL_NP_CLASS& np) + const CGAL_NP_CLASS& np = parameters::default_values()) { const bool binary = CGAL::parameters::choose_parameter(CGAL::parameters::get_parameter(np, internal_np::use_binary_mode), true); if(binary) @@ -361,27 +355,12 @@ } /// \cond SKIP_IN_MANUAL - -template -bool read_PLY(const std::string& fname, CGAL::Point_set_3& point_set, std::string& comments) -{ - return read_PLY(fname, point_set, comments, parameters::all_default()); -} - -template -bool read_PLY(const std::string& fname, CGAL::Point_set_3& point_set, const CGAL_BGL_NP_CLASS& np) +template +bool read_PLY(const std::string& fname, CGAL::Point_set_3& point_set, const CGAL_NP_CLASS& np = parameters::default_values()) { std::string unused_comments; return read_PLY(fname, point_set, unused_comments, np); } - -template -bool read_PLY(const std::string& fname, CGAL::Point_set_3& point_set) -{ - std::string unused_comments; - return read_PLY(fname, point_set, unused_comments, parameters::all_default()); -} - /// \endcond } // namespace IO @@ -467,11 +446,11 @@ \return `true` if the reading was successful, `false` otherwise. */ -template +template bool write_PLY(std::ostream& os, const CGAL::Point_set_3& point_set, const std::string& comments, - const CGAL_BGL_NP_CLASS& np) + const CGAL_NP_CLASS& np = parameters::default_values()) { typedef CGAL::Point_set_3 Point_set; typedef typename Point_set::Index Index; @@ -684,24 +663,12 @@ /// \cond SKIP_IN_MANUAL -template -bool write_PLY(std::ostream& os, const CGAL::Point_set_3& point_set, const CGAL_BGL_NP_CLASS& np) +template +bool write_PLY(std::ostream& os, const CGAL::Point_set_3& point_set, const CGAL_NP_CLASS& np = parameters::default_values()) { return write_PLY(os, point_set, std::string(), np); } -template -bool write_PLY(std::ostream& os, const CGAL::Point_set_3& point_set, const std::string& comments) -{ - return write_PLY(os, point_set, comments, parameters::all_default()); -} - -template -bool write_PLY(std::ostream& os, const CGAL::Point_set_3& point_set) -{ - return write_PLY(os, point_set, std::string(), parameters::all_default()); -} - /// \endcond /*! @@ -742,11 +709,11 @@ \return `true` if the reading was successful, `false` otherwise. */ -template +template bool write_PLY(const std::string& fname, const CGAL::Point_set_3& point_set, const std::string& comments, - const CGAL_BGL_NP_CLASS& np) + const CGAL_NP_CLASS& np) { const bool binary = CGAL::parameters::choose_parameter(CGAL::parameters::get_parameter(np, internal_np::use_binary_mode), true); if(binary) @@ -765,25 +732,12 @@ /// \cond SKIP_IN_MANUAL -template -bool write_PLY(const std::string& fname, const CGAL::Point_set_3& point_set, - const std::string& comments) -{ - return write_PLY(fname, point_set, comments, parameters::all_default()); -} - -template -bool write_PLY(const std::string& fname, const CGAL::Point_set_3& point_set, const CGAL_BGL_NP_CLASS& np) +template +bool write_PLY(const std::string& fname, const CGAL::Point_set_3& point_set, const CGAL_NP_CLASS& np = parameters::default_values()) { return write_PLY(fname, point_set, std::string(), np); } -template -bool write_PLY(const std::string& fname, const CGAL::Point_set_3& point_set) -{ - return write_PLY(fname, point_set, std::string(), parameters::all_default()); -} - /// \endcond } // namespace IO diff -Nru cgal-5.4.1/include/CGAL/Point_set_3/IO/XYZ.h cgal-5.5/include/CGAL/Point_set_3/IO/XYZ.h --- cgal-5.4.1/include/CGAL/Point_set_3/IO/XYZ.h 2022-06-03 19:05:12.000000000 +0000 +++ cgal-5.5/include/CGAL/Point_set_3/IO/XYZ.h 2022-07-13 19:06:06.000000000 +0000 @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Point_set_3/include/CGAL/Point_set_3/IO/XYZ.h $ -// $Id: XYZ.h a34debc 2021-06-23T22:56:35+02:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Point_set_3/include/CGAL/Point_set_3/IO/XYZ.h $ +// $Id: XYZ.h 10b0af3 2022-01-13T14:43:34+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Simon Giraudot @@ -13,7 +13,7 @@ #include -#include +#include #include #include #include @@ -21,12 +21,6 @@ #include #include -#ifdef DOXYGEN_RUNNING -#define CGAL_BGL_NP_TEMPLATE_PARAMETERS NamedParameters -#define CGAL_BGL_NP_CLASS NamedParameters -#define CGAL_DEPRECATED -#endif - namespace CGAL { template @@ -144,10 +138,10 @@ \return `true` if the writing was successful, `false` otherwise. */ -template +template bool write_XYZ(std::ostream& os, const CGAL::Point_set_3& point_set, - const CGAL_BGL_NP_CLASS& np) + const CGAL_NP_CLASS& np = parameters::default_values()) { if(point_set.has_normal_map()) return Point_set_processing_3::internal::write_XYZ_PSP(os, point_set, @@ -157,16 +151,6 @@ return Point_set_processing_3::internal::write_XYZ_PSP(os, point_set, np.point_map(point_set.point_map())); } -/// \cond SKIP_IN_MANUAL - -template -bool write_XYZ(std::ostream& os, const CGAL::Point_set_3& point_set) -{ - return write_XYZ(os, point_set, parameters::all_default()); -} - -/// \endcond - /*! \ingroup PkgPointSet3IOXYZ @@ -192,24 +176,13 @@ \return `true` if the writing was successful, `false` otherwise. */ -template -bool write_XYZ(const std::string& fname, const CGAL::Point_set_3& point_set, const CGAL_BGL_NP_CLASS& np) +template +bool write_XYZ(const std::string& fname, const CGAL::Point_set_3& point_set, const CGAL_NP_CLASS& np = parameters::default_values()) { std::ofstream os(fname); return write_XYZ(os, point_set, np); } -/// \cond SKIP_IN_MANUAL - -template -bool write_XYZ(const std::string& fname, const CGAL::Point_set_3& point_set) -{ - std::ofstream os(fname); - return write_XYZ(os, point_set, parameters::all_default()); -} - -/// \endcond - } // namespace IO #ifndef CGAL_NO_DEPRECATED_CODE diff -Nru cgal-5.4.1/include/CGAL/Point_set_3/IO.h cgal-5.5/include/CGAL/Point_set_3/IO.h --- cgal-5.4.1/include/CGAL/Point_set_3/IO.h 2022-06-03 19:05:12.000000000 +0000 +++ cgal-5.5/include/CGAL/Point_set_3/IO.h 2022-07-13 19:06:06.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Point_set_3/include/CGAL/Point_set_3/IO.h $ -// $Id: IO.h ad79d37 2021-09-29T11:46:30+02:00 Laurent Rineau +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Point_set_3/include/CGAL/Point_set_3/IO.h $ +// $Id: IO.h 10b0af3 2022-01-13T14:43:34+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -24,11 +24,6 @@ #include #include -#ifdef DOXYGEN_RUNNING -#define CGAL_BGL_NP_TEMPLATE_PARAMETERS NamedParameters -#define CGAL_BGL_NP_CLASS NamedParameters -#endif - namespace CGAL { template @@ -123,10 +118,10 @@ \return `true` if the reading was successful, `false` otherwise. */ -template +template bool read_point_set(const std::string& fname, CGAL::Point_set_3& ps, - const CGAL_BGL_NP_CLASS& np) + const CGAL_NP_CLASS& np = parameters::default_values()) { const std::string ext = internal::get_file_extension(fname); @@ -144,15 +139,6 @@ return false; } -/// \cond SKIP_IN_MANUAL - -template -bool read_point_set(const std::string& fname, CGAL::Point_set_3& ps) -{ - return read_point_set(fname, ps, parameters::all_default()); -} -/// \endcond - } // namespace IO @@ -225,10 +211,10 @@ \return `true` if the writing was successful, `false` otherwise. */ -template +template bool write_point_set(const std::string& fname, CGAL::Point_set_3& ps, - const CGAL_BGL_NP_CLASS& np) + const CGAL_NP_CLASS& np = parameters::default_values()) { const std::string ext = internal::get_file_extension(fname); @@ -246,16 +232,6 @@ return false; } -/// \cond SKIP_IN_MANUAL - -template -bool write_point_set(const std::string& fname, CGAL::Point_set_3& ps) -{ - return write_point_set(fname, ps, parameters::all_default()); -} - -/// \endcond - } // namespace IO } // namespace CGAL diff -Nru cgal-5.4.1/include/CGAL/Point_set_3.h cgal-5.5/include/CGAL/Point_set_3.h --- cgal-5.4.1/include/CGAL/Point_set_3.h 2022-06-03 19:05:12.000000000 +0000 +++ cgal-5.5/include/CGAL/Point_set_3.h 2022-07-13 19:06:06.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Point_set_3/include/CGAL/Point_set_3.h $ -// $Id: Point_set_3.h 8166579 2021-10-11T19:58:07+02:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Point_set_3/include/CGAL/Point_set_3.h $ +// $Id: Point_set_3.h b24959c 2022-03-18T20:02:10+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -21,9 +21,10 @@ #include -#include +#include #include #include +#include #include #include @@ -165,7 +166,10 @@ public: typedef CGAL::Property_map_to_unary_function > Unary_function; typedef boost::transform_iterator iterator; // for NP helper + typedef boost::transform_iterator const_iterator; + private: const_iterator m_begin; const_iterator m_end; @@ -475,7 +479,7 @@ iterator insert (const Point& p, const Vector& n) { iterator out = insert (p); - assert (has_normal_map()); + CGAL_assertion(has_normal_map()); m_normals[size()-1] = n; return out; } @@ -1294,36 +1298,68 @@ return ps; } - - /// \cond SKIP_IN_MANUAL -namespace Point_set_processing_3 +// specialization for default named parameters +template +struct Point_set_processing_3_np_helper, NamedParameters, NP_TAG> { - template - class GetFT > + typedef typename std::iterator_traits::iterator>::value_type Value_type; + + typedef typename Kernel_traits::Kernel Default_geom_traits; + typedef typename Point_set_3::template Property_map DefaultNMap; + typedef typename Point_set_3::template Property_map DefaultPMap; + typedef const typename Point_set_3::template Property_map DefaultConstPMap; + + typedef typename internal_np::Lookup_named_param_def ::type Point_map; // public + typedef typename internal_np::Lookup_named_param_def ::type Const_point_map; // public + + typedef typename internal_np::Lookup_named_param_def < + internal_np::geom_traits_t, + NamedParameters, + Default_geom_traits + > ::type Geom_traits; // public + + typedef typename Geom_traits::FT FT; // public + + typedef typename internal_np::Lookup_named_param_def< + internal_np::normal_t, + NamedParameters, + DefaultNMap + > ::type Normal_map; // public + + static Point_map get_point_map(Point_set_3& ps, const NamedParameters& np) { - public: - typedef typename Kernel_traits::Kernel::FT type; - }; + return parameters::choose_parameter(parameters::get_parameter(np, internal_np::point_map), ps.point_map()); + } - namespace parameters + static Const_point_map get_const_point_map(const Point_set_3& ps, const NamedParameters& np) { - template - Named_function_parameters - ::Kernel, - internal_np::geom_traits_t, - Named_function_parameters - ::template Property_map, - internal_np::normal_t, - Named_function_parameters - ::template Property_map, - internal_np::point_t> > > - inline all_default(const CGAL::Point_set_3& ps) - { - return ps.parameters(); - } + return parameters::choose_parameter(parameters::get_parameter(np, internal_np::point_map), ps.point_map()); } -} + + static const Normal_map get_normal_map(const Point_set_3& ps, const NamedParameters& np) + { + return parameters::choose_parameter(parameters::get_parameter(np, internal_np::normal_map), ps.normal_map()); + } + + static Normal_map get_normal_map(Point_set_3& ps, const NamedParameters& np) + { + return parameters::choose_parameter(parameters::get_parameter(np, internal_np::normal_map), ps.normal_map()); + } + + static Geom_traits get_geom_traits(const Point_set_3&, const NamedParameters& np) + { + return parameters::choose_parameter(parameters::get_parameter(np, internal_np::geom_traits)); + } + + static constexpr bool has_normal_map() + { + return true; + } + +}; /// \endcond } // namespace CGAL diff -Nru cgal-5.4.1/include/CGAL/Point_set_processing_3/internal/bbox_diagonal.h cgal-5.5/include/CGAL/Point_set_processing_3/internal/bbox_diagonal.h --- cgal-5.4.1/include/CGAL/Point_set_processing_3/internal/bbox_diagonal.h 2022-06-03 19:05:12.000000000 +0000 +++ cgal-5.5/include/CGAL/Point_set_processing_3/internal/bbox_diagonal.h 2022-07-13 19:06:06.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Point_set_processing_3/include/CGAL/Point_set_processing_3/internal/bbox_diagonal.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Point_set_processing_3/include/CGAL/Point_set_processing_3/internal/bbox_diagonal.h $ // $Id: bbox_diagonal.h d6cf972 2020-04-17T09:22:57+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Point_set_processing_3/internal/Callback_wrapper.h cgal-5.5/include/CGAL/Point_set_processing_3/internal/Callback_wrapper.h --- cgal-5.4.1/include/CGAL/Point_set_processing_3/internal/Callback_wrapper.h 2022-06-03 19:05:12.000000000 +0000 +++ cgal-5.5/include/CGAL/Point_set_processing_3/internal/Callback_wrapper.h 2022-07-13 19:06:06.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Point_set_processing_3/include/CGAL/Point_set_processing_3/internal/Callback_wrapper.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Point_set_processing_3/include/CGAL/Point_set_processing_3/internal/Callback_wrapper.h $ // $Id: Callback_wrapper.h 17ac255 2021-05-18T15:43:59+02:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Point_set_processing_3/internal/Neighbor_query.h cgal-5.5/include/CGAL/Point_set_processing_3/internal/Neighbor_query.h --- cgal-5.4.1/include/CGAL/Point_set_processing_3/internal/Neighbor_query.h 2022-06-03 19:05:12.000000000 +0000 +++ cgal-5.5/include/CGAL/Point_set_processing_3/internal/Neighbor_query.h 2022-07-13 19:06:06.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Point_set_processing_3/include/CGAL/Point_set_processing_3/internal/Neighbor_query.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Point_set_processing_3/include/CGAL/Point_set_processing_3/internal/Neighbor_query.h $ // $Id: Neighbor_query.h 590ddf8 2021-10-08T15:38:47+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Point_set_processing_3/internal/Rich_grid.h cgal-5.5/include/CGAL/Point_set_processing_3/internal/Rich_grid.h --- cgal-5.4.1/include/CGAL/Point_set_processing_3/internal/Rich_grid.h 2022-06-03 19:05:12.000000000 +0000 +++ cgal-5.5/include/CGAL/Point_set_processing_3/internal/Rich_grid.h 2022-07-13 19:06:06.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Point_set_processing_3/include/CGAL/Point_set_processing_3/internal/Rich_grid.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Point_set_processing_3/include/CGAL/Point_set_processing_3/internal/Rich_grid.h $ // $Id: Rich_grid.h 67b53fa 2020-04-29T14:06:37+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Point_set_processing_3/internal/Search_traits_vertex_handle_3.h cgal-5.5/include/CGAL/Point_set_processing_3/internal/Search_traits_vertex_handle_3.h --- cgal-5.4.1/include/CGAL/Point_set_processing_3/internal/Search_traits_vertex_handle_3.h 2022-06-03 19:05:12.000000000 +0000 +++ cgal-5.5/include/CGAL/Point_set_processing_3/internal/Search_traits_vertex_handle_3.h 2022-07-13 19:06:06.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Point_set_processing_3/include/CGAL/Point_set_processing_3/internal/Search_traits_vertex_handle_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Point_set_processing_3/include/CGAL/Point_set_processing_3/internal/Search_traits_vertex_handle_3.h $ // $Id: Search_traits_vertex_handle_3.h 8bb22d5 2020-03-26T14:23:37+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Point_set_processing_3/internal/Voronoi_covariance_3/voronoi_covariance_3.h cgal-5.5/include/CGAL/Point_set_processing_3/internal/Voronoi_covariance_3/voronoi_covariance_3.h --- cgal-5.4.1/include/CGAL/Point_set_processing_3/internal/Voronoi_covariance_3/voronoi_covariance_3.h 2022-06-03 19:05:12.000000000 +0000 +++ cgal-5.5/include/CGAL/Point_set_processing_3/internal/Voronoi_covariance_3/voronoi_covariance_3.h 2022-07-13 19:06:06.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Point_set_processing_3/include/CGAL/Point_set_processing_3/internal/Voronoi_covariance_3/voronoi_covariance_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Point_set_processing_3/include/CGAL/Point_set_processing_3/internal/Voronoi_covariance_3/voronoi_covariance_3.h $ // $Id: voronoi_covariance_3.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Point_set_processing_3/internal/Voronoi_covariance_3/voronoi_covariance_sphere_3.h cgal-5.5/include/CGAL/Point_set_processing_3/internal/Voronoi_covariance_3/voronoi_covariance_sphere_3.h --- cgal-5.4.1/include/CGAL/Point_set_processing_3/internal/Voronoi_covariance_3/voronoi_covariance_sphere_3.h 2022-06-03 19:05:12.000000000 +0000 +++ cgal-5.5/include/CGAL/Point_set_processing_3/internal/Voronoi_covariance_3/voronoi_covariance_sphere_3.h 2022-07-13 19:06:06.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Point_set_processing_3/include/CGAL/Point_set_processing_3/internal/Voronoi_covariance_3/voronoi_covariance_sphere_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Point_set_processing_3/include/CGAL/Point_set_processing_3/internal/Voronoi_covariance_3/voronoi_covariance_sphere_3.h $ // $Id: voronoi_covariance_sphere_3.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/point_set_processing_assertions.h cgal-5.5/include/CGAL/point_set_processing_assertions.h --- cgal-5.4.1/include/CGAL/point_set_processing_assertions.h 2022-06-03 19:05:12.000000000 +0000 +++ cgal-5.5/include/CGAL/point_set_processing_assertions.h 2022-07-13 19:06:06.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Point_set_processing_3/include/CGAL/point_set_processing_assertions.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Point_set_processing_3/include/CGAL/point_set_processing_assertions.h $ // $Id: point_set_processing_assertions.h 5a36ff8 2020-12-04T08:02:26+00:00 Giles Bathgate // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Point_traits.h cgal-5.5/include/CGAL/Point_traits.h --- cgal-5.4.1/include/CGAL/Point_traits.h 2022-06-03 19:05:59.000000000 +0000 +++ cgal-5.5/include/CGAL/Point_traits.h 2022-07-13 19:06:57.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesher/include/CGAL/Point_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesher/include/CGAL/Point_traits.h $ // $Id: Point_traits.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Point_with_normal_3.h cgal-5.5/include/CGAL/Point_with_normal_3.h --- cgal-5.4.1/include/CGAL/Point_with_normal_3.h 2022-06-03 19:05:12.000000000 +0000 +++ cgal-5.5/include/CGAL/Point_with_normal_3.h 2022-07-13 19:06:06.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Point_set_processing_3/include/CGAL/Point_with_normal_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Point_set_processing_3/include/CGAL/Point_with_normal_3.h $ // $Id: Point_with_normal_3.h 590ddf8 2021-10-08T15:38:47+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Point_with_psc_localisation.h cgal-5.5/include/CGAL/Point_with_psc_localisation.h --- cgal-5.4.1/include/CGAL/Point_with_psc_localisation.h 2022-06-03 19:05:59.000000000 +0000 +++ cgal-5.5/include/CGAL/Point_with_psc_localisation.h 2022-07-13 19:06:57.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesher/include/CGAL/Point_with_psc_localisation.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesher/include/CGAL/Point_with_psc_localisation.h $ // $Id: Point_with_psc_localisation.h 4e519a3 2021-05-05T13:15:37+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Point_with_surface_index_geom_traits.h cgal-5.5/include/CGAL/Point_with_surface_index_geom_traits.h --- cgal-5.4.1/include/CGAL/Point_with_surface_index_geom_traits.h 2022-06-03 19:05:59.000000000 +0000 +++ cgal-5.5/include/CGAL/Point_with_surface_index_geom_traits.h 2022-07-13 19:06:57.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesher/include/CGAL/Point_with_surface_index_geom_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesher/include/CGAL/Point_with_surface_index_geom_traits.h $ // $Id: Point_with_surface_index_geom_traits.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Point_with_surface_index.h cgal-5.5/include/CGAL/Point_with_surface_index.h --- cgal-5.4.1/include/CGAL/Point_with_surface_index.h 2022-06-03 19:05:59.000000000 +0000 +++ cgal-5.5/include/CGAL/Point_with_surface_index.h 2022-07-13 19:06:57.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesher/include/CGAL/Point_with_surface_index.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesher/include/CGAL/Point_with_surface_index.h $ // $Id: Point_with_surface_index.h 4e519a3 2021-05-05T13:15:37+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Poisson_implicit_surface_3.h cgal-5.5/include/CGAL/Poisson_implicit_surface_3.h --- cgal-5.4.1/include/CGAL/Poisson_implicit_surface_3.h 2022-06-03 19:05:13.000000000 +0000 +++ cgal-5.5/include/CGAL/Poisson_implicit_surface_3.h 2022-07-13 19:06:07.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Poisson_surface_reconstruction_3/include/CGAL/Poisson_implicit_surface_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Poisson_surface_reconstruction_3/include/CGAL/Poisson_implicit_surface_3.h $ // $Id: Poisson_implicit_surface_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Poisson_mesh_cell_criteria_3.h cgal-5.5/include/CGAL/Poisson_mesh_cell_criteria_3.h --- cgal-5.4.1/include/CGAL/Poisson_mesh_cell_criteria_3.h 2022-06-03 19:05:13.000000000 +0000 +++ cgal-5.5/include/CGAL/Poisson_mesh_cell_criteria_3.h 2022-07-13 19:06:07.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Poisson_surface_reconstruction_3/include/CGAL/Poisson_mesh_cell_criteria_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Poisson_surface_reconstruction_3/include/CGAL/Poisson_mesh_cell_criteria_3.h $ // $Id: Poisson_mesh_cell_criteria_3.h 848aa7d 2021-02-08T10:16:59+01:00 Simon Giraudot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Poisson_reconstruction_function.h cgal-5.5/include/CGAL/Poisson_reconstruction_function.h --- cgal-5.4.1/include/CGAL/Poisson_reconstruction_function.h 2022-06-03 19:05:13.000000000 +0000 +++ cgal-5.5/include/CGAL/Poisson_reconstruction_function.h 2022-07-13 19:06:07.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Poisson_surface_reconstruction_3/include/CGAL/Poisson_reconstruction_function.h $ -// $Id: Poisson_reconstruction_function.h 3b7754f 2021-09-20T12:44:38+01:00 Andreas Fabri +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Poisson_surface_reconstruction_3/include/CGAL/Poisson_reconstruction_function.h $ +// $Id: Poisson_reconstruction_function.h 4968d21 2022-05-17T10:31:07+01:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Laurent Saboret, Pierre Alliez @@ -39,7 +39,7 @@ #include #include #include -#include +#include #include #include @@ -763,8 +763,7 @@ /// Poisson reconstruction. /// Returns false on error. /// - /// @commentheading Template parameters: - /// @param SparseLinearAlgebraTraits_d Symmetric definite positive sparse linear solver. + /// @tparam SparseLinearAlgebraTraits_d Symmetric definite positive sparse linear solver. template bool solve_poisson( SparseLinearAlgebraTraits_d solver, ///< sparse linear solver @@ -1203,8 +1202,7 @@ /// Assemble vi's row of the linear system A*X=B /// - /// @commentheading Template parameters: - /// @param SparseLinearAlgebraTraits_d Symmetric definite positive sparse linear solver. + /// @tparam SparseLinearAlgebraTraits_d Symmetric definite positive sparse linear solver. template void assemble_poisson_row(typename SparseLinearAlgebraTraits_d::Matrix& A, Vertex_handle vi, diff -Nru cgal-5.4.1/include/CGAL/poisson_refine_triangulation.h cgal-5.5/include/CGAL/poisson_refine_triangulation.h --- cgal-5.4.1/include/CGAL/poisson_refine_triangulation.h 2022-06-03 19:05:13.000000000 +0000 +++ cgal-5.5/include/CGAL/poisson_refine_triangulation.h 2022-07-13 19:06:07.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Poisson_surface_reconstruction_3/include/CGAL/poisson_refine_triangulation.h $ -// $Id: poisson_refine_triangulation.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Poisson_surface_reconstruction_3/include/CGAL/poisson_refine_triangulation.h $ +// $Id: poisson_refine_triangulation.h 3ad94a7 2022-05-17T12:04:52+01:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Laurent RINEAU, Laurent Saboret @@ -180,17 +180,17 @@ /// bad means badly shaped or too big). /// @return the number of vertices inserted. /// -/// @commentheading Preconditions: +/// \pre /// - Tr must use a geometric traits with robust circumcenter computation. /// - convergence is guaranteed if radius_edge_ratio_bound >= 1.0. /// -/// @commentheading Template Parameters: -/// @param Tr 3D Delaunay triangulation. -/// @param Surface Sphere_3 or Iso_cuboid_3. -/// @param Sizing_field A sizing field functor type -/// @param Second_sizing_field A sizing field functor type +/// *Template Parameters* +/// @tparam Tr 3D Delaunay triangulation. +/// @tparam Surface Sphere_3 or Iso_cuboid_3. +/// @tparam Sizing_field A sizing field functor type +/// @tparam Second_sizing_field A sizing field functor type /// -/// @commentheading Sizing fields +/// *Sizing fields* /// - The first sizing field is the real sizing field that is targeted by /// the refinement process. It may be costly to use. /// - The second sizing field is supposed to be a sizing field that is less diff -Nru cgal-5.4.1/include/CGAL/poisson_surface_reconstruction.h cgal-5.5/include/CGAL/poisson_surface_reconstruction.h --- cgal-5.4.1/include/CGAL/poisson_surface_reconstruction.h 2022-06-03 19:05:13.000000000 +0000 +++ cgal-5.5/include/CGAL/poisson_surface_reconstruction.h 2022-07-13 19:06:07.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Poisson_surface_reconstruction_3/include/CGAL/poisson_surface_reconstruction.h $ -// $Id: poisson_surface_reconstruction.h 848aa7d 2021-02-08T10:16:59+01:00 Simon Giraudot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Poisson_surface_reconstruction_3/include/CGAL/poisson_surface_reconstruction.h $ +// $Id: poisson_surface_reconstruction.h f43c55f 2022-01-13T09:43:22+01:00 Stéphane Laurent // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Simon Giraudot @@ -40,7 +40,7 @@ This function relies mainly on the size parameter `spacing`. A reasonable solution is to use the average spacing of the input - point set (using `compute_average_spacing()` for example). Higher + point set (using `compute_average_spacing()` for example). Smaller values increase the precision of the output mesh at the cost of higher computation time. diff -Nru cgal-5.4.1/include/CGAL/Polychain_2.h cgal-5.5/include/CGAL/Polychain_2.h --- cgal-5.4.1/include/CGAL/Polychain_2.h 2022-06-03 19:05:39.000000000 +0000 +++ cgal-5.5/include/CGAL/Polychain_2.h 2022-07-13 19:06:35.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_Linf_2/include/CGAL/Polychain_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_Linf_2/include/CGAL/Polychain_2.h $ // $Id: Polychain_2.h 4e519a3 2021-05-05T13:15:37+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polygon_2/Polygon_2_algorithms_impl.h cgal-5.5/include/CGAL/Polygon_2/Polygon_2_algorithms_impl.h --- cgal-5.4.1/include/CGAL/Polygon_2/Polygon_2_algorithms_impl.h 2022-06-03 19:05:13.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_2/Polygon_2_algorithms_impl.h 2022-07-13 19:06:07.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon/include/CGAL/Polygon_2/Polygon_2_algorithms_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon/include/CGAL/Polygon_2/Polygon_2_algorithms_impl.h $ // $Id: Polygon_2_algorithms_impl.h 6b87fe3 2020-12-05T11:11:33+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polygon_2/Polygon_2_edge_circulator.h cgal-5.5/include/CGAL/Polygon_2/Polygon_2_edge_circulator.h --- cgal-5.4.1/include/CGAL/Polygon_2/Polygon_2_edge_circulator.h 2022-06-03 19:05:13.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_2/Polygon_2_edge_circulator.h 2022-07-13 19:06:07.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon/include/CGAL/Polygon_2/Polygon_2_edge_circulator.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon/include/CGAL/Polygon_2/Polygon_2_edge_circulator.h $ // $Id: Polygon_2_edge_circulator.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polygon_2/Polygon_2_edge_iterator.h cgal-5.5/include/CGAL/Polygon_2/Polygon_2_edge_iterator.h --- cgal-5.4.1/include/CGAL/Polygon_2/Polygon_2_edge_iterator.h 2022-06-03 19:05:13.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_2/Polygon_2_edge_iterator.h 2022-07-13 19:06:07.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon/include/CGAL/Polygon_2/Polygon_2_edge_iterator.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon/include/CGAL/Polygon_2/Polygon_2_edge_iterator.h $ // $Id: Polygon_2_edge_iterator.h f7e2c03 2020-08-13T15:37:10+02:00 Simon Giraudot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polygon_2/Polygon_2_impl.h cgal-5.5/include/CGAL/Polygon_2/Polygon_2_impl.h --- cgal-5.4.1/include/CGAL/Polygon_2/Polygon_2_impl.h 2022-06-03 19:05:13.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_2/Polygon_2_impl.h 2022-07-13 19:06:07.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon/include/CGAL/Polygon_2/Polygon_2_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon/include/CGAL/Polygon_2/Polygon_2_impl.h $ // $Id: Polygon_2_impl.h 4e519a3 2021-05-05T13:15:37+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polygon_2/Polygon_2_simplicity.h cgal-5.5/include/CGAL/Polygon_2/Polygon_2_simplicity.h --- cgal-5.4.1/include/CGAL/Polygon_2/Polygon_2_simplicity.h 2022-06-03 19:05:13.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_2/Polygon_2_simplicity.h 2022-07-13 19:06:07.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon/include/CGAL/Polygon_2/Polygon_2_simplicity.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon/include/CGAL/Polygon_2/Polygon_2_simplicity.h $ // $Id: Polygon_2_simplicity.h 6b4ba80 2021-03-31T15:58:09+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polygon_2/Polygon_2_vertex_circulator.h cgal-5.5/include/CGAL/Polygon_2/Polygon_2_vertex_circulator.h --- cgal-5.4.1/include/CGAL/Polygon_2/Polygon_2_vertex_circulator.h 2022-06-03 19:05:13.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_2/Polygon_2_vertex_circulator.h 2022-07-13 19:06:07.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon/include/CGAL/Polygon_2/Polygon_2_vertex_circulator.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon/include/CGAL/Polygon_2/Polygon_2_vertex_circulator.h $ // $Id: Polygon_2_vertex_circulator.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polygon_2/polygon_assertions.h cgal-5.5/include/CGAL/Polygon_2/polygon_assertions.h --- cgal-5.4.1/include/CGAL/Polygon_2/polygon_assertions.h 2022-06-03 19:05:13.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_2/polygon_assertions.h 2022-07-13 19:06:07.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon/include/CGAL/Polygon_2/polygon_assertions.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon/include/CGAL/Polygon_2/polygon_assertions.h $ // $Id: polygon_assertions.h 5a36ff8 2020-12-04T08:02:26+00:00 Giles Bathgate // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polygon_2_algorithms.h cgal-5.5/include/CGAL/Polygon_2_algorithms.h --- cgal-5.4.1/include/CGAL/Polygon_2_algorithms.h 2022-06-03 19:05:13.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_2_algorithms.h 2022-07-13 19:06:07.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon/include/CGAL/Polygon_2_algorithms.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon/include/CGAL/Polygon_2_algorithms.h $ // $Id: Polygon_2_algorithms.h 875f823 2020-08-26T11:10:29+01:00 Andreas Fabri // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polygon_2.h cgal-5.5/include/CGAL/Polygon_2.h --- cgal-5.4.1/include/CGAL/Polygon_2.h 2022-06-03 19:05:13.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_2.h 2022-07-13 19:06:07.000000000 +0000 @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon/include/CGAL/Polygon_2.h $ -// $Id: Polygon_2.h e2cda48 2022-02-02T12:51:24+00:00 Andreas Fabri +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon/include/CGAL/Polygon_2.h $ +// $Id: Polygon_2.h 3c8d97c 2022-03-04T09:57:53+00:00 Andreas Fabri // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // @@ -29,6 +29,7 @@ #include #include +#include #include #include @@ -117,16 +118,25 @@ /// vertex iterator type typedef typename Container::iterator Vertex_iterator; + /// a range type to iterate over the vertices + typedef Container Vertices; //typedef typename Container::const_iterator Vertex_const_iterator; ?? #ifdef DOXYGEN_RUNNING /// vertex circulator type typedef unspecified_type Vertex_circulator; - /// edge circulator type + + /// edge iterator type typedef unspecified_type Edge_const_iterator; + + /// a range type to iterate over the vertices + typedef unspecified_type Edges; + /// edge circular type typedef unspecified_type Edge_const_circulator; + + // #else typedef Vertex_const_circulator Vertex_circulator; typedef Polygon_2_edge_iterator Edge_const_iterator; @@ -135,6 +145,8 @@ typedef Polygon_2_edge_iterator Vertex_pair_iterator; + + typedef Iterator_range Edges; #endif // DOXYGEN_RUNNING /// @} @@ -262,22 +274,28 @@ /// Returns a constant iterator that allows to traverse the /// vertices of the polygon. - Vertex_const_iterator vertices_begin() const + Vertex_iterator vertices_begin() const { return const_cast(*this).d_container.begin(); } /// Returns the corresponding past-the-end iterator. - Vertex_const_iterator vertices_end() const + Vertex_iterator vertices_end() const { return const_cast(*this).d_container.end(); } + /// returns the range of vertices. + const Vertices& vertices() const + { + return d_container; + } + // Vertex_const_circulator vertices_circulator() const // { return Vertex_const_circulator(&d_container, d_container.begin()); } - /// Returns a mutable circulator that allows to traverse the + /// Returns a constant circulator that allows to traverse the /// vertices of the polygon. - Vertex_const_circulator vertices_circulator() const + Vertex_circulator vertices_circulator() const { Polygon_2& self = const_cast(*this); - return Vertex_const_circulator(&self.d_container, + return Vertex_circulator(&self.d_container, self.d_container.begin()); } @@ -290,6 +308,12 @@ Edge_const_iterator edges_end() const { return Edge_const_iterator(&d_container, d_container.end()); } + /// returns the range of edges. + Edges edges() const + { + return make_range(edges_begin(),edges_end()); + } + /// Returns a non-mutable circulator that allows to traverse the /// edges of the polygon. Edge_const_circulator edges_circulator() const @@ -380,7 +404,7 @@ self.d_container.end(), traits); } - /// Returns topmost vertex of the polygon with the largest + /// Returns the topmost vertex of the polygon with the largest /// `y`-coordinate. Vertex_const_iterator top_vertex() const { diff -Nru cgal-5.4.1/include/CGAL/Polygonal_schema_fwd.h cgal-5.5/include/CGAL/Polygonal_schema_fwd.h --- cgal-5.4.1/include/CGAL/Polygonal_schema_fwd.h 2022-06-03 19:05:58.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygonal_schema_fwd.h 2022-07-13 19:06:55.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_topology/include/CGAL/Polygonal_schema_fwd.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_topology/include/CGAL/Polygonal_schema_fwd.h $ // $Id: Polygonal_schema_fwd.h 0308d1a 2020-03-27T18:35:15+01:00 Guillaume Damiand // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polygonal_schema.h cgal-5.5/include/CGAL/Polygonal_schema.h --- cgal-5.4.1/include/CGAL/Polygonal_schema.h 2022-06-03 19:05:58.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygonal_schema.h 2022-07-13 19:06:55.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_topology/include/CGAL/Polygonal_schema.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_topology/include/CGAL/Polygonal_schema.h $ // $Id: Polygonal_schema.h 52186a0 2020-05-14T11:38:15+02:00 Guillaume Damiand // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polygonal_schema_min_items.h cgal-5.5/include/CGAL/Polygonal_schema_min_items.h --- cgal-5.4.1/include/CGAL/Polygonal_schema_min_items.h 2022-06-03 19:05:58.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygonal_schema_min_items.h 2022-07-13 19:06:55.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_topology/include/CGAL/Polygonal_schema_min_items.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_topology/include/CGAL/Polygonal_schema_min_items.h $ // $Id: Polygonal_schema_min_items.h 8bb22d5 2020-03-26T14:23:37+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polygonal_surface_reconstruction/internal/alpha_shape_mesh.h cgal-5.5/include/CGAL/Polygonal_surface_reconstruction/internal/alpha_shape_mesh.h --- cgal-5.4.1/include/CGAL/Polygonal_surface_reconstruction/internal/alpha_shape_mesh.h 2022-06-03 19:05:16.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygonal_surface_reconstruction/internal/alpha_shape_mesh.h 2022-07-13 19:06:09.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygonal_surface_reconstruction/include/CGAL/Polygonal_surface_reconstruction/internal/alpha_shape_mesh.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygonal_surface_reconstruction/include/CGAL/Polygonal_surface_reconstruction/internal/alpha_shape_mesh.h $ // $Id: alpha_shape_mesh.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polygonal_surface_reconstruction/internal/compute_confidences.h cgal-5.5/include/CGAL/Polygonal_surface_reconstruction/internal/compute_confidences.h --- cgal-5.4.1/include/CGAL/Polygonal_surface_reconstruction/internal/compute_confidences.h 2022-06-03 19:05:16.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygonal_surface_reconstruction/internal/compute_confidences.h 2022-07-13 19:06:09.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygonal_surface_reconstruction/include/CGAL/Polygonal_surface_reconstruction/internal/compute_confidences.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygonal_surface_reconstruction/include/CGAL/Polygonal_surface_reconstruction/internal/compute_confidences.h $ // $Id: compute_confidences.h facabca 2021-09-10T17:47:17+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polygonal_surface_reconstruction/internal/hypothesis.h cgal-5.5/include/CGAL/Polygonal_surface_reconstruction/internal/hypothesis.h --- cgal-5.4.1/include/CGAL/Polygonal_surface_reconstruction/internal/hypothesis.h 2022-06-03 19:05:16.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygonal_surface_reconstruction/internal/hypothesis.h 2022-07-13 19:06:09.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygonal_surface_reconstruction/include/CGAL/Polygonal_surface_reconstruction/internal/hypothesis.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygonal_surface_reconstruction/include/CGAL/Polygonal_surface_reconstruction/internal/hypothesis.h $ // $Id: hypothesis.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polygonal_surface_reconstruction/internal/parameters.h cgal-5.5/include/CGAL/Polygonal_surface_reconstruction/internal/parameters.h --- cgal-5.4.1/include/CGAL/Polygonal_surface_reconstruction/internal/parameters.h 2022-06-03 19:05:16.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygonal_surface_reconstruction/internal/parameters.h 2022-07-13 19:06:09.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygonal_surface_reconstruction/include/CGAL/Polygonal_surface_reconstruction/internal/parameters.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygonal_surface_reconstruction/include/CGAL/Polygonal_surface_reconstruction/internal/parameters.h $ // $Id: parameters.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polygonal_surface_reconstruction/internal/point_set_with_planes.h cgal-5.5/include/CGAL/Polygonal_surface_reconstruction/internal/point_set_with_planes.h --- cgal-5.4.1/include/CGAL/Polygonal_surface_reconstruction/internal/point_set_with_planes.h 2022-06-03 19:05:16.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygonal_surface_reconstruction/internal/point_set_with_planes.h 2022-07-13 19:06:09.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygonal_surface_reconstruction/include/CGAL/Polygonal_surface_reconstruction/internal/point_set_with_planes.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygonal_surface_reconstruction/include/CGAL/Polygonal_surface_reconstruction/internal/point_set_with_planes.h $ // $Id: point_set_with_planes.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polygonal_surface_reconstruction.h cgal-5.5/include/CGAL/Polygonal_surface_reconstruction.h --- cgal-5.4.1/include/CGAL/Polygonal_surface_reconstruction.h 2022-06-03 19:05:16.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygonal_surface_reconstruction.h 2022-07-13 19:06:09.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygonal_surface_reconstruction/include/CGAL/Polygonal_surface_reconstruction.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygonal_surface_reconstruction/include/CGAL/Polygonal_surface_reconstruction.h $ // $Id: Polygonal_surface_reconstruction.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polygon_convex_decomposition_2.h cgal-5.5/include/CGAL/Polygon_convex_decomposition_2.h --- cgal-5.4.1/include/CGAL/Polygon_convex_decomposition_2.h 2022-06-03 19:04:52.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_convex_decomposition_2.h 2022-07-13 19:05:45.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Minkowski_sum_2/include/CGAL/Polygon_convex_decomposition_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Minkowski_sum_2/include/CGAL/Polygon_convex_decomposition_2.h $ // $Id: Polygon_convex_decomposition_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/polygon_function_objects.h cgal-5.5/include/CGAL/polygon_function_objects.h --- cgal-5.4.1/include/CGAL/polygon_function_objects.h 2022-06-03 19:05:06.000000000 +0000 +++ cgal-5.5/include/CGAL/polygon_function_objects.h 2022-07-13 19:06:00.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Partition_2/include/CGAL/polygon_function_objects.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Partition_2/include/CGAL/polygon_function_objects.h $ // $Id: polygon_function_objects.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/angle_and_area_smoothing.h cgal-5.5/include/CGAL/Polygon_mesh_processing/angle_and_area_smoothing.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/angle_and_area_smoothing.h 1970-01-01 00:00:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/angle_and_area_smoothing.h 2022-07-13 19:06:07.000000000 +0000 @@ -0,0 +1,367 @@ +// Copyright (c) 2018 GeometryFactory (France). +// All rights reserved. +// +// This file is part of CGAL (www.cgal.org). +// +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/angle_and_area_smoothing.h $ +// $Id: angle_and_area_smoothing.h ec53e0a 2022-04-21T06:51:12+02:00 Sébastien Loriot +// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial +// +// +// Author(s) : Mael Rouxel-Labbé +// Konstantinos Katrioplas (konst.katrioplas@gmail.com) + +#ifndef CGAL_POLYGON_MESH_PROCESSING_ANGLE_AND_AREA_SMOOTHING_H +#define CGAL_POLYGON_MESH_PROCESSING_ANGLE_AND_AREA_SMOOTHING_H + +#include + +#include +#include +#include + +#include +#include + +#include + +namespace CGAL { +namespace Polygon_mesh_processing { + +/*! +* \ingroup PMP_meshing_grp +* +* \short smooths a triangulated region of a polygon mesh. +* +* This function attempts to make the triangle angle and area distributions as uniform as possible +* by moving (non-constrained) vertices. +* +* Angle-based smoothing does not change the combinatorial information of the mesh. Area-based smoothing +* might change the combinatorial information, unless specified otherwise. It is also possible +* to make the smoothing algorithm "safer" by rejecting moves that, when applied, would worsen the +* quality of the mesh, e.g. that would decrease the value of the smallest angle around a vertex or +* create self-intersections. +* +* Optionally, the points are reprojected after each iteration. +* +* @tparam TriangleMesh model of `MutableFaceGraph`. +* @tparam FaceRange range of `boost::graph_traits::%face_descriptor`, + model of `Range`. Its iterator type is `ForwardIterator`. +* @tparam NamedParameters a sequence of \ref bgl_namedparameters "Named Parameters" +* +* @param tmesh a polygon mesh with triangulated surface patches to be smoothed. +* @param faces the range of triangular faces defining one or several surface patches to be smoothed. +* @param np an optional sequence of \ref bgl_namedparameters "Named Parameters" among the ones listed below +* +* \cgalNamedParamsBegin +* \cgalParamNBegin{number_of_iterations} +* \cgalParamDescription{the number of iterations for the sequence of the smoothing iterations performed} +* \cgalParamType{unsigned int} +* \cgalParamDefault{`1`} +* \cgalParamNEnd +* +* \cgalParamNBegin{use_angle_smoothing} +* \cgalParamDescription{value to indicate whether angle-based smoothing should be used} +* \cgalParamType{Boolean} +* \cgalParamDefault{`true`} +* \cgalParamNEnd +* +* \cgalParamNBegin{use_area_smoothing} +* \cgalParamDescription{value to indicate whether area-based smoothing should be used} +* \cgalParamType{Boolean} +* \cgalParamDefault{`true`} +* \cgalParamNEnd +* +* \cgalParamNBegin{vertex_point_map} +* \cgalParamDescription{a property map associating points to the vertices of `tmesh`} +* \cgalParamType{a class model of `ReadWritePropertyMap` with `boost::graph_traits::%vertex_descriptor` +* as key type and `%Point_3` as value type} +* \cgalParamDefault{`boost::get(CGAL::vertex_point, tmesh)`} +* \cgalParamExtra{If this parameter is omitted, an internal property map for `CGAL::vertex_point_t` +* must be available in `TriangleMesh`.} +* \cgalParamNEnd +* +* \cgalParamNBegin{geom_traits} +* \cgalParamDescription{an instance of a geometric traits class} +* \cgalParamType{a class model of `Kernel`} +* \cgalParamDefault{a \cgal Kernel deduced from the point type, using `CGAL::Kernel_traits`} +* \cgalParamExtra{The geometric traits class must be compatible with the vertex point type.} +* \cgalParamNEnd +* +* \cgalParamNBegin{use_safety_constraints} +* \cgalParamDescription{If `true`, vertex moves that would worsen the mesh are ignored.} +* \cgalParamType{Boolean} +* \cgalParamDefault{`false`} +* \cgalParamNEnd +* +* \cgalParamNBegin{use_Delaunay_flips} +* \cgalParamDescription{If `true`, area-based smoothing will be completed by a phase of +* Delaunay-based edge-flips to prevent the creation of elongated triangles.} +* \cgalParamType{Boolean} +* \cgalParamDefault{`true`} +* \cgalParamNEnd +* +* \cgalParamNBegin{do_project} +* \cgalParamDescription{If `true`, points are projected onto the initial surface after each iteration.} +* \cgalParamType{Boolean} +* \cgalParamDefault{`true`} +* \cgalParamNEnd +* +* \cgalParamNBegin{vertex_is_constrained_map} +* \cgalParamDescription{a property map containing the constrained-or-not status of each vertex of `tmesh`.} +* \cgalParamType{a class model of `ReadWritePropertyMap` with `boost::graph_traits::%vertex_descriptor` +* as key type and `bool` as value type. It must be default constructible.} +* \cgalParamDefault{a default property map where no vertex is constrained} +* \cgalParamExtra{A constrained vertex cannot be modified at all during smoothing.} +* \cgalParamNEnd +* +* \cgalParamNBegin{edge_is_constrained_map} +* \cgalParamDescription{a property map containing the constrained-or-not status of each edge of `tmesh`.} +* \cgalParamType{a class model of `ReadWritePropertyMap` with `boost::graph_traits::%edge_descriptor` +* as key type and `bool` as value type. It must be default constructible.} +* \cgalParamDefault{a default property map where no edge is constrained} +* \cgalParamExtra{A constrained edge cannot be modified at all during smoothing.} +* \cgalParamNEnd +* \cgalNamedParamsEnd +* +* @warning The third party library \link thirdpartyCeres Ceres \endlink is required +* to use area-based smoothing. +* +* @pre `tmesh` does not contain any degenerate faces. +*/ +template +void angle_and_area_smoothing(const FaceRange& faces, + TriangleMesh& tmesh, + const NamedParameters& np = parameters::default_values()) +{ + typedef typename boost::graph_traits::vertex_descriptor vertex_descriptor; + typedef typename boost::graph_traits::halfedge_descriptor halfedge_descriptor; + typedef typename boost::graph_traits::edge_descriptor edge_descriptor; + typedef typename boost::graph_traits::face_descriptor face_descriptor; + + typedef typename GetGeomTraits::type GeomTraits; + typedef typename GetVertexPointMap::type VertexPointMap; + + // We need a default pmap that is not just 'constant_pmap(false)' because if an edge is constrained, + // its vertices are constrained. + typedef CGAL::dynamic_vertex_property_t Vertex_property_tag; + typedef typename boost::property_map::type Default_VCMap; + typedef typename internal_np::Lookup_named_param_def ::type VCMap; + + typedef typename internal_np::Lookup_named_param_def // default + > ::type ECMap; + + typedef internal::Area_smoother Area_optimizer; + typedef internal::Mesh_smoother Area_smoother; + typedef internal::Delaunay_edge_flipper Delaunay_flipper; + + typedef internal::Angle_smoother Angle_optimizer; + typedef internal::Mesh_smoother Angle_smoother; + + typedef typename GeomTraits::Triangle_3 Triangle; + typedef std::vector Triangle_container; + + typedef CGAL::AABB_triangle_primitive AABB_Primitive; + typedef CGAL::AABB_traits AABB_Traits; + typedef CGAL::AABB_tree Tree; + + if(std::begin(faces) == std::end(faces)) + return; + + using parameters::choose_parameter; + using parameters::get_parameter; + + // named parameters + GeomTraits gt = choose_parameter(get_parameter(np, internal_np::geom_traits)); + VertexPointMap vpmap = choose_parameter(get_parameter(np, internal_np::vertex_point), + get_property_map(CGAL::vertex_point, tmesh)); + + const bool use_angle_smoothing = choose_parameter(get_parameter(np, internal_np::use_angle_smoothing), true); + bool use_area_smoothing = choose_parameter(get_parameter(np, internal_np::use_area_smoothing), true); + +#ifndef CGAL_PMP_USE_CERES_SOLVER + if (use_area_smoothing) + { + std::cerr << "Area-based smoothing requires the Ceres Library, which is not available." << std::endl; + std::cerr << "No such smoothing will be performed!" << std::endl; + use_area_smoothing = false; + } +#endif + + if(!use_angle_smoothing && !use_area_smoothing) + { + std::cerr << "Called PMP::angle_and_area_smoothing() without any smoothing method selected or available" << std::endl; + return; + } + + unsigned int nb_iterations = choose_parameter(get_parameter(np, internal_np::number_of_iterations), 1); + const bool do_project = choose_parameter(get_parameter(np, internal_np::do_project), true); + const bool use_safety_constraints = choose_parameter(get_parameter(np, internal_np::use_safety_constraints), true); + const bool use_Delaunay_flips = choose_parameter(get_parameter(np, internal_np::use_Delaunay_flips), true); + + VCMap vcmap = choose_parameter(get_parameter(np, internal_np::vertex_is_constrained), + get(Vertex_property_tag(), tmesh)); + + // If it's the default vcmap, manually set everything to false because the dynamic pmap has no default initialization + if((std::is_same::value)) + { + for(vertex_descriptor v : vertices(tmesh)) + put(vcmap, v, false); + } + + ECMap ecmap = choose_parameter(get_parameter(np, internal_np::edge_is_constrained), + Static_boolean_property_map()); + + // a constrained edge has constrained extremities + for(face_descriptor f : faces) + { + if(f == boost::graph_traits::null_face()) + continue; + + for(halfedge_descriptor h : CGAL::halfedges_around_face(halfedge(f, tmesh), tmesh)) + { + if(get(ecmap, edge(h, tmesh))) + { + put(vcmap, source(h, tmesh), true); + put(vcmap, target(h, tmesh), true); + } + } + } + + // Construct the AABB tree (if needed for reprojection) + std::vector input_triangles; + + if(do_project) + { + input_triangles.reserve(faces.size()); + + for(face_descriptor f : faces) + { + halfedge_descriptor h = halfedge(f, tmesh); + if(is_border(h, tmesh)) // should not happen, but just in case + continue; + + input_triangles.push_back(gt.construct_triangle_3_object()(get(vpmap, source(h, tmesh)), + get(vpmap, target(h, tmesh)), + get(vpmap, target(next(h, tmesh), tmesh)))); + } + } + + Tree aabb_tree(input_triangles.begin(), input_triangles.end()); + + // Setup the working ranges and check some preconditions + Angle_smoother angle_smoother(tmesh, vpmap, vcmap, gt); + Area_smoother area_smoother(tmesh, vpmap, vcmap, gt); + Delaunay_flipper delaunay_flipper(tmesh, vpmap, ecmap, gt); + + if(use_angle_smoothing) + angle_smoother.init_smoothing(faces); + + if(use_area_smoothing) + area_smoother.init_smoothing(faces); + + for(unsigned int i=0; i +void angle_and_area_smoothing(TriangleMesh& tmesh, const CGAL_NP_CLASS& np = parameters::default_values()) +{ + angle_and_area_smoothing(faces(tmesh), tmesh, np); +} + +template +void angles_evaluation(TriangleMesh& tmesh, GeomTraits traits, Stream& output) +{ + internal::Quality_evaluator evaluator(tmesh, traits); + evaluator.gather_angles(); + evaluator.extract_angles(output); +} + +template +void areas_evaluation(TriangleMesh& tmesh, GeomTraits traits, Stream& output) +{ + internal::Quality_evaluator evaluator(tmesh, traits); + evaluator.measure_areas(); + evaluator.extract_areas(output); +} + +template +void aspect_ratio_evaluation(TriangleMesh& tmesh, GeomTraits traits, Stream& output) +{ + internal::Quality_evaluator evaluator(tmesh, traits); + evaluator.calc_aspect_ratios(); + evaluator.extract_aspect_ratios(output); +} +///\endcond SKIP_IN_MANUAL + +} // namespace Polygon_mesh_processing +} // namespace CGAL + +#endif // CGAL_POLYGON_MESH_PROCESSING_ANGLE_AND_AREA_SMOOTHING_H diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/bbox.h cgal-5.5/include/CGAL/Polygon_mesh_processing/bbox.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/bbox.h 2022-06-03 19:05:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/bbox.h 2022-07-13 19:06:07.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/bbox.h $ -// $Id: bbox.h cf19fb2 2021-01-08T09:35:35+01:00 Maxime Gimeno +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/bbox.h $ +// $Id: bbox.h bb0b9a8 2022-03-07T15:32:37+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -20,25 +20,19 @@ #include -#include +#include #include - -#ifdef DOXYGEN_RUNNING -#define CGAL_PMP_NP_TEMPLATE_PARAMETERS NamedParameters -#define CGAL_PMP_NP_CLASS NamedParameters -#define CGAL_DEPRECATED -#endif - namespace CGAL { namespace Polygon_mesh_processing { /*! * \ingroup PkgPolygonMeshProcessingRef - * computes a bounding box of a polygon mesh. * - * @tparam PolygonMesh a model of `HalfedgeListGraph` + * computes a bounding box of a polygon mesh. + * + * @tparam PolygonMesh a model of `VertexListGraph` * @tparam NamedParameters a sequence of \ref bgl_namedparameters "Named Parameters" * * @param pmesh a polygon mesh @@ -57,25 +51,27 @@ * \cgalParamNBegin{geom_traits} * \cgalParamDescription{an instance of a geometric traits class providing the functor `Construct_bbox_3` * and the function `Construct_bbox_3 construct_bbox_3_object()`. - * `Construct_bbox_3` must provide `Bbox_3 operator()(Point_3)` + * `Construct_bbox_3` must provide the functor `Bbox_3 operator()(Point_3)` * where `%Point_3` is the value type of the vertex point map.} * \cgalParamNEnd * \cgalNamedParamsEnd * - * @return a bounding box of `pmesh` + * @see `vertex_bbox()` + * @see `edge_bbox()` + * @see `face_bbox()` */ - template + template CGAL::Bbox_3 bbox(const PolygonMesh& pmesh, - const CGAL_PMP_NP_CLASS& np) + const NamedParameters& np = parameters::default_values()) { - using parameters::choose_parameter; - using parameters::get_parameter; + using CGAL::parameters::choose_parameter; + using CGAL::parameters::get_parameter; - typename GetVertexPointMap::const_type + typename GetVertexPointMap::const_type vpm = choose_parameter(get_parameter(np, internal_np::vertex_point), get_const_property_map(CGAL::vertex_point, pmesh)); - typedef typename GetGeomTraits::type GT; + typedef typename GetGeomTraits::type GT; GT gt = choose_parameter(get_parameter(np, internal_np::geom_traits)); typename GT::Construct_bbox_3 get_bbox = gt.construct_bbox_3_object(); @@ -91,9 +87,10 @@ /*! * \ingroup PkgPolygonMeshProcessingRef - * computes a bounding box of a vertex of a polygon mesh. * - * @tparam PolygonMesh a model of `HalfedgeGraph` + * computes a bounding box of the vertex of a polygon mesh. + * + * @tparam PolygonMesh a model of `Graph` * @tparam NamedParameters a sequence of \ref bgl_namedparameters "Named Parameters" * * @param vd a descriptor of a vertex in `pmesh` @@ -118,12 +115,14 @@ * \cgalParamNEnd * \cgalNamedParamsEnd * - * @return a bounding box of `pmesh` + * @see `edge_bbox()` + * @see `face_bbox()` + * @see `bbox()` */ - template + template CGAL::Bbox_3 vertex_bbox(typename boost::graph_traits::vertex_descriptor vd, const PolygonMesh& pmesh, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { using parameters::choose_parameter; using parameters::get_parameter; @@ -140,9 +139,10 @@ /*! * \ingroup PkgPolygonMeshProcessingRef - * computes a bounding box of an edge of a polygon mesh. * - * @tparam PolygonMesh a model of `HalfedgeGraph` + * computes a bounding box of an edge of a polygon mesh. + * + * @tparam PolygonMesh a model of `Graph` * @tparam NamedParameters a sequence of \ref bgl_namedparameters "Named Parameters" * * @param ed a descriptor of an edge in `pmesh` @@ -167,12 +167,14 @@ * \cgalParamNEnd * \cgalNamedParamsEnd * - * @return a bounding box of `pmesh` + * @see `vertex_bbox()` + * @see `face_bbox()` + * @see `bbox()` */ - template + template CGAL::Bbox_3 edge_bbox(typename boost::graph_traits::edge_descriptor ed, const PolygonMesh& pmesh, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { using parameters::choose_parameter; using parameters::get_parameter; @@ -191,9 +193,10 @@ /*! * \ingroup PkgPolygonMeshProcessingRef - * computes a bounding box of a face of a polygon mesh. * - * @tparam PolygonMesh a model of `HalfedgeGraph` + * computes a bounding box of a face of a polygon mesh. + * + * @tparam PolygonMesh a model of `Graph` * @tparam NamedParameters a sequence of \ref bgl_namedparameters "Named Parameters" * * @param fd a descriptor of a face in `pmesh` @@ -219,12 +222,14 @@ * \cgalParamNEnd * \cgalNamedParamsEnd * - * @return a bounding box of `pmesh` + * @see `vertex_bbox()` + * @see `edge_bbox()` + * @see `bbox()` */ - template + template CGAL::Bbox_3 face_bbox(typename boost::graph_traits::face_descriptor fd, const PolygonMesh& pmesh, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { using parameters::choose_parameter; using parameters::get_parameter; @@ -240,62 +245,12 @@ typedef typename boost::graph_traits::halfedge_descriptor halfedge_descriptor; CGAL::Bbox_3 bb; - for(halfedge_descriptor h : - halfedges_around_face(halfedge(fd, pmesh), pmesh)) + for(halfedge_descriptor h : halfedges_around_face(halfedge(fd, pmesh), pmesh)) { bb += get_bbox( get(vpm, target(h, pmesh)) ); } return bb; } - - template - CGAL::Bbox_3 vertex_bbox(typename boost::graph_traits::vertex_descriptor vd, - const PolygonMesh& pmesh) - { - return vertex_bbox(vd, pmesh, - CGAL::Polygon_mesh_processing::parameters::all_default()); - } - template - CGAL::Bbox_3 edge_bbox(typename boost::graph_traits::edge_descriptor ed, - const PolygonMesh& pmesh) - { - return edge_bbox(ed, pmesh, - CGAL::Polygon_mesh_processing::parameters::all_default()); - } - template - CGAL::Bbox_3 face_bbox(typename boost::graph_traits::face_descriptor fd, - const PolygonMesh& pmesh) - { - return face_bbox(fd, pmesh, - CGAL::Polygon_mesh_processing::parameters::all_default()); - } - - template - CGAL::Bbox_3 bbox(const PolygonMesh& pmesh) - { - return bbox(pmesh, - CGAL::Polygon_mesh_processing::parameters::all_default()); - } - - // deprecated function - #ifndef CGAL_NO_DEPRECATED_CODE - /*! - * \ingroup PkgPolygonMeshProcessingRef - * \deprecated This function is deprecated since \cgal 4.10, `CGAL::Polygon_mesh_processing::bbox()` should be used instead. - */ - template - CGAL_DEPRECATED CGAL::Bbox_3 bbox_3(const PolygonMesh& pmesh, - const CGAL_PMP_NP_CLASS& np) - { - return bbox(pmesh, np); - } - - template - CGAL_DEPRECATED CGAL::Bbox_3 bbox_3(const PolygonMesh& pmesh) - { - return bbox(pmesh); - } - #endif // CGAL_NO_DEPRECATED_CODE } } diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/border.h cgal-5.5/include/CGAL/Polygon_mesh_processing/border.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/border.h 2022-06-03 19:05:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/border.h 2022-07-13 19:06:07.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/border.h $ -// $Id: border.h c374b38 2021-09-29T11:05:33+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/border.h $ +// $Id: border.h bb0b9a8 2022-03-07T15:32:37+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -18,13 +18,13 @@ #include #include #include -#include +#include #include #include #include -#include +#include #include namespace CGAL{ @@ -144,8 +144,10 @@ }//end namespace internal /*! - \ingroup PkgPolygonMeshProcessingRef - * collects the border halfedges of a surface patch defined as a face range. + * \ingroup PkgPolygonMeshProcessingRef + * + * \brief collects the border halfedges of a surface patch defined as a face range. + * * For each returned halfedge `h`, `opposite(h, pmesh)` belongs to a face of the patch, * but `face(h, pmesh)` does not belong to the patch. * @@ -173,15 +175,17 @@ * \cgalNamedParamsEnd * * @returns `out` + * + * @see `extract_boundary_cycles()` */ template + , typename NamedParameters = parameters::Default_named_parameters> HalfedgeOutputIterator border_halfedges(const FaceRange& face_range , const PolygonMesh& pmesh , HalfedgeOutputIterator out - , const NamedParameters& np) + , const NamedParameters& np = parameters::default_values()) { if (face_range.empty()) return out; @@ -205,18 +209,6 @@ return out; } - template - HalfedgeOutputIterator border_halfedges(const FaceRange& face_range - , const PolygonMesh& pmesh - , HalfedgeOutputIterator out) - { - return border_halfedges(face_range, pmesh, out, - CGAL::Polygon_mesh_processing::parameters::all_default()); - } - - // counts the number of connected components of the boundary of the mesh. // // @tparam PolygonMesh model of `HalfedgeGraph`. @@ -229,7 +221,7 @@ typedef typename boost::graph_traits::halfedge_descriptor halfedge_descriptor; unsigned int border_counter = 0; - boost::unordered_set visited; + std::unordered_set visited; for(halfedge_descriptor h : halfedges(pmesh)){ if(visited.find(h)== visited.end()){ if(is_border(h,pmesh)){ @@ -245,6 +237,7 @@ } /// @ingroup PkgPolygonMeshProcessingRef + /// /// extracts boundary cycles as a list of halfedges, with one halfedge per border. /// /// @tparam PolygonMesh a model of `HalfedgeListGraph` @@ -254,6 +247,8 @@ /// @param pm a polygon mesh /// @param out an output iterator where the border halfedges will be put /// + /// @see `border_halfedges()` + /// /// @todo It could make sense to also return the length of each cycle. /// @todo It should probably go into BGL package (like the rest of this file). template @@ -262,7 +257,7 @@ { typedef typename boost::graph_traits::halfedge_descriptor halfedge_descriptor; - boost::unordered_set hedge_handled; + std::unordered_set hedge_handled; for(halfedge_descriptor h : halfedges(pm)) { if(is_border(h, pm) && hedge_handled.insert(h).second) diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/clip.h cgal-5.5/include/CGAL/Polygon_mesh_processing/clip.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/clip.h 2022-06-03 19:05:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/clip.h 2022-07-13 19:06:07.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/clip.h $ -// $Id: clip.h 6f6bd08 2022-02-22T12:42:41+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/clip.h $ +// $Id: clip.h a7667b4 2022-06-16T16:48:28+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -504,7 +504,7 @@ Ob ob(tm1, tm2, vpm1, vpm2, algo_ecm1, fid_map1, use_compact_clipper); Corefinement::Intersection_of_triangle_meshes - functor(tm1, tm2, vpm1, vpm2, Algo_visitor(uv,ob,ecm_in,&tm2)); + functor(tm1, tm2, vpm1, vpm2, Algo_visitor(uv,ob,ecm_in,&tm2), &tm2); functor(CGAL::Emptyset_iterator(), false, true); } @@ -513,10 +513,11 @@ /** * \ingroup PMP_corefinement_grp * - * clips `tm` by keeping the part that is inside the volume \link coref_def_subsec bounded \endlink - * by `clipper`. + * \brief clips `tm` by keeping the part that is inside the volume \link coref_def_subsec bounded \endlink by `clipper`. + * * If `tm` is closed, the clipped part can be closed too if the named parameter `clip_volume` is set to `true`. * See Subsection \ref coref_clip for more details. + * * \attention With the current implementation, `clipper` will be modified (refined with the intersection with `tm`). * * \pre \link CGAL::Polygon_mesh_processing::does_self_intersect() `!CGAL::Polygon_mesh_processing::does_self_intersect(tm)` \endlink @@ -593,15 +594,17 @@ * * @return `true` if the output surface mesh is manifold. * If `false` is returned `tm` and `clipper` are only corefined. + * + * @see `split()` */ template + class NamedParameters1 = parameters::Default_named_parameters, + class NamedParameters2 = parameters::Default_named_parameters> bool clip(TriangleMesh& tm, TriangleMesh& clipper, - const NamedParameters1& np_tm, - const NamedParameters2& np_c) + const NamedParameters1& np_tm = parameters::default_values(), + const NamedParameters2& np_c = parameters::default_values()) { if (parameters::choose_parameter(parameters::get_parameter(np_c, internal_np::do_not_modify), false)) { @@ -623,12 +626,14 @@ /** * \ingroup PMP_corefinement_grp - * clips `tm` by keeping the part that is on the negative side of `plane` (side opposite to its normal vector). + * + * \brief clips `tm` by keeping the part that is on the negative side of `plane` (side opposite to its normal vector). + * * If `tm` is closed, the clipped part can be closed too if the named parameter `clip_volume` is set to `true`. * See Subsection \ref coref_clip for more details. * - * \note In the current implementation it is not possible to set the vertex point map and the default will be used. `Plane_3` must be - * from the same %Kernel as the point of the vertex point map. + * \note `Plane_3` must be from the same %Kernel as the point of the internal vertex point map of `TriangleMesh`. + * \note `Plane_3` must be from the same %Kernel as the point of the vertex point map of `tm`. * * \pre \link CGAL::Polygon_mesh_processing::does_self_intersect() `!CGAL::Polygon_mesh_processing::does_self_intersect(tm)` \endlink * @@ -691,21 +696,25 @@ * * @return `true` if the output surface mesh is manifold. * If `false` is returned `tm` is only refined by the intersection with `plane`. + * + * @see `split()` */ template + class NamedParameters = parameters::Default_named_parameters> bool clip(TriangleMesh& tm, #ifdef DOXYGEN_RUNNING const Plane_3& plane, #else const typename GetGeomTraits::type::Plane_3& plane, #endif - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { - using parameters::get_parameter; - using parameters::choose_parameter; namespace PMP = CGAL::Polygon_mesh_processing; - namespace params = PMP::parameters; + namespace params = CGAL::parameters; + + using params::get_parameter; + using params::choose_parameter; + if(boost::begin(faces(tm))==boost::end(faces(tm))) return true; CGAL::Bbox_3 bbox = ::CGAL::Polygon_mesh_processing::bbox(tm); @@ -717,7 +726,7 @@ bbox=CGAL::Bbox_3(bbox.xmin()-xd, bbox.ymin()-yd, bbox.zmin()-zd, bbox.xmax()+xd, bbox.ymax()+yd, bbox.zmax()+zd); TriangleMesh clipper; - Oriented_side os = internal::clip_to_bbox(plane, bbox, clipper, parameters::all_default()); + Oriented_side os = internal::clip_to_bbox(plane, bbox, clipper, parameters::default_values()); switch(os) { case ON_NEGATIVE_SIDE: @@ -735,12 +744,15 @@ /** * \ingroup PMP_corefinement_grp - * clips `tm` by keeping the part that is inside `iso_cuboid`. + * + * \brief clips `tm` by keeping the part that is inside `iso_cuboid`. + * * If `tm` is closed, the clipped part can be closed too if the named parameter `clip_volume` is set to `true`. * See Subsection \ref coref_clip for more details. * - * \note In the current implementation it is not possible to set the vertex point map and the default will be used. `Iso_cuboid_3` must be - * from the same %Kernel as the point of the vertex point map. + * \note `Iso_cuboid_3` must be from the same %Kernel as the point of the internal vertex point map of `TriangleMesh`. + * \note `Iso_cuboid_3` must be from the same %Kernel as the point of the vertex point map of `tm`. + * * \pre \link CGAL::Polygon_mesh_processing::does_self_intersect() `!CGAL::Polygon_mesh_processing::does_self_intersect(tm)` \endlink * * @tparam TriangleMesh a model of `MutableFaceGraph`, `HalfedgeListGraph` and `FaceListGraph`. @@ -794,21 +806,24 @@ * * @return `true` if the output surface mesh is manifold. * If `false` is returned `tm` is only refined by the intersection with `iso_cuboid`. + * + * @see `split()` */ template + class NamedParameters = parameters::Default_named_parameters> bool clip(TriangleMesh& tm, #ifdef DOXYGEN_RUNNING const Iso_cuboid_3& iso_cuboid, #else const typename GetGeomTraits::type::Iso_cuboid_3& iso_cuboid, #endif - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { - using parameters::get_parameter; - using parameters::choose_parameter; namespace PMP = CGAL::Polygon_mesh_processing; - namespace params = PMP::parameters; + namespace params = CGAL::parameters; + + using params::get_parameter; + using params::choose_parameter; if(boost::begin(faces(tm))==boost::end(faces(tm))) return true; TriangleMesh clipper; @@ -824,12 +839,13 @@ /*! * \ingroup PMP_corefinement_grp + * * corefines `tm` and `splitter` and duplicates edges in `tm` that are on the intersection with `splitter`. * * \pre \link CGAL::Polygon_mesh_processing::does_self_intersect() `!CGAL::Polygon_mesh_processing::does_self_intersect(tm)` \endlink * \pre \link CGAL::Polygon_mesh_processing::does_self_intersect() `!CGAL::Polygon_mesh_processing::does_self_intersect(splitter)` \endlink * - * @tparam TriangleMesh a model of `MutableFaceGraph`, `HalfedgeListGraph` and `FaceListGraph`. + * @tparam TriangleMesh a model of `MutableFaceGraph`, `HalfedgeListGraph`, and `FaceListGraph`. * * @tparam NamedParameters1 a sequence of \ref bgl_namedparameters "Named Parameters" * @tparam NamedParameters2 a sequence of \ref bgl_namedparameters "Named Parameters" @@ -874,14 +890,16 @@ * \cgalParamNEnd * * \cgalNamedParamsEnd + * + * @see `clip()` */ template + class NamedParameters1 = parameters::Default_named_parameters, + class NamedParameters2 = parameters::Default_named_parameters> void split(TriangleMesh& tm, TriangleMesh& splitter, - const NamedParameters1& np_tm, - const NamedParameters2& np_s) + const NamedParameters1& np_tm = parameters::default_values(), + const NamedParameters2& np_s = parameters::default_values()) { namespace PMP = CGAL::Polygon_mesh_processing; @@ -915,15 +933,16 @@ /** * \ingroup PMP_corefinement_grp + * * adds intersection edges of `plane` and `tm` in `tm` and duplicates those edges. * - * \note In the current implementation it is not possible to set the vertex point map and the default will be used. + * \note `Plane_3` must be from the same %Kernel as the point of the internal vertex point map of `TriangleMesh`. + * \note `Plane_3` must be from the same %Kernel as the point of the vertex point map of `tm`. * * \pre \link CGAL::Polygon_mesh_processing::does_self_intersect() `!CGAL::Polygon_mesh_processing::does_self_intersect(tm)` \endlink * - * @tparam TriangleMesh a model of `MutableFaceGraph`, `HalfedgeListGraph` and `FaceListGraph` + * @tparam TriangleMesh a model of `MutableFaceGraph`, `HalfedgeListGraph`, and `FaceListGraph`. * An internal property map for `CGAL::vertex_point_t` must be available. - * * @tparam NamedParameters a sequence of \ref bgl_namedparameters "Named Parameters" * * @param tm input triangulated surface mesh @@ -962,21 +981,24 @@ * Setting this option to `true` will automatically set `throw_on_self_intersection` to `false`.} * \cgalParamNEnd * \cgalNamedParamsEnd + * + * @see `clip()` */ template + class NamedParameters = parameters::Default_named_parameters> void split(TriangleMesh& tm, #ifdef DOXYGEN_RUNNING const Plane_3& plane, #else const typename GetGeomTraits::type::Plane_3& plane, #endif - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { - using parameters::get_parameter; - using parameters::choose_parameter; namespace PMP = CGAL::Polygon_mesh_processing; - namespace params = PMP::parameters; + namespace params = CGAL::parameters; + + using params::get_parameter; + using params::choose_parameter; // create a splitter mesh for the splitting plane using an internal CGAL function CGAL::Bbox_3 bbox = ::CGAL::Polygon_mesh_processing::bbox(tm, np); @@ -987,11 +1009,10 @@ bbox.xmax()+xd, bbox.ymax()+yd, bbox.zmax()+zd); TriangleMesh splitter; - CGAL::Oriented_side os = PMP::internal::clip_to_bbox(plane, bbox, splitter, PMP::parameters::all_default()); + CGAL::Oriented_side os = PMP::internal::clip_to_bbox(plane, bbox, splitter, params::default_values()); if(os == CGAL::ON_ORIENTED_BOUNDARY) { - const bool do_not_modify = choose_parameter(get_parameter(np, internal_np::allow_self_intersections), false); return split(tm, splitter, np, params::do_not_modify(do_not_modify)); } @@ -1002,16 +1023,16 @@ /** * \ingroup PMP_corefinement_grp + * * adds intersection edges of `iso_cuboid` and `tm` in `tm` and duplicates those edges. * - * \note In the current implementation it is not possible to set the vertex point map and the default will be used. - * \note `Iso_cuboid_3` must be from the same %Kernel as the point of the vertex point map. + * \note `Iso_cuboid_3` must be from the same %Kernel as the point of the internal vertex point map of `TriangleMesh`. + * \note `Iso_cuboid_3` must be from the same %Kernel as the point of the vertex point map of `tm`. * * \pre \link CGAL::Polygon_mesh_processing::does_self_intersect() `!CGAL::Polygon_mesh_processing::does_self_intersect(tm)` \endlink * - * @tparam TriangleMesh a model of `MutableFaceGraph`, `HalfedgeListGraph` and `FaceListGraph` + * @tparam TriangleMesh a model of `MutableFaceGraph`, `HalfedgeListGraph`, and `FaceListGraph`. * An internal property map for `CGAL::vertex_point_t` must be available. - * * @tparam NamedParameters a sequence of \ref bgl_namedparameters "Named Parameters" * * @param tm input triangulated surface mesh @@ -1050,7 +1071,7 @@ * \cgalParamNEnd * * \cgalParamNBegin{use_compact_clipper} - * \cgalParamDescription{if `false` the parts of `tm` coplanar with `iso_cuboid` will not be part of the output} + * \cgalParamDescription{if `false`, the parts of `tm` coplanar with `iso_cuboid` will not be part of the output.} * \cgalParamType{Boolean} * \cgalParamDefault{`true`} * \cgalParamNEnd @@ -1063,108 +1084,36 @@ * Setting this option to `true` will automatically set `throw_on_self_intersection` to `false` * and `clip_volume` to `false`.} * \cgalParamNEnd - * * \cgalNamedParamsEnd + * + * @see `clip()` */ template + class NamedParameters = parameters::Default_named_parameters> void split(TriangleMesh& tm, - #ifdef DOXYGEN_RUNNING +#ifdef DOXYGEN_RUNNING const Iso_cuboid_3& iso_cuboid, - #else +#else const typename GetGeomTraits::type::Iso_cuboid_3& iso_cuboid, - #endif - const NamedParameters& np) +#endif + const NamedParameters& np = parameters::default_values()) { - using parameters::get_parameter; - using parameters::choose_parameter; namespace PMP = CGAL::Polygon_mesh_processing; - namespace params = PMP::parameters; + namespace params = CGAL::parameters; + + using params::get_parameter; + using params::choose_parameter; + TriangleMesh splitter; make_hexahedron(iso_cuboid[0], iso_cuboid[1], iso_cuboid[2], iso_cuboid[3], - iso_cuboid[4], iso_cuboid[5], iso_cuboid[6], iso_cuboid[7], - splitter); + iso_cuboid[4], iso_cuboid[5], iso_cuboid[6], iso_cuboid[7], + splitter); triangulate_faces(splitter); const bool do_not_modify = choose_parameter(get_parameter(np, internal_np::allow_self_intersections), false); return split(tm, splitter, np, params::do_not_modify(do_not_modify)); } -/// \cond SKIP_IN_MANUAL - -// convenience overloads -template -bool clip(TriangleMesh& tm, - const typename GetGeomTraits::type::Plane_3& plane) -{ - return clip(tm, plane, parameters::all_default()); -} - -// convenience overloads -template -bool clip(TriangleMesh& tm, - const typename GetGeomTraits::type::Iso_cuboid_3& iso_cuboid) -{ - return clip(tm, iso_cuboid, parameters::all_default()); -} - -// convenience overload -template -bool -clip(TriangleMesh& tm, - TriangleMesh& clipper, - const NamedParameters1& np_tm) -{ - return clip(tm, clipper, np_tm, parameters::all_default()); -} - -// convenience overload -template -bool -clip(TriangleMesh& tm, - TriangleMesh& clipper) -{ - return clip(tm, clipper, parameters::all_default()); -} - - -// convenience overload -template -void -split(TriangleMesh& tm, - TriangleMesh& splitter, - const NamedParameters1& np_tm) -{ - split(tm, splitter, np_tm, parameters::all_default()); -} - -// convenience overload -template -void -split(TriangleMesh& tm, - TriangleMesh& splitter) -{ - split(tm, splitter, parameters::all_default()); -} - -template -void split(TriangleMesh& tm, - const typename GetGeomTraits::type::Plane_3& plane) -{ - split(tm, plane, parameters::all_default()); -} - -template -void split(TriangleMesh& tm, - const typename GetGeomTraits::type::Iso_cuboid_3& iso_cuboid) -{ - split(tm, iso_cuboid, parameters::all_default()); -} - -/// \endcond - } } //end of namespace CGAL::Polygon_mesh_processing #endif // CGAL_POLYGON_MESH_PROCESSING_CLIP_H diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/compute_normal.h cgal-5.5/include/CGAL/Polygon_mesh_processing/compute_normal.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/compute_normal.h 2022-06-03 19:05:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/compute_normal.h 2022-07-13 19:06:07.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/compute_normal.h $ -// $Id: compute_normal.h 2e3bfa8 2021-03-04T09:27:05+00:00 Andreas Fabri +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/compute_normal.h $ +// $Id: compute_normal.h 477353d 2022-04-20T15:55:50+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -16,7 +16,7 @@ #include -#include +#include #include #include @@ -121,7 +121,9 @@ /** * \ingroup PMP_normal_grp +* * computes the outward unit vector normal to face `f`. +* * @tparam PolygonMesh a model of `FaceGraph` * @tparam NamedParameters a sequence of \ref bgl_namedparameters "Named Parameters" * @@ -149,14 +151,15 @@ * * @return the computed normal. The return type is a 3D vector type. It is * either deduced from the `geom_traits` \ref bgl_namedparameters "Named Parameters" if provided, -* or from the geometric traits class deduced from the point property map -* of `pmesh`. +* or from the geometric traits class deduced from the point property map of `pmesh`. * * \warning This function involves a square root computation. * If the field type (`FT`) of the traits does not support the `sqrt()` operation, * the square root computation will be performed approximately. +* +* @see `compute_face_normals()` */ -template +template #ifdef DOXYGEN_RUNNING Vector_3 #else @@ -164,7 +167,7 @@ #endif compute_face_normal(typename boost::graph_traits::face_descriptor f, const PolygonMesh& pmesh, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { using parameters::choose_parameter; using parameters::get_parameter; @@ -188,17 +191,11 @@ return normal; } -template -typename GetGeomTraits::type::Vector_3 -compute_face_normal(typename boost::graph_traits::face_descriptor f, - const PolygonMesh& pmesh) -{ - return compute_face_normal(f, pmesh, CGAL::parameters::all_default()); -} - /** * \ingroup PMP_normal_grp +* * computes the outward unit vector normal for all faces of the polygon mesh. +* * @tparam PolygonMesh a model of `FaceGraph` * @tparam Face_normal_map a model of `WritablePropertyMap` with `boost::graph_traits::%face_descriptor` as key type and @@ -229,11 +226,13 @@ * \warning This function involves a square root computation. * If the field type (`FT`) of the traits does not support the `sqrt()` operation, * the square root computation will be performed approximately. +* +* @see `compute_face_normal()` */ -template +template void compute_face_normals(const PolygonMesh& pmesh, Face_normal_map face_normals, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { typedef typename GetGeomTraits::type Kernel; @@ -247,12 +246,6 @@ } } -template -void compute_face_normals(const PolygonMesh& pmesh, Face_normal_map face_normals) -{ - compute_face_normals(pmesh, face_normals, CGAL::parameters::all_default()); -} - namespace internal { enum Vertex_normal_type { @@ -618,7 +611,12 @@ /** * \ingroup PMP_normal_grp +* * computes the unit normal at vertex `v` as the average of the normals of incident faces. +* +* @note The function `compute_vertex_normals()` should be prefered if normals are intended to be +* computed at all vertices of the graph. +* * @tparam PolygonMesh a model of `FaceGraph` * * @param v the vertex whose normal is computed @@ -645,14 +643,15 @@ * * @return the computed normal. The return type is a 3D vector type. It is * either deduced from the `geom_traits` \ref bgl_namedparameters "Named Parameters" if provided, -* or the geometric traits class deduced from the point property map -* of `pmesh`. +* or the geometric traits class deduced from the point property map of `pmesh`. * * \warning This function involves a square root computation. * If the field type (`FT`) of the traits does not support the `sqrt()` operation, * the square root computation will be performed approximately. +* +* @see `compute_vertex_normals()` */ -template +template #ifdef DOXYGEN_RUNNING Vector_3 #else @@ -660,7 +659,7 @@ #endif compute_vertex_normal(typename boost::graph_traits::vertex_descriptor v, const PolygonMesh& pmesh, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { using parameters::choose_parameter; using parameters::is_default_parameter; @@ -686,7 +685,7 @@ Face_vector_map default_fvmap; Face_normal_map face_normals = choose_parameter(get_parameter(np, internal_np::face_normal), Default_map(default_fvmap)); - const bool must_compute_face_normals = is_default_parameter(get_parameter(np, internal_np::face_normal)); + const bool must_compute_face_normals = is_default_parameter::value; #ifdef CGAL_PMP_COMPUTE_NORMAL_DEBUG_PP std::cout << "<----- compute vertex normal at " << get(vpmap, v) @@ -734,16 +733,10 @@ return normal; } -template -typename GetGeomTraits::type::Vector_3 -compute_vertex_normal(typename boost::graph_traits::vertex_descriptor v, - const PolygonMesh& pmesh) -{ - return compute_vertex_normal(v, pmesh, CGAL::parameters::all_default()); -} /** * \ingroup PMP_normal_grp +* * computes the outward unit vector normal for all vertices of the polygon mesh. * * @tparam PolygonMesh a model of `FaceListGraph` @@ -776,11 +769,13 @@ * \warning This function involves a square root computation. * If the field type (`FT`) of the traits does not support the `sqrt()` operation, * the square root computation will be performed approximately. +* +* @see `compute_vertex_normal()` */ -template +template void compute_vertex_normals(const PolygonMesh& pmesh, VertexNormalMap vertex_normals, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { using parameters::choose_parameter; using parameters::is_default_parameter; @@ -807,7 +802,7 @@ Face_normal_dmap>::type Face_normal_map; Face_normal_map face_normals = choose_parameter(get_parameter(np, internal_np::face_normal), get(Face_normal_tag(), pmesh)); - const bool must_compute_face_normals = is_default_parameter(get_parameter(np, internal_np::face_normal)); + const bool must_compute_face_normals = is_default_parameter::value; if(must_compute_face_normals) compute_face_normals(pmesh, face_normals, np); @@ -832,14 +827,9 @@ } } -template -void compute_vertex_normals(const PolygonMesh& pmesh, VertexNormalMap vertex_normals) -{ - compute_vertex_normals(pmesh, vertex_normals, CGAL::parameters::all_default()); -} - /** * \ingroup PMP_normal_grp +* * computes the outward unit vector normal for all vertices and faces of the polygon mesh. * * @tparam PolygonMesh a model of `FaceListGraph` @@ -876,26 +866,22 @@ * \warning This function involves a square root computation. * If the field type (`FT`) of the traits does not support the `sqrt()` operation, * the square root computation will be performed approximately. +* +* @see `compute_vertex_normals()` +* @see `compute_face_normals()` */ template + typename NamedParameters = parameters::Default_named_parameters> void compute_normals(const PolygonMesh& pmesh, VertexNormalMap vertex_normals, FaceNormalMap face_normals, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { compute_face_normals(pmesh, face_normals, np); compute_vertex_normals(pmesh, vertex_normals, np.face_normal_map(face_normals)); } -template -void compute_normals(const PolygonMesh& pmesh, - VertexNormalMap vertex_normals, - FaceNormalMap face_normals) -{ - compute_normals(pmesh, vertex_normals, face_normals, CGAL::parameters::all_default()); -} } // namespace Polygon_mesh_processing } // namespace CGAL diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/connected_components.h cgal-5.5/include/CGAL/Polygon_mesh_processing/connected_components.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/connected_components.h 2022-06-03 19:05:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/connected_components.h 2022-07-13 19:06:07.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/connected_components.h $ -// $Id: connected_components.h 863ab75 2021-10-05T11:43:39+02:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/connected_components.h $ +// $Id: connected_components.h 477353d 2022-04-20T15:55:50+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -20,7 +20,7 @@ #include #include -#include +#include #include #include #include @@ -41,15 +41,9 @@ #include #include -#include +#include #include -#ifdef DOXYGEN_RUNNING -#define CGAL_PMP_NP_TEMPLATE_PARAMETERS NamedParameters -#define CGAL_PMP_NP_CLASS NamedParameters -#endif - - namespace CGAL { namespace Polygon_mesh_processing{ namespace internal { @@ -95,19 +89,19 @@ } // namespace internal /*! - * \ingroup keep_connected_components_grp - * discovers all the faces in the same connected component as `seed_face` and records them in `out`. + * \ingroup PMP_keep_connected_components_grp + * + * discovers all the faces in the same connected component as `seed_face` and records them in `out`. * `seed_face` will also be added in `out`. * - * \tparam PolygonMesh a model of `FaceGraph` - * \tparam FaceOutputIterator a model of `OutputIterator` with value type `boost::graph_traits::%face_descriptor`. - * \tparam NamedParameters a sequence of \ref bgl_namedparameters "Named Parameters" - * - * \param seed_face a face of `pmesh` from which exploration starts to detect the connected component - that contains it - * \param pmesh the polygon mesh - * \param out the output iterator that collects faces from the same connected component as `seed_face` - * \param np an optional sequence of \ref bgl_namedparameters "Named Parameters" among the ones listed below + * \tparam PolygonMesh a model of `FaceGraph` + * \tparam FaceOutputIterator a model of `OutputIterator` with value type `boost::graph_traits::%face_descriptor`. + * \tparam NamedParameters a sequence of \ref bgl_namedparameters "Named Parameters" + * + * \param seed_face a face of `pmesh` from which exploration starts to detect the connected component that contains it + * \param pmesh the polygon mesh + * \param out the output iterator that collects faces from the same connected component as `seed_face` + * \param np an optional sequence of \ref bgl_namedparameters "Named Parameters" among the ones listed below * * \cgalNamedParamsBegin * \cgalParamNBegin{edge_is_constrained_map} @@ -120,16 +114,17 @@ * * \returns the output iterator. * + * \see `connected_components()` */ template FaceOutputIterator connected_component(typename boost::graph_traits::face_descriptor seed_face , const PolygonMesh& pmesh , FaceOutputIterator out - , const NamedParameters& np) + , const NamedParameters& np = parameters::default_values()) { using parameters::choose_parameter; using parameters::get_parameter; @@ -166,26 +161,17 @@ return out; } -template -OutputIterator -connected_component(typename boost::graph_traits::face_descriptor seed_face, - const PolygonMesh& pmesh, - OutputIterator out) -{ - return connected_component(seed_face, pmesh, out, - CGAL::Polygon_mesh_processing::parameters::all_default()); -} - /*! - * \ingroup keep_connected_components_grp - * computes for each face the index of the corresponding connected component. + * \ingroup PMP_keep_connected_components_grp + * + * computes for each face the index of the corresponding connected component. + * + * \tparam PolygonMesh a model of `FaceListGraph` + * \tparam FaceComponentMap a model of `WritablePropertyMap` with + * `boost::graph_traits::%face_descriptor` as key type and + * `boost::graph_traits::%faces_size_type` as value type. + * \tparam NamedParameters a sequence of \ref bgl_namedparameters "Named Parameters" * - * \tparam PolygonMesh a model of `FaceListGraph` - * \tparam FaceComponentMap a model of `WritablePropertyMap` with - `boost::graph_traits::%face_descriptor` as key type and - `boost::graph_traits::%faces_size_type` as value type. - * \tparam NamedParameters a sequence of \ref bgl_namedparameters "Named Parameters" - * \param pmesh the polygon mesh * \param fcm the property map with indices of components associated to faces in `pmesh` * \param np an optional sequence of \ref bgl_namedparameters "Named Parameters" among the ones listed below @@ -197,7 +183,7 @@ * as key type and `bool` as value type} * \cgalParamDefault{a constant property map returning `false` for any edge} * \cgalParamNEnd - + * * \cgalParamNBegin{face_index_map} * \cgalParamDescription{a property map associating to each face of `pmesh` a unique index between `0` and `num_faces(pmesh) - 1`} * \cgalParamType{a class model of `ReadablePropertyMap` with `boost::graph_traits::%face_descriptor` @@ -207,16 +193,17 @@ * \cgalNamedParamsEnd * * \returns the number of connected components. + * + * \see `connected_component()` */ - template typename boost::property_traits::value_type connected_components(const PolygonMesh& pmesh, FaceComponentMap fcm, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { using parameters::choose_parameter; using parameters::get_parameter; @@ -269,37 +256,31 @@ return i; } -template -typename boost::property_traits::value_type -connected_components(const PolygonMesh& pmesh, - FaceComponentMap fcm) -{ - return CGAL::Polygon_mesh_processing::connected_components(pmesh, fcm, CGAL::parameters::all_default()); -} template + , typename NamedParameters = parameters::Default_named_parameters> void keep_connected_components(PolygonMesh& pmesh , const ComponentRange& components_to_keep , const FaceComponentMap& fcm - , const NamedParameters& np); + , const NamedParameters& np = parameters::default_values()); namespace internal { // /*! -// * \ingroup keep_connected_components_grp -// * returns the number of connected components in the mesh. +// * \ingroup PMP_keep_connected_components_grp +// * +// * returns the number of connected components in the mesh. // * -// * A property map for `CGAL::face_index_t` must be either available as an internal property map -// * to `pmesh` or provided as one of the \ref bgl_namedparameters "Named Parameters". +// * A property map for `CGAL::face_index_t` must be either available as an internal property map +// * to `pmesh` or provided as one of the \ref bgl_namedparameters "Named Parameters". // * -// * \tparam PolygonMesh a model of `FaceGraph` -// * \tparam NamedParameters a sequence of \ref bgl_namedparameters "Named Parameters" +// * \tparam PolygonMesh a model of `FaceGraph` +// * \tparam NamedParameters a sequence of \ref bgl_namedparameters "Named Parameters" // * -// * \param pmesh the polygon mesh -// * \param np an optional sequence of \ref bgl_namedparameters "Named Parameters" among the ones listed below +// * \param pmesh the polygon mesh +// * \param np an optional sequence of \ref bgl_namedparameters "Named Parameters" among the ones listed below // * // * \cgalNamedParamsBegin // * \cgalParamNBegin{edge_is_constrained_map} @@ -319,11 +300,12 @@ // * // * \returns the output iterator. // * +// * \see `connected_components()` // */ template + typename CGAL_NP_TEMPLATE_PARAMETERS> std::size_t number_of_connected_components(const PolygonMesh& pmesh, - const CGAL_PMP_NP_CLASS& np) + const CGAL_NP_CLASS& np = parameters::default_values()) { typedef typename boost::graph_traits::faces_size_type faces_size_type; typedef CGAL::dynamic_face_property_t Face_property_tag; @@ -334,18 +316,13 @@ return CGAL::Polygon_mesh_processing::connected_components(pmesh, patch_ids_map, np); } -template -std::size_t number_of_connected_components(const PolygonMesh& pmesh) -{ - return internal::number_of_connected_components(pmesh, CGAL::parameters::all_default()); -} - } // end namespace internal /*! - * \ingroup keep_connected_components_grp + * \ingroup PMP_keep_connected_components_grp + * + * \brief removes the small connected components and all isolated vertices. * - * removes the small connected components and all isolated vertices. * Keep the `nb_components_to_keep` largest connected components, where the size of a connected * component is computed as the sum of the individual sizes of all the faces of the connected component. * By default, the size of a face is `1` (and thus the size of a connected component is the number @@ -404,12 +381,14 @@ * \cgalNamedParamsEnd * * \return the number of connected components removed (ignoring isolated vertices). + * + * \see `keep_large_connected_components()` */ template + typename NamedParameters = parameters::Default_named_parameters> std::size_t keep_largest_connected_components(PolygonMesh& pmesh, std::size_t nb_components_to_keep, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { typedef PolygonMesh PM; typedef typename boost::graph_traits::face_descriptor face_descriptor; @@ -486,25 +465,20 @@ return num - nb_components_to_keep; } -template -std::size_t keep_largest_connected_components(PolygonMesh& pmesh, - std::size_t nb_components_to_keep) -{ - return keep_largest_connected_components(pmesh, - nb_components_to_keep, - CGAL::Polygon_mesh_processing::parameters::all_default()); -} - /*! - * \ingroup keep_connected_components_grp - * removes connected components whose size is (strictly) smaller than a given threshold value, + * \ingroup PMP_keep_connected_components_grp + * + * \brief removes connected components whose size is (strictly) smaller than a given threshold value, * where the size of a connected component is computed as the sum of the individual sizes - * of all the faces of the connected component. By default, the size of a face is `1` (and thus - * the size of a connected component is the number of faces it contains), but it is also possible - * to pass custom sizes, such as the area of the face. + * of all the faces of the connected component. + * + * By default, the size of a face is `1` (and thus the size of a connected component is the number + * of faces it contains), but it is also possible to pass custom sizes, such as the area of the face. * * \tparam PolygonMesh a model of `FaceListGraph` and `MutableFaceGraph` - * \tparam ThresholdValueType the type of the threshold value + * \tparam ThresholdValueType the type of the threshold value. If a face size property map is passed + * by the user, `ThresholdValueType` must be the same type as the value type of the property map. + * Otherwise, `ThresholdValueType` must be `std::size_t`. * \tparam NamedParameters a sequence of \ref bgl_namedparameters "Named Parameters" * * \param pmesh the polygon mesh @@ -555,17 +529,16 @@ * \cgalParamNEnd * \cgalNamedParamsEnd * - * \pre If a face size property map is passed by the user, `ThresholdValueType` must be the same - * type as the value type of the property map. Otherwise, `ThresholdValueType` must be `std::size_t`. - * * \return the number of connected components removed (ignoring isolated vertices). + * + * \see `keep_largest_connected_components()` */ template + typename NamedParameters = parameters::Default_named_parameters> std::size_t keep_large_connected_components(PolygonMesh& pmesh, const ThresholdValueType threshold_value, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { typedef PolygonMesh PM; typedef typename boost::graph_traits::face_descriptor face_descriptor; @@ -633,25 +606,17 @@ return num - res; } -template -std::size_t keep_large_connected_components(PolygonMesh& pmesh, - std::size_t threshold_components_to_keep) -{ - return keep_large_connected_components(pmesh, - threshold_components_to_keep, - CGAL::Polygon_mesh_processing::parameters::all_default()); -} template + , typename CGAL_NP_TEMPLATE_PARAMETERS> void keep_or_remove_connected_components(PolygonMesh& pmesh , const ComponentRange& components_to_keep , const FaceComponentMap& fcm , bool keep - , const NamedParameters& np) + , const CGAL_NP_CLASS& np = parameters::default_values()) { using parameters::choose_parameter; using parameters::get_parameter; @@ -662,7 +627,7 @@ typedef typename boost::graph_traits::halfedge_descriptor halfedge_descriptor; typedef typename boost::graph_traits::edge_descriptor edge_descriptor; - typedef typename GetInitializedVertexIndexMap::type VertexIndexMap; + typedef typename GetInitializedVertexIndexMap::type VertexIndexMap; VertexIndexMap vim = get_initialized_vertex_index_map(pmesh, np); std::set cc_to_keep; @@ -766,13 +731,13 @@ for(vertex_descriptor v: vertices(pmesh)) if (!keep_vertex[v]) vertices_to_remove.push_back(v); - if ( is_default_parameter(get_parameter(np, internal_np::vertex_is_constrained)) ) + if ( is_default_parameter::value ) for (vertex_descriptor v : vertices_to_remove) remove_vertex(v, pmesh); else { typedef typename internal_np::Lookup_named_param_def // default (not used) >::type Vertex_map; Vertex_map is_cst = choose_parameter(get_parameter(np, internal_np::vertex_is_constrained), @@ -786,7 +751,8 @@ } /*! -* \ingroup keep_connected_components_grp +* \ingroup PMP_keep_connected_components_grp +* * keeps the connected components designated by theirs ids in `components_to_keep`, * and removes the other connected components as well as all isolated vertices. * The connected component id of a face is given by `fcm`. @@ -816,6 +782,7 @@ * \cgalParamNEnd * \cgalNamedParamsEnd * +* \see `remove_connected_components()` */ template + , typename NamedParameters = parameters::Default_named_parameters> void remove_connected_components(PolygonMesh& pmesh , const ComponentRange& components_to_remove , const FaceComponentMap& fcm - , const NamedParameters& np) + , const NamedParameters& np = parameters::default_values()) { if (components_to_remove.empty()) return; keep_or_remove_connected_components(pmesh, components_to_remove, fcm, false, np); } /*! -* \ingroup keep_connected_components_grp -* keeps the connected components not designated by the faces in `components_to_remove`, -* and removes the other connected components and all isolated vertices. +* \ingroup PMP_keep_connected_components_grp +* +* keeps the connected components not designated by the faces in `components_to_remove`, +* and removes the other connected components and all isolated vertices. * * \note If the removal of the connected components makes `pmesh` a non-manifold surface, * then the behavior of this function is undefined. @@ -914,13 +884,14 @@ * \cgalParamNEnd * \cgalNamedParamsEnd * +* \see `keep_connected_components()` */ template + , typename CGAL_NP_TEMPLATE_PARAMETERS> void remove_connected_components(PolygonMesh& pmesh , const FaceRange& components_to_remove - , const CGAL_PMP_NP_CLASS& np) + , const CGAL_NP_CLASS& np = parameters::default_values()) { using parameters::choose_parameter; using parameters::get_parameter; @@ -931,7 +902,7 @@ typedef PolygonMesh PM; typedef typename boost::graph_traits::face_descriptor face_descriptor; - typedef typename CGAL::GetInitializedFaceIndexMap::type FaceIndexMap; + typedef typename CGAL::GetInitializedFaceIndexMap::type FaceIndexMap; FaceIndexMap fim = CGAL::get_initialized_face_index_map(pmesh, np); boost::vector_property_map face_cc(static_cast(num_faces(pmesh)), fim); @@ -945,9 +916,10 @@ } /*! -* \ingroup keep_connected_components_grp -* keeps the connected components designated by the faces in `components_to_keep`, -* and removes the other connected components and all isolated vertices. +* \ingroup PMP_keep_connected_components_grp +* +* keeps the connected components designated by the faces in `components_to_keep`, +* and removes the other connected components and all isolated vertices. * * \note If the removal of the connected components makes `pmesh` a non-manifold surface, * then the behavior of this function is undefined. @@ -984,13 +956,14 @@ * \cgalParamNEnd * \cgalNamedParamsEnd * +* \see `remove_connected_components()` */ template + , typename CGAL_NP_TEMPLATE_PARAMETERS> void keep_connected_components(PolygonMesh& pmesh , const FaceRange& components_to_keep - , const CGAL_PMP_NP_CLASS& np) + , const CGAL_NP_CLASS& np = parameters::default_values()) { typedef PolygonMesh PM; typedef typename boost::graph_traits::face_descriptor face_descriptor; @@ -998,7 +971,7 @@ using parameters::choose_parameter; using parameters::get_parameter; - typedef typename CGAL::GetInitializedFaceIndexMap::type FaceIndexMap; + typedef typename CGAL::GetInitializedFaceIndexMap::type FaceIndexMap; FaceIndexMap fim = CGAL::get_initialized_face_index_map(pmesh, np); boost::vector_property_map face_cc(static_cast(num_faces(pmesh)), fim); @@ -1011,45 +984,6 @@ keep_connected_components(pmesh, cc_to_keep, face_cc, np); } -// non-documented overloads so that named parameters can be omitted - -template -void remove_connected_components(PolygonMesh& pmesh - , const FaceRange& components_to_remove) -{ - remove_connected_components(pmesh, components_to_remove, - CGAL::Polygon_mesh_processing::parameters::all_default()); -} - -template -void keep_connected_components(PolygonMesh& pmesh - , const ComponentRange& components_to_keep - , const FaceComponentMap& fcm) -{ - keep_connected_components(pmesh, components_to_keep, fcm, - CGAL::Polygon_mesh_processing::parameters::all_default()); -} - -template -void remove_connected_components(PolygonMesh& pmesh - , const ComponentRange& components_to_remove - , const FaceComponentMap& fcm ) -{ - remove_connected_components(pmesh, components_to_remove, fcm, - CGAL::Polygon_mesh_processing::parameters::all_default()); -} - -template -void keep_connected_components(PolygonMesh& pmesh - , const FaceRange& components_to_keep) -{ - keep_connected_components(pmesh, components_to_keep, - CGAL::Polygon_mesh_processing::parameters::all_default()); -} namespace internal { @@ -1080,7 +1014,7 @@ get(CGAL::dynamic_face_property_t(), tm)); faces_size_type nb_patches = 0; - if(is_default_parameter(get_parameter(np, internal_np::face_patch))) + if(is_default_parameter::value) { nb_patches = CGAL::Polygon_mesh_processing::connected_components( tm, pidmap, CGAL::parameters::face_index_map(fim) @@ -1112,16 +1046,18 @@ }//internal /*! - * \ingroup keep_connected_components_grp - * identifies the connected components of `pmesh` and pushes back a new `PolygonMesh` for each connected component in `cc_meshes`. + * \ingroup PMP_keep_connected_components_grp * - * \tparam PolygonMesh a model of `FaceListGraph` - * \tparam PolygonMeshRange a model of `SequenceContainer` with `PolygonMesh` as value type. + * identifies the connected components of `pmesh` and pushes back a new `PolygonMesh` + * for each connected component in `cc_meshes`. + * + * \tparam PolygonMesh a model of `FaceListGraph` and `MutableFaceGraph` + * \tparam PolygonMeshRange a model of `SequenceContainer` with `PolygonMesh` as value type * - * \tparam NamedParameters a sequence of Named Parameters + * \tparam NamedParameters a sequence of Named Parameters * * \param pmesh the polygon mesh - * \param cc_meshes container that is filled with the extracted connected components. + * \param cc_meshes container that is filled with the extracted connected components * \param np an optional sequence of \ref bgl_namedparameters "Named Parameters" among the ones listed below * * \cgalNamedParamsBegin @@ -1166,10 +1102,10 @@ * \cgalNamedParamsEnd * */ -template +template void split_connected_components(const PolygonMesh& pmesh, PolygonMeshRange& cc_meshes, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { typedef Static_boolean_property_map< typename boost::graph_traits::edge_descriptor, false> Default_ecm; @@ -1191,13 +1127,6 @@ ecm, cc_meshes, pmesh, np); } -template -void split_connected_components(const PolygonMesh& pmesh, - PolygonMeshRange& cc_meshes) -{ - split_connected_components(pmesh, cc_meshes, parameters::all_default()); -} - } // namespace Polygon_mesh_processing } // namespace CGAL diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/corefinement.h cgal-5.5/include/CGAL/Polygon_mesh_processing/corefinement.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/corefinement.h 2022-06-03 19:05:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/corefinement.h 2022-07-13 19:06:07.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/corefinement.h $ -// $Id: corefinement.h 7bcbf8f 2020-10-30T09:24:39+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/corefinement.h $ +// $Id: corefinement.h a7667b4 2022-06-16T16:48:28+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -38,7 +38,7 @@ namespace Corefinement { /** \ingroup PMP_corefinement_grp - * Default new-face visitor model of `PMPCorefinementVisitor`. + * %Default new-face visitor model of `PMPCorefinementVisitor`. * All of its functions have an empty body. This class can be used as a * base class if only some of the functions of the concept require to be * overridden. @@ -67,6 +67,7 @@ /** * \ingroup PMP_corefinement_grp + * * \link coref_def_subsec corefines \endlink `tm1` and `tm2` and for each triangle mesh `tm_out` passed * as an optional in `output` different from `boost::none`, the triangulated surface mesh * \link coref_def_subsec bounding \endlink the result of a particular Boolean operation @@ -88,7 +89,7 @@ * \pre \link CGAL::Polygon_mesh_processing::does_bound_a_volume() `CGAL::Polygon_mesh_processing::does_bound_a_volume(tm1)` \endlink * \pre \link CGAL::Polygon_mesh_processing::does_bound_a_volume() `CGAL::Polygon_mesh_processing::does_bound_a_volume(tm2)` \endlink * - * @tparam TriangleMesh a model of `MutableFaceGraph`, `HalfedgeListGraph` and `FaceListGraph` + * @tparam TriangleMesh a model of `HalfedgeListGraph`, `FaceListGraph`, and `MutableFaceGraph` * @tparam NamedParameters1 a sequence of \ref bgl_namedparameters "Named Parameters" * @tparam NamedParameters2 a sequence of \ref bgl_namedparameters "Named Parameters" * @tparam NamedParametersOut0 a sequence of \ref bgl_namedparameters "Named Parameters" for computing the union of the volumes bounded by `tm1` and `tm2` @@ -175,23 +176,24 @@ * will only be corefined. */ template + class NamedParameters1 = parameters::Default_named_parameters, + class NamedParameters2 = parameters::Default_named_parameters, + class NamedParametersOut0 = parameters::Default_named_parameters, + class NamedParametersOut1 = parameters::Default_named_parameters, + class NamedParametersOut2 = parameters::Default_named_parameters, + class NamedParametersOut3 = parameters::Default_named_parameters> std::array corefine_and_compute_boolean_operations( TriangleMesh& tm1, TriangleMesh& tm2, const std::array< boost::optional,4>& output, - const NamedParameters1& np1, - const NamedParameters2& np2, + const NamedParameters1& np1 = parameters::default_values(), + const NamedParameters2& np2 = parameters::default_values(), const std::tuple& nps_out) + NamedParametersOut1, + NamedParametersOut2, + NamedParametersOut3>& nps_out + = std::tuple()) { using parameters::choose_parameter; using parameters::get_parameter; @@ -412,51 +414,6 @@ ob.tm2_minus_tm1_is_valid()); } -template -std::array -corefine_and_compute_boolean_operations( - TriangleMesh& tm1, - TriangleMesh& tm2, - const std::array< boost::optional,4>& output) -{ - using namespace CGAL::Polygon_mesh_processing::parameters; - return corefine_and_compute_boolean_operations(tm1, tm2, output, - all_default(), all_default(), - std::make_tuple(all_default(), all_default(), - all_default(), all_default())); -} - -template -std::array -corefine_and_compute_boolean_operations( - TriangleMesh& tm1, - TriangleMesh& tm2, - const std::array< boost::optional,4>& output, - const NamedParameters1& np1) -{ - using namespace CGAL::Polygon_mesh_processing::parameters; - return corefine_and_compute_boolean_operations(tm1, tm2, output, - np1, all_default(), - std::make_tuple(all_default(), all_default(), - all_default(), all_default())); -} - -template -std::array -corefine_and_compute_boolean_operations( - TriangleMesh& tm1, - TriangleMesh& tm2, - const std::array< boost::optional,4>& output, - const NamedParameters1& np1, - const NamedParameters2& np2) -{ - using namespace CGAL::Polygon_mesh_processing::parameters; - return corefine_and_compute_boolean_operations(tm1, tm2, output, - np1, np2, - std::make_tuple(all_default(), all_default(), - all_default(), all_default())); -} - #undef CGAL_COREF_SET_OUTPUT_VERTEX_POINT_MAP #undef CGAL_COREF_SET_OUTPUT_EDGE_MARK_MAP @@ -474,7 +431,7 @@ * \pre \link CGAL::Polygon_mesh_processing::does_bound_a_volume() `CGAL::Polygon_mesh_processing::does_bound_a_volume(tm1)` \endlink * \pre \link CGAL::Polygon_mesh_processing::does_bound_a_volume() `CGAL::Polygon_mesh_processing::does_bound_a_volume(tm2)` \endlink * - * @tparam TriangleMesh a model of `MutableFaceGraph`, `HalfedgeListGraph` and `FaceListGraph` + * @tparam TriangleMesh a model of `HalfedgeListGraph`, `FaceListGraph`, and `MutableFaceGraph` * @tparam NamedParameters1 a sequence of \ref bgl_namedparameters "Named Parameters" * @tparam NamedParameters2 a sequence of \ref bgl_namedparameters "Named Parameters" * @tparam NamedParametersOut a sequence of \ref bgl_namedparameters "Named Parameters" @@ -554,27 +511,27 @@ * If `false` is returned and if `tm_out` is one of the input surface meshes, * then `tm_out` is only corefined. */ template + class NamedParameters1 = parameters::Default_named_parameters, + class NamedParameters2 = parameters::Default_named_parameters, + class NamedParametersOut = parameters::Default_named_parameters> bool corefine_and_compute_union( TriangleMesh& tm1, TriangleMesh& tm2, TriangleMesh& tm_out, - const NamedParameters1& np1, - const NamedParameters2& np2, - const NamedParametersOut& np_out) + const NamedParameters1& np1 = parameters::default_values(), + const NamedParameters2& np2 = parameters::default_values(), + const NamedParametersOut& np_out = parameters::default_values()) { - using namespace CGAL::Polygon_mesh_processing::parameters; + using namespace CGAL::parameters; std::array< boost::optional,4> output; output[Corefinement::UNION]=&tm_out; return corefine_and_compute_boolean_operations(tm1, tm2, output, np1, np2, std::make_tuple(np_out, - all_default(), - all_default(), - all_default())) + parameters::default_values(), + parameters::default_values(), + parameters::default_values())) [Corefinement::UNION]; } @@ -586,27 +543,27 @@ * \copydetails CGAL::Polygon_mesh_processing::corefine_and_compute_union() */ template + class NamedParameters1 = parameters::Default_named_parameters, + class NamedParameters2 = parameters::Default_named_parameters, + class NamedParametersOut = parameters::Default_named_parameters> bool corefine_and_compute_intersection( TriangleMesh& tm1, TriangleMesh& tm2, TriangleMesh& tm_out, - const NamedParameters1& np1, - const NamedParameters2& np2, - const NamedParametersOut& np_out) + const NamedParameters1& np1 = parameters::default_values(), + const NamedParameters2& np2 = parameters::default_values(), + const NamedParametersOut& np_out = parameters::default_values()) { - using namespace CGAL::Polygon_mesh_processing::parameters; + using namespace CGAL::parameters; std::array< boost::optional,4> output; output[Corefinement::INTERSECTION]=&tm_out; return corefine_and_compute_boolean_operations(tm1, tm2, output, np1, np2, - std::make_tuple(all_default(), + std::make_tuple(parameters::default_values(), np_out, - all_default(), - all_default())) + parameters::default_values(), + parameters::default_values())) [Corefinement::INTERSECTION]; } @@ -618,28 +575,28 @@ * \copydetails CGAL::Polygon_mesh_processing::corefine_and_compute_union() */ template + class NamedParameters1 = parameters::Default_named_parameters, + class NamedParameters2 = parameters::Default_named_parameters, + class NamedParametersOut = parameters::Default_named_parameters> bool corefine_and_compute_difference( TriangleMesh& tm1, TriangleMesh& tm2, TriangleMesh& tm_out, - const NamedParameters1& np1, - const NamedParameters2& np2, - const NamedParametersOut& np_out) + const NamedParameters1& np1 = parameters::default_values(), + const NamedParameters2& np2 = parameters::default_values(), + const NamedParametersOut& np_out = parameters::default_values()) { - using namespace CGAL::Polygon_mesh_processing::parameters; + using namespace CGAL::parameters; using namespace CGAL::Polygon_mesh_processing::Corefinement; std::array< boost::optional,4> output; output[TM1_MINUS_TM2]=&tm_out; return corefine_and_compute_boolean_operations(tm1, tm2, output, np1, np2, - std::make_tuple(all_default(), - all_default(), + std::make_tuple(parameters::default_values(), + parameters::default_values(), np_out, - all_default())) + parameters::default_values())) [TM1_MINUS_TM2]; } @@ -653,7 +610,7 @@ * \pre \link CGAL::Polygon_mesh_processing::does_self_intersect() `!CGAL::Polygon_mesh_processing::does_self_intersect(tm1)` \endlink * \pre \link CGAL::Polygon_mesh_processing::does_self_intersect() `!CGAL::Polygon_mesh_processing::does_self_intersect(tm2)` \endlink * - * @tparam TriangleMesh a model of `MutableFaceGraph`, `HalfedgeListGraph` and `FaceListGraph` + * @tparam TriangleMesh a model of `HalfedgeListGraph`, `FaceListGraph`, and `MutableFaceGraph` * @tparam NamedParameters1 a sequence of \ref bgl_namedparameters "Named Parameters" * @tparam NamedParameters2 a sequence of \ref bgl_namedparameters "Named Parameters" * @@ -706,13 +663,13 @@ * */ template + class NamedParameters1 = parameters::Default_named_parameters, + class NamedParameters2 = parameters::Default_named_parameters> void corefine( TriangleMesh& tm1, TriangleMesh& tm2, - const NamedParameters1& np1, - const NamedParameters2& np2) + const NamedParameters1& np1 = parameters::default_values(), + const NamedParameters2& np2 = parameters::default_values()) { using parameters::choose_parameter; using parameters::get_parameter; @@ -780,8 +737,8 @@ User_visitor uv(choose_parameter(get_parameter(np1, internal_np::visitor))); static const bool handle_non_manifold_features = - !parameters::Is_default::value || - !parameters::Is_default::value; + !parameters::is_default_parameter::value || + !parameters::is_default_parameter::value; // surface intersection algorithm call typedef Corefinement::No_extra_output_from_corefinement Ob; @@ -791,7 +748,7 @@ Ob ob; Ecm ecm(tm1,tm2,ecm1,ecm2); Corefinement::Intersection_of_triangle_meshes - functor(tm1, tm2, vpm1, vpm2, Algo_visitor(uv,ob,ecm,const_mesh_ptr)); + functor(tm1, tm2, vpm1, vpm2, Algo_visitor(uv,ob,ecm,const_mesh_ptr), const_mesh_ptr); // Fill non-manifold feature maps if provided functor.set_non_manifold_feature_map_1(parameters::get_parameter(np1, internal_np::non_manifold_feature_map)); @@ -808,7 +765,7 @@ * Self-intersection edges will be marked as constrained. If an edge that was marked as * constrained is split, its sub-edges will be marked as constrained as well. * - * @tparam TriangleMesh a model of `MutableFaceGraph`, `HalfedgeListGraph` and `FaceListGraph` + * @tparam TriangleMesh a model of `HalfedgeListGraph`, `FaceListGraph`, and `MutableFaceGraph` * @tparam NamedParameters a sequence of \ref namedparameters * * @param tm input triangulated surface mesh @@ -849,10 +806,10 @@ * */ template + class NamedParameters = parameters::Default_named_parameters> void autorefine( TriangleMesh& tm, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { using parameters::choose_parameter; using parameters::get_parameter; @@ -900,7 +857,7 @@ * constrained is split, its sub-edges will be marked as constrained as well. * \return `true` if all self-intersections were fixed and `false` otherwise. * - * @tparam TriangleMesh a model of `MutableFaceGraph`, `HalfedgeListGraph` and `FaceListGraph` + * @tparam TriangleMesh a model of `HalfedgeListGraph`, `FaceListGraph`, and `MutableFaceGraph` * @tparam NamedParameters a sequence of \ref namedparameters * * @param tm input triangulated surface mesh @@ -942,10 +899,10 @@ * */ template + class NamedParameters = parameters::Default_named_parameters> bool autorefine_and_remove_self_intersections( TriangleMesh& tm, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { using parameters::choose_parameter; using parameters::get_parameter; @@ -997,208 +954,6 @@ }// end of namespace experimental -// overload with default named parameters -///// corefine_and_compute_union ///// -template -bool -corefine_and_compute_union( TriangleMesh& tm1, - TriangleMesh& tm2, - TriangleMesh& tm_out, - const NamedParameters1& np1, - const NamedParameters2& np2) -{ - using namespace CGAL::Polygon_mesh_processing::parameters; - return corefine_and_compute_union(tm1, tm2, tm_out, - np1, np2, all_default()); -} - -template -bool -corefine_and_compute_union( TriangleMesh& tm1, - TriangleMesh& tm2, - TriangleMesh& tm_out, - const NamedParameters1& np1) -{ - using namespace CGAL::Polygon_mesh_processing::parameters; - return corefine_and_compute_union(tm1, tm2, tm_out, - np1, all_default(), all_default()); -} - -template -bool -corefine_and_compute_union(TriangleMesh& tm1, - TriangleMesh& tm2, - TriangleMesh& tm_out) -{ - using namespace CGAL::Polygon_mesh_processing::parameters; - return corefine_and_compute_union(tm1, tm2, tm_out, - all_default(), all_default(), all_default()); -} - -///// corefine_and_compute_intersection ///// -template -bool -corefine_and_compute_intersection( TriangleMesh& tm1, - TriangleMesh& tm2, - TriangleMesh& tm_out, - const NamedParameters1& np1, - const NamedParameters2& np2) -{ - using namespace CGAL::Polygon_mesh_processing::parameters; - return corefine_and_compute_intersection(tm1, tm2, tm_out, - np1, np2, all_default()); -} - -template -bool -corefine_and_compute_intersection( TriangleMesh& tm1, - TriangleMesh& tm2, - TriangleMesh& tm_out, - const NamedParameters1& np1) -{ - using namespace CGAL::Polygon_mesh_processing::parameters; - return corefine_and_compute_intersection(tm1, tm2, tm_out, - np1, all_default(), all_default()); -} - -template -bool -corefine_and_compute_intersection(TriangleMesh& tm1, - TriangleMesh& tm2, - TriangleMesh& tm_out) -{ - using namespace CGAL::Polygon_mesh_processing::parameters; - return corefine_and_compute_intersection(tm1, tm2, tm_out, - all_default(), all_default(), all_default()); -} - -///// difference ///// -template -bool -corefine_and_compute_difference( TriangleMesh& tm1, - TriangleMesh& tm2, - TriangleMesh& tm_out, - const NamedParameters1& np1, - const NamedParameters2& np2) -{ - using namespace CGAL::Polygon_mesh_processing::parameters; - return corefine_and_compute_difference(tm1, tm2, tm_out, - np1, np2, all_default()); -} - -template -bool -corefine_and_compute_difference( TriangleMesh& tm1, - TriangleMesh& tm2, - TriangleMesh& tm_out, - const NamedParameters1& np1) -{ - using namespace CGAL::Polygon_mesh_processing::parameters; - return corefine_and_compute_difference(tm1, tm2, tm_out, - np1, all_default(), all_default()); -} - -template -bool -corefine_and_compute_difference(TriangleMesh& tm1, - TriangleMesh& tm2, - TriangleMesh& tm_out) -{ - using namespace CGAL::Polygon_mesh_processing::parameters; - return corefine_and_compute_difference(tm1, tm2, tm_out, - all_default(), all_default(), all_default()); -} - -///// corefine ///// -template -void -corefine( TriangleMesh& tm1, - TriangleMesh& tm2, - const NamedParameters1& np1) -{ - using namespace CGAL::Polygon_mesh_processing::parameters; - corefine(tm1, tm2, np1, all_default()); -} - -template -void -corefine( TriangleMesh& tm1, - TriangleMesh& tm2) -{ - using namespace CGAL::Polygon_mesh_processing::parameters; - corefine(tm1, tm2, all_default(), all_default()); -} - -#ifndef CGAL_NO_DEPRECATED_CODE - template - void - corefine( TriangleMesh& tm1, - TriangleMesh& tm2, - const NamedParameters1& np1, - const NamedParameters2& np2, - const bool throw_on_self_intersection) -{ - corefine(tm1, tm2, np1.throw_on_self_intersection(throw_on_self_intersection), np2); -} - -template -void -corefine( TriangleMesh& tm1, - TriangleMesh& tm2, - const NamedParameters1& np1, - const bool throw_on_self_intersection) -{ - namespace params = CGAL::Polygon_mesh_processing::parameters; - corefine(tm1, tm2, - np1.throw_on_self_intersection(throw_on_self_intersection), - params::all_default()); -} - -template -void -corefine( TriangleMesh& tm1, - TriangleMesh& tm2, - const bool throw_on_self_intersection) -{ - namespace params = CGAL::Polygon_mesh_processing::parameters; - corefine(tm1, tm2, - params::throw_on_self_intersection(throw_on_self_intersection), - params::all_default()); -} -#endif - -///// autorefine ///// -namespace experimental { -template -void -autorefine(TriangleMesh& tm) -{ - using namespace CGAL::Polygon_mesh_processing::parameters; - autorefine(tm, all_default()); -} - -///// autorefine_and_remove_self_intersections ///// -template -bool -autorefine_and_remove_self_intersections(TriangleMesh& tm) -{ - using namespace CGAL::Polygon_mesh_processing::parameters; - return autorefine_and_remove_self_intersections(tm, all_default()); -} - -} // end of namespace experimental - } } // end of namespace CGAL::Polygon_mesh_processing #include diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/detect_features.h cgal-5.5/include/CGAL/Polygon_mesh_processing/detect_features.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/detect_features.h 2022-06-03 19:05:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/detect_features.h 2022-07-13 19:06:07.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/detect_features.h $ -// $Id: detect_features.h 590ddf8 2021-10-08T15:38:47+02:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/detect_features.h $ +// $Id: detect_features.h bb0b9a8 2022-03-07T15:32:37+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -144,12 +144,12 @@ } template + typename EdgeIsFeatureMap, typename NamedParameters = parameters::Default_named_parameters> typename boost::graph_traits::faces_size_type detect_surface_patches(const PolygonMesh& p, PatchIdMap patch_id_map, EdgeIsFeatureMap eif, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { int offset = static_cast( parameters::choose_parameter(parameters::get_parameter(np, internal_np::first_index), 1)); @@ -163,16 +163,6 @@ .face_index_map(CGAL::get_initialized_face_index_map(p, np))); } -template -typename boost::graph_traits::faces_size_type -detect_surface_patches(const PolygonMesh& p, - PatchIdMap patch_id_map, - EdgeIsFeatureMap eif) -{ - return detect_surface_patches(p, patch_id_map, eif, parameters::all_default()); -} - - template void sharp_call(const FT angle_in_deg, const PolygonMesh& pmesh, @@ -235,7 +225,8 @@ /*! * \ingroup PMP_detect_features_grp * - * detects and marks the edges that are considered to be sharp with respect to the given angle bound. + * \brief detects and marks the edges that are considered to be sharp with respect to the given angle bound. + * * `angle_in_deg` gives the maximum angle (in degrees) between the two normal vectors of adjacent triangles. * For an edge of the input polygon mesh, if the angle between the two normal vectors of its incident facets is bigger * than the given bound, then the edge is marked as being a feature edge. @@ -271,12 +262,13 @@ * \cgalParamNEnd * \cgalNamedParamsEnd * + * \see `sharp_edges_segmentation()` */ #ifdef DOXYGEN_RUNNING template #else -template +template #endif void detect_sharp_edges(const PolygonMesh& pmesh, #ifdef DOXYGEN_RUNNING @@ -285,7 +277,7 @@ typename GetGeomTraits::type::FT angle_in_deg, #endif EdgeIsFeatureMap edge_is_feature_map, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { using parameters::choose_parameter; using parameters::get_parameter; @@ -309,13 +301,13 @@ * * \tparam PolygonMesh a model of `HalfedgeListGraph` * \tparam PatchIdMap a model of `ReadablePropertyMap` with - `boost::graph_traits::%face_descriptor` as key type - and the desired patch id, model of `CopyConstructible` as value type. + * `boost::graph_traits::%face_descriptor` as key type + * and the desired patch id, model of `CopyConstructible` as value type. * \tparam VertexIncidentPatchesMap a model of mutable `LvaluePropertyMap` with - `boost::graph_traits::%vertex_descriptor` as key type. Its value type - must be a container of `boost::property_traits::%value_type` and have a function `insert()`. - A `std::set` or a `boost::unordered_set` are recommended, as a patch index may be - inserted several times. + * `boost::graph_traits::%vertex_descriptor` as key type. Its value type + * must be a container of `boost::property_traits::%value_type` and have a function `insert()`. + * A `std::set` or a `boost::unordered_set` are recommended, as a patch index may be + * inserted several times. * \tparam EdgeIsFeatureMap a model of `ReadablePropertyMap` with `boost::graph_traits::%edge_descriptor` * as key type and `bool` as value type. * @@ -324,7 +316,7 @@ * \param vertex_incident_patches_map a property map that will contain the patch ids of all the faces incident to each vertex of `pmesh`. * \param edge_is_feature_map a filled property map that will contain the sharp-or-not status of each edge of `pmesh` * - * @see `CGAL::Polygon_mesh_processing::sharp_edges_segmentation()` + * \see `sharp_edges_segmentation()` */ template ::%edge_descriptor` * \tparam PatchIdMap a model of `ReadWritePropertyMap` with - `boost::graph_traits::%face_descriptor` as key type - and the desired patch id, model of `CopyConstructible` as value type. + * `boost::graph_traits::%face_descriptor` as key type + * and the desired patch id, model of `CopyConstructible` as value type. * \tparam NamedParameters a sequence of \ref bgl_namedparameters "Named Parameters" * * \param pmesh the polygon mesh @@ -452,7 +443,7 @@ typename EdgeIsFeatureMap, typename PatchIdMap, typename NamedParameters> #else template + typename EdgeIsFeatureMap, typename PatchIdMap, typename NamedParameters = parameters::Default_named_parameters> #endif typename boost::graph_traits::faces_size_type sharp_edges_segmentation(const PolygonMesh& pmesh, @@ -463,7 +454,7 @@ #endif EdgeIsFeatureMap edge_is_feature_map, PatchIdMap patch_id_map, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { detect_sharp_edges(pmesh, angle_in_deg, edge_is_feature_map, np); @@ -476,28 +467,6 @@ return result; } -//Convenient overrides -template -void detect_sharp_edges(const PolygonMesh& p, - FT angle_in_deg, - EdgeIsFeatureMap edge_is_feature_map) -{ - detect_sharp_edges(p, angle_in_deg, edge_is_feature_map, - parameters::all_default()); -} - -template -typename boost::graph_traits::faces_size_type -sharp_edges_segmentation(const PolygonMesh& p, - FT angle_in_deg, - EdgeIsFeatureMap edge_is_feature_map, - PatchIdMap patch_id_map) -{ - return sharp_edges_segmentation(p, angle_in_deg, edge_is_feature_map, patch_id_map, - parameters::all_default()); -} - } // end namespace PMP } // end namespace CGAL diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/distance.h cgal-5.5/include/CGAL/Polygon_mesh_processing/distance.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/distance.h 2022-06-03 19:05:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/distance.h 2022-07-13 19:06:07.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/distance.h $ -// $Id: distance.h bb83be1 2021-11-12T21:58:49+01:00 Daniel Thul +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/distance.h $ +// $Id: distance.h 8b5c57e 2022-05-13T15:51:12+02:00 Sebastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -25,7 +25,7 @@ #include #include #include -#include +#include #include #include #include @@ -41,17 +41,22 @@ #ifdef CGAL_LINKED_WITH_TBB #include #include -#include #endif // CGAL_LINKED_WITH_TBB -#include #include +#include #include #include #include #include +#ifdef CGAL_HAUSDORFF_DEBUG_PP + #ifndef CGAL_HAUSDORFF_DEBUG + #define CGAL_HAUSDORFF_DEBUG + #endif +#endif + namespace CGAL { namespace Polygon_mesh_processing { namespace internal { @@ -65,20 +70,21 @@ PointOutputIterator out) { typename Kernel::Compute_squared_distance_3 squared_distance; - const double d_p0p1 = to_double(approximate_sqrt( squared_distance(p0, p1) )); - const double d_p0p2 = to_double(approximate_sqrt( squared_distance(p0, p2) )); - const double n = (std::max)(std::ceil( d_p0p1 / distance ), - std::ceil( d_p0p2 / distance )); + const double d_p0p1 = to_double(approximate_sqrt(squared_distance(p0, p1))); + const double d_p0p2 = to_double(approximate_sqrt(squared_distance(p0, p2))); + + const double n = (std::max)(std::ceil(d_p0p1 / distance), + std::ceil(d_p0p2 / distance)); for(double i=1; i -struct Distance_computation{ +template +struct Distance_computation +{ + typedef typename Kernel::FT FT; typedef typename PointRange::const_iterator::value_type Point_3; const AABB_tree& tree; const PointRange& sample_points; Point_3 initial_hint; - double distance; + FT sq_distance; + //constructor - Distance_computation( - const AABB_tree& tree, - const Point_3& p, - const PointRange& sample_points) - : tree(tree) - , sample_points(sample_points) - , initial_hint(p) - , distance(-1) + Distance_computation(const AABB_tree& tree, + const Point_3& p, + const PointRange& sample_points) + : tree(tree), + sample_points(sample_points), + initial_hint(p), + sq_distance(-1) {} + //split constructor - Distance_computation(Distance_computation& s, tbb::split ) - : tree(s.tree) - , sample_points(s.sample_points) - , initial_hint(s.initial_hint) - , distance(-1) + Distance_computation(Distance_computation& s, tbb::split) + : tree(s.tree), + sample_points(s.sample_points), + initial_hint(s.initial_hint), + sq_distance(-1) {} - void - operator()(const tbb::blocked_range& range) + void operator()(const tbb::blocked_range& range) { Point_3 hint = initial_hint; - double hdist = 0; - for( std::size_t i = range.begin(); i != range.end(); ++i) + FT sq_hdist = 0; + typename Kernel_traits::Kernel::Compute_squared_distance_3 squared_distance; + + for(std::size_t i = range.begin(); i != range.end(); ++i) { hint = tree.closest_point(*(sample_points.begin() + i), hint); - typename Kernel_traits::Kernel::Compute_squared_distance_3 squared_distance; - double d = to_double(CGAL::approximate_sqrt( squared_distance(hint,*(sample_points.begin() + i)) )); - if(d > hdist) - hdist=d; + FT sq_d = squared_distance(hint,*(sample_points.begin() + i)); + if(sq_d > sq_hdist) + sq_hdist = sq_d; } - if(hdist > distance) - distance = hdist; + + if(sq_hdist > sq_distance) + sq_distance = sq_hdist; } - void join( Distance_computation& rhs ) {distance = (std::max)(rhs.distance, distance); } + void join(Distance_computation& rhs) { sq_distance = (std::max)(rhs.sq_distance, sq_distance); } }; #endif template -double approximate_Hausdorff_distance_impl( - const PointRange& sample_points, - const AABBTree& tree, - typename Kernel::Point_3 hint) + class AABBTree, + class Kernel> +double max_distance_to_mesh_impl(const PointRange& sample_points, + const AABBTree& tree, + typename Kernel::Point_3 hint, // intentional copy + const Kernel& k) { + using FT = typename Kernel::FT; + #if !defined(CGAL_LINKED_WITH_TBB) CGAL_static_assertion_msg (!(boost::is_convertible::value), "Parallel_tag is enabled but TBB is unavailable."); #else if(boost::is_convertible::value) { - std::atomic distance; - distance=0; - Distance_computation f(tree, hint, sample_points); + Distance_computation f(tree, hint, sample_points); tbb::parallel_reduce(tbb::blocked_range(0, sample_points.size()), f); - return f.distance; + return to_double(approximate_sqrt(f.sq_distance)); } else #endif { - double hdist = 0; + FT sq_hdist = 0; + typename Kernel::Compute_squared_distance_3 squared_distance = k.compute_squared_distance_3_object(); + for(const typename Kernel::Point_3& pt : sample_points) { hint = tree.closest_point(pt, hint); - typename Kernel::Compute_squared_distance_3 squared_distance; - typename Kernel::FT dist = squared_distance(hint,pt); - double d = to_double(CGAL::approximate_sqrt(dist)); - if(d>hdist) - hdist=d; + FT sq_d = squared_distance(hint, pt); + if(sq_d > sq_hdist) + sq_hdist = sq_d; } - return hdist; + + return to_double(approximate_sqrt(sq_hdist)); } } @@ -190,7 +201,7 @@ {} void sample_points(); - double get_minimum_edge_length(); + double get_squared_minimum_edge_length(); template double get_tr_area(const Tr&); @@ -214,14 +225,15 @@ gt = choose_parameter(get_parameter(np, internal_np::geom_traits)); - bool use_rs = choose_parameter(get_parameter(np, internal_np::random_uniform_sampling), true); bool use_gs = choose_parameter(get_parameter(np, internal_np::grid_sampling), false); bool use_ms = choose_parameter(get_parameter(np, internal_np::monte_carlo_sampling), false); if(use_gs || use_ms) - if(is_default_parameter(get_parameter(np, internal_np::random_uniform_sampling))) + { + if(is_default_parameter::value) use_rs = false; + } bool smpl_vrtcs = choose_parameter(get_parameter(np, internal_np::do_sample_vertices), true); bool smpl_dgs = choose_parameter(get_parameter(np, internal_np::do_sample_edges), true); @@ -238,11 +250,9 @@ { double grid_spacing_ = choose_parameter(get_parameter(np, internal_np::grid_spacing), 0.); + // set grid spacing to the shortest edge length if(grid_spacing_ == 0.) - { - // set grid spacing to the shortest edge length - grid_spacing_ = static_cast(this)->get_minimum_edge_length(); - } + grid_spacing_ = std::sqrt(static_cast(this)->get_squared_minimum_edge_length()); static_cast(this)->internal_sample_triangles(grid_spacing_, smpl_fcs, smpl_dgs); } @@ -261,7 +271,7 @@ if((nb_points_per_face == 0 && nb_pts_a_u == 0.) || (nb_points_per_edge == 0 && nb_pts_l_u == 0.)) { - min_sq_edge_length = static_cast(this)->get_minimum_edge_length(); + min_sq_edge_length = static_cast(this)->get_squared_minimum_edge_length(); } // sample faces @@ -283,7 +293,7 @@ } // extract triangle face points - std::arraypoints = static_cast(this)->get_tr_points(tr); + std::array points = static_cast(this)->get_tr_points(tr); Random_points_in_triangle_3 g(points[0], points[1], points[2]); out = std::copy_n(g, nb_points, out); @@ -341,12 +351,14 @@ { typedef typename boost::property_traits::reference Point_ref; typedef typename Kernel::Vector_3 Vector_3; - typedef boost::graph_traits GT; - typedef typename GT::face_descriptor face_descriptor; - typedef typename GT::halfedge_descriptor halfedge_descriptor; - boost::unordered_set sampled_edges; - boost::unordered_set endpoints; + typedef typename boost::graph_traits::vertex_descriptor vertex_descriptor; + typedef typename boost::graph_traits::halfedge_descriptor halfedge_descriptor; + typedef typename boost::graph_traits::edge_descriptor edge_descriptor; + typedef typename boost::graph_traits::face_descriptor face_descriptor; + + std::unordered_set sampled_edges; + std::unordered_set endpoints; for(face_descriptor fd : triangles) { @@ -354,14 +366,14 @@ halfedge_descriptor hd = halfedge(fd, tm); for(int i=0;i<3; ++i) { - if(sample_edges && sampled_edges.insert(edge(hd, tm)).second ) + if(sample_edges && sampled_edges.insert(edge(hd, tm)).second) { Point_ref p0 = get(vpm, source(hd, tm)); Point_ref p1 = get(vpm, target(hd, tm)); typename Kernel::Compute_squared_distance_3 squared_distance; const double d_p0p1 = to_double(approximate_sqrt(squared_distance(p0, p1))); - const double nb_pts = std::ceil( d_p0p1 / distance ); + const double nb_pts = std::ceil(d_p0p1 / distance); const Vector_3 step_vec = typename Kernel::Construct_scaled_vector_3()( typename Kernel::Construct_vector_3()(p0, p1), typename Kernel::FT(1)/typename Kernel::FT(nb_pts)); @@ -427,10 +439,11 @@ Creator, Self> Base; - typedef boost::graph_traits GT; - typedef typename GT::halfedge_descriptor halfedge_descriptor; - typedef typename GT::edge_descriptor edge_descriptor; - typedef typename GT::face_descriptor face_descriptor; + typedef typename boost::graph_traits::halfedge_descriptor halfedge_descriptor; + typedef typename boost::graph_traits::edge_descriptor edge_descriptor; + typedef typename boost::graph_traits::face_descriptor face_descriptor; + + typedef typename GeomTraits::FT FT; typedef Random_points_in_triangle_mesh_3 Randomizer; typedef typename boost::graph_traits::face_iterator TriangleIterator; @@ -438,6 +451,7 @@ Vpm pmap; double min_sq_edge_length; const Mesh& tm; + CGAL::Random rnd; Triangle_structure_sampler_for_triangle_mesh(const Mesh& m, PointOutputIterator& out, @@ -446,9 +460,16 @@ { using parameters::choose_parameter; using parameters::get_parameter; + using parameters::is_default_parameter; + + CGAL_assertion(!is_empty(tm)); pmap = choose_parameter(get_parameter(np, internal_np::vertex_point), get_const_property_map(vertex_point, tm)); + + if(!(is_default_parameter::value)) + rnd = CGAL::Random(choose_parameter(get_parameter(np, internal_np::random_seed),0)); + min_sq_edge_length = (std::numeric_limits::max)(); } @@ -465,29 +486,30 @@ this->out); } - double get_minimum_edge_length() + double get_squared_minimum_edge_length() { typedef typename boost::graph_traits::edge_descriptor edge_descriptor; if(min_sq_edge_length != (std::numeric_limits::max)()) return min_sq_edge_length; + FT m_sq_el = min_sq_edge_length; for(edge_descriptor ed : edges(tm)) { - const double sq_el = CGAL::to_double( - typename GeomTraits::Compute_squared_distance_3()(get(pmap, source(ed, tm)), - get(pmap, target(ed, tm)))); + const FT sq_el = this->gt.compute_squared_distance_3_object()(get(pmap, source(ed, tm)), + get(pmap, target(ed, tm))); - if(sq_el > 0. && sq_el < min_sq_edge_length) - min_sq_edge_length = sq_el; + if(sq_el < m_sq_el) + m_sq_el = sq_el; } + min_sq_edge_length = to_double(m_sq_el); return min_sq_edge_length; } double get_tr_area(const typename boost::graph_traits::face_descriptor& tr) { - return to_double(face_area(tr,tm,parameters::geom_traits(this->gt))); + return to_double(face_area(tr, tm, parameters::geom_traits(this->gt))); } template//tr = face_descriptor here @@ -509,7 +531,7 @@ typename GeomTraits::Compute_squared_distance_3 squared_distance = this->gt.compute_squared_distance_3_object(); if(nb_points_per_edge == 0 && nb_pts_l_u == 0.) - nb_pts_l_u = 1. / CGAL::sqrt(min_sq_edge_length); + nb_pts_l_u = 1. / std::sqrt(min_sq_edge_length); for(edge_descriptor ed : edges(tm)) { @@ -529,6 +551,7 @@ this->out = std::copy_n(g, nb_points, this->out); } } + void ru_edges_sample(double nb_pts_l_u, double nb_pts_a_u) { @@ -544,17 +567,19 @@ else nb_points = static_cast(std::ceil(g.mesh_length() * nb_pts_a_u)); } + this->out = std::copy_n(g, nb_points, this->out); } Randomizer get_randomizer() { - return Randomizer(tm, pmap); + return Randomizer(tm, pmap, rnd); } void internal_sample_triangles(double grid_spacing_, bool smpl_fcs, bool smpl_dgs) { - this->out = sample_triangles(faces(tm), tm, pmap, grid_spacing_, this->out, smpl_fcs, smpl_dgs, false); + this->out = sample_triangles(faces(tm), tm, pmap, grid_spacing_, + this->out, smpl_fcs, smpl_dgs, false); } std::size_t get_points_size() @@ -601,6 +626,7 @@ Creator, Self> Base; + typedef typename GeomTraits::FT FT; typedef typename GeomTraits::Point_3 Point_3; typedef Random_points_in_triangle_soup Randomizer; @@ -609,6 +635,7 @@ double min_sq_edge_length; const PointRange& points; const TriangleRange& triangles; + Random rnd; Triangle_structure_sampler_for_triangle_soup(const PointRange& pts, const TriangleRange& trs, @@ -616,7 +643,13 @@ const NamedParameters& np) : Base(out, np), points(pts), triangles(trs) { + using parameters::choose_parameter; + using parameters::get_parameter; + using parameters::is_default_parameter; + min_sq_edge_length = (std::numeric_limits::max)(); + if(!(is_default_parameter::value)) + rnd = CGAL::Random(choose_parameter(get_parameter(np, internal_np::random_seed),0)); } std::pair get_range() @@ -629,11 +662,12 @@ this->out = std::copy(points.begin(), points.end(), this->out); } - double get_minimum_edge_length() + double get_squared_minimum_edge_length() { if(min_sq_edge_length != (std::numeric_limits::max)()) return min_sq_edge_length; + FT m_sq_el = min_sq_edge_length; for(const auto& tr : triangles) { for(std::size_t i = 0; i< 3; ++i) @@ -641,18 +675,20 @@ const Point_3& a = points[tr[i]]; const Point_3& b = points[tr[(i+1)%3]]; - const double sq_el = CGAL::to_double(typename GeomTraits::Compute_squared_distance_3()(a, b)); - if(sq_el > 0. && sq_el < min_sq_edge_length) - min_sq_edge_length = sq_el; + const FT sq_el = this->gt.compute_squared_distance_3_object()(a, b); + if(sq_el < m_sq_el) + m_sq_el = sq_el; } } + min_sq_edge_length = to_double(m_sq_el); return min_sq_edge_length; } template double get_tr_area(const Tr& tr) { + // Kernel_3::Compute_area_3 uses `sqrt()` return to_double(approximate_sqrt( this->gt.compute_squared_area_3_object()( points[tr[0]], points[tr[1]], points[tr[2]]))); @@ -663,9 +699,8 @@ { std::array points; for(int i=0; i<3; ++i) - { points[i] = this->points[tr[i]]; - } + return points; } @@ -681,7 +716,7 @@ Randomizer get_randomizer() { - return Randomizer(triangles, points); + return Randomizer(triangles, points, rnd); } void internal_sample_triangles(double distance, bool, bool) @@ -737,6 +772,12 @@ * \cgalParamExtra{The geometric traits class must be compatible with the vertex point type.} * \cgalParamNEnd * + * \cgalParamNBegin{random_seed} + * \cgalParamDescription{a value to seed the random number generator} + * \cgalParamType{unsigned int} + * \cgalParamDefault{a value generated with `std::time()`} + * \cgalParamNEnd + * * \cgalParamNBegin{use_random_uniform_sampling} * \cgalParamDescription{If `true` is passed, points are generated uniformly at random on faces and/or edges of `tm`. If `do_sample_faces` is `true`, random points will be iteratively generated uniformly at random in the triangle of a face @@ -852,20 +893,23 @@ * * @see `CGAL::Polygon_mesh_processing::sample_triangle_soup()` */ -template +template PointOutputIterator sample_triangle_mesh(const TriangleMesh& tm, PointOutputIterator out, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { typedef typename GetGeomTraits::type GeomTraits; typedef typename GetVertexPointMap::const_type Vpm; - internal::Triangle_structure_sampler_for_triangle_mesh, + Creator_uniform_3, Vpm, NamedParameters> performer(tm, out, np); performer.procede(); @@ -898,6 +942,12 @@ * \cgalParamExtra{The geometric traits class must be compatible with the point range's point type.} * \cgalParamNEnd * + * \cgalParamNBegin{random_seed} + * \cgalParamDescription{a value to seed the random number generator} + * \cgalParamType{unsigned int} + * \cgalParamDefault{a value generated with `std::time()`} + * \cgalParamNEnd + * * \cgalParamNBegin{use_random_uniform_sampling} * \cgalParamDescription{If `true` is passed, points are generated in a random and uniform way * over the triangles of the soup.} @@ -977,101 +1027,110 @@ template + class NamedParameters = parameters::Default_named_parameters> PointOutputIterator sample_triangle_soup(const PointRange& points, const TriangleRange& triangles, PointOutputIterator out, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { typedef typename PointRange::value_type Point_3; typedef typename Kernel_traits::Kernel GeomTraits; - static_assert(std::is_same::value, "Wrong point type."); + CGAL_static_assertion_msg((std::is_same::value), "Wrong point type."); - internal::Triangle_structure_sampler_for_triangle_soup, + Creator_uniform_3, NamedParameters> performer(points, triangles, out, np); performer.procede(); return performer.out; } -template -PointOutputIterator -sample_triangle_mesh(const TriangleMesh& tm, - PointOutputIterator out) +/** + * \ingroup PMP_distance_grp + * + * returns the distance to `tm` of the point from `points` that is the furthest from `tm`. + * + * @tparam PointRange a range of `Point_3`, model of `Range`. Its iterator type is `RandomAccessIterator`. + * @tparam TriangleMesh a model of the concepts `EdgeListGraph` and `FaceListGraph` + * @tparam NamedParameters a sequence of \ref bgl_namedparameters "Named Parameters" + * + * @param points the range of points of interest + * @param tm the triangle mesh to compute the distance to + * @param np an optional sequence of \ref bgl_namedparameters "Named Parameters" among the ones listed below + * + * \cgalNamedParamsBegin + * \cgalParamNBegin{vertex_point_map} + * \cgalParamDescription{a property map associating points to the vertices of `tm`} + * \cgalParamType{a class model of `ReadablePropertyMap` with `boost::graph_traits::%vertex_descriptor` + * as key type and `%Point_3` as value type} + * \cgalParamDefault{`boost::get(CGAL::vertex_point, tm)`} + * \cgalParamExtra{If this parameter is omitted, an internal property map for `CGAL::vertex_point_t` + * must be available in `TriangleMesh`.} + * \cgalParamNEnd + * + * \cgalParamNBegin{geom_traits} + * \cgalParamDescription{an instance of a geometric traits class} + * \cgalParamType{a class model of `PMPDistanceTraits`} + * \cgalParamDefault{a \cgal Kernel deduced from the point type, using `CGAL::Kernel_traits`} + * \cgalParamExtra{The geometric traits class must be compatible with the vertex point type.} + * \cgalParamNEnd + * \cgalNamedParamsEnd + * + * @pre `tm` is a non-empty triangle mesh and `points` is not empty. + */ +template< class Concurrency_tag, + class TriangleMesh, + class PointRange, + class NamedParameters = parameters::Default_named_parameters> +double max_distance_to_triangle_mesh(const PointRange& points, + const TriangleMesh& tm, + const NamedParameters& np = parameters::default_values()) { - return sample_triangle_mesh(tm, out, parameters::all_default()); -} + CGAL_precondition(!is_empty(tm) && is_triangle_mesh(tm)); -template -PointOutputIterator -sample_triangle_soup(const PointRange& points, - const TriangleRange& triangles, - PointOutputIterator out) -{ - return sample_triangle_soup(points, triangles, out, parameters::all_default()); -} + using parameters::choose_parameter; + using parameters::get_parameter; -template -double approximate_Hausdorff_distance( - const PointRange& original_sample_points, - const TriangleMesh& tm, - VertexPointMap vpm) -{ - CGAL_assertion_code( bool is_triangle = is_triangle_mesh(tm) ); - CGAL_assertion_msg (is_triangle, - "Mesh is not triangulated. Distance computing impossible."); - typedef typename Kernel::Point_3 Point_3; - std::vector sample_points - (boost::begin(original_sample_points), boost::end(original_sample_points) ); - #ifdef CGAL_HAUSDORFF_DEBUG - std::cout << "Nb sample points " << sample_points.size() << "\n"; - #endif - - spatial_sort(sample_points.begin(), sample_points.end()); - - typedef AABB_face_graph_triangle_primitive Primitive; - typedef AABB_tree< AABB_traits > Tree; - - Tree tree( faces(tm).first, faces(tm).second, tm); - tree.build(); - Point_3 hint = get(vpm, *vertices(tm).first); + typedef typename GetGeomTraits::type GeomTraits; + typedef typename GeomTraits::Point_3 Point_3; - return internal::approximate_Hausdorff_distance_impl - (sample_points, tree, hint); -} + GeomTraits gt = choose_parameter(get_parameter(np, internal_np::geom_traits)); -template -double approximate_Hausdorff_distance( - const TriangleMesh& tm1, - const TriangleMesh& tm2, - const NamedParameters& np, - VertexPointMap vpm_2) -{ - std::vector sample_points; - sample_triangle_mesh(tm1, std::back_inserter(sample_points), np); + typedef typename GetVertexPointMap::const_type VPM; + VPM vpm = choose_parameter(get_parameter(np, internal_np::vertex_point), + get_const_property_map(vertex_point, tm)); - return approximate_Hausdorff_distance(sample_points, tm2, vpm_2); -} +#ifdef CGAL_HAUSDORFF_DEBUG + std::cout << "Nb sample points " << points.size() << "\n"; +#endif + + std::vector points_cpy(std::begin(points), std::end(points)); + spatial_sort(points_cpy.begin(), points_cpy.end()); + + typedef AABB_face_graph_triangle_primitive Primitive; + typedef AABB_traits Tree_traits; + typedef AABB_tree Tree; + + Tree_traits tgt/*(gt)*/; + Tree tree(tgt); + tree.insert(faces(tm).first, faces(tm).second, tm, vpm); + + const Point_3& hint = get(vpm, *vertices(tm).first); -// documented functions + return internal::max_distance_to_mesh_impl(points_cpy, tree, hint, gt); +} /** * \ingroup PMP_distance_grp + * * computes the approximate Hausdorff distance from `tm1` to `tm2` by returning * the distance of the farthest point from `tm2` amongst a sampling of `tm1` * generated with the function `sample_triangle_mesh()` with @@ -1092,7 +1151,6 @@ * @param tm1 the triangle mesh that will be sampled * @param tm2 the triangle mesh to compute the distance to * @param np1 an optional sequence of \ref bgl_namedparameters "Named Parameters" forwarded to `sample_triangle_mesh()` - * * @param np2 an optional sequence of \ref bgl_namedparameters "Named Parameters" among the ones listed below * * \cgalNamedParamsBegin @@ -1106,99 +1164,58 @@ * \cgalParamNEnd * \cgalNamedParamsEnd * - * The function `CGAL::parameters::all_default()` can be used to indicate to use the default values - * for `np1` and specify custom values for `np2`. + * @pre `tm1` and `tm2` are non-empty triangle meshes. */ template< class Concurrency_tag, class TriangleMesh, - class NamedParameters1, - class NamedParameters2> -double approximate_Hausdorff_distance( const TriangleMesh& tm1, - const TriangleMesh& tm2, - const NamedParameters1& np1, - const NamedParameters2& np2) -{ - typedef typename GetGeomTraits::type GeomTraits; - - return approximate_Hausdorff_distance( - tm1, tm2, np1, parameters::choose_parameter(parameters::get_parameter(np2, internal_np::vertex_point), - get_const_property_map(vertex_point, tm2))); -} + class NamedParameters1 = parameters::Default_named_parameters, + class NamedParameters2 = parameters::Default_named_parameters> +double approximate_Hausdorff_distance(const TriangleMesh& tm1, + const TriangleMesh& tm2, + const NamedParameters1& np1 = parameters::default_values(), + const NamedParameters2& np2 = parameters::default_values()) +{ + typedef typename GetGeomTraits::type GeomTraits; + typedef typename GeomTraits::Point_3 Point_3; -/** - * \ingroup PMP_distance_grp - * computes the approximate symmetric Hausdorff distance between `tm1` and `tm2`. - * It returns the maximum of `approximate_Hausdorff_distance(tm1, tm2, np1, np2)` - * and `approximate_Hausdorff_distance(tm2, tm1, np2, np1)`. - */ -template< class Concurrency_tag, - class TriangleMesh, - class NamedParameters1, - class NamedParameters2> -double approximate_symmetric_Hausdorff_distance( - const TriangleMesh& tm1, - const TriangleMesh& tm2, - const NamedParameters1& np1, - const NamedParameters2& np2) -{ - return (std::max)( - approximate_Hausdorff_distance(tm1,tm2,np1,np2), - approximate_Hausdorff_distance(tm2,tm1,np2,np1) - ); + CGAL_precondition(!is_empty(tm1) && is_triangle_mesh(tm1)); + CGAL_precondition(!is_empty(tm2) && is_triangle_mesh(tm2)); + + std::vector sample_points; + sample_triangle_mesh(tm1, std::back_inserter(sample_points), np1); + + return max_distance_to_triangle_mesh(sample_points, tm2, np2); } /** * \ingroup PMP_distance_grp - * returns the distance to `tm` of the point from `points` that is the furthest from `tm`. * - * @tparam PointRange a range of `Point_3`, model of `Range`. Its iterator type is `RandomAccessIterator`. - * @tparam TriangleMesh a model of the concepts `EdgeListGraph` and `FaceListGraph` - * @tparam NamedParameters a sequence of \ref bgl_namedparameters "Named Parameters" - * - * @param points the range of points of interest - * @param tm the triangle mesh to compute the distance to - * @param np an optional sequence of \ref bgl_namedparameters "Named Parameters" among the ones listed below - * - * \cgalNamedParamsBegin - * \cgalParamNBegin{vertex_point_map} - * \cgalParamDescription{a property map associating points to the vertices of `tm`} - * \cgalParamType{a class model of `ReadablePropertyMap` with `boost::graph_traits::%vertex_descriptor` - * as key type and `%Point_3` as value type} - * \cgalParamDefault{`boost::get(CGAL::vertex_point, tm)`} - * \cgalParamExtra{If this parameter is omitted, an internal property map for `CGAL::vertex_point_t` - * must be available in `TriangleMesh`.} - * \cgalParamNEnd + * returns the approximate symmetric Hausdorff distance between `tm1` and `tm2`, + * that is the maximum of `approximate_Hausdorff_distance(tm1, tm2, np1, np2)` + * and `approximate_Hausdorff_distance(tm2, tm1, np2, np1)`. * - * \cgalParamNBegin{geom_traits} - * \cgalParamDescription{an instance of a geometric traits class} - * \cgalParamType{a class model of `PMPDistanceTraits`} - * \cgalParamDefault{a \cgal Kernel deduced from the point type, using `CGAL::Kernel_traits`} - * \cgalParamExtra{The geometric traits class must be compatible with the vertex point type.} - * \cgalParamNEnd - * \cgalNamedParamsEnd + * See the function `approximate_Hausdorff_distance()` for a complete description of the parameters + * and requirements. */ -template< class Concurrency_tag, +template -double max_distance_to_triangle_mesh(const PointRange& points, - const TriangleMesh& tm, - const NamedParameters& np) + class NamedParameters1 = parameters::Default_named_parameters, + class NamedParameters2 = parameters::Default_named_parameters> +double approximate_symmetric_Hausdorff_distance(const TriangleMesh& tm1, + const TriangleMesh& tm2, + const NamedParameters1& np1 = parameters::default_values(), + const NamedParameters2& np2 = parameters::default_values()) { - typedef typename GetGeomTraits::type GeomTraits; - - return approximate_Hausdorff_distance - (points,tm,parameters::choose_parameter(parameters::get_parameter(np, internal_np::vertex_point), - get_const_property_map(vertex_point, tm))); + return (std::max)(approximate_Hausdorff_distance(tm1,tm2,np1,np2), + approximate_Hausdorff_distance(tm2,tm1,np2,np1)); } /*! *\ingroup PMP_distance_grp - * returns an approximation of the distance between `points` and the point lying on `tm` that is the farthest from `points` * - * @tparam PointRange a range of `Point_3`, model of `Range`. + * returns an approximation of the distance between `points` and the point lying on `tm` that is the farthest from `points`. + * + * @tparam PointRange a range of `Point_3`, model of `Range` * @tparam TriangleMesh a model of the concept `FaceListGraph` * @tparam NamedParameters a sequence of \ref bgl_namedparameters "Named Parameters" * @@ -1226,27 +1243,33 @@ * \cgalParamExtra{The geometric traits class must be compatible with the vertex point type.} * \cgalParamNEnd * \cgalNamedParamsEnd + * + * @pre `tm` is a non-empty triangle mesh and `points` is not empty. */ template< class TriangleMesh, class PointRange, - class NamedParameters> + class NamedParameters = parameters::Default_named_parameters> double approximate_max_distance_to_point_set(const TriangleMesh& tm, const PointRange& points, const double precision, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { - typedef typename GetGeomTraits::type GeomTraits; - typedef boost::graph_traits GT; + CGAL_precondition(!is_empty(tm) && is_triangle_mesh(tm)); + CGAL_precondition(!points.empty()); + + typedef typename GetGeomTraits::type GeomTraits; + + typedef typename boost::graph_traits::halfedge_descriptor halfedge_descriptor; + typedef typename boost::graph_traits::face_descriptor face_descriptor; typedef Orthogonal_k_neighbor_search > Knn; typedef typename Knn::Tree Tree; Tree tree(points.begin(), points.end()); CRefiner ref; - for(typename GT::face_descriptor f : faces(tm)) + for(face_descriptor f : faces(tm)) { typename GeomTraits::Point_3 points[3]; - typename GT::halfedge_descriptor hd(halfedge(f,tm)); + halfedge_descriptor hd(halfedge(f,tm)); for(int i=0; i<3; ++i) { points[i] = get(parameters::choose_parameter(parameters::get_parameter(np, internal_np::vertex_point), @@ -1256,72 +1279,8 @@ } ref.add(points[0], points[1], points[2], tree); } - return to_double(ref.refine(precision, tree)); -} - -// convenience functions with default parameters - -template< class Concurrency_tag, - class TriangleMesh, - class PointRange> -double max_distance_to_triangle_mesh(const PointRange& points, - const TriangleMesh& tm) -{ - return max_distance_to_triangle_mesh - (points, tm, parameters::all_default()); -} - -template< class TriangleMesh, - class PointRange> -double approximate_max_distance_to_point_set(const TriangleMesh& tm, - const PointRange& points, - const double precision) -{ - return approximate_max_distance_to_point_set(tm, points, precision, - parameters::all_default()); -} -template< class Concurrency_tag, - class TriangleMesh, - class NamedParameters> -double approximate_Hausdorff_distance(const TriangleMesh& tm1, - const TriangleMesh& tm2, - const NamedParameters& np) -{ - return approximate_Hausdorff_distance( - tm1, tm2, np, parameters::all_default()); -} - -template< class Concurrency_tag, - class TriangleMesh> -double approximate_Hausdorff_distance(const TriangleMesh& tm1, - const TriangleMesh& tm2) -{ - return approximate_Hausdorff_distance( - tm1, tm2, parameters::all_default(), parameters::all_default()); -} - - -template< class Concurrency_tag, - class TriangleMesh, - class NamedParameters> -double approximate_symmetric_Hausdorff_distance(const TriangleMesh& tm1, - const TriangleMesh& tm2, - const NamedParameters& np) -{ - return approximate_symmetric_Hausdorff_distance( - tm1, tm2, np, parameters::all_default()); -} - -template< class Concurrency_tag, - class TriangleMesh> -double approximate_symmetric_Hausdorff_distance(const TriangleMesh& tm1, - const TriangleMesh& tm2) -{ - return approximate_symmetric_Hausdorff_distance( - tm1, tm2, parameters::all_default(), parameters::all_default()); + return to_double(ref.refine(precision, tree)); } //////////////////////////////////////////////////////////////////////// @@ -1329,12 +1288,9 @@ // Use this def in order to get back the parallel version of the one-sided Hausdorff code! // #define USE_PARALLEL_BEHD -// Use this def in order to get all DEBUG info related to the bounded-error Hausdorff code! -// #define CGAL_HAUSDORFF_DEBUG - namespace internal { -template< class Kernel, +template -std::pair preprocess_bounded_error_Hausdorff_impl( - const TriangleMesh1& tm1, - const TriangleMesh2& tm2, - const bool compare_meshes, - const VPM1& vpm1, - const VPM2& vpm2, - const bool is_one_sided_distance, - const NamedParameters1& np1, - const NamedParameters2& np2, - TM1Tree& tm1_tree, - TM2Tree& tm2_tree, - std::vector& tm1_only, - std::vector& tm2_only) + class FaceHandle2> +std::pair +preprocess_bounded_error_squared_Hausdorff_distance_impl(const TriangleMesh1& tm1, + const TriangleMesh2& tm2, + const bool compare_meshes, + const VPM1 vpm1, + const VPM2 vpm2, + const bool is_one_sided_distance, + const NamedParameters1& np1, + const NamedParameters2& np2, + TM1Tree& tm1_tree, + TM2Tree& tm2_tree, + std::vector& tm1_only, + std::vector& tm2_only) { - using FT = typename Kernel::FT; - using Point_3 = typename Kernel::Point_3; + using FT = typename Kernel::FT; - #ifdef CGAL_HAUSDORFF_DEBUG +#ifdef CGAL_HAUSDORFF_DEBUG using Timer = CGAL::Real_timer; Timer timer; timer.start(); std::cout << "* preprocessing begin ...." << std::endl; std::cout.precision(17); - #endif +#endif // Compute the max value that is used as infinity value for the given meshes. // In our case, it is twice the length of the diagonal of the bbox of two input meshes. - const auto bbox1 = bbox(tm1); - const auto bbox2 = bbox(tm2); - const auto bb = bbox1 + bbox2; - const FT sq_dist = CGAL::squared_distance( - Point_3(bb.xmin(), bb.ymin(), bb.zmin()), - Point_3(bb.xmax(), bb.ymax(), bb.zmax())); - FT infinity_value = CGAL::approximate_sqrt(sq_dist) * FT(2); + const Bbox_3 bbox1 = bbox(tm1); + const Bbox_3 bbox2 = bbox(tm2); + const Bbox_3 bb = bbox1 + bbox2; + const FT sq_dist = square(bb.xmax() - bb.xmin()) + + square(bb.ymax() - bb.ymin()) + + square(bb.zmax() - bb.zmin()); + + FT infinity_value = FT(4) * sq_dist; CGAL_assertion(infinity_value >= FT(0)); // Compare meshes and build trees. tm1_only.clear(); tm2_only.clear(); - std::vector< std::pair > common; + std::vector > common; const auto faces1 = faces(tm1); const auto faces2 = faces(tm2); @@ -1394,44 +1350,57 @@ // Compare meshes. bool rebuild = false; - if (compare_meshes) { // exact check + if(compare_meshes) // exact check + { match_faces(tm1, tm2, std::back_inserter(common), - std::back_inserter(tm1_only), std::back_inserter(tm2_only), np1, np2); + std::back_inserter(tm1_only), std::back_inserter(tm2_only), np1, np2); - #ifdef CGAL_HAUSDORFF_DEBUG +#ifdef CGAL_HAUSDORFF_DEBUG std::cout << "- common: " << common.size() << std::endl; std::cout << "- tm1 only: " << tm1_only.size() << std::endl; std::cout << "- tm2 only: " << tm2_only.size() << std::endl; - #endif - - if (is_one_sided_distance) { // one-sided distance +#endif - if (tm1_only.size() > 0) { // create TM1 and and full TM2 + if(is_one_sided_distance) // one-sided distance + { + if(tm1_only.size() > 0) // create TM1 and and full TM2 + { tm1_tree.insert(tm1_only.begin(), tm1_only.end(), tm1, vpm1); tm2_tree.insert(faces2.begin(), faces2.end(), tm2, vpm2); - } else { // do not create trees + } + else // do not create trees + { CGAL_assertion(tm1_only.size() == 0); - infinity_value = -FT(1); + infinity_value = FT(-1); } - - } else { // symmetric distance - - if (tm1_only.size() == 0 && tm2_only.size() == 0) { // do not create trees - infinity_value = -FT(1); - } else if (common.size() == 0) { // create full TM1 and TM2 + } + else // symmetric distance + { + if(tm1_only.size() == 0 && tm2_only.size() == 0) // do not create trees + { + infinity_value = FT(-1); + } + else if(common.size() == 0) // create full TM1 and TM2 + { tm1_tree.insert(faces1.begin(), faces1.end(), tm1, vpm1); tm2_tree.insert(faces2.begin(), faces2.end(), tm2, vpm2); - } else if (tm1_only.size() == 0) { // create TM2 and full TM1 + } + else if(tm1_only.size() == 0) // create TM2 and full TM1 + { CGAL_assertion(tm2_only.size() > 0); CGAL_assertion(tm2_only.size() < faces2.size()); tm1_tree.insert(faces1.begin(), faces1.end(), tm1, vpm1); tm2_tree.insert(tm2_only.begin(), tm2_only.end(), tm2, vpm2); - } else if (tm2_only.size() == 0) { // create TM1 and full TM2 + } + else if(tm2_only.size() == 0) // create TM1 and full TM2 + { CGAL_assertion(tm1_only.size() > 0); CGAL_assertion(tm1_only.size() < faces1.size()); tm1_tree.insert(tm1_only.begin(), tm1_only.end(), tm1, vpm1); tm2_tree.insert(faces2.begin(), faces2.end(), tm2, vpm2); - } else { // create TM1 and full TM2 and set tag to rebuild them later + } + else // create TM1 and full TM2 and set tag to rebuild them later + { CGAL_assertion(tm1_only.size() > 0); CGAL_assertion(tm1_only.size() < faces1.size()); tm1_tree.insert(tm1_only.begin(), tm1_only.end(), tm1, vpm1); @@ -1439,75 +1408,80 @@ rebuild = true; } } - } else { // create full TM1 and TM2 + } + else // create full TM1 and TM2 + { tm1_tree.insert(faces1.begin(), faces1.end(), tm1, vpm1); tm2_tree.insert(faces2.begin(), faces2.end(), tm2, vpm2); } - #ifdef CGAL_HAUSDORFF_DEBUG +#ifdef CGAL_HAUSDORFF_DEBUG timer.stop(); std::cout << "* .... end preprocessing" << std::endl; std::cout << "* preprocessing time (sec.): " << timer.time() << std::endl; - #endif +#endif + return std::make_pair(infinity_value, rebuild); } -template< class Kernel, +template -double bounded_error_Hausdorff_impl( - const TriangleMesh1& tm1, - const TriangleMesh2& tm2, - const typename Kernel::FT error_bound, - const VPM1& vpm1, - const VPM2& vpm2, - const typename Kernel::FT infinity_value, - const typename Kernel::FT initial_bound, - const typename Kernel::FT distance_bound, - const TM1Tree& tm1_tree, - const TM2Tree& tm2_tree, - OutputIterator& out) + class OutputIterator> +typename Kernel::FT +bounded_error_squared_Hausdorff_distance_impl(const TriangleMesh1& tm1, + const TriangleMesh2& tm2, + const VPM1 vpm1, + const VPM2 vpm2, + const TM1Tree& tm1_tree, + const TM2Tree& tm2_tree, + const typename Kernel::FT error_bound, + const typename Kernel::FT sq_initial_bound, + const typename Kernel::FT sq_distance_bound, + const typename Kernel::FT infinity_value, + OutputIterator& out) { - using FT = typename Kernel::FT; - using Point_3 = typename Kernel::Point_3; + using FT = typename Kernel::FT; + using Point_3 = typename Kernel::Point_3; using Triangle_3 = typename Kernel::Triangle_3; - using TM1_tree = TM1Tree; - using TM2_tree = TM2Tree; - - using TM1_traits = typename TM1_tree::AABB_traits; - using TM2_traits = typename TM2_tree::AABB_traits; +#ifdef CGAL_HAUSDORFF_DEBUG + std::cout << " -- Bounded Hausdorff --" << std::endl; + std::cout << "error bound: " << error_bound << std::endl; + std::cout << "initial bound: " << sq_initial_bound << " (" << approximate_sqrt(sq_initial_bound) << ")" << std::endl; + std::cout << "distance bound: " << sq_distance_bound << " (" << approximate_sqrt(sq_distance_bound) << ")" << std::endl; + std::cout << "inf val: " << infinity_value << " (" << approximate_sqrt(infinity_value) << ")" << std::endl; +#endif - using TM1_hd_traits = Hausdorff_primitive_traits_tm1; - using TM2_hd_traits = Hausdorff_primitive_traits_tm2; + using TM1_hd_traits = Hausdorff_primitive_traits_tm1; + using TM2_hd_traits = Hausdorff_primitive_traits_tm2; using Face_handle_1 = typename boost::graph_traits::face_descriptor; using Face_handle_2 = typename boost::graph_traits::face_descriptor; using Candidate = Candidate_triangle; - CGAL_precondition(error_bound >= FT(0)); + CGAL_precondition(sq_initial_bound >= square(FT(error_bound))); + CGAL_precondition(sq_distance_bound != FT(0)); // value is -1 if unused CGAL_precondition(tm1_tree.size() > 0); CGAL_precondition(tm2_tree.size() > 0); // First, we apply culling. - #ifdef CGAL_HAUSDORFF_DEBUG +#ifdef CGAL_HAUSDORFF_DEBUG using Timer = CGAL::Real_timer; Timer timer; timer.start(); std::cout << "- applying culling" << std::endl; std::cout.precision(17); - #endif +#endif // Build traversal traits for tm1_tree. - TM1_hd_traits traversal_traits_tm1( - tm1_tree.traits(), tm2_tree, tm1, tm2, vpm1, vpm2, - error_bound, infinity_value, initial_bound, distance_bound); + TM1_hd_traits traversal_traits_tm1(tm2_tree, tm1, tm2, vpm1, vpm2, + infinity_value, sq_initial_bound, sq_distance_bound); // Find candidate triangles in TM1, which might realise the Hausdorff bound. // We build a sorted structure while collecting the candidates. @@ -1515,174 +1489,290 @@ tm1_tree.traversal_with_priority(stub, traversal_traits_tm1); auto& candidate_triangles = traversal_traits_tm1.get_candidate_triangles(); - auto global_bounds = traversal_traits_tm1.get_global_bounds(); + Global_bounds global_bounds = traversal_traits_tm1.get_global_bounds(); - #ifdef CGAL_HAUSDORFF_DEBUG +#ifdef CGAL_HAUSDORFF_DEBUG + std::cout << "- bounds post traversal: " << global_bounds.lower << " " << global_bounds.upper << std::endl; std::cout << "- number of candidate triangles: " << candidate_triangles.size() << std::endl; const FT culling_rate = FT(100) - (FT(candidate_triangles.size()) / FT(tm1_tree.size()) * FT(100)); std::cout << "- culling rate: " << culling_rate << "%" << std::endl; - #endif - #ifdef CGAL_HAUSDORFF_DEBUG timer.stop(); std::cout << "* culling (sec.): " << timer.time() << std::endl; - #endif +#endif CGAL_assertion(global_bounds.lower >= FT(0)); - CGAL_assertion(global_bounds.upper >= FT(0)); CGAL_assertion(global_bounds.upper >= global_bounds.lower); + CGAL_assertion(global_bounds.lpair.first != boost::graph_traits::null_face()); + CGAL_assertion(global_bounds.lpair.second != boost::graph_traits::null_face()); + CGAL_assertion(global_bounds.upair.first != boost::graph_traits::null_face()); + CGAL_assertion(global_bounds.upair.second != boost::graph_traits::null_face()); // If we already reached the user-defined max distance bound, we quit. - if (traversal_traits_tm1.early_quit()) { - CGAL_assertion(distance_bound >= FT(0)); - const double hdist = CGAL::to_double((global_bounds.lower + global_bounds.upper) / FT(2)); - return hdist; + if(traversal_traits_tm1.early_exit()) + { +#ifdef CGAL_HAUSDORFF_DEBUG + std::cout << "Quitting early (TM1 traversal): temporary distance " << global_bounds.lower + << " is already greater than user-defined bound " << sq_distance_bound << std::endl; +#endif + + CGAL_assertion(global_bounds.lower > sq_distance_bound); + return global_bounds.lower; } - CGAL_assertion(!traversal_traits_tm1.early_quit()); // Second, we apply subdivision. - #ifdef CGAL_HAUSDORFF_DEBUG +#ifdef CGAL_HAUSDORFF_DEBUG timer.reset(); - timer.start(); std::cout << "- applying subdivision" << std::endl; - #endif + timer.start(); + std::size_t explored_candidates_count = 0; +#endif // See Section 5.1 in the paper. - const FT squared_error_bound = error_bound * error_bound; - while ( - (global_bounds.upper - global_bounds.lower > error_bound) && - !candidate_triangles.empty()) { + while(!candidate_triangles.empty()) + { +#ifdef CGAL_HAUSDORFF_DEBUG_PP + std::cout << "===" << std::endl; + std::cout << candidate_triangles.size() << " candidates" << std::endl; + std::cout << "- infinity_value: " << infinity_value << std::endl; + std::cout << "- error_bound: " << error_bound << std::endl; + std::cout << "- sq_initial_bound: " << sq_initial_bound << std::endl; + std::cout << "- sq_distance_bound: " << sq_distance_bound << std::endl; + std::cout << "- global_bounds.lower: " << global_bounds.lower << std::endl; + std::cout << "- global_bounds.upper: " << global_bounds.upper << std::endl; + std::cout << "- diff = " << CGAL::approximate_sqrt(global_bounds.upper) - + CGAL::approximate_sqrt(global_bounds.lower) << ", below bound? " + << ((CGAL::approximate_sqrt(global_bounds.upper) - + CGAL::approximate_sqrt(global_bounds.lower)) <= error_bound) << std::endl; +#endif + + CGAL_assertion(global_bounds.lower >= FT(0)); + CGAL_assertion(global_bounds.upper >= global_bounds.lower); + + // @todo could cache those sqrts + if(CGAL::approximate_sqrt(global_bounds.upper) - CGAL::approximate_sqrt(global_bounds.lower) <= error_bound) + break; // Check if we can early quit. - if (distance_bound >= FT(0)) { - const FT hdist = (global_bounds.lower + global_bounds.upper) / FT(2); - const bool early_quit = (hdist >= distance_bound); - if (early_quit) break; + if(is_positive(sq_distance_bound)) // empty distance bound is FT(-1) + { + const bool early_quit = (sq_distance_bound <= global_bounds.lower); + if(early_quit) + { +#ifdef CGAL_HAUSDORFF_DEBUG + std::cout << "Quitting early with lower bound: " << global_bounds.lower << std::endl; +#endif + break; + } } - // Get the first triangle and its Hausdorff bounds from the candidate set. - const Candidate triangle_and_bound = candidate_triangles.top(); - // Remove it from the candidate set as it will be processed now. + const Candidate triangle_and_bounds = candidate_triangles.top(); candidate_triangles.pop(); // Only process the triangle if it can contribute to the Hausdorff distance, // i.e. if its upper bound is higher than the currently known best lower bound // and the difference between the bounds to be obtained is larger than the - // user given error. - const auto& triangle_bounds = triangle_and_bound.bounds; + // user-given error. + const auto& triangle_bounds = triangle_and_bounds.bounds; + +#ifdef CGAL_HAUSDORFF_DEBUG_PP + std::cout << "Candidate:" << std::endl; + std::cout << triangle_and_bounds.triangle.vertex(0) << std::endl; + std::cout << triangle_and_bounds.triangle.vertex(1) << std::endl; + std::cout << triangle_and_bounds.triangle.vertex(2) << std::endl; + std::cout << "triangle_bounds.lower: " << triangle_bounds.lower << std::endl; + std::cout << "triangle_bounds.upper: " << triangle_bounds.upper << std::endl; + std::cout << "- diff = " << CGAL::approximate_sqrt(triangle_bounds.upper) - + CGAL::approximate_sqrt(triangle_bounds.lower) << ", below bound? " + << ((CGAL::approximate_sqrt(triangle_bounds.upper) - + CGAL::approximate_sqrt(triangle_bounds.lower)) <= error_bound) << std::endl; +#endif CGAL_assertion(triangle_bounds.lower >= FT(0)); - CGAL_assertion(triangle_bounds.upper >= FT(0)); CGAL_assertion(triangle_bounds.upper >= triangle_bounds.lower); - if ( - (triangle_bounds.upper > global_bounds.lower) && - (triangle_bounds.upper - triangle_bounds.lower > error_bound)) { - - // Get the triangle that is to be subdivided and read its vertices. - const Triangle_3& triangle_for_subdivision = triangle_and_bound.triangle; - const Point_3 v0 = triangle_for_subdivision.vertex(0); - const Point_3 v1 = triangle_for_subdivision.vertex(1); - const Point_3 v2 = triangle_for_subdivision.vertex(2); - - // Check second stopping condition: All three vertices of the triangle - // are projected onto the same triangle in TM2. - const auto closest_triangle_v0 = tm2_tree.closest_point_and_primitive(v0); - const auto closest_triangle_v1 = tm2_tree.closest_point_and_primitive(v1); - const auto closest_triangle_v2 = tm2_tree.closest_point_and_primitive(v2); - CGAL_assertion(closest_triangle_v0.second != boost::graph_traits::null_face()); - CGAL_assertion(closest_triangle_v1.second != boost::graph_traits::null_face()); - CGAL_assertion(closest_triangle_v2.second != boost::graph_traits::null_face()); - if ( - (closest_triangle_v0.second == closest_triangle_v1.second) && - (closest_triangle_v1.second == closest_triangle_v2.second)) { - - // The upper bound of this triangle is the actual Hausdorff distance of - // the triangle to the second mesh. Use it as new global lower bound. - // Here, we update the reference to the realizing triangle as this is the best current guess. - global_bounds.lower = triangle_bounds.upper; - global_bounds.lpair.second = triangle_bounds.tm2_uface; - continue; - } + // @todo implement the enclosing-based end criterion (Section 5.1, optional step for TM1 & TM2 closed) - // Check third stopping condition: All edge lengths of the triangle are - // smaller than the given error bound, we cannot get results beyond this bound. - if ( - CGAL::squared_distance(v0, v1) < squared_error_bound && - CGAL::squared_distance(v0, v2) < squared_error_bound && - CGAL::squared_distance(v1, v2) < squared_error_bound) { - - // The upper bound of this triangle is within error tolerance of - // the actual upper bound, use it. - global_bounds.lower = triangle_bounds.upper; - global_bounds.lpair.second = triangle_bounds.tm2_uface; - continue; - } + // Might have been a good candidate when added to the queue, but rendered useless by later insertions + if(triangle_bounds.upper < global_bounds.lower) + { +#ifdef CGAL_HAUSDORFF_DEBUG_PP + std::cout << "Upper bound is lower than global.lower" << std::endl; +#endif + continue; + } - // Subdivide the triangle into four smaller triangles. - const Point_3 v01 = CGAL::midpoint(v0, v1); - const Point_3 v02 = CGAL::midpoint(v0, v2); - const Point_3 v12 = CGAL::midpoint(v1, v2); - const std::array sub_triangles = { - Triangle_3(v0, v01, v02), Triangle_3(v1 , v01, v12), - Triangle_3(v2, v02, v12), Triangle_3(v01, v02, v12) }; - - // Send each of the four triangles to culling on B with the bounds of the parent triangle. - for (std::size_t i = 0; i < 4; ++i) { - - // Call culling on B with the single triangle found. - TM2_hd_traits traversal_traits_tm2( - tm2_tree.traits(), tm2, vpm2, - triangle_bounds, - infinity_value, - infinity_value, - infinity_value); - tm2_tree.traversal_with_priority(sub_triangles[i], traversal_traits_tm2); - - // Update global lower Hausdorff bound according to the obtained local bounds. - const auto local_bounds = traversal_traits_tm2.get_local_bounds(); - - CGAL_assertion(local_bounds.lower >= FT(0)); - CGAL_assertion(local_bounds.upper >= FT(0)); - CGAL_assertion(local_bounds.upper >= local_bounds.lower); - - CGAL_assertion(local_bounds.lpair == local_bounds.default_face_pair()); - CGAL_assertion(local_bounds.upair == local_bounds.default_face_pair()); - - if (local_bounds.lower > global_bounds.lower) { - global_bounds.lower = local_bounds.lower; - global_bounds.lpair.second = local_bounds.tm2_lface; - } + if((CGAL::approximate_sqrt(triangle_bounds.upper) - CGAL::approximate_sqrt(triangle_bounds.lower)) <= error_bound) + { +#ifdef CGAL_HAUSDORFF_DEBUG_PP + std::cout << "Candidate triangle bounds are tight enough: " << triangle_bounds.lower << " " << triangle_bounds.upper << std::endl; +#endif + continue; + } - // Add the subtriangle to the candidate list. - candidate_triangles.push( - Candidate(sub_triangles[i], local_bounds, triangle_and_bound.tm1_face)); - } +#ifdef CGAL_HAUSDORFF_DEBUG + ++explored_candidates_count; +#endif + + // Triangle to be subdivided + const Triangle_3& triangle_for_subdivision = triangle_and_bounds.triangle; + const Point_3& v0 = triangle_for_subdivision.vertex(0); + const Point_3& v1 = triangle_for_subdivision.vertex(1); + const Point_3& v2 = triangle_for_subdivision.vertex(2); + + // Stopping condition: All three vertices of the triangle are projected onto the same triangle in TM2. + const auto closest_triangle_v0 = tm2_tree.closest_point_and_primitive(v0); + const auto closest_triangle_v1 = tm2_tree.closest_point_and_primitive(v1); + const auto closest_triangle_v2 = tm2_tree.closest_point_and_primitive(v2); + CGAL_assertion(closest_triangle_v0.second != boost::graph_traits::null_face()); + CGAL_assertion(closest_triangle_v1.second != boost::graph_traits::null_face()); + CGAL_assertion(closest_triangle_v2.second != boost::graph_traits::null_face()); + + if((closest_triangle_v0.second == closest_triangle_v1.second) && + (closest_triangle_v1.second == closest_triangle_v2.second)) + { +#ifdef CGAL_HAUSDORFF_DEBUG_PP + std::cout << "Projects onto the same TM2 face" << std::endl; +#endif + + // The upper bound of this triangle is the actual Hausdorff distance of + // the triangle to the second mesh. Use it as new global lower bound. + // Here, we update the reference to the realizing triangle as this is the best current guess. + global_bounds.lower = triangle_bounds.upper; + global_bounds.lpair.second = triangle_bounds.tm2_uface; + + continue; + } + + // Subdivide the triangle into four smaller triangles. + const Point_3 v01 = CGAL::midpoint(v0, v1); + const Point_3 v02 = CGAL::midpoint(v0, v2); + const Point_3 v12 = CGAL::midpoint(v1, v2); + const std::array sub_triangles = { Triangle_3(v0, v01, v02), Triangle_3(v1 , v01, v12), + Triangle_3(v2, v02, v12), Triangle_3(v01, v02, v12) }; + + // Send each of the four triangles to culling on B + for(std::size_t i=0; i<4; ++i) + { + // Call culling on B with the single triangle found. +#ifdef CGAL_HAUSDORFF_DEBUG_PP + std::cout << "\nSubface #" << i << "\n" + << "Geometry: " << sub_triangles[i] << std::endl; +#endif + + // Checking as in during TM1 culling is expensive + + // @todo? For each sub-triangle `ts1` that has a vertex of `v` of the triangle `t1` being subdivided, + // we have a lower bound on `h(ts1, TM2)` because: + // h_t1_lower = max_{vi in t1} min_{t2 in TM2} d(vi, t2) + // and + // h_ts1_lower = max_{vi in ts1} min_{t2 in TM2} d(vi, t2) > min_{t2 in TM2} d(v, t2) + // But: + // - we don't keep that in memory (not very hard to change, simply put `m_hi_lower` + // from the TM2 traversal traits into the candidate + // - what's the point? TM2 culling is performed on the local upper bound, so is there + // a benefit from providing this value? + // + // (We also have that error_bound is a lower bound.) + const Bbox_3 sub_t1_bbox = sub_triangles[i].bbox(); + + // The lower bound is: + // h_lower(t1, TM2) := max_{v in t1} min_{t2 in TM2} d(v, t2) + + // The upper bound is: + // h_upper(t1, TM2) := min_{t2 in TM2} max_{v in t1} d(v, t2) + // The value max_{p in t1} d(p, t2) is realized at a vertex of t1. + // Thus, when splitting t1 into four subtriangles, the distance at the three new vertices + // is smaller than max_{v in t1} d(v, t2) + // Thus, subdivision can only decrease the min, and the upper bound. + Local_bounds bounds(triangle_bounds.upper); + + // Ensure 'uface' is initialized in case the upper bound is not changed by the subdivision + bounds.tm2_uface = triangle_bounds.tm2_uface; - // Update global upper Hausdorff bound after subdivision. - const FT current_max = candidate_triangles.top().bounds.upper; - CGAL_assertion(current_max >= FT(0)); - - if (current_max > global_bounds.lower) { - global_bounds.upper = current_max; - global_bounds.upair.second = candidate_triangles.top().bounds.tm2_uface; - } else { - global_bounds.upper = global_bounds.lower; - global_bounds.upair.second = global_bounds.lpair.second; + TM2_hd_traits traversal_traits_tm2(sub_t1_bbox, tm2, vpm2, bounds, global_bounds, infinity_value); + tm2_tree.traversal_with_priority(sub_triangles[i], traversal_traits_tm2); + + // Update global lower Hausdorff bound according to the obtained local bounds. + const auto& sub_triangle_bounds = traversal_traits_tm2.get_local_bounds(); + +#ifdef CGAL_HAUSDORFF_DEBUG_PP + std::cout << "Subdivided triangle bounds: " << sub_triangle_bounds.lower << " " << sub_triangle_bounds.upper << std::endl; +#endif + + CGAL_assertion(sub_triangle_bounds.lower >= FT(0)); + CGAL_assertion(sub_triangle_bounds.upper >= sub_triangle_bounds.lower); + CGAL_assertion(sub_triangle_bounds.tm2_lface != boost::graph_traits::null_face()); + CGAL_assertion(sub_triangle_bounds.tm2_uface != boost::graph_traits::null_face()); + + // The global lower bound is the max of the per-face lower bounds + if(sub_triangle_bounds.lower > global_bounds.lower) + { + global_bounds.lower = sub_triangle_bounds.lower; + global_bounds.lpair.first = triangle_and_bounds.tm1_face; + global_bounds.lpair.second = sub_triangle_bounds.tm2_lface; } + + // The global upper bound is: + // max_{query in TM1} min_{primitive in TM2} max_{v in query} (d(v, primitive)) + // which can go down, so it is only recomputed once splitting is finished, + // using the top value of the PQ + + candidate_triangles.emplace(sub_triangles[i], sub_triangle_bounds, triangle_and_bounds.tm1_face); } + + // Update global upper Hausdorff bound after subdivision. + const Candidate& top_candidate = candidate_triangles.top(); + const FT current_upmost = top_candidate.bounds.upper; +#ifdef CGAL_HAUSDORFF_DEBUG_PP + std::cout << "global_bounds.lower = " << global_bounds.lower << std::endl; + std::cout << "global_bounds.upper = " << global_bounds.upper << std::endl; + std::cout << "current upper bound = " << current_upmost << std::endl; +#endif + + CGAL_assertion(is_positive(current_upmost)); + + if(current_upmost < global_bounds.lower) + { +#ifdef CGAL_HAUSDORFF_DEBUG_PP + std::cout << "Top of the queue is lower than the lowest!" << std::endl; +#endif + + global_bounds.upper = global_bounds.lower; // not really needed since lower is returned but doesn't hurt + global_bounds.upair.first = global_bounds.lpair.first; + global_bounds.upair.second = global_bounds.lpair.second; + + break; + } + + CGAL_assertion(current_upmost >= global_bounds.lower); + + global_bounds.upper = current_upmost; + global_bounds.upair.first = top_candidate.tm1_face; + global_bounds.upair.second = top_candidate.bounds.tm2_uface; + +#ifdef CGAL_HAUSDORFF_DEBUG_PP + std::cout << "Global bounds post subdi: " << global_bounds.lower << " " << global_bounds.upper << std::endl; +#endif + + CGAL_assertion(global_bounds.lower >= FT(0)); + CGAL_assertion(global_bounds.upper >= global_bounds.lower); } - #ifdef CGAL_HAUSDORFF_DEBUG +#ifdef CGAL_HAUSDORFF_DEBUG timer.stop(); std::cout << "* subdivision (sec.): " << timer.time() << std::endl; - #endif + std::cout << "Explored " << explored_candidates_count << " candidates" << std::endl; + std::cout << "Final global bounds: " << global_bounds.lower << " " << global_bounds.upper << std::endl; + std::cout << "Final global bounds (sqrt): " << CGAL::approximate_sqrt(global_bounds.lower) << " " + << CGAL::approximate_sqrt(global_bounds.upper) << std::endl; + std::cout << "Difference: " << CGAL::approximate_sqrt(global_bounds.upper) - + CGAL::approximate_sqrt(global_bounds.lower) << std::endl; +#endif - // Compute linear interpolation between the found lower and upper bounds. CGAL_assertion(global_bounds.lower >= FT(0)); - CGAL_assertion(global_bounds.upper >= FT(0)); CGAL_assertion(global_bounds.upper >= global_bounds.lower); - const double hdist = CGAL::to_double((global_bounds.lower + global_bounds.upper) / FT(2)); + CGAL_assertion(CGAL::approximate_sqrt(global_bounds.upper) - CGAL::approximate_sqrt(global_bounds.lower) <= error_bound); // Get realizing triangles. CGAL_assertion(global_bounds.lpair.first != boost::graph_traits::null_face()); @@ -1694,172 +1784,196 @@ *out++ = global_bounds.lpair; *out++ = global_bounds.upair; - return hdist; + // Return the lower bound because if the correct value is in [0; lower_bound[, the result + // must still be within the error bound (we have set lower_bound to error_bound initially) + return global_bounds.lower; } #if defined(CGAL_LINKED_WITH_TBB) && defined(CGAL_METIS_ENABLED) && defined(USE_PARALLEL_BEHD) template -struct Triangle_mesh_wrapper { - +struct Triangle_mesh_wrapper +{ const TriangleMesh& tm; const VPM& vpm; const bool is_tm2; TMTree& tm_tree; - Triangle_mesh_wrapper( - const TriangleMesh& tm, const VPM& vpm, - const bool is_tm2, TMTree& tm_tree) : - tm(tm), vpm(vpm), is_tm2(is_tm2), tm_tree(tm_tree) { } + Triangle_mesh_wrapper(const TriangleMesh& tm, const VPM& vpm, + const bool is_tm2, TMTree& tm_tree) + : tm(tm), vpm(vpm), is_tm2(is_tm2), tm_tree(tm_tree) + { } - void build_tree() { + void build_tree() + { tm_tree.insert(faces(tm).begin(), faces(tm).end(), tm, vpm); tm_tree.build(); - if (is_tm2) tm_tree.accelerate_distance_queries(); - else tm_tree.do_not_accelerate_distance_queries(); + if(is_tm2) + tm_tree.accelerate_distance_queries(); + else + tm_tree.do_not_accelerate_distance_queries(); } }; template -struct Bounded_error_preprocessing { - - #ifdef CGAL_HAUSDORFF_DEBUG +struct Bounded_error_preprocessing +{ +#ifdef CGAL_HAUSDORFF_DEBUG using Timer = CGAL::Real_timer; - #endif +#endif std::vector& tm_wrappers; // Constructor. - Bounded_error_preprocessing( - std::vector& tm_wrappers) : - tm_wrappers(tm_wrappers) { } + Bounded_error_preprocessing(std::vector& tm_wrappers) + : tm_wrappers(tm_wrappers) + { } // Split constructor. - Bounded_error_preprocessing( - Bounded_error_preprocessing& s, tbb::split) : - tm_wrappers(s.tm_wrappers) { } + Bounded_error_preprocessing(Bounded_error_preprocessing& s, tbb::split) + : tm_wrappers(s.tm_wrappers) + { } - bool is_tm1_wrapper(const boost::any& operand) const { - return operand.type() == typeid(TM1Wrapper); - } - - bool is_tm2_wrapper(const boost::any& operand) const { - return operand.type() == typeid(TM2Wrapper); - } + bool is_tm1_wrapper(const boost::any& operand) const { return operand.type() == typeid(TM1Wrapper); } + bool is_tm2_wrapper(const boost::any& operand) const { return operand.type() == typeid(TM2Wrapper); } // TODO: make AABB tree build parallel! - void operator()(const tbb::blocked_range& range) { - - #ifdef CGAL_HAUSDORFF_DEBUG + void operator()(const tbb::blocked_range& range) + { +#ifdef CGAL_HAUSDORFF_DEBUG Timer timer; timer.reset(); timer.start(); std::cout.precision(17); - #endif +#endif - for (std::size_t i = range.begin(); i != range.end(); ++i) { + for(std::size_t i = range.begin(); i != range.end(); ++i) + { CGAL_assertion(i < tm_wrappers.size()); auto& tm_wrapper = tm_wrappers[i]; - if (is_tm1_wrapper(tm_wrapper)) { + if(is_tm1_wrapper(tm_wrapper)) + { TM1Wrapper& object = boost::any_cast(tm_wrapper); object.build_tree(); - } else if (is_tm2_wrapper(tm_wrapper)) { + } + else if(is_tm2_wrapper(tm_wrapper)) + { TM2Wrapper& object = boost::any_cast(tm_wrapper); object.build_tree(); - } else { + } + else + { CGAL_assertion_msg(false, "Error: wrong boost any type!"); } } - #ifdef CGAL_HAUSDORFF_DEBUG +#ifdef CGAL_HAUSDORFF_DEBUG timer.stop(); std::cout << "* time operator() preprocessing (sec.): " << timer.time() << std::endl; - #endif +#endif } void join(Bounded_error_preprocessing&) { } }; -template< class TriangleMesh1, +template -struct Bounded_error_distance_computation { - + class Kernel> +struct Bounded_error_squared_distance_computation +{ using FT = typename Kernel::FT; - #ifdef CGAL_HAUSDORFF_DEBUG +#ifdef CGAL_HAUSDORFF_DEBUG using Timer = CGAL::Real_timer; - #endif +#endif - const std::vector& tm1_parts; const TriangleMesh2& tm2; - const FT error_bound; const VPM1& vpm1; const VPM2& vpm2; - const FT infinity_value; const FT initial_bound; - const std::vector& tm1_trees; const TM2Tree& tm2_tree; - double distance; + const std::vector& tm1_parts; + const TriangleMesh2& tm2; + const double error_bound; + const VPM1 vpm1; const VPM2 vpm2; + const FT infinity_value; + const FT sq_initial_bound; + const std::vector& tm1_trees; + const TM2Tree& tm2_tree; + FT sq_hdist; // Constructor. - Bounded_error_distance_computation( - const std::vector& tm1_parts, const TriangleMesh2& tm2, - const FT error_bound, const VPM1& vpm1, const VPM2& vpm2, - const FT infinity_value, const FT initial_bound, - const std::vector& tm1_trees, const TM2Tree& tm2_tree) : - tm1_parts(tm1_parts), tm2(tm2), - error_bound(error_bound), vpm1(vpm1), vpm2(vpm2), - infinity_value(infinity_value), initial_bound(initial_bound), - tm1_trees(tm1_trees), tm2_tree(tm2_tree), distance(-1.0) { + Bounded_error_squared_distance_computation(const std::vector& tm1_parts, + const TriangleMesh2& tm2, + const double error_bound, + const VPM1 vpm1, const VPM2 vpm2, + const FT infinity_value, + const FT sq_initial_bound, + const std::vector& tm1_trees, + const TM2Tree& tm2_tree) + : tm1_parts(tm1_parts), tm2(tm2), + error_bound(error_bound), + vpm1(vpm1), vpm2(vpm2), + infinity_value(infinity_value), sq_initial_bound(sq_initial_bound), + tm1_trees(tm1_trees), tm2_tree(tm2_tree), + sq_hdist(-1) + { CGAL_assertion(tm1_parts.size() == tm1_trees.size()); } // Split constructor. - Bounded_error_distance_computation( - Bounded_error_distance_computation& s, tbb::split) : - tm1_parts(s.tm1_parts), tm2(s.tm2), - error_bound(s.error_bound), vpm1(s.vpm1), vpm2(s.vpm2), - infinity_value(s.infinity_value), initial_bound(s.initial_bound), - tm1_trees(s.tm1_trees), tm2_tree(s.tm2_tree), distance(-1.0) { + Bounded_error_squared_distance_computation(Bounded_error_squared_distance_computation& s, tbb::split) + : tm1_parts(s.tm1_parts), tm2(s.tm2), + error_bound(s.error_bound), + vpm1(s.vpm1), vpm2(s.vpm2), + infinity_value(s.infinity_value), sq_initial_bound(s.sq_initial_bound), + tm1_trees(s.tm1_trees), tm2_tree(s.tm2_tree), + sq_hdist(-1) + { CGAL_assertion(tm1_parts.size() == tm1_trees.size()); } - void operator()(const tbb::blocked_range& range) { - - #ifdef CGAL_HAUSDORFF_DEBUG + void operator()(const tbb::blocked_range& range) + { +#ifdef CGAL_HAUSDORFF_DEBUG Timer timer; timer.reset(); timer.start(); std::cout.precision(17); - #endif +#endif - double hdist = -1.0; + FT sq_dist = FT(-1); auto stub = CGAL::Emptyset_iterator(); - for (std::size_t i = range.begin(); i != range.end(); ++i) { + for(std::size_t i = range.begin(); i != range.end(); ++i) + { CGAL_assertion(i < tm1_parts.size()); CGAL_assertion(i < tm1_trees.size()); const auto& tm1 = tm1_parts[i]; const auto& tm1_tree = tm1_trees[i]; - // TODO: add distance_bound (now it is -FT(1)) in case we use parallel + + // TODO: add distance_bound (now it is FT(-1)) in case we use parallel // for checking if two meshes are close. - const double dist = bounded_error_Hausdorff_impl( - tm1, tm2, error_bound, vpm1, vpm2, - infinity_value, initial_bound, -FT(1), - tm1_tree, tm2_tree, stub); - if (dist > hdist) hdist = dist; + const FT sqd = bounded_error_squared_Hausdorff_distance_impl( + tm1, tm2, vpm1, vpm2, tm1_tree, tm2_tree, + error_bound, sq_initial_bound, FT(-1) /*sq_distance_bound*/, infinity_value, + stub); + if(sqd > sq_dist) + sq_dist = sqd; } - if (hdist > distance) distance = hdist; - #ifdef CGAL_HAUSDORFF_DEBUG + if(sq_dist > sq_hdist) + sq_hdist = sq_dist; + +#ifdef CGAL_HAUSDORFF_DEBUG timer.stop(); std::cout << "* time operator() computation (sec.): " << timer.time() << std::endl; - #endif +#endif } - void join(Bounded_error_distance_computation& rhs) { - distance = (CGAL::max)(rhs.distance, distance); + void join(Bounded_error_squared_distance_computation& rhs) + { + sq_hdist = (CGAL::max)(rhs.sq_hdist, sq_hdist); } }; #endif // defined(CGAL_LINKED_WITH_TBB) && defined(CGAL_METIS_ENABLED) -template< class Concurrency_tag, +template -double bounded_error_one_sided_Hausdorff_impl( - const TriangleMesh1& tm1, - const TriangleMesh2& tm2, - const typename Kernel::FT error_bound, - const typename Kernel::FT distance_bound, - const bool compare_meshes, - const VPM1& vpm1, - const VPM2& vpm2, - const NamedParameters1& np1, - const NamedParameters2& np2, - OutputIterator& out) -{ - #if !defined(CGAL_LINKED_WITH_TBB) || !defined(CGAL_METIS_ENABLED) - CGAL_static_assertion_msg( - !(boost::is_convertible::value), - "Parallel_tag is enabled but at least TBB or METIS is unavailable."); - #endif + class OutputIterator> +typename Kernel::FT +bounded_error_squared_one_sided_Hausdorff_distance_impl(const TriangleMesh1& tm1, + const TriangleMesh2& tm2, + const typename Kernel::FT error_bound, + const typename Kernel::FT sq_distance_bound, + const bool compare_meshes, + const VPM1 vpm1, + const VPM2 vpm2, + const NamedParameters1& np1, + const NamedParameters2& np2, + OutputIterator& out) +{ +#if !defined(CGAL_LINKED_WITH_TBB) || !defined(CGAL_METIS_ENABLED) + CGAL_static_assertion_msg(!(boost::is_convertible::value), + "Parallel_tag is enabled but at least TBB or METIS is unavailable."); +#endif using FT = typename Kernel::FT; @@ -1908,8 +2021,7 @@ // between BHDs computed for these parts with respect to tm2. // This is off by default because the parallel version does not show much of runtime improvement. // The slowest part is building AABB trees and this is what should be accelerated in the future. - #if defined(CGAL_LINKED_WITH_TBB) && defined(CGAL_METIS_ENABLED) && defined(USE_PARALLEL_BEHD) - using Point_3 = typename Kernel::Point_3; +#if defined(CGAL_LINKED_WITH_TBB) && defined(CGAL_METIS_ENABLED) && defined(USE_PARALLEL_BEHD) using TMF = CGAL::Face_filtered_graph; using TMF_primitive = AABB_face_graph_triangle_primitive; using TMF_traits = AABB_traits; @@ -1920,198 +2032,221 @@ std::vector tm1_parts; std::vector tm1_trees; std::vector tm_wrappers; - #endif // defined(CGAL_LINKED_WITH_TBB) && defined(CGAL_METIS_ENABLED) +#endif // defined(CGAL_LINKED_WITH_TBB) && defined(CGAL_METIS_ENABLED) - #ifdef CGAL_HAUSDORFF_DEBUG +#ifdef CGAL_HAUSDORFF_DEBUG using Timer = CGAL::Real_timer; Timer timer; std::cout.precision(17); - #endif +#endif TM1_tree tm1_tree; TM2_tree tm2_tree; - FT infinity_value = -FT(1); - #if defined(CGAL_LINKED_WITH_TBB) && defined(CGAL_METIS_ENABLED) && defined(USE_PARALLEL_BEHD) + FT infinity_value = FT(-1); + +#if defined(CGAL_LINKED_WITH_TBB) && defined(CGAL_METIS_ENABLED) && defined(USE_PARALLEL_BEHD) // TODO: add to NP! const int nb_cores = 4; const std::size_t min_nb_faces_to_split = 100; // TODO: increase this number? - #ifdef CGAL_HAUSDORFF_DEBUG + #ifdef CGAL_HAUSDORFF_DEBUG std::cout << "* num cores: " << nb_cores << std::endl; - #endif - - if ( - boost::is_convertible::value && - nb_cores > 1 && faces(tm1).size() >= min_nb_faces_to_split) { + #endif + if(boost::is_convertible::value && + nb_cores > 1 && + faces(tm1).size() >= min_nb_faces_to_split) + { // (0) -- Compute infinity value. - #ifdef CGAL_HAUSDORFF_DEBUG + #ifdef CGAL_HAUSDORFF_DEBUG timer.reset(); timer.start(); - #endif - const auto bbox1 = bbox(tm1); - const auto bbox2 = bbox(tm2); - const auto bb = bbox1 + bbox2; - const FT sq_dist = CGAL::squared_distance( - Point_3(bb.xmin(), bb.ymin(), bb.zmin()), - Point_3(bb.xmax(), bb.ymax(), bb.zmax())); - infinity_value = CGAL::approximate_sqrt(sq_dist) * FT(2); + #endif + + const Bbox_3 bbox1 = bbox(tm1); + const Bbox_3 bbox2 = bbox(tm2); + const Bbox_3 bb = bbox1 + bbox2; + const FT sq_dist = square(bb.xmax() - bb.xmin()) + + square(bb.ymax() - bb.ymin()) + + square(bb.zmax() - bb.zmin()); + infinity_value = FT(4) * sq_dist; CGAL_assertion(infinity_value >= FT(0)); - #ifdef CGAL_HAUSDORFF_DEBUG + + #ifdef CGAL_HAUSDORFF_DEBUG timer.stop(); const double time0 = timer.time(); std::cout << "- computing infinity (sec.): " << time0 << std::endl; - #endif + #endif // (1) -- Create partition of tm1. - #ifdef CGAL_HAUSDORFF_DEBUG + #ifdef CGAL_HAUSDORFF_DEBUG timer.reset(); timer.start(); - #endif + #endif + using Face_property_tag = CGAL::dynamic_face_property_t; auto face_pid_map = get(Face_property_tag(), tm1); - CGAL::METIS::partition_graph( - tm1, nb_cores, CGAL::parameters:: - face_partition_id_map(face_pid_map)); - #ifdef CGAL_HAUSDORFF_DEBUG + CGAL::METIS::partition_graph(tm1, nb_cores, CGAL::parameters::face_partition_id_map(face_pid_map)); + + #ifdef CGAL_HAUSDORFF_DEBUG timer.stop(); const double time1 = timer.time(); std::cout << "- computing partition time (sec.): " << time1 << std::endl; - #endif + #endif // (2) -- Create a filtered face graph for each part. - #ifdef CGAL_HAUSDORFF_DEBUG + #ifdef CGAL_HAUSDORFF_DEBUG timer.reset(); timer.start(); - #endif + #endif + tm1_parts.reserve(nb_cores); - for (int i = 0; i < nb_cores; ++i) { + for(int i = 0; i < nb_cores; ++i) + { tm1_parts.emplace_back(tm1, i, face_pid_map); // TODO: why is it triggered sometimes? // CGAL_assertion(tm1_parts.back().is_selection_valid()); - #ifdef CGAL_HAUSDORFF_DEBUG + #ifdef CGAL_HAUSDORFF_DEBUG std::cout << "- part " << i << " size: " << tm1_parts.back().number_of_faces() << std::endl; - #endif + #endif } + CGAL_assertion(tm1_parts.size() == nb_cores); - #ifdef CGAL_HAUSDORFF_DEBUG + #ifdef CGAL_HAUSDORFF_DEBUG timer.stop(); const double time2 = timer.time(); std::cout << "- creating graphs time (sec.): " << time2 << std::endl; - #endif + #endif // (3) -- Preprocess all input data. - #ifdef CGAL_HAUSDORFF_DEBUG + #ifdef CGAL_HAUSDORFF_DEBUG timer.reset(); timer.start(); - #endif + #endif + tm1_trees.resize(tm1_parts.size()); tm_wrappers.reserve(tm1_parts.size() + 1); - for (std::size_t i = 0; i < tm1_parts.size(); ++i) { + for(std::size_t i = 0; i < tm1_parts.size(); ++i) tm_wrappers.push_back(TM1_wrapper(tm1_parts[i], vpm1, false, tm1_trees[i])); - } + tm_wrappers.push_back(TM2_wrapper(tm2, vpm2, true, tm2_tree)); CGAL_assertion(tm_wrappers.size() == tm1_parts.size() + 1); + Bounded_error_preprocessing bep(tm_wrappers); tbb::parallel_reduce(tbb::blocked_range(0, tm_wrappers.size()), bep); - #ifdef CGAL_HAUSDORFF_DEBUG + + #ifdef CGAL_HAUSDORFF_DEBUG timer.stop(); const double time3 = timer.time(); std::cout << "- creating trees time (sec.) " << time3 << std::endl; - #endif + #endif - // Final timing. - #ifdef CGAL_HAUSDORFF_DEBUG - std::cout << "* preprocessing parallel time (sec.) " << - time0 + time1 + time2 + time3 << std::endl; - #endif + #ifdef CGAL_HAUSDORFF_DEBUG + // Final timing + std::cout << "* preprocessing parallel time (sec.) " << time0 + time1 + time2 + time3 << std::endl; + #endif } else // sequential version - #endif // defined(CGAL_LINKED_WITH_TBB) && defined(CGAL_METIS_ENABLED) +#endif // defined(CGAL_LINKED_WITH_TBB) && defined(CGAL_METIS_ENABLED) { - #ifdef CGAL_HAUSDORFF_DEBUG +#ifdef CGAL_HAUSDORFF_DEBUG timer.reset(); timer.start(); std::cout << "* preprocessing sequential version " << std::endl; - #endif +#endif + bool rebuild = false; std::vector tm1_only; std::vector tm2_only; - std::tie(infinity_value, rebuild) = preprocess_bounded_error_Hausdorff_impl( - tm1, tm2, compare_meshes, vpm1, vpm2, true, np1, np2, - tm1_tree, tm2_tree, tm1_only, tm2_only); + std::tie(infinity_value, rebuild) = + preprocess_bounded_error_squared_Hausdorff_distance_impl( + tm1, tm2, compare_meshes, vpm1, vpm2, true /*is_one_sided_distance*/, np1, np2, + tm1_tree, tm2_tree, tm1_only, tm2_only); + CGAL_assertion(!rebuild); - if (infinity_value >= FT(0)) { + + if(infinity_value >= FT(0)) + { tm1_tree.build(); tm2_tree.build(); tm1_tree.do_not_accelerate_distance_queries(); tm2_tree.accelerate_distance_queries(); } - #ifdef CGAL_HAUSDORFF_DEBUG + +#ifdef CGAL_HAUSDORFF_DEBUG timer.stop(); std::cout << "* preprocessing sequential time (sec.) " << timer.time() << std::endl; - #endif +#endif } - #ifdef CGAL_HAUSDORFF_DEBUG +#ifdef CGAL_HAUSDORFF_DEBUG std::cout << "* infinity_value: " << infinity_value << std::endl; - #endif - if (infinity_value < FT(0)) { - #ifdef CGAL_HAUSDORFF_DEBUG +#endif + + if(is_negative(infinity_value)) + { +#ifdef CGAL_HAUSDORFF_DEBUG std::cout << "* culling rate: 100%" << std::endl; - #endif +#endif const auto face1 = *(faces(tm1).begin()); const auto face2 = *(faces(tm2).begin()); *out++ = std::make_pair(face1, face2); *out++ = std::make_pair(face1, face2); - return 0.0; // TM1 is part of TM2 so the distance is zero + return 0.; // TM1 is part of TM2 so the distance is zero } - CGAL_assertion(error_bound >= FT(0)); + CGAL_assertion(infinity_value > FT(0)); - const FT initial_bound = error_bound; - std::atomic hdist; + CGAL_assertion(error_bound >= 0.); + + const FT sq_initial_bound = square(FT(error_bound)); + FT sq_hdist = FT(-1); - #ifdef CGAL_HAUSDORFF_DEBUG +#ifdef CGAL_HAUSDORFF_DEBUG timer.reset(); timer.start(); - #endif - - #if defined(CGAL_LINKED_WITH_TBB) && defined(CGAL_METIS_ENABLED) && defined(USE_PARALLEL_BEHD) - if ( - boost::is_convertible::value && - nb_cores > 1 && faces(tm1).size() >= min_nb_faces_to_split) { +#endif - #ifdef CGAL_HAUSDORFF_DEBUG +#if defined(CGAL_LINKED_WITH_TBB) && defined(CGAL_METIS_ENABLED) && defined(USE_PARALLEL_BEHD) + if(boost::is_convertible::value && + nb_cores > 1 && + faces(tm1).size() >= min_nb_faces_to_split) + { +#ifdef CGAL_HAUSDORFF_DEBUG std::cout << "* executing parallel version " << std::endl; - #endif - Bounded_error_distance_computation bedc( - tm1_parts, tm2, error_bound, vpm1, vpm2, - infinity_value, initial_bound, tm1_trees, tm2_tree); +#endif + + using Comp = Bounded_error_squared_distance_computation; + + Comp bedc(tm1_parts, tm2, error_bound, vpm1, vpm2, + infinity_value, sq_initial_bound, tm1_trees, tm2_tree); tbb::parallel_reduce(tbb::blocked_range(0, tm1_parts.size()), bedc); - hdist = bedc.distance; - } else // sequential version - #endif // defined(CGAL_LINKED_WITH_TBB) && defined(CGAL_METIS_ENABLED) + sq_hdist = bedc.sq_hdist; + } + else // sequential version +#endif // defined(CGAL_LINKED_WITH_TBB) && defined(CGAL_METIS_ENABLED) { - #ifdef CGAL_HAUSDORFF_DEBUG - std::cout << "* executing sequential version " << std::endl; - #endif - hdist = bounded_error_Hausdorff_impl( - tm1, tm2, error_bound, vpm1, vpm2, - infinity_value, initial_bound, distance_bound, - tm1_tree, tm2_tree, out); +#ifdef CGAL_HAUSDORFF_DEBUG + std::cout << "* executing sequential version" << std::endl; +#endif + sq_hdist = bounded_error_squared_Hausdorff_distance_impl( + tm1, tm2, vpm1, vpm2, tm1_tree, tm2_tree, + error_bound, sq_initial_bound, sq_distance_bound, infinity_value, out); } - #ifdef CGAL_HAUSDORFF_DEBUG +#ifdef CGAL_HAUSDORFF_DEBUG timer.stop(); + std::cout << "* squared distance " << sq_hdist << std::endl; + std::cout << "* distance " << approximate_sqrt(sq_hdist) << std::endl; std::cout << "* computation time (sec.) " << timer.time() << std::endl; - #endif +#endif + + CGAL_postcondition(sq_hdist >= FT(0)); - CGAL_assertion(hdist >= 0.0); - return hdist; + return sq_hdist; } -template< class Concurrency_tag, +template -double bounded_error_symmetric_Hausdorff_impl( - const TriangleMesh1& tm1, - const TriangleMesh2& tm2, - const typename Kernel::FT error_bound, - const typename Kernel::FT distance_bound, - const bool compare_meshes, - const VPM1& vpm1, - const VPM2& vpm2, - const NamedParameters1& np1, - const NamedParameters2& np2, - OutputIterator1& out1, - OutputIterator2& out2) -{ - #if !defined(CGAL_LINKED_WITH_TBB) || !defined(CGAL_METIS_ENABLED) - CGAL_static_assertion_msg( - !(boost::is_convertible::value), - "Parallel_tag is enabled but at least TBB or METIS is unavailable."); - #endif + class OutputIterator2> +typename Kernel::FT +bounded_error_squared_symmetric_Hausdorff_distance_impl(const TriangleMesh1& tm1, + const TriangleMesh2& tm2, + const typename Kernel::FT error_bound, + const typename Kernel::FT sq_distance_bound, + const bool compare_meshes, + const VPM1 vpm1, + const VPM2 vpm2, + const NamedParameters1& np1, + const NamedParameters2& np2, + OutputIterator1& out1, + OutputIterator2& out2) +{ +#if !defined(CGAL_LINKED_WITH_TBB) || !defined(CGAL_METIS_ENABLED) + CGAL_static_assertion_msg(!(boost::is_convertible::value), + "Parallel_tag is enabled but at least TBB or METIS is unavailable."); +#endif // Optimized version. // -- We compare meshes only if it is required. @@ -2161,44 +2295,50 @@ std::vector tm1_only; std::vector tm2_only; + const FT sq_error_bound = square(FT(error_bound)); + FT infinity_value = FT(-1); + // All trees below are built and/or accelerated lazily. TM1_tree tm1_tree; TM2_tree tm2_tree; - FT infinity_value = -FT(1); bool rebuild = false; - std::tie(infinity_value, rebuild) = preprocess_bounded_error_Hausdorff_impl( - tm1, tm2, compare_meshes, vpm1, vpm2, false, np1, np2, + std::tie(infinity_value, rebuild) = preprocess_bounded_error_squared_Hausdorff_distance_impl( + tm1, tm2, compare_meshes, vpm1, vpm2, false /*is_one_sided_distance*/, np1, np2, tm1_tree, tm2_tree, tm1_only, tm2_only); - if (infinity_value < FT(0)) { - #ifdef CGAL_HAUSDORFF_DEBUG + if(is_negative(infinity_value)) + { +#ifdef CGAL_HAUSDORFF_DEBUG std::cout.precision(17); std::cout << "* culling rate: 100%" << std::endl; - #endif +#endif const auto face1 = *(faces(tm1).begin()); const auto face2 = *(faces(tm2).begin()); *out1++ = std::make_pair(face1, face2); *out1++ = std::make_pair(face1, face2); *out2++ = std::make_pair(face2, face1); *out2++ = std::make_pair(face2, face1); - return 0.0; // TM1 and TM2 are equal so the distance is zero + + return 0.; // TM1 and TM2 are equal so the distance is zero } - CGAL_assertion(infinity_value > FT(0)); + + CGAL_assertion(is_positive(infinity_value)); // Compute the first one-sided distance. - FT initial_bound = error_bound; - double dista = CGAL::to_double(error_bound); + FT sq_initial_bound = sq_error_bound; + FT sq_dista = sq_error_bound; - if (!compare_meshes || (compare_meshes && tm1_only.size() > 0)) { - dista = bounded_error_Hausdorff_impl( - tm1, tm2, error_bound, vpm1, vpm2, - infinity_value, initial_bound, distance_bound, - tm1_tree, tm2_tree, out1); + if(!compare_meshes || (compare_meshes && tm1_only.size() > 0)) + { + sq_dista = bounded_error_squared_Hausdorff_distance_impl( + tm1, tm2, vpm1, vpm2, tm1_tree, tm2_tree, + error_bound, sq_initial_bound, sq_distance_bound, infinity_value, out1); } // In case this is true, we need to rebuild trees in order to accelerate // computations for the second call. - if (rebuild) { + if(rebuild) + { CGAL_assertion(compare_meshes); tm1_tree.clear(); tm2_tree.clear(); @@ -2209,87 +2349,78 @@ } // Compute the second one-sided distance. - initial_bound = static_cast(dista); // TODO: we should better test this optimization! - double distb = CGAL::to_double(error_bound); + sq_initial_bound = sq_dista; // @todo we should better test this optimization! + FT sq_distb = sq_error_bound; - if (!compare_meshes || (compare_meshes && tm2_only.size() > 0)) { - distb = bounded_error_Hausdorff_impl( - tm2, tm1, error_bound, vpm2, vpm1, - infinity_value, initial_bound, distance_bound, - tm2_tree, tm1_tree, out2); + if(!compare_meshes || (compare_meshes && tm2_only.size() > 0)) + { + sq_distb = bounded_error_squared_Hausdorff_distance_impl( + tm2, tm1, vpm2, vpm1, tm2_tree, tm1_tree, + error_bound, sq_initial_bound, sq_distance_bound, infinity_value, out2); } - // Return the maximum. - return (CGAL::max)(dista, distb); + return (CGAL::max)(sq_dista, sq_distb); } template -typename Kernel::FT recursive_hausdorff_subdivision( - const typename Kernel::Point_3& v0, - const typename Kernel::Point_3& v1, - const typename Kernel::Point_3& v2, - const TM2_tree& tm2_tree, - const typename Kernel::FT squared_error_bound) -{ - // If all edge lengths of the triangle are below the error_bound, - // return maximum of the distances of the three points to TM2 (via TM2_tree). - const auto max_squared_edge_length = - (CGAL::max)( - (CGAL::max)( - CGAL::squared_distance(v0, v1), - CGAL::squared_distance(v0, v2)), - CGAL::squared_distance(v1, v2)); - - if (max_squared_edge_length < squared_error_bound) { - return (CGAL::max)( - (CGAL::max)( - CGAL::squared_distance(v0, tm2_tree.closest_point(v0)), - CGAL::squared_distance(v1, tm2_tree.closest_point(v1))), - CGAL::squared_distance(v2, tm2_tree.closest_point(v2))); +typename Kernel::FT recursive_hausdorff_subdivision(const typename Kernel::Point_3& p0, + const typename Kernel::Point_3& p1, + const typename Kernel::Point_3& p2, + const TM2_tree& tm2_tree, + const typename Kernel::FT sq_error_bound) +{ + using FT = typename Kernel::FT; + using Point_3 = typename Kernel::Point_3; + + // If all edge lengths of the triangle are below the error bound, + // return the maximum of the distances of the three points to TM2 (via TM2_tree). + const FT max_squared_edge_length = (CGAL::max)((CGAL::max)(CGAL::squared_distance(p0, p1), + CGAL::squared_distance(p0, p2)), + CGAL::squared_distance(p1, p2)); + + if(max_squared_edge_length < sq_error_bound) + { + return (CGAL::max)((CGAL::max)(CGAL::squared_distance(p0, tm2_tree.closest_point(p0)), + CGAL::squared_distance(p1, tm2_tree.closest_point(p1))), + CGAL::squared_distance(p2, tm2_tree.closest_point(p2))); } // Else subdivide the triangle and proceed recursively. - const auto v01 = midpoint(v0, v1); - const auto v02 = midpoint(v0, v2); - const auto v12 = midpoint(v1, v2); + const Point_3 p01 = midpoint(p0, p1); + const Point_3 p02 = midpoint(p0, p2); + const Point_3 p12 = midpoint(p1, p2); return (CGAL::max)( - (CGAL::max)( - recursive_hausdorff_subdivision(v0, v01, v02, tm2_tree, squared_error_bound), - recursive_hausdorff_subdivision(v1, v01, v12, tm2_tree, squared_error_bound)), - (CGAL::max)( - recursive_hausdorff_subdivision(v2 , v02, v12, tm2_tree, squared_error_bound), - recursive_hausdorff_subdivision(v01, v02, v12, tm2_tree, squared_error_bound))); + (CGAL::max)(recursive_hausdorff_subdivision( p0, p01, p02, tm2_tree, sq_error_bound), + recursive_hausdorff_subdivision( p1, p01, p12, tm2_tree, sq_error_bound)), + (CGAL::max)(recursive_hausdorff_subdivision( p2, p02, p12, tm2_tree, sq_error_bound), + recursive_hausdorff_subdivision(p01, p02, p12, tm2_tree, sq_error_bound))); } -template< class Concurrency_tag, +template -double bounded_error_Hausdorff_naive_impl( - const TriangleMesh1& tm1, - const TriangleMesh2& tm2, - const typename Kernel::FT error_bound, - const VPM1& vpm1, - const VPM2& vpm2) + class VPM2> +typename Kernel::FT +bounded_error_squared_Hausdorff_distance_naive_impl(const TriangleMesh1& tm1, + const TriangleMesh2& tm2, + const typename Kernel::FT sq_error_bound, + const VPM1 vpm1, + const VPM2 vpm2) { - using FT = typename Kernel::FT; - using Point_3 = typename Kernel::Point_3; + using FT = typename Kernel::FT; + using Point_3 = typename Kernel::Point_3; using Triangle_3 = typename Kernel::Triangle_3; using TM2_primitive = AABB_face_graph_triangle_primitive; - using TM2_traits = AABB_traits; - using TM2_tree = AABB_tree; + using TM2_traits = AABB_traits; + using TM2_tree = AABB_tree; using TM1_face_to_triangle_map = Triangle_from_face_descriptor_map; - // Initially, no lower bound is known. - FT squared_lower_bound = FT(0); - - // Work with squares in the following, only draw sqrt at the very end. - const FT squared_error_bound = error_bound * error_bound; + FT sq_lower_bound = FT(0); // Build an AABB tree on tm2. TM2_tree tm2_tree(faces(tm2).begin(), faces(tm2).end(), tm2, vpm2); @@ -2300,32 +2431,30 @@ const TM1_face_to_triangle_map face_to_triangle_map(&tm1, vpm1); // Iterate over the faces of TM1. - for (const auto& face : faces(tm1)) { - + for(const auto& face : faces(tm1)) + { // Get the vertices of the face and pass them on to a recursive method. const Triangle_3 triangle = get(face_to_triangle_map, face); - const Point_3 v0 = triangle.vertex(0); - const Point_3 v1 = triangle.vertex(1); - const Point_3 v2 = triangle.vertex(2); + const Point_3& v0 = triangle.vertex(0); + const Point_3& v1 = triangle.vertex(1); + const Point_3& v2 = triangle.vertex(2); // Recursively process the current triangle to obtain a lower bound on its Hausdorff distance. - const FT triangle_bound = recursive_hausdorff_subdivision( - v0, v1, v2, tm2_tree, squared_error_bound); + const FT sq_triangle_bound = recursive_hausdorff_subdivision(v0, v1, v2, tm2_tree, sq_error_bound); // Store the largest lower bound. - if (triangle_bound > squared_lower_bound) { - squared_lower_bound = triangle_bound; - } + if(sq_triangle_bound > sq_lower_bound) + sq_lower_bound = sq_triangle_bound; } - // Return linear interpolation between found upper and lower bound. - return CGAL::sqrt(CGAL::to_double(squared_lower_bound)); + return to_double(approximate_sqrt(sq_lower_bound)); } -} // end of namespace internal +} // namespace internal /** * \ingroup PMP_distance_grp + * * returns an estimate on the Hausdorff distance between `tm1` and `tm2` that * is at most `error_bound` away from the actual Hausdorff distance between * the two given meshes. @@ -2351,190 +2480,137 @@ * * \cgalNamedParamsBegin * \cgalParamNBegin{vertex_point_map} - * \cgalParamDescription{a property map associating points to the vertices of `tm1` and `tm2` (`np1` and `np2`, respectively)} + * \cgalParamDescription{a property map associating points to the vertices of `tmX`} * \cgalParamType{a class model of `ReadablePropertyMap` with `boost::graph_traits::%vertex_descriptor` * as key type and `%Point_3` as value type} - * \cgalParamDefault{`boost::get(CGAL::vertex_point, tm)`} + * \cgalParamDefault{`boost::get(CGAL::vertex_point, tmX)`} * \cgalParamExtra{If this parameter is omitted, an internal property map for `CGAL::vertex_point_t` * must be available in `TriangleMeshX`.} * \cgalParamNEnd * \cgalParamNBegin{match_faces} - * \cgalParamDescription{a boolean tag that turns on the preprocessing step that filters out all faces, + * \cgalParamDescription{a boolean tag that turns on the preprocessing step that filters out all faces * which belong to both meshes and hence do not contribute to the final distance} * \cgalParamType{Boolean} * \cgalParamDefault{true} - * \cgalParamExtra{Both `np1` and `np2` must have this tag true in order to activate this preprocessing.} + * \cgalParamExtra{Both `np1` and `np2` must have this tag set to `true` in order to activate this preprocessing.} * \cgalParamNEnd * \cgalNamedParamsEnd * + * @pre `tm1` and `tm2` are non-empty triangle meshes. + * * @return the one-sided Hausdorff distance */ -template< class Concurrency_tag, +template -double bounded_error_Hausdorff_distance( - const TriangleMesh1& tm1, - const TriangleMesh2& tm2, - const double error_bound, - const NamedParameters1& np1, - const NamedParameters2& np2) -{ - CGAL_assertion_code( - const bool is_triangle = is_triangle_mesh(tm1) && is_triangle_mesh(tm2)); - CGAL_assertion_msg(is_triangle, - "Both meshes must be triangulated to compute this distance!"); - + class NamedParameters1 = parameters::Default_named_parameters, + class NamedParameters2 = parameters::Default_named_parameters> +double bounded_error_Hausdorff_distance(const TriangleMesh1& tm1, + const TriangleMesh2& tm2, + const double error_bound = 0.0001, + const NamedParameters1& np1 = parameters::default_values(), + const NamedParameters2& np2 = parameters::default_values()) +{ using Traits = typename GetGeomTraits::type; using FT = typename Traits::FT; - const auto vpm1 = parameters::choose_parameter( - parameters::get_parameter(np1, internal_np::vertex_point), - get_const_property_map(vertex_point, tm1)); - const auto vpm2 = parameters::choose_parameter( - parameters::get_parameter(np2, internal_np::vertex_point), - get_const_property_map(vertex_point, tm2)); - - const bool match_faces1 = parameters::choose_parameter( - parameters::get_parameter(np1, internal_np::match_faces), true); - const bool match_faces2 = parameters::choose_parameter( - parameters::get_parameter(np2, internal_np::match_faces), true); + using parameters::choose_parameter; + using parameters::get_parameter; + + CGAL_precondition(!is_empty(tm1) && is_triangle_mesh(tm1)); + CGAL_precondition(!is_empty(tm2) && is_triangle_mesh(tm2)); + + const auto vpm1 = choose_parameter(get_parameter(np1, internal_np::vertex_point), + get_const_property_map(vertex_point, tm1)); + const auto vpm2 = choose_parameter(get_parameter(np2, internal_np::vertex_point), + get_const_property_map(vertex_point, tm2)); + + const bool match_faces1 = choose_parameter(get_parameter(np1, internal_np::match_faces), true); + const bool match_faces2 = choose_parameter(get_parameter(np2, internal_np::match_faces), true); const bool match_faces = match_faces1 && match_faces2; - auto out = parameters::choose_parameter( - parameters::get_parameter(np1, internal_np::output_iterator), - CGAL::Emptyset_iterator()); - - CGAL_precondition(error_bound >= 0.0); - const FT error_threshold = static_cast(error_bound); - return internal::bounded_error_one_sided_Hausdorff_impl( - tm1, tm2, error_threshold, -FT(1), match_faces, vpm1, vpm2, np1, np2, out); -} + auto out = choose_parameter(get_parameter(np1, internal_np::output_iterator), + CGAL::Emptyset_iterator()); -template< class Concurrency_tag, - class TriangleMesh1, - class TriangleMesh2, - class NamedParameters1 > -double bounded_error_Hausdorff_distance( - const TriangleMesh1& tm1, - const TriangleMesh2& tm2, - const double error_bound, - const NamedParameters1& np1) -{ - return bounded_error_Hausdorff_distance( - tm1, tm2, error_bound, np1, parameters::all_default()); -} + CGAL_precondition(error_bound >= 0.); -template< class Concurrency_tag, - class TriangleMesh1, - class TriangleMesh2 > -double bounded_error_Hausdorff_distance( - const TriangleMesh1& tm1, - const TriangleMesh2& tm2, - const double error_bound = 0.0001) -{ - return bounded_error_Hausdorff_distance( - tm1, tm2, error_bound, parameters::all_default()); + const FT sq_hdist = internal::bounded_error_squared_one_sided_Hausdorff_distance_impl( + tm1, tm2, error_bound, FT(-1) /*distance threshold*/, match_faces, vpm1, vpm2, np1, np2, out); + + return to_double(approximate_sqrt(sq_hdist)); } /** * \ingroup PMP_distance_grp - * returns the maximum of `bounded_error_Hausdorff_distance(tm1, tm2, error_bound, np1, np2)` + * + * returns the the symmetric Hausdorff distance, that is + * the maximum of `bounded_error_Hausdorff_distance(tm1, tm2, error_bound, np1, np2)` * and `bounded_error_Hausdorff_distance(tm2, tm1, error_bound, np2, np1)`. * * This function optimizes all internal calls to shared data structures in order to * speed up the computation. * - * @return the symmetric Hausdorff distance - * @see `CGAL::Polygon_mesh_processing::bounded_error_Hausdorff_distance()` + * See the function `CGAL::Polygon_mesh_processing::bounded_error_Hausdorff_distance()` + * for a complete description of the parameters and requirements. */ -template< class Concurrency_tag, +template -double bounded_error_symmetric_Hausdorff_distance( - const TriangleMesh1& tm1, - const TriangleMesh2& tm2, - const double error_bound, - const NamedParameters1& np1, - const NamedParameters2& np2) -{ - CGAL_assertion_code( - const bool is_triangle = is_triangle_mesh(tm1) && is_triangle_mesh(tm2)); - CGAL_assertion_msg(is_triangle, - "Both meshes must be triangulated to compute this distance!"); - + class NamedParameters1 = parameters::Default_named_parameters, + class NamedParameters2 = parameters::Default_named_parameters> +double bounded_error_symmetric_Hausdorff_distance(const TriangleMesh1& tm1, + const TriangleMesh2& tm2, + const double error_bound, + const NamedParameters1& np1 = parameters::default_values(), + const NamedParameters2& np2 = parameters::default_values()) +{ using Traits = typename GetGeomTraits::type; using FT = typename Traits::FT; - const auto vpm1 = parameters::choose_parameter( - parameters::get_parameter(np1, internal_np::vertex_point), - get_const_property_map(vertex_point, tm1)); - const auto vpm2 = parameters::choose_parameter( - parameters::get_parameter(np2, internal_np::vertex_point), - get_const_property_map(vertex_point, tm2)); - - const bool match_faces1 = parameters::choose_parameter( - parameters::get_parameter(np1, internal_np::match_faces), true); - const bool match_faces2 = parameters::choose_parameter( - parameters::get_parameter(np2, internal_np::match_faces), true); + using parameters::choose_parameter; + using parameters::get_parameter; + + CGAL_precondition(!is_empty(tm1) && is_triangle_mesh(tm1)); + CGAL_precondition(!is_empty(tm2) && is_triangle_mesh(tm2)); + + const auto vpm1 = choose_parameter(get_parameter(np1, internal_np::vertex_point), + get_const_property_map(vertex_point, tm1)); + const auto vpm2 = choose_parameter(get_parameter(np2, internal_np::vertex_point), + get_const_property_map(vertex_point, tm2)); + + const bool match_faces1 = choose_parameter(get_parameter(np1, internal_np::match_faces), true); + const bool match_faces2 = choose_parameter(get_parameter(np2, internal_np::match_faces), true); const bool match_faces = match_faces1 && match_faces2; // TODO: should we return a union of these realizing triangles? - auto out1 = parameters::choose_parameter( - parameters::get_parameter(np1, internal_np::output_iterator), - CGAL::Emptyset_iterator()); - auto out2 = parameters::choose_parameter( - parameters::get_parameter(np2, internal_np::output_iterator), - CGAL::Emptyset_iterator()); - - CGAL_precondition(error_bound >= 0.0); - const FT error_threshold = static_cast(error_bound); - return internal::bounded_error_symmetric_Hausdorff_impl( - tm1, tm2, error_threshold, -FT(1), match_faces, vpm1, vpm2, np1, np2, out1, out2); -} + auto out1 = choose_parameter(get_parameter(np1, internal_np::output_iterator), + CGAL::Emptyset_iterator()); + auto out2 = choose_parameter(get_parameter(np2, internal_np::output_iterator), + CGAL::Emptyset_iterator()); -template< class Concurrency_tag, - class TriangleMesh1, - class TriangleMesh2, - class NamedParameters1 > -double bounded_error_symmetric_Hausdorff_distance( - const TriangleMesh1& tm1, - const TriangleMesh2& tm2, - const double error_bound, - const NamedParameters1& np1) -{ - return bounded_error_symmetric_Hausdorff_distance( - tm1, tm2, error_bound, np1, parameters::all_default()); -} + CGAL_precondition(error_bound >= 0.); -template< class Concurrency_tag, - class TriangleMesh1, - class TriangleMesh2> -double bounded_error_symmetric_Hausdorff_distance( - const TriangleMesh1& tm1, - const TriangleMesh2& tm2, - const double error_bound = 0.0001) -{ - return bounded_error_symmetric_Hausdorff_distance( - tm1, tm2, error_bound, parameters::all_default()); -} + const FT sq_hdist = internal::bounded_error_squared_symmetric_Hausdorff_distance_impl( + tm1, tm2, error_bound, FT(-1) /*distance_threshold*/, match_faces, vpm1, vpm2, np1, np2, out1, out2); -// TODO: Find better name! -// TODO: Should we use one-sided or symmetric distance here? + return to_double(approximate_sqrt(sq_hdist)); +} /** * \ingroup PMP_distance_grp - * returns `true` if the Hausdorff distance between two meshes is larger than - * the user-defined max distance, otherwise it returns `false`. The distance used - * to compute the proximity of the meshes is the bounded-error Hausdorff distance. * + * \brief returns `true` if the Hausdorff distance between two meshes is larger than + * the user-defined max distance, otherwise it returns `false`. + * + * The distance used to compute the proximity of the meshes is the bounded-error Hausdorff distance. * Instead of computing the full distance and checking it against the user-provided - * value, this function early quits in case certain criteria show that the meshes + * value, this function returns early if certain criteria show that the meshes * do not satisfy the provided `distance_bound`. * + * See the function `CGAL::Polygon_mesh_processing::bounded_error_Hausdorff_distance()` + * for a complete description of the parameters and requirements. The following extra named parameter + * is available for `np1`: + * * \cgalNamedParamsBegin * \cgalParamNBegin{use_one_sided_hausdorff} * \cgalParamDescription{a boolean tag indicating if the one-sided Hausdorff distance should be used.} @@ -2543,160 +2619,104 @@ * \cgalParamExtra{If this tag is set to `false`, the symmetric Hausdorff distance is used.} * \cgalParamNEnd * \cgalNamedParamsEnd - * - * @return Boolean `true` or `false` -* @see `CGAL::Polygon_mesh_processing::bounded_error_Hausdorff_distance()` */ template< class Concurrency_tag, class TriangleMesh1, class TriangleMesh2, - class NamedParameters1, - class NamedParameters2 > -bool is_Hausdorff_distance_larger( - const TriangleMesh1& tm1, - const TriangleMesh2& tm2, - const double distance_bound, - const double error_bound, - const NamedParameters1& np1, - const NamedParameters2& np2) -{ - CGAL_assertion_code( - const bool is_triangle = is_triangle_mesh(tm1) && is_triangle_mesh(tm2)); - CGAL_assertion_msg(is_triangle, - "Both meshes must be triangulated in order to be compared!"); - + class NamedParameters1 = parameters::Default_named_parameters, + class NamedParameters2 = parameters::Default_named_parameters> +bool is_Hausdorff_distance_larger(const TriangleMesh1& tm1, + const TriangleMesh2& tm2, + const double distance_bound, + const double error_bound, + const NamedParameters1& np1 = parameters::default_values(), + const NamedParameters2& np2 = parameters::default_values()) +{ using Traits = typename GetGeomTraits::type; using FT = typename Traits::FT; - const auto vpm1 = parameters::choose_parameter( - parameters::get_parameter(np1, internal_np::vertex_point), - get_const_property_map(vertex_point, tm1)); - const auto vpm2 = parameters::choose_parameter( - parameters::get_parameter(np2, internal_np::vertex_point), - get_const_property_map(vertex_point, tm2)); - - const bool match_faces1 = parameters::choose_parameter( - parameters::get_parameter(np1, internal_np::match_faces), true); - const bool match_faces2 = parameters::choose_parameter( - parameters::get_parameter(np2, internal_np::match_faces), true); + using parameters::choose_parameter; + using parameters::get_parameter; + + CGAL_precondition(!is_empty(tm1) && is_triangle_mesh(tm1)); + CGAL_precondition(!is_empty(tm2) && is_triangle_mesh(tm2)); + + if(distance_bound <= 0.) + return true; + + const auto vpm1 = choose_parameter(get_parameter(np1, internal_np::vertex_point), + get_const_property_map(vertex_point, tm1)); + const auto vpm2 = choose_parameter(get_parameter(np2, internal_np::vertex_point), + get_const_property_map(vertex_point, tm2)); + + const bool match_faces1 = choose_parameter(get_parameter(np1, internal_np::match_faces), true); + const bool match_faces2 = choose_parameter(get_parameter(np2, internal_np::match_faces), true); const bool match_faces = match_faces1 && match_faces2; + const bool use_one_sided = choose_parameter(get_parameter(np1, internal_np::use_one_sided_hausdorff), true); + + CGAL_precondition(error_bound >= 0.); + CGAL_precondition(distance_bound > 0.); + + const FT sq_distance_bound = square(FT(distance_bound)); - const bool use_one_sided = parameters::choose_parameter( - parameters::get_parameter(np1, internal_np::use_one_sided_hausdorff), true); - CGAL_precondition(error_bound >= 0.0); - const FT error_threshold = static_cast(error_bound); - CGAL_precondition(distance_bound >= 0.0); - const FT distance_threshold = static_cast(distance_bound); auto stub = CGAL::Emptyset_iterator(); - double hdist = -1.0; - if (use_one_sided) { - hdist = internal::bounded_error_one_sided_Hausdorff_impl( - tm1, tm2, error_threshold, distance_threshold, match_faces, vpm1, vpm2, np1, np2, stub); - } else { - hdist = internal::bounded_error_symmetric_Hausdorff_impl( - tm1, tm2, error_threshold, distance_threshold, match_faces, vpm1, vpm2, np1, np2, stub, stub); + FT sq_hdist = FT(-1); + if(use_one_sided) + { + sq_hdist = internal::bounded_error_squared_one_sided_Hausdorff_distance_impl( + tm1, tm2, error_bound, sq_distance_bound, match_faces, vpm1, vpm2, np1, np2, stub); + } + else + { + sq_hdist = internal::bounded_error_squared_symmetric_Hausdorff_distance_impl( + tm1, tm2, error_bound, sq_distance_bound, match_faces, vpm1, vpm2, np1, np2, stub, stub); } - CGAL_assertion(hdist >= 0.0); - #ifdef CGAL_HAUSDORFF_DEBUG +#ifdef CGAL_HAUSDORFF_DEBUG std::cout.precision(17); - std::cout << "- fin distance: " << hdist << std::endl; + std::cout << "- fin distance: " << approximate_sqrt(sq_hdist) << std::endl; std::cout << "- max distance: " << distance_bound << std::endl; - #endif - return hdist > distance_bound; -} - -template< class Concurrency_tag, - class TriangleMesh1, - class TriangleMesh2, - class NamedParameters1 > -double is_Hausdorff_distance_larger( - const TriangleMesh1& tm1, - const TriangleMesh2& tm2, - const double max_distance, - const double error_bound, - const NamedParameters1& np1) -{ - return is_Hausdorff_distance_larger( - tm1, tm2, max_distance, error_bound, np1, parameters::all_default()); -} +#endif -template< class Concurrency_tag, - class TriangleMesh1, - class TriangleMesh2 > -double is_Hausdorff_distance_larger( - const TriangleMesh1& tm1, - const TriangleMesh2& tm2, - const double max_distance = 1.0, - const double error_bound = 0.0001) -{ - return is_Hausdorff_distance_larger( - tm1, tm2, max_distance, error_bound, parameters::all_default()); + return (sq_hdist > sq_distance_bound); } // Implementation of the naive Bounded Error Hausdorff distance. -template< class Concurrency_tag, +template -double bounded_error_Hausdorff_distance_naive( - const TriangleMesh1& tm1, - const TriangleMesh2& tm2, - const double error_bound, - const NamedParameters1& np1, - const NamedParameters2& np2) -{ - CGAL_assertion_code( - const bool is_triangle = is_triangle_mesh(tm1) && is_triangle_mesh(tm2)); - CGAL_assertion_msg(is_triangle, - "Both meshes must be triangulated to compute this distance!"); - + class NamedParameters1 = parameters::Default_named_parameters, + class NamedParameters2 = parameters::Default_named_parameters> +double bounded_error_Hausdorff_distance_naive(const TriangleMesh1& tm1, + const TriangleMesh2& tm2, + const double error_bound, + const NamedParameters1& np1 = parameters::default_values(), + const NamedParameters2& np2 = parameters::default_values()) +{ using Traits = typename GetGeomTraits::type; using FT = typename Traits::FT; using parameters::choose_parameter; using parameters::get_parameter; + CGAL_precondition(!is_empty(tm1) && is_triangle_mesh(tm1)); + CGAL_precondition(!is_empty(tm2) && is_triangle_mesh(tm2)); + const auto vpm1 = choose_parameter(get_parameter(np1, internal_np::vertex_point), - get_const_property_map(vertex_point, tm1)); + get_const_property_map(vertex_point, tm1)); const auto vpm2 = choose_parameter(get_parameter(np2, internal_np::vertex_point), - get_const_property_map(vertex_point, tm2)); + get_const_property_map(vertex_point, tm2)); - CGAL_precondition(error_bound >= 0.0); - const FT error_threshold = static_cast(error_bound); - return internal::bounded_error_Hausdorff_naive_impl( - tm1, tm2, error_threshold, vpm1, vpm2); -} + CGAL_precondition(error_bound >= 0.); -template< class Concurrency_tag, - class TriangleMesh1, - class TriangleMesh2, - class NamedParameters1 > -double bounded_error_Hausdorff_distance_naive( - const TriangleMesh1& tm1, - const TriangleMesh2& tm2, - const double error_bound, - const NamedParameters1& np1) -{ - return bounded_error_Hausdorff_distance_naive( - tm1, tm2, error_bound, np1, parameters::all_default()); -} + const FT sq_hdist = internal::bounded_error_squared_Hausdorff_distance_naive_impl( + tm1, tm2, error_bound, vpm1, vpm2); -template< class Concurrency_tag, - class TriangleMesh1, - class TriangleMesh2 > -double bounded_error_Hausdorff_distance_naive( - const TriangleMesh1& tm1, - const TriangleMesh2& tm2, - const double error_bound = 0.0001) -{ - return bounded_error_Hausdorff_distance_naive( - tm1, tm2, error_bound, parameters::all_default()); + return to_double(approximate_sqrt(sq_hdist)); } -} } // end of namespace CGAL::Polygon_mesh_processing - +} // namespace Polygon_mesh_processing +} // namespace CGAL #endif //CGAL_POLYGON_MESH_PROCESSING_DISTANCE_H diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/extrude.h cgal-5.5/include/CGAL/Polygon_mesh_processing/extrude.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/extrude.h 2022-06-03 19:05:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/extrude.h 2022-07-13 19:06:07.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/extrude.h $ -// $Id: extrude.h bdec97b 2021-10-12T15:02:42+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/extrude.h $ +// $Id: extrude.h bb0b9a8 2022-03-07T15:32:37+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -19,17 +19,12 @@ #include #include -#include +#include #include #include #include #include -#ifdef DOXYGEN_RUNNING -#define CGAL_PMP_NP_TEMPLATE_PARAMETERS NamedParameters -#define CGAL_PMP_NP_CLASS NamedParameters -#endif - namespace CGAL { namespace Polygon_mesh_processing { namespace extrude_impl{ @@ -163,15 +158,15 @@ class OutputMesh, class BottomFunctor, class TopFunctor, - class NamedParameters1, - class NamedParameters2 + class CGAL_NP_TEMPLATE_PARAMETERS_1, + class CGAL_NP_TEMPLATE_PARAMETERS_2 > void extrude_mesh(const InputMesh& input, OutputMesh& output, const BottomFunctor& bot, const TopFunctor& top, - const NamedParameters1& np_in, - const NamedParameters2& np_out) + const CGAL_NP_CLASS_1& np_in = parameters::default_values(), + const CGAL_NP_CLASS_2& np_out = parameters::default_values()) { typedef typename boost::graph_traits::vertex_descriptor input_vertex_descriptor; typedef typename boost::graph_traits::halfedge_descriptor input_halfedge_descriptor; @@ -180,8 +175,8 @@ typedef typename boost::graph_traits::halfedge_descriptor output_halfedge_descriptor; CGAL_assertion(!CGAL::is_closed(input)); - typedef typename GetVertexPointMap < OutputMesh, NamedParameters2>::type VPMap; - typedef typename GetVertexPointMap < InputMesh, NamedParameters1>::const_type IVPMap; + typedef typename GetVertexPointMap < OutputMesh, CGAL_NP_CLASS_2>::type VPMap; + typedef typename GetVertexPointMap < InputMesh, CGAL_NP_CLASS_1>::const_type IVPMap; using parameters::get_parameter; using parameters::choose_parameter; @@ -250,8 +245,8 @@ * @tparam NamedParameters1 a sequence of \ref bgl_namedparameters "Named Parameters" for `InputMesh` * @tparam NamedParameters2 a sequence of \ref bgl_namedparameters "Named Parameters" for `OutputMesh` * - * @param input an open surface mesh to extrude. - * @param output a surface mesh that will contain the result of the extrusion. + * @param input an open surface mesh to extrude + * @param output a surface mesh that will contain the result of the extrusion * @param v the vector defining the direction of the extrusion * @param np_in an optional sequence of \ref bgl_namedparameters "Named Parameters" among the ones listed below * @@ -281,68 +276,28 @@ */ template + class CGAL_NP_TEMPLATE_PARAMETERS_1, + class CGAL_NP_TEMPLATE_PARAMETERS_2> void extrude_mesh(const InputMesh& input, OutputMesh& output, - #ifdef DOXYGEN_RUNNING +#ifdef DOXYGEN_RUNNING Vector_3 v, - #else - typename GetGeomTraits::type::Vector_3 v, - #endif - const NamedParameters1& np_in, - const NamedParameters2& np_out) +#else + typename GetGeomTraits::type::Vector_3 v, +#endif + const CGAL_NP_CLASS_1& np_in = parameters::default_values(), + const CGAL_NP_CLASS_2& np_out = parameters::default_values()) { - typedef typename GetVertexPointMap < OutputMesh, NamedParameters2>::type VPMap; + typedef typename GetVertexPointMap < OutputMesh, CGAL_NP_CLASS_2>::type VPMap; VPMap output_vpm = parameters::choose_parameter(parameters::get_parameter(np_out, internal_np::vertex_point), get_property_map(vertex_point, output)); extrude_impl::Const_dist_translation< - typename GetVertexPointMap::type, - typename GetGeomTraits::type::Vector_3> bot(output_vpm, - v); + typename GetVertexPointMap::type, + typename GetGeomTraits::type::Vector_3> bot(output_vpm, v); extrude_impl::Identity_functor top; extrude_mesh(input, output, bot,top, np_in, np_out); } -//convenience overload -template -void extrude_mesh(const InputMesh& input, - OutputMesh& output, - Vector dir) -{ - extrude_mesh(input, output, dir, - parameters::all_default(), - parameters::all_default()); -} - -template -void extrude_mesh(const InputMesh& input, - OutputMesh& output, - Vector dir, - const CGAL_PMP_NP_CLASS& np) -{ - extrude_mesh(input, output, dir, - np, - parameters::all_default()); -} - -template -void extrude_mesh(const InputMesh& input, - OutputMesh& output, - const BottomFunctor& bot, - const TopFunctor& top) -{ - extrude_mesh(input, output, bot, top, - parameters::all_default(), parameters::all_default()); -} }} //end CGAL::PMP #endif //CGAL_POLYGON_MESH_PROCESSING_EXTRUDE_H diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/fair.h cgal-5.5/include/CGAL/Polygon_mesh_processing/fair.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/fair.h 2022-06-03 19:05:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/fair.h 2022-07-13 19:06:07.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/fair.h $ -// $Id: fair.h aac86cb 2021-06-09T12:23:14+02:00 Dmitry Anisimov +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/fair.h $ +// $Id: fair.h bb0b9a8 2022-03-07T15:32:37+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -18,7 +18,7 @@ #include #include -#include +#include #include #include @@ -58,7 +58,9 @@ /*! \ingroup PMP_meshing_grp + @brief fairs a region on a triangle mesh. + The points of the selected vertices are relocated to yield an as-smooth-as-possible surface patch, based on solving a linear bi-Laplacian system with boundary constraints, @@ -114,20 +116,20 @@ \cgalParamNEnd \cgalNamedParamsEnd - @return `true` if fairing is successful, otherwise no vertices are relocated + @return `true` if fairing is successful, otherwise no vertices are relocated. @pre `is_triangle_mesh(tmesh)` - @warning This function involves linear algebra, that is computed using a non-exact floating-point arithmetic. + @warning This function involves linear algebra, that is computed using non-exact, floating-point arithmetic. @todo accuracy of solvers are not good, for example when there is no boundary condition pre_factor should fail, but it does not. */ template + typename NamedParameters = parameters::Default_named_parameters> bool fair(TriangleMesh& tmesh, const VertexRange& vertices, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { using parameters::get_parameter; using parameters::choose_parameter; @@ -175,13 +177,6 @@ vpmap_); } - template - bool fair(TriangleMesh& tmesh, const VertexRange& vertices) - { - return fair(tmesh, vertices, - CGAL::Polygon_mesh_processing::parameters::all_default()); - } - } //end namespace Polygon_mesh_processing } //end namespace CGAL diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/AABB_traversal_traits_with_Hausdorff_distance.h cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/AABB_traversal_traits_with_Hausdorff_distance.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/AABB_traversal_traits_with_Hausdorff_distance.h 2022-06-03 19:05:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/AABB_traversal_traits_with_Hausdorff_distance.h 2022-07-13 19:06:08.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/AABB_traversal_traits_with_Hausdorff_distance.h $ -// $Id: AABB_traversal_traits_with_Hausdorff_distance.h 6ac74ca 2022-01-07T09:26:10+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/AABB_traversal_traits_with_Hausdorff_distance.h $ +// $Id: AABB_traversal_traits_with_Hausdorff_distance.h aa5fd2e 2022-04-07T11:40:30+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -15,574 +15,663 @@ #include -// STL includes. -#include -#include - -// CGAL includes. #include #include #include +#include -namespace CGAL { - - // Bounds. - template< class Kernel, - class Face_handle_1, - class Face_handle_2> - struct Bounds { - using FT = typename Kernel::FT; - - FT m_infinity_value = -FT(1); - Bounds(const FT infinity_value) : - m_infinity_value(infinity_value) { } - - FT lower = m_infinity_value; - FT upper = m_infinity_value; - // TODO: update - Face_handle_2 tm2_lface = Face_handle_2(); - Face_handle_2 tm2_uface = Face_handle_2(); - std::pair lpair = default_face_pair(); - std::pair upair = default_face_pair(); - - const std::pair default_face_pair() const { - return std::make_pair(Face_handle_1(), Face_handle_2()); - } - }; +#include +#include +#include +#include - // Candidate triangle. - template< class Kernel, - class Face_handle_1, - class Face_handle_2> - struct Candidate_triangle { - using FT = typename Kernel::FT; - using Triangle_3 = typename Kernel::Triangle_3; - using Candidate_bounds = Bounds; - - Candidate_triangle( - const Triangle_3& triangle, const Candidate_bounds& bounds, const Face_handle_1& fh) : - triangle(triangle), bounds(bounds), tm1_face(fh) - { } - - Triangle_3 triangle; - Candidate_bounds bounds; - Face_handle_1 tm1_face; - // TODO: no need to use bounds.lower? - bool operator>(const Candidate_triangle& other) const { - CGAL_assertion(bounds.upper >= FT(0)); - CGAL_assertion(other.bounds.upper >= FT(0)); - return bounds.upper < other.bounds.upper; - } - bool operator<(const Candidate_triangle& other) const { - CGAL_assertion(bounds.upper >= FT(0)); - CGAL_assertion(other.bounds.upper >= FT(0)); - return bounds.upper > other.bounds.upper; - } - }; +namespace CGAL { +namespace Polygon_mesh_processing { +namespace internal { - // Hausdorff primitive traits on TM2. - template< class AABBTraits, - class Query, - class Kernel, - class TriangleMesh1, - class TriangleMesh2, - class VPM2> - class Hausdorff_primitive_traits_tm2 - { - using FT = typename Kernel::FT; - using Point_3 = typename Kernel::Point_3; - using Vector_3 = typename Kernel::Vector_3; - using Triangle_3 = typename Kernel::Triangle_3; - - using Project_point_3 = typename Kernel::Construct_projected_point_3; - using Face_handle_1 = typename boost::graph_traits::face_descriptor; - using Face_handle_2 = typename boost::graph_traits::face_descriptor; - using Local_bounds = Bounds; - - using TM2_face_to_triangle_map = Triangle_from_face_descriptor_map; - - public: - using Priority = FT; - Hausdorff_primitive_traits_tm2( - const AABBTraits& traits, - const TriangleMesh2& tm2, const VPM2& vpm2, - const Local_bounds& local_bounds, - const FT h_v0_lower_init, - const FT h_v1_lower_init, - const FT h_v2_lower_init) : - m_traits(traits), m_tm2(tm2), m_vpm2(vpm2), - m_face_to_triangle_map(&m_tm2, m_vpm2), - h_local_bounds(local_bounds) { - - // Initialize the global and local bounds with the given values. - h_v0_lower = h_v0_lower_init; - h_v1_lower = h_v1_lower_init; - h_v2_lower = h_v2_lower_init; - } +template +struct Bounds +{ + using FT = typename Kernel::FT; + + Bounds(const FT infinity_value) : lower(infinity_value), upper(infinity_value) { } + Bounds(const FT lower, const FT upper) : lower(lower), upper(upper) { } + + FT lower; + FT upper; +}; + +template +struct Local_bounds + : public Bounds +{ + using Base = Bounds; + using FT = typename Kernel::FT; + + Local_bounds(const FT infinity_value) : Base(infinity_value) { } + Local_bounds(const FT lower, const FT upper) : Base(lower, upper) { } + + Face_handle_2 tm2_lface = Face_handle_2(); + Face_handle_2 tm2_uface = Face_handle_2(); +}; + +template +struct Global_bounds + : public Bounds +{ + using Base = Bounds; + using FT = typename Kernel::FT; - // Explore the whole tree, i.e. always enter children if the method - // do_intersect() below determines that it is worthwhile. - bool go_further() const { return true; } - - // Compute the explicit Hausdorff distance to the given primitive. - template - void intersection(const Query& query, const Primitive& primitive) { - - /* Have reached a single triangle, process it. - / Determine the distance according to - / min_{b \in primitive} ( max_{vertex in query} ( d(vertex, b) ) ) - / - / Here, we only have one triangle in B, i.e. tm2. Thus, it suffices to - / compute the distance of the vertices of the query triangles to the - / primitive triangle and use the maximum of the obtained distances. - */ - - // The query object is a triangle from TM1, get its vertices. - const Point_3 v0 = query.vertex(0); - const Point_3 v1 = query.vertex(1); - const Point_3 v2 = query.vertex(2); - - CGAL_assertion(primitive.id() != Face_handle_2()); - const Triangle_3 triangle = get(m_face_to_triangle_map, primitive.id()); - - // Compute distances of the vertices to the primitive triangle in TM2. - const FT v0_dist = CGAL::approximate_sqrt(CGAL::squared_distance(m_project_point(triangle, v0), v0)); - if (v0_dist < h_v0_lower) h_v0_lower = v0_dist; // it is () part of (11) in the paper - - const FT v1_dist = CGAL::approximate_sqrt(CGAL::squared_distance(m_project_point(triangle, v1), v1)); - if (v1_dist < h_v1_lower) h_v1_lower = v1_dist; // it is () part of (11) in the paper - - const FT v2_dist = CGAL::approximate_sqrt(CGAL::squared_distance(m_project_point(triangle, v2), v2)); - if (v2_dist < h_v2_lower) h_v2_lower = v2_dist; // it is () part of (11) in the paper - - // Get the distance as maximizers over all vertices. - const FT distance_lower = (CGAL::max)((CGAL::max)(h_v0_lower, h_v1_lower), h_v2_lower); // it is (11) in the paper - const FT distance_upper = (CGAL::max)((CGAL::max)(v0_dist, v1_dist), v2_dist); // it is () part of (10) in the paper - - CGAL_assertion(distance_lower >= FT(0)); - CGAL_assertion(distance_upper >= FT(0)); - CGAL_assertion(distance_upper >= distance_lower); - - // Since we are at the level of a single triangle in TM2, distance_upper is - // actually the correct Hausdorff distance from the query triangle in - // TM1 to the primitive triangle in TM2. - CGAL_assertion(h_local_bounds.lower >= FT(0)); - if (distance_lower < h_local_bounds.lower) { - h_local_bounds.lower = distance_lower; - h_local_bounds.tm2_lface = primitive.id(); - } - CGAL_assertion(h_local_bounds.upper >= FT(0)); - if (distance_upper < h_local_bounds.upper) { // it is (10) in the paper - h_local_bounds.upper = distance_upper; - h_local_bounds.tm2_uface = primitive.id(); - } - CGAL_assertion(h_local_bounds.upper >= h_local_bounds.lower); - } + Global_bounds(const FT infinity_value) : Base(infinity_value) { } + Global_bounds(const FT lower, const FT upper) : Base(lower, upper) { } - // Determine whether child nodes will still contribute to a smaller - // Hausdorff distance and thus have to be entered. - template - std::pair - do_intersect_with_priority(const Query& query, const Node& node) const { - - // Get the bounding box of the nodes. - const auto bbox = node.bbox(); - - // Get the vertices of the query triangle. - const Point_3 v0 = query.vertex(0); - const Point_3 v1 = query.vertex(1); - const Point_3 v2 = query.vertex(2); - - // Find the axis aligned bbox of the triangle. - const Point_3 tri_min = Point_3( - (CGAL::min)((CGAL::min)(v0.x(), v1.x()), v2.x()), - (CGAL::min)((CGAL::min)(v0.y(), v1.y()), v2.y()), - (CGAL::min)((CGAL::min)(v0.z(), v1.z()), v2.z())); - - const Point_3 tri_max = Point_3( - (CGAL::max)((CGAL::max)(v0.x(), v1.x()), v2.x()), - (CGAL::max)((CGAL::max)(v0.y(), v1.y()), v2.y()), - (CGAL::max)((CGAL::max)(v0.z(), v1.z()), v2.z())); - - // Compute distance of the bounding boxes. - // Distance along the x-axis. - FT dist_x = FT(0); - if (tri_max.x() < (bbox.min)(0)) { - dist_x = (bbox.min)(0) - tri_max.x(); - } else if ((bbox.max)(0) < tri_min.x()) { - dist_x = tri_min.x() - (bbox.max)(0); - } - - // Distance along the y-axis. - FT dist_y = FT(0); - if (tri_max.y() < (bbox.min)(1)) { - dist_y = (bbox.min)(1) - tri_max.y(); - } else if ((bbox.max)(1) < tri_min.y()) { - dist_y = tri_min.y() - (bbox.max)(1); - } - - // Distance along the z-axis. - FT dist_z = FT(0); - if (tri_max.z() < (bbox.min)(2)) { - dist_z = (bbox.min)(2) - tri_max.z(); - } else if ((bbox.max)(2) < tri_min.z()) { - dist_z = tri_min.z() - (bbox.max)(2); - } - - // Lower bound on the distance between the two bounding boxes is given - // as the length of the diagonal of the bounding box between them. - const FT dist = CGAL::approximate_sqrt(Vector_3(dist_x, dist_y, dist_z).squared_length()); - - // See Algorithm 2. - // Check whether investigating the bbox can still lower the Hausdorff - // distance and improve the current global bound. If so, enter the box. - CGAL_assertion(h_local_bounds.lower >= FT(0)); - if (dist <= h_local_bounds.lower) { - return std::make_pair(true , -dist); - } else { - return std::make_pair(false, FT(0)); - } - } + std::pair lpair = default_face_pair(); + std::pair upair = default_face_pair(); - template - bool do_intersect(const Query& query, const Node& node) const { - return this->do_intersect_with_priority(query, node).first; - } + constexpr std::pair default_face_pair() const + { + return std::make_pair(Face_handle_1(), Face_handle_2()); + } +}; + +// Candidate triangle. +template +struct Candidate_triangle +{ + using FT = typename Kernel::FT; + using Triangle_3 = typename Kernel::Triangle_3; + using Candidate_bounds = Local_bounds; + + Candidate_triangle(const Triangle_3& triangle, + const Candidate_bounds& bounds, + const Face_handle_1 fh) + : triangle(triangle), bounds(bounds), tm1_face(fh) + { } + + Triangle_3 triangle; + Candidate_bounds bounds; + Face_handle_1 tm1_face; + + // Comparator for the priority queue. + // Provide std::less for Candidate_triangle to have the largest 'upper' value at the top of the PQ + bool operator<(const Candidate_triangle& other) const + { + CGAL_precondition(bounds.upper >= FT(0)); + CGAL_precondition(other.bounds.upper >= FT(0)); - // Return the local Hausdorff bounds computed for the passed query triangle. - Local_bounds get_local_bounds() const { - return h_local_bounds; - } + return bounds.upper < other.bounds.upper; + } +}; + +// Hausdorff primitive traits on TM2. +template +class Hausdorff_primitive_traits_tm2 +{ + using FT = typename Kernel::FT; + using Point_3 = typename Kernel::Point_3; + using Vector_3 = typename Kernel::Vector_3; + using Triangle_3 = typename Kernel::Triangle_3; + + using Project_point_3 = typename Kernel::Construct_projected_point_3; + using Face_handle_1 = typename boost::graph_traits::face_descriptor; + using Face_handle_2 = typename boost::graph_traits::face_descriptor; + + using Local_bounds = internal::Local_bounds; + using Global_bounds = internal::Global_bounds; + + using TM2_face_to_triangle_map = Triangle_from_face_descriptor_map; + +public: + using Priority = FT; + +private: + const Bbox_3& m_t1_bbox; + const TriangleMesh2& m_tm2; + const VPM2 m_vpm2; + const TM2_face_to_triangle_map m_face_to_triangle_map; + + Local_bounds m_local_bounds; // local Hausdorff bounds for the query triangle + const Global_bounds& m_global_bounds; + FT m_v0_lower, m_v1_lower, m_v2_lower; + + bool m_early_exit; + +public: + Hausdorff_primitive_traits_tm2(const Bbox_3& t1_bbox, + const TriangleMesh2& tm2, const VPM2 vpm2, + const Local_bounds& initial_bounds, + const Global_bounds& global_bounds, + const FT infinity_value) + : m_t1_bbox(t1_bbox), + m_tm2(tm2), m_vpm2(vpm2), + m_face_to_triangle_map(&m_tm2, m_vpm2), + m_local_bounds(initial_bounds), + m_global_bounds(global_bounds), + m_v0_lower(infinity_value), + m_v1_lower(infinity_value), + m_v2_lower(infinity_value), + m_early_exit(false) + { } + + // Return the local Hausdorff bounds computed for the passed query triangle. + Local_bounds& get_local_bounds() { return m_local_bounds; } + const Local_bounds& get_local_bounds() const { return m_local_bounds; } + + // Because + // h(TM1, TM2) := max_{query in TM1} h(query, TM2), + // it is pointless to continue trying to find a smaller bound if the value is already known + // to be below the current max computed through another TM1 face + bool go_further() const { return !m_early_exit; } + + // Compute the explicit Hausdorff distance to the given primitive. + template + void intersection(const Query& query, const Primitive& primitive) + { + if(m_early_exit) + return; - template - void traverse_group(const Query& query, PrimitiveConstIterator group_begin, PrimitiveConstIterator group_end) { - for (PrimitiveConstIterator it = group_begin; it != group_end; ++it) { - this->intersection(query, *it); - } - } +#ifdef CGAL_HAUSDORFF_DEBUG_TM2_TRAVERSAL + std::cout << "Intersection with TM2's " << primitive.id() << std::endl; + std::cout << "Initial local bounds " << m_local_bounds.lower << " " << m_local_bounds.upper << std::endl; +#endif + + CGAL_assertion(m_local_bounds.lower >= FT(0)); + CGAL_assertion(m_local_bounds.upper >= FT(0)); + + /* Have reached a single triangle, process it. + / Determine the upper distance according to + / min_{b \in primitive} ( max_{vertex in query} ( d(vertex, b) ) ) + / + / Here, we only have one triangle in B, i.e. tm2. Thus, it suffices to + / compute the distance of the vertices of the query triangle to the + / primitive triangle and use the maximum of the obtained distances. + */ + + // The query object is a triangle from TM1, get its vertices. + const Point_3& v0 = query.vertex(0); + const Point_3& v1 = query.vertex(1); + const Point_3& v2 = query.vertex(2); + + CGAL_assertion(primitive.id() != Face_handle_2()); + const Triangle_3 triangle = get(m_face_to_triangle_map, primitive.id()); + +#ifdef CGAL_HAUSDORFF_DEBUG_TM2_TRAVERSAL + std::cout << "Geometry: " << triangle << std::endl; +#endif + + // Compute distances of the vertices to the primitive triangle in TM2. + const FT v0_dist = CGAL::squared_distance(v0, triangle); + if(v0_dist < m_v0_lower) + m_v0_lower = v0_dist; + + const FT v1_dist = CGAL::squared_distance(v1, triangle); + if(v1_dist < m_v1_lower) + m_v1_lower = v1_dist; + + const FT v2_dist = CGAL::squared_distance(v2, triangle); + if(v2_dist < m_v2_lower) + m_v2_lower = v2_dist; + + // Get the distance as maximizers over all vertices. + // + // Since we are at the level of a single triangle in TM2, distance_upper is actually + // the Hausdorff distance from the query triangle in TM1 to the primitive triangle in TM2. + + // max_{v in query} (v, primitive), used in h_upper_i(query, TM2) + const FT distance_upper = (CGAL::max)((CGAL::max)(v0_dist, v1_dist), v2_dist); + + // h_lower_i(query, TM2) := max_{v in query} min_{1<=j<=i} d(v, primitive_j) + const FT distance_lower = (CGAL::max)((CGAL::max)(m_v0_lower, m_v1_lower), m_v2_lower); + +#ifdef CGAL_HAUSDORFF_DEBUG_TM2_TRAVERSAL + std::cout << "Distance from vertices of t1 to t2: " << v0_dist << " " << v1_dist << " " << v2_dist << std::endl; +#endif + + CGAL_assertion(distance_lower >= FT(0)); + CGAL_assertion(distance_upper >= distance_lower); + + // With each new TM2 face, the min value m_v{k}_lower can become smaller, + // and thus also the value max_{v in query} min_{1<=j<=i} d(v, primitive_j) + if(distance_lower < m_local_bounds.lower) + { +#ifdef CGAL_HAUSDORFF_DEBUG_TM2_TRAVERSAL + std::cout << "new best lower (" << distance_lower << ") with TM2 face: " << triangle << std::endl; +#endif + m_local_bounds.lower = distance_lower; + m_local_bounds.tm2_lface = primitive.id(); + } + + // This is the 'min_{1<=j<=i}' part in: + // h_upper_i(query, TM2) = min_{1<=j<=i} max_{v in query} (v, primitive_j), Equation (10) + if(distance_upper < m_local_bounds.upper) + { +#ifdef CGAL_HAUSDORFF_DEBUG_TM2_TRAVERSAL + std::cout << "new best upper (" << distance_upper << ") with TM2 face: " << triangle << std::endl; +#endif + m_local_bounds.upper = distance_upper; + m_local_bounds.tm2_uface = primitive.id(); + } + +#ifdef CGAL_HAUSDORFF_DEBUG_TM2_TRAVERSAL + std::cout << "Distance from vertices of t1 to t2: " << v0_dist << " " << v1_dist << " " << v2_dist << std::endl; + std::cout << "Current local bounds " << m_local_bounds.lower << " " << m_local_bounds.upper << std::endl; +#endif + + CGAL_assertion(m_local_bounds.lower >= FT(0)); + CGAL_assertion(m_local_bounds.lower <= m_local_bounds.upper); + +// #define CGAL_PMP_HDIST_NO_CULLING_DURING_TRAVERSAL +#ifndef CGAL_PMP_HDIST_NO_CULLING_DURING_TRAVERSAL + // the lhs can only go down with every additional TM2 face, + // whereas the rhs can only go up with every additional TM1 face + if(m_local_bounds.upper < m_global_bounds.lower) // Section 4.1, first § + { +#ifdef CGAL_HAUSDORFF_DEBUG_TM2_TRAVERSAL + std::cout << "Quitting early (TM2 traversal), global lower " << m_global_bounds.lower << " greater than local upper " << m_local_bounds.upper << std::endl; +#endif + m_early_exit = true; + } +#endif + } + + // Determine whether child nodes will still contribute to a smaller + // Hausdorff distance and thus have to be entered. + template + std::pair + do_intersect_with_priority(const Query&, const Node& node) const + { + if(m_early_exit) + return std::make_pair(false, FT(0)); - private: - // Input data. - const AABBTraits& m_traits; - const TriangleMesh2& m_tm2; - const VPM2& m_vpm2; - const TM2_face_to_triangle_map m_face_to_triangle_map; - - // Local Hausdorff bounds for the query triangle. - Local_bounds h_local_bounds; - FT h_v0_lower, h_v1_lower, h_v2_lower; - Project_point_3 m_project_point; - }; - - // Hausdorff primitive traits on TM1. - template< class AABBTraits, - class Query, - class Kernel, - class TriangleMesh1, - class TriangleMesh2, - class VPM1, - class VPM2> - class Hausdorff_primitive_traits_tm1 - { - using FT = typename Kernel::FT; - using Point_3 = typename Kernel::Point_3; - using Vector_3 = typename Kernel::Vector_3; - using Triangle_3 = typename Kernel::Triangle_3; - - using TM2_primitive = AABB_face_graph_triangle_primitive; - using TM2_traits = AABB_traits; - using TM2_tree = AABB_tree; - using TM2_hd_traits = Hausdorff_primitive_traits_tm2; - - using TM1_face_to_triangle_map = Triangle_from_face_descriptor_map; - - using Face_handle_1 = typename boost::graph_traits::face_descriptor; - using Face_handle_2 = typename boost::graph_traits::face_descriptor; - - using Global_bounds = Bounds; - using Candidate = Candidate_triangle; - using Heap_type = std::priority_queue; - - public: - using Priority = FT; - Hausdorff_primitive_traits_tm1( - const AABBTraits& traits, const TM2_tree& tree, - const TriangleMesh1& tm1, const TriangleMesh2& tm2, - const VPM1& vpm1, const VPM2& vpm2, - const FT error_bound, - const FT infinity_value, - const FT initial_bound, - const FT distance_bound) : - m_traits(traits), - m_tm1(tm1), m_tm2(tm2), - m_vpm1(vpm1), m_vpm2(vpm2), - m_tm2_tree(tree), - m_face_to_triangle_map(&m_tm1, m_vpm1), - m_error_bound(error_bound), - m_infinity_value(infinity_value), - m_initial_bound(initial_bound), - m_distance_bound(distance_bound), - h_global_bounds(m_infinity_value), - m_early_quit(false) { - - CGAL_precondition(m_error_bound >= FT(0)); - CGAL_precondition(m_infinity_value >= FT(0)); - CGAL_precondition(m_initial_bound >= m_error_bound); - - // Initialize the global bounds with 0, they will only grow. - // If we leave zero here, then we are very slow even for big input error bounds! - // Instead, we can use m_error_bound as our initial guess to filter out all pairs, - // which are already within this bound. It makes the code faster for close meshes. - // We also use initial_lower_bound here to accelerate the symmetric distance computation. - h_global_bounds.lower = m_initial_bound; // = FT(0); - h_global_bounds.upper = m_initial_bound; // = FT(0); - } +#ifdef CGAL_HAUSDORFF_DEBUG_TM2_TRAVERSAL + std::cout << "Do_intersect TM2 node with bbox: " << node.bbox() << std::endl; +#endif + + // Compute a lower bound between the query (face of TM1) and a group of TM2 faces. + const Bbox_3 node_bbox = node.bbox(); + + // Distance along the x-axis. + double dist_x = 0.; + if(m_t1_bbox.xmax() < node_bbox.xmin()) + dist_x = node_bbox.xmin() - m_t1_bbox.xmax(); + else if(node_bbox.xmax() < m_t1_bbox.xmin()) + dist_x = m_t1_bbox.xmin() - node_bbox.xmax(); + + // Distance along the y-axis. + double dist_y = 0.; + if(m_t1_bbox.ymax() < node_bbox.ymin()) + dist_y = node_bbox.ymin() - m_t1_bbox.ymax(); + else if(node_bbox.ymax() < m_t1_bbox.ymin()) + dist_y = m_t1_bbox.ymin() - node_bbox.ymax(); + + // Distance along the z-axis. + double dist_z = 0.; + if(m_t1_bbox.zmax() < node_bbox.zmin()) + dist_z = node_bbox.zmin() - m_t1_bbox.zmax(); + else if(node_bbox.zmax() < m_t1_bbox.zmin()) + dist_z = m_t1_bbox.zmin() - node_bbox.zmax(); + + const FT sq_dist = square(dist_x) + square(dist_y) + square(dist_z); + + // Culling on TM2: + // The value 'dist' is the distance between bboxes and thus a lower bound on the distance + // between the query and the TM2 primitives that are children of this node. + // If this lower bound is greater than the current upper bound for this query, + // then none of these primitives will reduce the Hausdorff distance between the query and TM2. +#ifdef CGAL_HAUSDORFF_DEBUG_TM2_TRAVERSAL + std::cout << "Culling TM2? dist vs local bound upper " << sq_dist << " " << m_local_bounds.upper << std::endl; +#endif + CGAL_assertion(m_local_bounds.upper >= FT(0)); + if(sq_dist > m_local_bounds.upper) + return std::make_pair(false, FT(0)); + else + return std::make_pair(true , -sq_dist); + } - // Explore the whole tree, i.e. always enter children if the methods - // do_intersect() below determine that it is worthwhile. - bool go_further() const { - return !m_early_quit; - } + template + bool do_intersect(const Query& query, const Node& node) const + { + if(m_early_exit) + return false; - // Compute the explicit Hausdorff distance to the given primitive. - template - void intersection(const Query&, const Primitive& primitive) { - - if (m_early_quit) return; - - // Set initial tight bounds. - CGAL_assertion(primitive.id() != Face_handle_1()); - std::pair fpair; - const FT max_dist = get_maximum_distance(primitive.id(), fpair); - CGAL_assertion(max_dist >= FT(0)); - CGAL_assertion(fpair.first == primitive.id()); - - Bounds initial_bounds(m_infinity_value); - initial_bounds.lower = max_dist + m_error_bound; - initial_bounds.upper = max_dist + m_error_bound; - initial_bounds.tm2_lface = fpair.second; - initial_bounds.tm2_uface = fpair.second; - - // Call Culling on B with the single triangle found. - TM2_hd_traits traversal_traits_tm2( - m_tm2_tree.traits(), m_tm2, m_vpm2, - initial_bounds, // tighter bounds, in the paper, they start from infinity, see below - // Bounds(m_infinity_value), // starting from infinity - m_infinity_value, - m_infinity_value, - m_infinity_value); - - const Triangle_3 triangle = get(m_face_to_triangle_map, fpair.first); - m_tm2_tree.traversal_with_priority(triangle, traversal_traits_tm2); - - // Update global Hausdorff bounds according to the obtained local bounds. - const auto local_bounds = traversal_traits_tm2.get_local_bounds(); - - CGAL_assertion(local_bounds.lower >= FT(0)); - CGAL_assertion(local_bounds.upper >= FT(0)); - CGAL_assertion(local_bounds.upper >= local_bounds.lower); - CGAL_assertion(local_bounds.lpair == initial_bounds.default_face_pair()); - CGAL_assertion(local_bounds.upair == initial_bounds.default_face_pair()); - - CGAL_assertion(h_global_bounds.lower >= FT(0)); - if (local_bounds.lower > h_global_bounds.lower) { // it is (6) in the paper, see also Algorithm 1 - h_global_bounds.lower = local_bounds.lower; - h_global_bounds.lpair.first = fpair.first; - h_global_bounds.lpair.second = local_bounds.tm2_lface; - } - CGAL_assertion(h_global_bounds.upper >= FT(0)); - if (local_bounds.upper > h_global_bounds.upper) { // it is (6) in the paper, see also Algorithm 1 - h_global_bounds.upper = local_bounds.upper; - h_global_bounds.upair.first = fpair.first; - h_global_bounds.upair.second = local_bounds.tm2_uface; - } - CGAL_assertion(h_global_bounds.upper >= h_global_bounds.lower); - - // Store the triangle given as primitive here as candidate triangle - // together with the local bounds it obtained to send it to subdivision later. - m_candidiate_triangles.push(Candidate(triangle, local_bounds, fpair.first)); - } +#ifdef CGAL_PMP_HDIST_NO_CULLING_DURING_TRAVERSAL + CGAL_USE(query); CGAL_USE(node); + return true; +#else + return this->do_intersect_with_priority(query, node).first; +#endif + } + + template + void traverse_group(const Query& query, + PrimitiveConstIterator group_begin, + PrimitiveConstIterator group_end) + { + for(PrimitiveConstIterator it = group_begin; it != group_end; ++it) + this->intersection(query, *it); + } +}; + +// Hausdorff primitive traits on TM1. +template +class Hausdorff_primitive_traits_tm1 +{ + using FT = typename Kernel::FT; + using Point_3 = typename Kernel::Point_3; + using Vector_3 = typename Kernel::Vector_3; + using Triangle_3 = typename Kernel::Triangle_3; + + using TM2_primitive = AABB_face_graph_triangle_primitive; + using TM2_traits = AABB_traits; + using TM2_tree = AABB_tree; + using TM2_hd_traits = Hausdorff_primitive_traits_tm2; + + using TM1_face_to_triangle_map = Triangle_from_face_descriptor_map; + + using Face_handle_1 = typename boost::graph_traits::face_descriptor; + using Face_handle_2 = typename boost::graph_traits::face_descriptor; + + using Global_bounds = internal::Global_bounds; + using Candidate = Candidate_triangle; + using Heap_type = std::priority_queue; + +public: + using Priority = FT; + +private: + // Input data. + const TriangleMesh1& m_tm1; + const TriangleMesh2& m_tm2; + const VPM1 m_vpm1; + const VPM2 m_vpm2; + const TM2_tree& m_tm2_tree; + const TM1_face_to_triangle_map m_face_to_triangle_map; + + // Internal bounds and values. + const FT m_sq_initial_bound; + const FT m_sq_distance_bound; + const FT m_infinity_value; + Global_bounds m_global_bounds; + bool m_early_exit; + + // All candidate triangles. + Heap_type m_candidate_triangles; + +public: + Hausdorff_primitive_traits_tm1(const TM2_tree& tree, + const TriangleMesh1& tm1, + const TriangleMesh2& tm2, + const VPM1 vpm1, + const VPM2 vpm2, + const FT infinity_value, + const FT sq_initial_bound, + const FT sq_distance_bound) + : m_tm1(tm1), m_tm2(tm2), + m_vpm1(vpm1), m_vpm2(vpm2), + m_tm2_tree(tree), + m_face_to_triangle_map(&m_tm1, m_vpm1), + m_sq_initial_bound(sq_initial_bound), + m_sq_distance_bound(sq_distance_bound), + m_infinity_value(infinity_value), + m_global_bounds(m_infinity_value), + m_early_exit(false) + { + CGAL_precondition(m_infinity_value >= FT(0)); - // Determine whether child nodes will still contribute to a larger - // Hausdorff distance and thus have to be entered. - template - std::pair - do_intersect_with_priority(const Query&, const Node& node) { - - // Check if we can stop already here. Since our bounds only grow, in case, we are - // above the user-defined max distance bound, we return. This way, the user can - // early detect that he is behind his thresholds. - if (m_distance_bound >= FT(0) && !m_early_quit) { - - CGAL_assertion(h_global_bounds.lower >= FT(0)); - CGAL_assertion(h_global_bounds.upper >= FT(0)); - CGAL_assertion(h_global_bounds.upper >= h_global_bounds.lower); - - const FT hdist = (h_global_bounds.lower + h_global_bounds.upper) / FT(2); - m_early_quit = (hdist >= m_distance_bound); - // std::cout << "- hdist: " << hdist << std::endl; - // std::cout << "- early quit: " << m_early_quit << std::endl; - } - if (m_early_quit) return std::make_pair(false, FT(0)); - - // Have reached a node, determine whether or not to enter it. - // Get the bounding box of the nodes. - const auto bbox = node.bbox(); - - // Compute its center. - const Point_3 center = Point_3( - (bbox.xmin() + bbox.xmax()) / FT(2), - (bbox.ymin() + bbox.ymax()) / FT(2), - (bbox.zmin() + bbox.zmax()) / FT(2)); - - // Find the point from TM2 closest to the center. - const Point_3 closest = m_tm2_tree.closest_point(center); - - // Compute the difference vector between the bbox center and the closest point in tm2. - Vector_3 difference = Vector_3(closest, center); - - // Shift the vector to be the difference between the farthest corner - // of the bounding box away from the closest point on TM2. - FT diff_x = ((bbox.max)(0) - (bbox.min)(0)) / FT(2); - if (difference.x() < 0) diff_x = diff_x * -FT(1); - FT diff_y = ((bbox.max)(1) - (bbox.min)(1)) / FT(2); - if (difference.y() < 0) diff_y = diff_y * -FT(1); - FT diff_z = ((bbox.max)(2) - (bbox.min)(2)) / FT(2); - if (difference.z() < 0) diff_z = diff_z * -FT(1); - difference = difference + Vector_3(diff_x, diff_y, diff_z); // it is (9) in the paper - - // Compute distance from the farthest corner of the bbox to the closest point in TM2. - const FT dist = CGAL::approximate_sqrt(difference.squared_length()); - - // See Algorithm 1 here. - // If the distance is larger than the global lower bound, enter the node, i.e. return true. - CGAL_assertion(h_global_bounds.lower >= FT(0)); - if (dist > h_global_bounds.lower) { - return std::make_pair(true , +dist); - } else { - return std::make_pair(false, FT(0)); - } - } + // Bounds grow with every face of TM1 (Equation (6)). + // If we initialize to zero here, then we are very slow even for big input error bounds! + // Instead, we can use the error bound as our initial guess to filter out all pairs + // which are already within this bound. It makes the code faster for close meshes. + m_global_bounds.lower = m_sq_initial_bound; + m_global_bounds.upper = m_sq_initial_bound; + } + + // Return those triangles from TM1, which are candidates for including a + // point realizing the Hausdorff distance. + Heap_type& get_candidate_triangles() { return m_candidate_triangles; } - template - bool do_intersect(const Query& query, const Node& node) { - return this->do_intersect_with_priority(query, node).first; - } + // Return the global Hausdorff bounds computed for the passed query triangle. + Global_bounds get_global_bounds() + { + CGAL_assertion(m_global_bounds.lower >= FT(0)); + CGAL_assertion(m_global_bounds.upper >= m_global_bounds.lower); - template - void traverse_group(const Query& query, PrimitiveConstIterator group_begin, PrimitiveConstIterator group_end) { - CGAL_assertion_msg(false, "ERROR: we should not call the group traversal on TM1!"); - for (PrimitiveConstIterator it = group_begin; it != group_end; ++it) { - this->intersection(query, *it); - } - } + update_global_bounds(); + return m_global_bounds; + } - bool early_quit() const { - return m_early_quit; + // The maximum distance from one of the face corners to the second mesh, and the face realizing this max + std::pair get_maximum_distance(const Face_handle_1 tm1_face) const + { + const Triangle_3 triangle = get(m_face_to_triangle_map, tm1_face); + const Point_3& v0 = triangle.vertex(0); + const Point_3& v1 = triangle.vertex(1); + const Point_3& v2 = triangle.vertex(2); + + const auto pair0 = m_tm2_tree.closest_point_and_primitive(v0); + const auto pair1 = m_tm2_tree.closest_point_and_primitive(v1); + const auto pair2 = m_tm2_tree.closest_point_and_primitive(v2); + + const FT sq_dist0 = CGAL::squared_distance(v0, pair0.first); + const FT sq_dist1 = CGAL::squared_distance(v1, pair1.first); + const FT sq_dist2 = CGAL::squared_distance(v2, pair2.first); + + if(sq_dist0 > sq_dist1) + { + if(sq_dist0 > sq_dist2) + return std::make_pair(sq_dist0, pair0.second); + else + return std::make_pair(sq_dist2, pair2.second); + } + else + { + if(sq_dist1 > sq_dist2) + return std::make_pair(sq_dist1, pair1.second); + else + return std::make_pair(sq_dist2, pair2.second); } + } - // Return those triangles from TM1, which are candidates for including a - // point realizing the Hausdorff distance. - Heap_type& get_candidate_triangles() { - return m_candidiate_triangles; - } + // In case, we did not enter any loop, we set the realizing triangles here. + void update_global_bounds() + { + if(m_candidate_triangles.size() > 0) + { + const Candidate& top = m_candidate_triangles.top(); + + if(m_global_bounds.lpair.first == Face_handle_1()) + m_global_bounds.lpair.first = top.tm1_face; + if(m_global_bounds.lpair.second == Face_handle_2()) + m_global_bounds.lpair.second = top.bounds.tm2_lface; + + if(m_global_bounds.upair.first == Face_handle_1()) + m_global_bounds.upair.first = top.tm1_face; + if(m_global_bounds.upair.second == Face_handle_2()) + m_global_bounds.upair.second = top.bounds.tm2_uface; + } + else + { + Face_handle_1 tm1_f = *(faces(m_tm1).begin()); + const std::pair max_dist = get_maximum_distance(tm1_f); + + if(m_global_bounds.lpair.first == Face_handle_1()) + m_global_bounds.lpair.first = tm1_f; + if(m_global_bounds.lpair.second == Face_handle_2()) + m_global_bounds.lpair.second = max_dist.second; + + if(m_global_bounds.upair.first == Face_handle_1()) + m_global_bounds.upair.first = tm1_f; + if(m_global_bounds.upair.second == Face_handle_2()) + m_global_bounds.upair.second = max_dist.second; + } + } + + // Traversal-related + bool early_exit() const { return m_early_exit; } + + // If the distance is already larger than the user-defined bound, traversal can stop + bool go_further() const { return !m_early_exit; } + + // Compute Hausdorff distance bounds between a TM1 face and TM2 + template + void intersection(const Query&, const Primitive& primitive) + { + if(m_early_exit) + return; - // Return the global Hausdorff bounds computed for the passed query triangle. - Global_bounds get_global_bounds() { +#ifdef CGAL_HAUSDORFF_DEBUG_TM1_TRAVERSAL + std::cout << "Intersection with TM1's " << primitive.id() << std::endl; + std::cout << "Initial global bounds " << m_global_bounds.lower << " " << m_global_bounds.upper << std::endl; +#endif + + // Set initial tight bounds. + CGAL_assertion(primitive.id() != Face_handle_1()); + const Face_handle_1 tm1_face = primitive.id(); + const Triangle_3 triangle = get(m_face_to_triangle_map, tm1_face); + +#ifdef CGAL_HAUSDORFF_DEBUG_TM1_TRAVERSAL + std::cout << "Geometry: " << triangle << std::endl; +#endif + + // Call culling on TM2 with the TM1 triangle. + const Bbox_3 t1_bbox = triangle.bbox(); + Local_bounds initial_bounds(m_infinity_value); + TM2_hd_traits traversal_traits_tm2(t1_bbox, m_tm2, m_vpm2, initial_bounds, m_global_bounds, m_infinity_value); + m_tm2_tree.traversal_with_priority(triangle, traversal_traits_tm2); + + // Post traversal, we have computed h_lower(query, TM2) and h_upper(query, TM2) + const auto& local_bounds = traversal_traits_tm2.get_local_bounds(); +#ifdef CGAL_HAUSDORFF_DEBUG_TM1_TRAVERSAL + std::cout << "Bounds for TM1 primitive: " << local_bounds.lower << " " << local_bounds.upper << std::endl; +#endif + + CGAL_assertion(local_bounds.lower >= FT(0)); + CGAL_assertion(local_bounds.upper >= local_bounds.lower); + CGAL_assertion(local_bounds.tm2_lface != boost::graph_traits::null_face()); + CGAL_assertion(local_bounds.tm2_uface != boost::graph_traits::null_face()); + + // Update global Hausdorff bounds according to the obtained local bounds. + // h_lower(TM1, TM2) = max_{query in TM1} h_lower(query, TM2) + CGAL_assertion(m_global_bounds.lower >= FT(0)); + if(local_bounds.lower > m_global_bounds.lower) // Equation (6) in the paper, see also Algorithm 1, L.5 + { + m_global_bounds.lower = local_bounds.lower; + m_global_bounds.lpair.first = tm1_face; + m_global_bounds.lpair.second = local_bounds.tm2_lface; + } + + // h_upper(TM1, TM2) = max_{query in TM1} h_upper(query, TM2) + CGAL_assertion(m_global_bounds.upper >= FT(0)); + if(local_bounds.upper > m_global_bounds.upper) // Equation (6) in the paper, see also Algorithm 1, L.8 + { + m_global_bounds.upper = local_bounds.upper; + m_global_bounds.upair.first = tm1_face; + m_global_bounds.upair.second = local_bounds.tm2_uface; + } + + CGAL_postcondition(m_global_bounds.upper >= m_global_bounds.lower); + + // Bounds only grow with each additional face of TM1 considered (Eq. (6)), + // if the lower bound is already larger than the user-defined upper bound, we can stop + if(is_positive(m_sq_distance_bound) && + m_sq_distance_bound <= m_global_bounds.lower) + { + m_early_exit = true; + return; + } + + // Store the TM1 triangle given as primitive in this function as a candidate triangle, + // together with the local bounds it obtained to send it to subdivision later. + m_candidate_triangles.emplace(triangle, local_bounds, tm1_face); + } + + // Determine whether child nodes will still contribute to a larger + // Hausdorff distance and thus have to be entered. + template + std::pair + do_intersect_with_priority(const Query&, const Node& node) + { + if(m_early_exit) + return std::make_pair(false, FT(0)); - CGAL_assertion(h_global_bounds.lower >= FT(0)); - CGAL_assertion(h_global_bounds.upper >= FT(0)); - CGAL_assertion(h_global_bounds.upper >= h_global_bounds.lower); +#ifdef CGAL_HAUSDORFF_DEBUG_TM1_TRAVERSAL + std::cout << "Do_intersect TM1 node with bbox " << node.bbox() << std::endl; +#endif + + // Compute an upper bound on the distance between the closest point in TM2 and + // the corner of the bbox farthest from the closest point. This is an upper bound + // on the Hausdorff distance between any children primitive of the node and TM2. + // + // @todo could find the bbox vertex that is closest to 'closest' to reduce a bit the bound + const Bbox_3 bbox = node.bbox(); + const Point_3 bp(bbox.xmin(), bbox.ymin(), bbox.zmin()); + const Point_3 closest = m_tm2_tree.closest_point(bp); + const Vector_3 difference(bp, closest); + const Vector_3 diag(bbox.x_span(), bbox.y_span(), bbox.z_span()); + + // @todo something better to avoid the sqrt + const FT sq_dist = square(CGAL::approximate_sqrt(difference.squared_length()) + + CGAL::approximate_sqrt(diag.squared_length())); + + // The Hausdorff distance grows with every TM1 face. + // If the upper bound is smaller than the current global lower bound, + // it is pointless to visit this node (and its children) because a larger distance + // has been found somewhere else. +#ifdef CGAL_HAUSDORFF_DEBUG_TM1_TRAVERSAL + std::cout << "Culling TM1? dist & global lower bound: " << sq_dist << " " << m_global_bounds.lower << std::endl; +#endif + CGAL_assertion(m_global_bounds.lower >= FT(0)); + if(sq_dist < m_global_bounds.lower) + return std::make_pair(false, FT(0)); + else + return std::make_pair(true , +sq_dist); + } - update_global_bounds(); - return h_global_bounds; - } + template + bool do_intersect(const Query& query, const Node& node) + { + if(m_early_exit) + return false; - // Here, we return the maximum distance from one of the face corners - // to the second mesh. We also return a pair of realizing this distance faces. - FT get_maximum_distance( - const Face_handle_1 tm1_lface, - std::pair& fpair) const { - - const auto triangle = get(m_face_to_triangle_map, tm1_lface); - const Point_3 v0 = triangle.vertex(0); - const Point_3 v1 = triangle.vertex(1); - const Point_3 v2 = triangle.vertex(2); - - const auto pair0 = m_tm2_tree.closest_point_and_primitive(v0); - const auto pair1 = m_tm2_tree.closest_point_and_primitive(v1); - const auto pair2 = m_tm2_tree.closest_point_and_primitive(v2); - - const auto sq_dist0 = std::make_pair( - CGAL::squared_distance(v0, pair0.first), pair0.second); - const auto sq_dist1 = std::make_pair( - CGAL::squared_distance(v1, pair1.first), pair1.second); - const auto sq_dist2 = std::make_pair( - CGAL::squared_distance(v2, pair2.first), pair2.second); - - const auto mdist1 = (sq_dist0.first > sq_dist1.first) ? sq_dist0 : sq_dist1; - const auto mdist2 = (mdist1.first > sq_dist2.first) ? mdist1 : sq_dist2; - - Face_handle_2 tm2_uface = mdist2.second; - fpair = std::make_pair(tm1_lface, tm2_uface); - return CGAL::approximate_sqrt(mdist2.first); - } +#ifdef CGAL_PMP_HDIST_NO_CULLING_DURING_TRAVERSAL + CGAL_USE(query); CGAL_USE(node); + return true; +#else + return this->do_intersect_with_priority(query, node).first; +#endif + } + + template + void traverse_group(const Query& query, + PrimitiveConstIterator group_begin, + PrimitiveConstIterator group_end) + { + CGAL_assertion_msg(false, "ERROR: we should not call the group traversal on TM1!"); - private: - // Input data. - const AABBTraits& m_traits; - const TriangleMesh1& m_tm1; - const TriangleMesh2& m_tm2; - const VPM1& m_vpm1; - const VPM2& m_vpm2; - const TM2_tree& m_tm2_tree; - const TM1_face_to_triangle_map m_face_to_triangle_map; - - // Internal bounds and values. - const FT m_error_bound; - const FT m_infinity_value; - const FT m_initial_bound; - const FT m_distance_bound; - Global_bounds h_global_bounds; - bool m_early_quit; - - // All candidate triangles. - Heap_type m_candidiate_triangles; - - // In case, we did not enter any loop, we set the realizing triangles here. - void update_global_bounds() { - - if (m_candidiate_triangles.size() > 0) { - const auto top = m_candidiate_triangles.top(); - - if (h_global_bounds.lpair.first == Face_handle_1()) - h_global_bounds.lpair.first = top.tm1_face; - if (h_global_bounds.lpair.second == Face_handle_2()) - h_global_bounds.lpair.second = top.bounds.tm2_lface; - - if (h_global_bounds.upair.first == Face_handle_1()) - h_global_bounds.upair.first = top.tm1_face; - if (h_global_bounds.upair.second == Face_handle_2()) - h_global_bounds.upair.second = top.bounds.tm2_uface; - - } else { - - std::pair fpair; - get_maximum_distance(*(faces(m_tm1).begin()), fpair); - CGAL_assertion(fpair.first == *(faces(m_tm1).begin())); - - if (h_global_bounds.lpair.first == Face_handle_1()) - h_global_bounds.lpair.first = fpair.first; - if (h_global_bounds.lpair.second == Face_handle_2()) - h_global_bounds.lpair.second = fpair.second; - - if (h_global_bounds.upair.first == Face_handle_1()) - h_global_bounds.upair.first = fpair.first; - if (h_global_bounds.upair.second == Face_handle_2()) - h_global_bounds.upair.second = fpair.second; - } - } - }; -} + for(PrimitiveConstIterator it = group_begin; it != group_end; ++it) + this->intersection(query, *it); + } +}; + +} // namespace internal +} // namespace Polygon_mesh_processing +} // namespace CGAL #endif // CGAL_PMP_INTERNAL_AABB_TRAVERSAL_TRAITS_WITH_HAUSDORFF_DISTANCE diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/AABB_traversal_traits_with_transformation.h cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/AABB_traversal_traits_with_transformation.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/AABB_traversal_traits_with_transformation.h 2022-06-03 19:05:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/AABB_traversal_traits_with_transformation.h 2022-07-13 19:06:08.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/AABB_traversal_traits_with_transformation.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/AABB_traversal_traits_with_transformation.h $ // $Id: AABB_traversal_traits_with_transformation.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/Corefinement/Face_graph_output_builder.h cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/Corefinement/Face_graph_output_builder.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/Corefinement/Face_graph_output_builder.h 2022-06-03 19:05:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/Corefinement/Face_graph_output_builder.h 2022-07-13 19:06:08.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Corefinement/Face_graph_output_builder.h $ -// $Id: Face_graph_output_builder.h fd353e8 2021-03-03T17:18:11+01:00 Laurent Rineau +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Corefinement/Face_graph_output_builder.h $ +// $Id: Face_graph_output_builder.h a8621f3 2022-05-10T15:05:10+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -52,12 +52,6 @@ namespace Polygon_mesh_processing { namespace Corefinement { -enum Boolean_operation_type {UNION = 0, INTERSECTION, - TM1_MINUS_TM2, TM2_MINUS_TM1, NONE }; - -namespace PMP=Polygon_mesh_processing; -namespace params=PMP::parameters; - // extra functions for handling non-documented functions for user visitors // with no extra functions BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(Has_extra_functions, @@ -158,7 +152,7 @@ // Internal typedefs typedef std::size_t Node_id; typedef std::pair Node_id_pair; - typedef boost::unordered_set Intersection_edge_map; + typedef std::unordered_set Intersection_edge_map; // to maintain a halfedge on each polyline per TriangleMesh + pair // with first = "is the key (pair) was reversed?" and // second is the number of edges -1 in the polyline @@ -168,9 +162,9 @@ std::pair > > An_edge_per_polyline_map; - typedef boost::unordered_map Node_id_map; - typedef boost::unordered_map Edge_map; + typedef std::unordered_map Node_id_map; + typedef std::unordered_map Edge_map; //Data members TriangleMesh &tm1, &tm2; // property maps of input meshes @@ -428,8 +422,8 @@ , requested_output(requested_output) , is_tm1_closed( is_closed(tm1)) , is_tm2_closed( is_closed(tm2)) - , is_tm1_inside_out( is_tm1_closed && !PMP::is_outward_oriented(tm1, parameters::vertex_point_map(vpm1)) ) - , is_tm2_inside_out( is_tm2_closed && !PMP::is_outward_oriented(tm2, parameters::vertex_point_map(vpm2)) ) + , is_tm1_inside_out( is_tm1_closed && !is_outward_oriented(tm1, parameters::vertex_point_map(vpm1)) ) + , is_tm2_inside_out( is_tm2_closed && !is_outward_oriented(tm2, parameters::vertex_point_map(vpm2)) ) , NID((std::numeric_limits::max)()) , mesh_to_intersection_edges(tm1, tm2) , used_to_clip_a_surface(false) @@ -557,8 +551,8 @@ typename An_edge_per_polyline_map::iterator epp_it=input_have_coplanar_faces ? an_edge_per_polyline.begin() : epp_it_end; - boost::unordered_set inter_edges_to_remove1, - inter_edges_to_remove2; + std::unordered_set inter_edges_to_remove1, + inter_edges_to_remove2; // Each vector contains a subset of coplanar faces. More particularly only // the coplanar faces incident to an intersection edge. Note @@ -567,6 +561,9 @@ // the result of the retriangulation. std::vector tm1_coplanar_faces, tm2_coplanar_faces; + + user_visitor.filter_coplanar_edges(); + for (;epp_it!=epp_it_end;) { halfedge_descriptor h1 = epp_it->second.first[&tm1]; @@ -701,16 +698,18 @@ intersection_edges2.erase(ed); } + user_visitor.detect_patches(); + // (1) Assign a patch id to each facet indicating in which connected // component limited by intersection edges of the surface they are. // ... for tm1 std::vector tm1_patch_ids( num_faces(tm1),NID ); Border_edge_map is_marked_1(intersection_edges1, tm1); std::size_t nb_patches_tm1 = - PMP::connected_components(tm1, - bind_property_maps(fids1,make_property_map(&tm1_patch_ids[0])), - params::edge_is_constrained_map(is_marked_1) - .face_index_map(fids1)); + connected_components(tm1, + bind_property_maps(fids1,make_property_map(&tm1_patch_ids[0])), + parameters::edge_is_constrained_map(is_marked_1) + .face_index_map(fids1)); std::vector tm1_patch_sizes(nb_patches_tm1, 0); for(std::size_t i : tm1_patch_ids) @@ -720,10 +719,10 @@ std::vector tm2_patch_ids( num_faces(tm2),NID ); Border_edge_map is_marked_2(intersection_edges2, tm2); std::size_t nb_patches_tm2 = - PMP::connected_components(tm2, - bind_property_maps(fids2,make_property_map(&tm2_patch_ids[0])), - params::edge_is_constrained_map(is_marked_2) - .face_index_map(fids2)); + connected_components(tm2, + bind_property_maps(fids2,make_property_map(&tm2_patch_ids[0])), + parameters::edge_is_constrained_map(is_marked_2) + .face_index_map(fids2)); std::vector tm2_patch_sizes(nb_patches_tm2, 0); for(Node_id i : tm2_patch_ids) @@ -731,7 +730,7 @@ ++tm2_patch_sizes[i]; - + user_visitor.classify_patches(); // (2-a) Use the orientation around an edge to classify a patch boost::dynamic_bitset<> is_patch_inside_tm2(nb_patches_tm1, false); @@ -1368,6 +1367,8 @@ if ( patch_status_not_set_tm1.any() ) { + user_visitor.classify_intersection_free_patches(tm1); + CGAL::Bounded_side in_tm2 = is_tm2_inside_out ? ON_UNBOUNDED_SIDE : ON_BOUNDED_SIDE; @@ -1443,6 +1444,8 @@ if ( patch_status_not_set_tm2.any() ) { + user_visitor.classify_intersection_free_patches(tm2); + CGAL::Bounded_side in_tm1 = is_tm1_inside_out ? ON_UNBOUNDED_SIDE : ON_BOUNDED_SIDE; @@ -1577,7 +1580,7 @@ typedef Patch_container Patches1; typedef Patch_container Patches2; - boost::unordered_set border_nm_vertices; // only used if used_to_clip_a_surface == true + std::unordered_set border_nm_vertices; // only used if used_to_clip_a_surface == true if (used_to_clip_a_surface) { if (!is_tm1_closed) @@ -1731,6 +1734,8 @@ /// first handle operations in a mesh that is neither tm1 nor tm2 for(Boolean_operation_type operation : out_of_place_operations) { + user_visitor.out_of_place_operation(operation); + TriangleMesh& output = *(*requested_output[operation]); CGAL_assertion(&tm1!=&output && &tm2!=&output); @@ -1781,6 +1786,8 @@ if ( inplace_operation_tm2!=NONE) { + user_visitor.in_place_operations(inplace_operation_tm1, inplace_operation_tm2); + // mark intersection edges in tm2 (using output constrained edge map) mark_edges(out_edge_mark_maps, mesh_to_intersection_edges[&tm2], @@ -1896,6 +1903,8 @@ CGAL::Polygon_mesh_processing::reverse_face_orientations(*&tm1); } else{ + user_visitor.in_place_operation(inplace_operation_tm1); + /// handle the operation updating only tm1 CGAL_assertion( *requested_output[inplace_operation_tm1] == &tm1 ); Intersection_polylines polylines( @@ -1961,7 +1970,7 @@ for(vertex_descriptor vd : border_nm_vertices) { // first check if at least one incident patch will be kept - boost::unordered_set id_p_rm; + std::unordered_set id_p_rm; bool all_removed=true; for(halfedge_descriptor h : halfedges_around_target(vd, tm1)) { @@ -2066,6 +2075,8 @@ else if ( inplace_operation_tm2!=NONE ) { + user_visitor.in_place_operation(inplace_operation_tm2); + // mark intersection edges in tm2 (using output constrained edge map) mark_edges(out_edge_mark_maps, mesh_to_intersection_edges[&tm2], diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/Corefinement/face_graph_utils.h cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/Corefinement/face_graph_utils.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/Corefinement/face_graph_utils.h 2022-06-03 19:05:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/Corefinement/face_graph_utils.h 2022-07-13 19:06:08.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Corefinement/face_graph_utils.h $ -// $Id: face_graph_utils.h 8ca5971 2021-12-07T11:30:34+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Corefinement/face_graph_utils.h $ +// $Id: face_graph_utils.h 373decc 2022-06-29T10:36:34+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -29,10 +29,14 @@ namespace Polygon_mesh_processing { namespace Corefinement { +enum Boolean_operation_type {UNION = 0, INTERSECTION, + TM1_MINUS_TM2, TM2_MINUS_TM1, NONE }; + template struct No_mark { - friend bool get(No_mark, + friend + bool get(No_mark, typename boost::graph_traits::edge_descriptor) { return false; @@ -460,9 +464,39 @@ void before_vertex_copy(vertex_descriptor /*v_src*/, const TriangleMesh& /*tm_src*/, TriangleMesh& /*tm_tgt*/){} void after_vertex_copy(vertex_descriptor /*v_src*/, const TriangleMesh& /*tm_src*/, vertex_descriptor /* v_tgt */, TriangleMesh& /*tm_tgt*/){} -// calls commented in the code and probably incomplete due to the migration -// see NODE_VISITOR_TAG -/* + + // progress tracking + void start_filtering_intersections() const {} + void progress_filtering_intersections(double ) const {} + void end_filtering_intersections() const {} + + void start_triangulating_faces(std::size_t) const {} + void triangulating_faces_step() const {} + void end_triangulating_faces() const {} + + void start_handling_intersection_of_coplanar_faces(std::size_t) const {} + void intersection_of_coplanar_faces_step() const {} + void end_handling_intersection_of_coplanar_faces() const {} + + void start_handling_edge_face_intersections(std::size_t) const {} + void edge_face_intersections_step() const {} + void end_handling_edge_face_intersections() const {} + + void start_building_output() const {} + void end_building_output() const {} + +// Required by Face_graph_output_builder + void filter_coplanar_edges() const {} + void detect_patches() const {} + void classify_patches() const {} + void classify_intersection_free_patches(const TriangleMesh&) const {} + void out_of_place_operation(Boolean_operation_type) const {} + void in_place_operation(Boolean_operation_type) const {} + void in_place_operations(Boolean_operation_type,Boolean_operation_type) const {} + + // calls commented in the code and probably incomplete due to the migration + // see NODE_VISITOR_TAG + /* // autorefinement only void new_node_added_triple_face(std::size_t node_id, face_descriptor f1, @@ -470,13 +504,14 @@ face_descriptor f3, const TriangleMesh& tm) {} -*/ + */ }; template < class TriangleMesh, class VertexPointMap, class Node_id, class Node_vector, + class Node_id_to_vertex, class CDT, class OutputBuilder, class UserVisitor> @@ -486,8 +521,7 @@ TriangleMesh& tm, Node_vector& nodes, const std::vector& node_ids, - typename std::vector - ::vertex_descriptor>& node_id_to_vertex, + Node_id_to_vertex& node_id_to_vertex, std::map, typename boost::graph_traits ::halfedge_descriptor>& edge_to_hedge, @@ -513,7 +547,7 @@ user_visitor.new_vertex_added(node_id, v, tm); CGAL_assertion(node_id_to_vertex.size()>node_id); - node_id_to_vertex[node_id]=v; + node_id_to_vertex.register_vertex(node_id, v); } //insert the new halfedge and set their incident vertex @@ -535,10 +569,10 @@ halfedge_descriptor h=halfedge(e,tm), h_opp=opposite(h,tm); Node_id i0=cdt_v0->info(), i1=cdt_v1->info(); - CGAL_assertion( node_id_to_vertex[i0]!=GT::null_vertex()); - CGAL_assertion( node_id_to_vertex[i1]!=GT::null_vertex()); + CGAL_assertion( node_id_to_vertex.get_vertex(i0)!=GT::null_vertex()); + CGAL_assertion( node_id_to_vertex.get_vertex(i1)!=GT::null_vertex()); - vertex_descriptor v0=node_id_to_vertex[i0], v1=node_id_to_vertex[i1]; + vertex_descriptor v0=node_id_to_vertex.get_vertex(i0), v1=node_id_to_vertex.get_vertex(i1); set_target(h,v0,tm); set_target(h_opp,v1,tm); @@ -569,9 +603,9 @@ halfedge_descriptor h12=edge_to_hedge[std::make_pair(i1,i2)]; halfedge_descriptor h20=edge_to_hedge[std::make_pair(i2,i0)]; - CGAL_assertion(target(h01,tm)==node_id_to_vertex[i1]); - CGAL_assertion(target(h12,tm)==node_id_to_vertex[i2]); - CGAL_assertion(target(h20,tm)==node_id_to_vertex[i0]); + CGAL_assertion(target(h01,tm)==node_id_to_vertex.get_vertex(i1)); + CGAL_assertion(target(h12,tm)==node_id_to_vertex.get_vertex(i2)); + CGAL_assertion(target(h20,tm)==node_id_to_vertex.get_vertex(i0)); set_next(h01,h12,tm); set_next(h12,h20,tm); @@ -602,7 +636,7 @@ typedef boost::graph_traits GT; typedef typename GT::halfedge_descriptor halfedge_descriptor; typedef typename GT::edge_descriptor edge_descriptor; - typedef boost::unordered_set Intersection_edge_map; + typedef std::unordered_set Intersection_edge_map; const Intersection_edge_map* intersection_edges; const PolygonMesh* tm; public: @@ -979,7 +1013,7 @@ typedef typename GT::edge_descriptor edge_descriptor; typedef typename GT::face_descriptor face_descriptor; - typedef boost::unordered_map< edge_descriptor, edge_descriptor> Edge_map; + typedef std::unordered_map< edge_descriptor, edge_descriptor> Edge_map; Edge_map& tm_to_output_edges; const TriangleMesh& tm; TriangleMesh& output; @@ -1020,7 +1054,7 @@ typedef typename GT::edge_descriptor edge_descriptor; typedef typename GT::face_descriptor face_descriptor; - typedef boost::unordered_map< edge_descriptor, edge_descriptor> Edge_map; + typedef std::unordered_map< edge_descriptor, edge_descriptor> Edge_map; Edge_map& tm_to_output_edges; const TriangleMesh& tm; TriangleMesh& output; @@ -1070,7 +1104,7 @@ const VertexPointMap& vpm_tm, EdgeMarkMapOut& edge_mark_map_out, const EdgeMarkMapIn& edge_mark_map_in, - boost::unordered_map< + std::unordered_map< typename boost::graph_traits::edge_descriptor, typename boost::graph_traits::edge_descriptor >& tm_to_output_edges, @@ -1234,6 +1268,7 @@ } set_next(h_out, candidate, output); } + for(halfedge_descriptor h_out : border_halfedges_source_to_link) { halfedge_descriptor candidate = @@ -1333,8 +1368,8 @@ //add a polyline inside O for each intersection polyline std::size_t nb_polylines = polylines.lengths.size(); - boost::unordered_map tm1_to_output_vertices; - boost::unordered_map tm1_to_output_edges, + std::unordered_map tm1_to_output_vertices; + std::unordered_map tm1_to_output_edges, tm2_to_output_edges; for (std::size_t i=0; i < nb_polylines; ++i) @@ -1423,7 +1458,7 @@ // start the duplicate step std::size_t nb_shared_edges = patch.shared_edges.size(); new_patch_border.reserve( nb_shared_edges ); - boost::unordered_map old_to_new; + std::unordered_map old_to_new; // save faces inside the patch and set the halfedge // to be duplicated on the boundary @@ -1580,7 +1615,7 @@ typedef boost::graph_traits GT; typedef typename GT::edge_descriptor edge_descriptor; typedef typename GT::halfedge_descriptor halfedge_descriptor; - typedef boost::unordered_map Edge_map; + typedef std::unordered_map Edge_map; Edge_map tm2_edge_to_tm1_edge, tm1_edge_to_tm2_edge; //maps intersection edges from tm2 to tm1 @@ -1734,13 +1769,13 @@ EdgeMarkMapIn1& edge_mark_map_in1, const EdgeMarkMapIn2& edge_mark_map_in2, EdgeMarkMapOut1& edge_mark_map_out1, - boost::unordered_map< + std::unordered_map< typename boost::graph_traits::edge_descriptor, typename boost::graph_traits::edge_descriptor >& tm2_edge_to_tm1_edge, UserVisitor& user_visitor) { - typedef boost::unordered_map< + typedef std::unordered_map< typename boost::graph_traits::edge_descriptor, typename boost::graph_traits::edge_descriptor> EdgeMap; //clean up patches not kept @@ -1848,7 +1883,7 @@ typedef boost::graph_traits GT; typedef typename GT::edge_descriptor edge_descriptor; - boost::unordered_map tm2_edge_to_tm1_edge; + std::unordered_map tm2_edge_to_tm1_edge; //maps intersection edges from tm2 to the equivalent in tm1 compute_border_edge_map(tm1, tm2, diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/Corefinement/Generic_clip_output_builder.h cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/Corefinement/Generic_clip_output_builder.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/Corefinement/Generic_clip_output_builder.h 2022-06-03 19:05:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/Corefinement/Generic_clip_output_builder.h 2022-07-13 19:06:08.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Corefinement/Generic_clip_output_builder.h $ -// $Id: Generic_clip_output_builder.h 4d4eef9 2020-09-28T15:44:29+02:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Corefinement/Generic_clip_output_builder.h $ +// $Id: Generic_clip_output_builder.h 258d704 2022-02-24T19:57:17+01:00 Laurent Rineau // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -28,15 +28,10 @@ #include - namespace CGAL { namespace Polygon_mesh_processing { namespace Corefinement { - -namespace PMP=Polygon_mesh_processing; -namespace params=PMP::parameters; - template > > An_edge_per_polyline_map; - typedef boost::unordered_map Node_id_map; - typedef boost::unordered_map Edge_map; + typedef std::unordered_map Node_id_map; + typedef std::unordered_map Edge_map; //Data members TriangleMesh &tm1, &tm2; // property maps of input meshes @@ -116,7 +111,7 @@ , ecm1(ecm1) , fids1(fids1) , use_compact_clipper(use_compact_clipper) - , is_tm2_inside_out( !PMP::is_outward_oriented(tm2, parameters::vertex_point_map(vpm2)) ) + , is_tm2_inside_out( !is_outward_oriented(tm2, parameters::vertex_point_map(vpm2)) ) , NID((std::numeric_limits::max)()) {} @@ -152,10 +147,10 @@ std::vector tm1_patch_ids( num_faces(tm1),NID ); std::size_t nb_patches_tm1 = - PMP::connected_components(tm1, - bind_property_maps(fids1,make_property_map(&tm1_patch_ids[0])), - params::edge_is_constrained_map(ecm1) - .face_index_map(fids1)); + connected_components(tm1, + bind_property_maps(fids1,make_property_map(&tm1_patch_ids[0])), + parameters::edge_is_constrained_map(ecm1) + .face_index_map(fids1)); std::vector tm1_patch_sizes(nb_patches_tm1, 0); for(std::size_t i : tm1_patch_ids) @@ -233,7 +228,7 @@ } } - PMP::keep_connected_components(tm1, cc_to_keep, bind_property_maps(fids1,make_property_map(&tm1_patch_ids[0]))); + keep_connected_components(tm1, cc_to_keep, bind_property_maps(fids1,make_property_map(&tm1_patch_ids[0]))); } }; diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/Corefinement/intersection_callbacks.h cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/Corefinement/intersection_callbacks.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/Corefinement/intersection_callbacks.h 2022-06-03 19:05:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/Corefinement/intersection_callbacks.h 2022-07-13 19:06:08.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Corefinement/intersection_callbacks.h $ -// $Id: intersection_callbacks.h 1faa0e2 2021-04-28T10:55:26+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Corefinement/intersection_callbacks.h $ +// $Id: intersection_callbacks.h a7667b4 2022-06-16T16:48:28+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -28,6 +28,14 @@ namespace Polygon_mesh_processing { namespace Corefinement { +struct Self_intersection_exception : + public std::runtime_error +{ + Self_intersection_exception() + : std::runtime_error("Self-intersection detected in input mesh") + {} +}; + template class Collect_face_bbox_per_edge_bbox { protected: @@ -69,7 +77,8 @@ template + class CoplanarFaceSet, + class Visitor> class Collect_face_bbox_per_edge_bbox_with_coplanar_handling { protected: const TriangleMesh& tm_faces; @@ -78,6 +87,7 @@ const VertexPointMapE& vpmap_tme; EdgeToFaces& edge_to_faces; CoplanarFaceSet& coplanar_faces; + const Visitor& visitor; typedef boost::graph_traits Graph_traits; typedef typename Graph_traits::face_descriptor face_descriptor; @@ -95,13 +105,15 @@ const VertexPointMapF& vpmap_tmf, const VertexPointMapE& vpmap_tme, EdgeToFaces& edge_to_faces, - CoplanarFaceSet& coplanar_faces) + CoplanarFaceSet& coplanar_faces, + const Visitor& visitor) : tm_faces(tm_faces) , tm_edges(tm_edges) , vpmap_tmf(vpmap_tmf) , vpmap_tme(vpmap_tme) , edge_to_faces(edge_to_faces) , coplanar_faces(coplanar_faces) + , visitor(visitor) {} void operator()( const Box& face_box, const Box& edge_box) const { @@ -113,6 +125,7 @@ Point a = get(vpmap_tmf, source(fh, tm_faces)); Point b = get(vpmap_tmf, target(fh, tm_faces)); Point c = get(vpmap_tmf, target(next(fh, tm_faces), tm_faces)); + /// SHOULD_USE_TRAITS_TAG const Orientation abcp = orientation(a,b,c, get(vpmap_tme, target(eh, tm_edges))); const Orientation abcq = orientation(a,b,c, get(vpmap_tme, source(eh, tm_edges))); @@ -146,10 +159,47 @@ edge_to_faces[edge(eh,tm_edges)].insert(face(fh, tm_faces)); } + bool is_face_degenerated(halfedge_descriptor fh) const + { + Point a = get(vpmap_tmf, source(fh, tm_faces)); + Point b = get(vpmap_tmf, target(fh, tm_faces)); + Point c = get(vpmap_tmf, target(next(fh, tm_faces), tm_faces)); + + return collinear(a, b, c); + } + + bool are_edge_faces_degenerated(halfedge_descriptor eh) const + { + Point a = get(vpmap_tme, source(eh, tm_edges)); + Point b = get(vpmap_tme, target(eh, tm_edges)); + + if(!is_border(eh,tm_edges)) + { + Point c = get(vpmap_tme, target(next(eh, tm_edges), tm_edges)); + if (collinear(a, b, c)) return true; + } + + eh = opposite(eh, tm_edges); + if(!is_border(eh,tm_edges)) + { + Point c = get(vpmap_tme, target(next(eh, tm_edges), tm_edges)); + if (collinear(a, b, c)) return true; + } + + return false; + } + + void operator()(const Box* face_box_ptr, const Box* edge_box_ptr) const { operator()(*face_box_ptr, *edge_box_ptr); } + + void progress(double d) + { + visitor.progress_filtering_intersections(d); + } + }; templatetm_edges)) tme_collected_faces_ptr->insert( face(h, this->tm_edges) ); tmf_collected_faces_ptr->insert( face(fb->info(), this->tm_faces) ); + + // throw if one of the faces are degenerated + if (this->is_face_degenerated(fb->info()) || + this->are_edge_faces_degenerated(h)) + { + throw Self_intersection_exception(); + } + Base::operator()(fb, eb); } bool self_intersections_found() @@ -353,12 +411,12 @@ Polygon_mesh_processing::does_self_intersect( *tmf_collected_faces_ptr, this->tm_faces, - Polygon_mesh_processing::parameters::vertex_point_map(this->vpmap_tmf)) + CGAL::parameters::vertex_point_map(this->vpmap_tmf)) || Polygon_mesh_processing::does_self_intersect( *tme_collected_faces_ptr, this->tm_edges, - Polygon_mesh_processing::parameters::vertex_point_map(this->vpmap_tme)); + CGAL::parameters::vertex_point_map(this->vpmap_tme)); } }; diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/Corefinement/intersection_impl.h cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/Corefinement/intersection_impl.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/Corefinement/intersection_impl.h 2022-06-03 19:05:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/Corefinement/intersection_impl.h 2022-07-13 19:06:08.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Corefinement/intersection_impl.h $ -// $Id: intersection_impl.h 3a00b6f 2021-08-30T10:42:07+02:00 Sebastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Corefinement/intersection_impl.h $ +// $Id: intersection_impl.h 96d2f9e 2022-06-29T13:10:02+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -26,25 +26,18 @@ #include #include -#include -#include #include #include +#include #include +#include +#include namespace CGAL{ namespace Polygon_mesh_processing { namespace Corefinement { -struct Self_intersection_exception : - public std::runtime_error -{ - Self_intersection_exception() - : std::runtime_error("Self-intersection detected in input mesh") - {} -}; - struct Triple_intersection_exception : public std::runtime_error { @@ -100,6 +93,8 @@ void start_new_polyline(std::size_t,std::size_t){} void add_node_to_polyline(std::size_t){} void input_have_coplanar_faces(){} + template + void check_no_duplicates(const T&){} template void finalize(T&, const TriangleMesh&, const TriangleMesh&, @@ -119,6 +114,26 @@ const TriangleMesh&, const Non_manifold_feature_map&) {} + + // needed for progress tracking + void start_filtering_intersections() const {} + void progress_filtering_intersections(double) const{} + void end_filtering_intersections() const {} + + void start_triangulating_faces(std::size_t) const {} + void triangulating_faces_step(std::size_t) const {} + void end_triangulating_faces() const {} + + void start_handling_intersection_of_coplanar_faces(std::size_t) const {} + void intersection_of_coplanar_faces_step() const {} + void end_handling_intersection_of_coplanar_faces() const {} + + void start_handling_edge_face_intersections(std::size_t) const {} + void edge_face_intersections_step() const {} + void end_handling_edge_face_intersections() const {} + + void start_building_output() const {} + void end_building_output() const {} }; struct Node_id_set { @@ -154,9 +169,6 @@ } ++size_; } - else{ - CGAL_assertion( (size_ == 2 && (v == first || v == second) ) || v==first ); - } } std::size_t size() const @@ -194,8 +206,8 @@ typedef CGAL::Box_intersection_d::ID_FROM_BOX_ADDRESS Box_policy; typedef CGAL::Box_intersection_d::Box_with_info_d Box; - typedef boost::unordered_set Face_set; - typedef boost::unordered_map Edge_to_faces; + typedef std::unordered_set Face_set; + typedef std::unordered_map Edge_to_faces; static const bool Predicates_on_constructions_needed = Node_visitor::Predicates_on_constructions_needed; @@ -208,7 +220,7 @@ // we use Face_pair_and_int and not Face_pair to handle coplanar case. // Indeed the boundary of the intersection of two coplanar triangles // may contain several segments. - typedef boost::unordered_map< Face_pair, Node_id_set > Faces_to_nodes_map; + typedef std::unordered_map< Face_pair, Node_id_set, boost::hash > Faces_to_nodes_map; typedef Intersection_nodes Node_vector; @@ -224,6 +236,7 @@ std::vector extra_terminal_nodes; //used only for autorefinement Non_manifold_feature_map non_manifold_feature_map_1, non_manifold_feature_map_2; + const TriangleMesh* const_mesh_ptr; static const constexpr std::size_t NM_NID = (std::numeric_limits::max)(); CGAL_assertion_code(bool doing_autorefinement;) @@ -304,23 +317,75 @@ Callback callback(tm_f, tm_e, edge_to_faces); #else typedef Collect_face_bbox_per_edge_bbox_with_coplanar_handling< - TriangleMesh, VPMF, VPME, Edge_to_faces, Coplanar_face_set> + TriangleMesh, VPMF, VPME, Edge_to_faces, Coplanar_face_set, Node_visitor> Callback; - Callback callback(tm_f, tm_e, vpm_f, vpm_e, edge_to_faces, coplanar_faces); + Callback callback(tm_f, tm_e, vpm_f, vpm_e, edge_to_faces, coplanar_faces, visitor); #endif //using pointers in box_intersection_d is about 10% faster if (throw_on_self_intersection){ Callback_with_self_intersection_report callback_si(callback, tm_f_faces, tm_e_faces); - CGAL::box_intersection_d( face_boxes_ptr.begin(), face_boxes_ptr.end(), - edge_boxes_ptr.begin(), edge_boxes_ptr.end(), - callback_si, cutoff ); + CGAL::box_intersection_d(face_boxes_ptr.begin(), face_boxes_ptr.end(), + edge_boxes_ptr.begin(), edge_boxes_ptr.end(), + callback_si, cutoff); if (run_check && callback_si.self_intersections_found()) throw Self_intersection_exception(); } else { - CGAL::box_intersection_d( face_boxes_ptr.begin(), face_boxes_ptr.end(), - edge_boxes_ptr.begin(), edge_boxes_ptr.end(), - callback, cutoff ); + if (const_mesh_ptr==&tm_e) + { + // tm_f might feature degenerate faces + auto filtered_callback = [&callback](const Box* fb, const Box* eb) + { + if (!callback.is_face_degenerated(fb->info())) + callback(fb, eb); + }; + CGAL::box_intersection_d( face_boxes_ptr.begin(), face_boxes_ptr.end(), + edge_boxes_ptr.begin(), edge_boxes_ptr.end(), + filtered_callback, cutoff ); + } + else + { + if (const_mesh_ptr==&tm_f) + { + // tm_e might feature degenerate edges + auto filtered_callback = [&,this](const Box* fb, const Box* eb) + { + if (get(vpm_e, source(eb->info(), tm_e)) != get(vpm_e, target(eb->info(), tm_e))) + callback(fb, eb); + else + { + halfedge_descriptor hf = fb->info(); + halfedge_descriptor he = eb->info(); + for (int i=0; i<2; ++i) + { + if (!is_border(he, tm_e)) + { + if ( get(vpm_e, target(next(he, tm_e), tm_e))==get(vpm_e, target(he, tm_e)) && + coplanar(get(vpm_f, source(hf, tm_f)), + get(vpm_f, target(hf, tm_f)), + get(vpm_f, target(next(hf, tm_f), tm_f)), + get(vpm_e, target(he, tm_e))) ) + { + coplanar_faces.insert( + &tm_e < &tm_f + ? std::make_pair(face(he, tm_e), face(hf, tm_f)) + : std::make_pair(face(hf, tm_f), face(he, tm_e)) + ); + } + } + he=opposite(he, tm_e); + } + } + }; + CGAL::box_intersection_d( face_boxes_ptr.begin(), face_boxes_ptr.end(), + edge_boxes_ptr.begin(), edge_boxes_ptr.end(), + filtered_callback, cutoff ); + } + else + CGAL::box_intersection_d( face_boxes_ptr.begin(), face_boxes_ptr.end(), + edge_boxes_ptr.begin(), edge_boxes_ptr.end(), + callback, cutoff ); + } } } @@ -701,19 +766,43 @@ typedef std::map Coplanar_node_map; Coplanar_node_map coplanar_node_map; + visitor.start_handling_intersection_of_coplanar_faces(coplanar_faces.size()); for(const Face_pair& face_pair : coplanar_faces) { + visitor.intersection_of_coplanar_faces_step(); face_descriptor f1=face_pair.first; face_descriptor f2=face_pair.second; - CGAL_assertion(&tm1!=&tm2 || f1!=f2); - typedef typename Node_vector::Exact_kernel EK; typedef Coplanar_intersection Cpl_inter_pt; std::list inter_pts; + //handle degenerate faces + if (const_mesh_ptr) + { + halfedge_descriptor h2 = halfedge(f2,tm2); + if (const_mesh_ptr == &tm1) + { + const typename boost::property_traits::reference + a = get(vpm2, source(h2, tm2)), + b = get(vpm2, target(h2, tm2)), + c = get(vpm2, target(next(h2, tm2), tm2)); + + if (collinear(a, b, c)) + { + intersection_coplanar_faces(f2, f1, tm2, tm1, vpm2, vpm1, inter_pts); + for (Cpl_inter_pt& ipt : inter_pts) + { + std::swap(ipt.type_1,ipt.type_2); + std::swap(ipt.info_1,ipt.info_2); + } + } + } + } + // compute the intersection points between the two coplanar faces - intersection_coplanar_faces(f1, f2, tm1, tm2, vpm1, vpm2, inter_pts); + if (inter_pts.empty()) + intersection_coplanar_faces(f1, f2, tm1, tm2, vpm1, vpm2, inter_pts); std::size_t nb_pts=inter_pts.size(); std::vector cpln_nodes; cpln_nodes.reserve(nb_pts); @@ -806,6 +895,7 @@ } } } + visitor.end_handling_intersection_of_coplanar_faces(); } //add a new node in the final graph. @@ -843,10 +933,12 @@ { typedef std::tuple Inter_type; + visitor.start_handling_edge_face_intersections(tm1_edge_to_tm2_faces.size()); for(typename Edge_to_faces::iterator it=tm1_edge_to_tm2_faces.begin(); it!=tm1_edge_to_tm2_faces.end();++it) { + visitor.edge_face_intersections_step(); edge_descriptor e_1=it->first; halfedge_descriptor h_1=halfedge(e_1,tm1); @@ -1065,6 +1157,7 @@ } // end loop on all faces that intersect the edge } // end loop on all entries (edges) in 'edge_to_face' CGAL_assertion(nodes.size()==unsigned(current_node+1)); + visitor.end_handling_edge_face_intersections(); } struct Graph_node{ @@ -1114,8 +1207,8 @@ const VPM& vpm, Node_id& current_node) { - boost::unordered_map > face_intersections; + std::unordered_map > face_intersections; for (typename Faces_to_nodes_map::iterator it=f_to_node.begin(); it!=f_to_node.end(); ++it) @@ -1575,9 +1668,11 @@ const TriangleMesh& tm2, const VertexPointMap1& vpm1, const VertexPointMap2& vpm2, - const Node_visitor& v=Node_visitor()) + const Node_visitor& v=Node_visitor(), + const TriangleMesh* const_mesh_ptr=nullptr) : nodes(tm1, tm2, vpm1, vpm2) , visitor(v) + , const_mesh_ptr(const_mesh_ptr) { CGAL_precondition(is_triangle_mesh(tm1)); CGAL_precondition(is_triangle_mesh(tm2)); @@ -1624,8 +1719,11 @@ // used only if throw_on_self_intersection == true std::set tm1_faces; std::set tm2_faces; + + visitor.start_filtering_intersections(); filter_intersections(tm1, tm2, vpm1, vpm2, non_manifold_feature_map_2, throw_on_self_intersection, tm1_faces, tm2_faces, false); filter_intersections(tm2, tm1, vpm2, vpm1, non_manifold_feature_map_1, throw_on_self_intersection, tm2_faces, tm1_faces, true); + visitor.end_filtering_intersections(); Node_id current_node((std::numeric_limits::max)()); CGAL_assertion(current_node+1==0); @@ -1654,7 +1752,7 @@ compute_intersection_points(tm1_edge_to_tm2_faces, tm1, tm2, vpm1, vpm2, non_manifold_feature_map_1, non_manifold_feature_map_2, current_node); compute_intersection_points(tm2_edge_to_tm1_faces, tm2, tm1, vpm2, vpm1, non_manifold_feature_map_2, non_manifold_feature_map_1, current_node); - nodes.check_no_duplicates(); + visitor.check_no_duplicates(nodes); if (!build_polylines){ visitor.finalize(nodes,tm1,tm2,vpm1,vpm2); diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/Corefinement/intersection_nodes.h cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/Corefinement/intersection_nodes.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/Corefinement/intersection_nodes.h 2022-06-03 19:05:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/Corefinement/intersection_nodes.h 2022-07-13 19:06:08.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Corefinement/intersection_nodes.h $ -// $Id: intersection_nodes.h 00c185b 2021-03-12T12:06:20+01:00 Dmitry Anisimov +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Corefinement/intersection_nodes.h $ +// $Id: intersection_nodes.h d594929 2022-06-22T16:56:51+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -65,12 +65,6 @@ Exact_kernel ek; Exact_to_double exact_to_double; - typename Exact_kernel::Point_3 - to_exact(const typename Input_kernel::Point_3& p) const - { - return typename Exact_kernel::Point_3(p.x(), p.y(), p.z()); - } - public: const TriangleMesh &tm1, &tm2; const VertexPointMap1& vpm1; @@ -86,6 +80,12 @@ , vpm2(vpm2_) {} + static typename Exact_kernel::Point_3 + to_exact(const typename Input_kernel::Point_3& p) + { + return typename Exact_kernel::Point_3(p.x(), p.y(), p.z()); + } + const Point_3& operator[](std::size_t i) const { return nodes[i]; } @@ -132,7 +132,7 @@ template void finalize(const Mesh_to_map_node&) {} - void check_no_duplicates() + void check_no_duplicates() const { CGAL_assertion(nodes.size() == std::set(nodes.begin(), nodes.end()).size()); } @@ -202,8 +202,9 @@ return enodes[i]; } + static Exact_kernel::Point_3 - to_exact(const Point_3& p) const + to_exact(const Point_3& p) { return Exact_kernel::Point_3(p.x(), p.y(), p.z()); } @@ -296,10 +297,8 @@ for (std::size_t i=0, e=enodes.size(); i!=e; ++i) { Point_3 pt = exact_to_double(enodes[i]); - if ( tm1_vertices[i] != GT::null_vertex() ) - put(vpm1, tm1_vertices[i], pt); - if ( tm2_vertices[i] != GT::null_vertex() ) - put(vpm2, tm2_vertices[i], pt); + tm1_vertices.update_vertex_point(i, pt, vpm1); + tm2_vertices.update_vertex_point(i, pt, vpm2); } } else{ @@ -307,13 +306,12 @@ for (std::size_t i=0, e=enodes.size(); i!=e; ++i) { Point_3 pt = exact_to_double(enodes[i]); - if ( tm1_vertices[i] != GT::null_vertex() ) - put(vpm1, tm1_vertices[i], pt); + tm1_vertices.update_vertex_point(i, pt, vpm1); } } } - void check_no_duplicates() + void check_no_duplicates() const { CGAL_assertion(enodes.size() == std::set(enodes.begin(), enodes.end()).size()); } @@ -422,7 +420,7 @@ nodes.push_back(p); } - const Point_3& to_exact(const Point_3& p) const { return p; } + static const Point_3& to_exact(const Point_3& p) { return p; } template // VertexPointMap1 or VertexPointMap2 void call_put(const VPM& vpm, vertex_descriptor vd, std::size_t i, TriangleMesh&) @@ -437,7 +435,7 @@ {} - void check_no_duplicates() + void check_no_duplicates() const { CGAL_assertion(nodes.size() == std::set(nodes.begin(), nodes.end()).size()); } diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/Corefinement/intersection_of_coplanar_triangles_3.h cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/Corefinement/intersection_of_coplanar_triangles_3.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/Corefinement/intersection_of_coplanar_triangles_3.h 2022-06-03 19:05:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/Corefinement/intersection_of_coplanar_triangles_3.h 2022-07-13 19:06:08.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Corefinement/intersection_of_coplanar_triangles_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Corefinement/intersection_of_coplanar_triangles_3.h $ // $Id: intersection_of_coplanar_triangles_3.h e63b032 2021-01-06T13:26:58+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/Corefinement/Intersection_type.h cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/Corefinement/Intersection_type.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/Corefinement/Intersection_type.h 2022-06-03 19:05:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/Corefinement/Intersection_type.h 2022-07-13 19:06:08.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Corefinement/Intersection_type.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Corefinement/Intersection_type.h $ // $Id: Intersection_type.h f9a9d12 2021-07-21T11:33:48+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/Corefinement/intersect_triangle_and_segment_3.h cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/Corefinement/intersect_triangle_and_segment_3.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/Corefinement/intersect_triangle_and_segment_3.h 2022-06-03 19:05:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/Corefinement/intersect_triangle_and_segment_3.h 2022-07-13 19:06:08.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Corefinement/intersect_triangle_and_segment_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Corefinement/intersect_triangle_and_segment_3.h $ // $Id: intersect_triangle_and_segment_3.h 808c93c 2020-05-26T10:14:06+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/Corefinement/Output_builder_for_autorefinement.h cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/Corefinement/Output_builder_for_autorefinement.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/Corefinement/Output_builder_for_autorefinement.h 2022-06-03 19:05:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/Corefinement/Output_builder_for_autorefinement.h 2022-07-13 19:06:08.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Corefinement/Output_builder_for_autorefinement.h $ -// $Id: Output_builder_for_autorefinement.h 4b26935 2020-11-24T18:11:27+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Corefinement/Output_builder_for_autorefinement.h $ +// $Id: Output_builder_for_autorefinement.h 258d704 2022-02-24T19:57:17+01:00 Laurent Rineau // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -34,9 +34,6 @@ namespace Polygon_mesh_processing { namespace Corefinement { -namespace PMP=Polygon_mesh_processing; -namespace params=PMP::parameters; - template An_edge_per_polyline_map; - typedef boost::unordered_map Node_id_map; - // typedef boost::unordered_map Edge_map; - typedef boost::unordered_map All_intersection_edges_map; + typedef std::unordered_map Node_id_map; + // typedef std::unordered_map Edge_map; + typedef std::unordered_map> All_intersection_edges_map; //Data members TriangleMesh &tm; // property maps of input mesh @@ -161,7 +158,7 @@ , fids(fids) , ecm(ecm) , is_tm_closed( is_closed(tm)) - , is_tm_inside_out( is_tm_closed && !PMP::is_outward_oriented(tm) ) + , is_tm_inside_out( is_tm_closed && !is_outward_oriented(tm) ) , NID((std::numeric_limits::max)()) , all_fixed(true) {} @@ -216,7 +213,7 @@ { // first build an unordered_map mapping a vertex to its node id + a set // of all intersection edges - typedef boost::unordered_set Intersection_edge_map; + typedef std::unordered_set Intersection_edge_map; Intersection_edge_map intersection_edges; typedef std::pair Pair_type; @@ -257,7 +254,7 @@ typename An_edge_per_polyline_map::iterator epp_it=input_have_coplanar_faces ? an_edge_per_polyline.begin() : epp_it_end; - boost::unordered_set inter_edges_to_remove; + std::unordered_set inter_edges_to_remove; for (;epp_it!=epp_it_end;) { halfedge_descriptor h1 = epp_it->second.h1; @@ -348,14 +345,13 @@ // component limited by intersection edges of the surface they are. // ... for tm std::vector patch_ids( num_faces(tm),NID ); - Boolean_property_map< boost::unordered_set > + Boolean_property_map< std::unordered_set > is_intersection(intersection_edges); std::size_t nb_patches = - PMP::connected_components(tm, - bind_property_maps(fids,make_property_map(patch_ids)), - params::edge_is_constrained_map( - is_intersection) - .face_index_map(fids)); + connected_components(tm, + bind_property_maps(fids,make_property_map(patch_ids)), + parameters::edge_is_constrained_map(is_intersection) + .face_index_map(fids)); // (2-a) Use the orientation around an edge to classify a patch boost::dynamic_bitset<> patches_to_keep(nb_patches); @@ -735,6 +731,14 @@ std::size_t patch_id_q1=patch_ids[ get(fids, face(opposite(h2,tm),tm)) ]; std::size_t patch_id_q2=patch_ids[ get(fids, face(h2,tm)) ]; + if (patch_id_p1==patch_id_p2 || patch_id_q1==patch_id_q2) + { + // polyline in the middle of a patch is always impossible to fix but + // removing the whole all the patch + all_fixed = false; + continue; + } + //indicates that patch status will be updated patch_status_not_set.reset(patch_id_p1); patch_status_not_set.reset(patch_id_p2); @@ -1181,12 +1185,13 @@ //remove the extra patch remove_patches(tm, ~patches_to_keep,patches, ecm); - PMP::stitch_borders(tm, hedge_pairs_to_stitch, params::vertex_point_map(vpm)); + stitch_borders(tm, hedge_pairs_to_stitch, parameters::vertex_point_map(vpm)); } }; - -} } } // CGAL::Corefinement +} // namespace Corefinement +} // namespace Polygon_mesh_processing +} // namespace CGAL #include diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/Corefinement/predicates.h cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/Corefinement/predicates.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/Corefinement/predicates.h 2022-06-03 19:05:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/Corefinement/predicates.h 2022-07-13 19:06:08.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Corefinement/predicates.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Corefinement/predicates.h $ // $Id: predicates.h 00c185b 2021-03-12T12:06:20+01:00 Dmitry Anisimov // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/Corefinement/Visitor.h cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/Corefinement/Visitor.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/Corefinement/Visitor.h 2022-06-03 19:05:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/Corefinement/Visitor.h 2022-07-13 19:06:08.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Corefinement/Visitor.h $ -// $Id: Visitor.h 4454c5b 2021-08-30T12:25:51+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Corefinement/Visitor.h $ +// $Id: Visitor.h b66d3a0 2022-06-21T17:37:22+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -341,6 +341,96 @@ } }; +namespace internal{ +//version for corefinement, only one vertex per node_id +template +struct Node_id_to_vertex +{ + typedef boost::graph_traits Graph_traits; + typedef typename Graph_traits::vertex_descriptor vertex_descriptor; + std::vector data; + + vertex_descriptor get_vertex(std::size_t i) const + { + return data[i]; + } + void register_vertex(std::size_t i, vertex_descriptor v) + { + data[i] = v; + } + void set_vertex_for_retriangulation(std::size_t i, vertex_descriptor v) + { + data[i] = v; + } + void set_temporary_vertex_for_retriangulation(std::size_t i, vertex_descriptor v) + { + data[i] = v; + } + void resize(std::size_t n) + { + data.resize(n,Graph_traits::null_vertex()); + } + std::size_t size() const + { + return data.size(); + } + template + void update_vertex_point(std::size_t i, const Point_3& p, const VPM& vpm) const + { + if (data[i]!=Graph_traits::null_vertex()) + put(vpm, data[i], p); + } +}; + +//version for autorefinement and non-manifold corefinement, several vertices per node_id +template +struct Node_id_to_vertex +{ + typedef boost::graph_traits Graph_traits; + typedef typename Graph_traits::vertex_descriptor vertex_descriptor; + std::vector< std::vector > data; + + vertex_descriptor get_vertex(std::size_t i) const + { + if (data[i].empty()) + return Graph_traits::null_vertex(); + return data[i].back(); + } + void register_vertex(std::size_t i, vertex_descriptor v) + { + data[i].push_back(v); + } + void set_temporary_vertex_for_retriangulation(std::size_t i, vertex_descriptor v) + { + data[i].assign(1,v); + } + // warning: data[i] might then contains several times the same vertex + // but it is probably still a better option than look for the + // vertex and remove it + void set_vertex_for_retriangulation(std::size_t i, vertex_descriptor v) + { + assert(!data[i].empty()); + if (data[i].back()!=v) + data[i].push_back(v); + } + void resize(std::size_t n) + { + data.resize(n); + } + std::size_t size() const + { + return data.size(); + } + template + void update_vertex_point(std::size_t i, const Point_3& p, const VPM& vpm) const + { + for (vertex_descriptor v : data[i]) + put(vpm, v, p); + } +}; +} + + // A visitor for Intersection_of_triangle_meshes that can be used to corefine // two meshes template< class TriangleMesh, @@ -373,16 +463,19 @@ typedef typename Graph_traits::vertex_descriptor vertex_descriptor; typedef typename Graph_traits::halfedge_descriptor halfedge_descriptor; typedef std::vector Node_ids; - typedef boost::unordered_map On_face_map; - typedef boost::unordered_map On_edge_map; + typedef std::unordered_map On_face_map; + typedef std::unordered_map On_edge_map; //to keep the correspondance between node_id and vertex_handle in each mesh - typedef std::vector Node_id_to_vertex; - typedef std::map Mesh_to_map_node; + typedef internal::Node_id_to_vertex + Node_id_to_vertex; + typedef std::map Mesh_to_map_node; //to handle coplanar halfedge of polyhedra that are full in the intersection - typedef std::multimap Node_to_target_of_hedge_map; + typedef std::multimap Node_to_target_of_hedge_map; typedef std::map Mesh_to_vertices_on_intersection_map; - typedef boost::unordered_map Vertex_to_node_id; + typedef std::unordered_map Vertex_to_node_id; typedef std::map Mesh_to_vertex_to_node_id; typedef Non_manifold_feature_map NM_features_map; // typedef for the CDT @@ -447,7 +540,6 @@ { return get(ecm, ed); } - // visitor public functions public: Surface_intersection_visitor_for_corefinement( @@ -460,6 +552,69 @@ , const_mesh_ptr(const_mesh_ptr) {} + + void start_filtering_intersections() const + { + user_visitor.start_filtering_intersections(); + } + + + void progress_filtering_intersections(double d) const + { + user_visitor.progress_filtering_intersections(d); + } + + void end_filtering_intersections() const + { + user_visitor.end_filtering_intersections(); + } + + + void start_handling_edge_face_intersections(std::size_t i) const + { + user_visitor.start_handling_edge_face_intersections(i); + } + + void edge_face_intersections_step() const + { + user_visitor.edge_face_intersections_step(); + } + + void end_handling_edge_face_intersections() const + { + user_visitor.end_handling_edge_face_intersections(); + } + + void start_handling_intersection_of_coplanar_faces(std::size_t i) const + { + user_visitor.start_handling_intersection_of_coplanar_faces(i); + } + + void intersection_of_coplanar_faces_step() const + { + user_visitor.intersection_of_coplanar_faces_step(); + } + + void end_handling_intersection_of_coplanar_faces() const + { + user_visitor.end_handling_intersection_of_coplanar_faces(); + } + + void start_building_output() const + { + user_visitor.start_building_output(); + } + + void build_output_step() const + { + user_visitor.build_output_step(); + } + + void end_building_output() const + { + user_visitor.end_building_output(); + } + void set_non_manifold_feature_map( const TriangleMesh& tm, @@ -667,8 +822,8 @@ mesh_to_vertices_on_inter[tm2_ptr].insert(std::make_pair(node_id,h_2)); Node_id_to_vertex& node_id_to_vertex=mesh_to_node_id_to_vertex[tm2_ptr]; if (node_id_to_vertex.size()<=node_id) - node_id_to_vertex.resize(node_id+1,Graph_traits::null_vertex()); - node_id_to_vertex[node_id]=target(h_2,tm2); + node_id_to_vertex.resize(node_id+1); + node_id_to_vertex.register_vertex(node_id, target(h_2,tm2)); all_incident_faces_got_a_node_as_vertex(h_2,node_id,*tm2_ptr); check_node_on_boundary_vertex_case(node_id,h_2,tm2); output_builder.set_vertex_id(target(h_2, tm2), node_id, tm2); @@ -690,8 +845,8 @@ mesh_to_vertices_on_inter[tm1_ptr].insert(std::make_pair(node_id,h_1)); Node_id_to_vertex& node_id_to_vertex=mesh_to_node_id_to_vertex[tm1_ptr]; if (node_id_to_vertex.size()<=node_id) - node_id_to_vertex.resize(node_id+1,Graph_traits::null_vertex()); - node_id_to_vertex[node_id]=target(h_1,tm1); + node_id_to_vertex.resize(node_id+1); + node_id_to_vertex.register_vertex(node_id, target(h_1,tm1)); all_incident_faces_got_a_node_as_vertex(h_1,node_id, *tm1_ptr); // register the vertex in the output builder output_builder.set_vertex_id(target(h_1, tm1), node_id, tm1); @@ -704,8 +859,8 @@ mesh_to_vertices_on_inter[tm1_ptr].insert(std::make_pair(node_id,h_1_opp)); Node_id_to_vertex& node_id_to_vertex=mesh_to_node_id_to_vertex[tm1_ptr]; if(node_id_to_vertex.size()<=node_id) - node_id_to_vertex.resize(node_id+1,Graph_traits::null_vertex()); - node_id_to_vertex[node_id]=source(h_1,tm1); + node_id_to_vertex.resize(node_id+1); + node_id_to_vertex.register_vertex(node_id, source(h_1,tm1)); all_incident_faces_got_a_node_as_vertex(h_1_opp,node_id, *tm1_ptr); // register the vertex in the output builder output_builder.set_vertex_id(source(h_1, tm1), node_id, tm1); @@ -819,7 +974,8 @@ h = next(h, tm); for(std::size_t id : node_ids_array[i]) { - node_id_to_vertex[id] = target(h, tm); + // needed when we triangulate a face --> need to pick the right vertex + node_id_to_vertex.set_vertex_for_retriangulation(id, target(h, tm)); h = next(h, tm); } CGAL_assertion(h == halfedges[i]); @@ -828,7 +984,7 @@ }; - typedef boost::unordered_map Face_boundaries; + typedef std::unordered_map Face_boundaries; //update the id of input mesh vertex that are also a node void update_face_indices( @@ -837,7 +993,7 @@ Vertex_to_node_id& vertex_to_node_id) { for (int k=0;k<3;++k){ - typename boost::unordered_map::iterator it = + typename std::unordered_map::iterator it = vertex_to_node_id.find(f_vertices[k]); if (it!=vertex_to_node_id.end()) f_indices[k]=it->second; @@ -1000,7 +1156,7 @@ nodes.call_put(vpm, vnew, node_id, tm); // register the new vertex in the output builder output_builder.set_vertex_id(vnew, node_id, tm); - node_id_to_vertex[node_id]=vnew; + node_id_to_vertex.register_vertex(node_id, vnew); if (first){ first=false; hedge_incident_to_src=next(opposite(hedge,tm),tm); @@ -1051,6 +1207,7 @@ for (typename On_face_map::iterator it=on_face_map.begin(); it!=on_face_map.end();++it) { + user_visitor.triangulating_faces_step(); face_descriptor f = it->first; //the face to be triangulated Node_ids& node_ids = it->second; // ids of nodes in the interior of f typename Face_boundaries::iterator it_fb=face_boundaries.find(f); @@ -1085,10 +1242,101 @@ edge_to_hedge[std::make_pair( f_indices[1],f_indices[2] )] = h2; } + // handle possible presence of degenerate faces + if (const_mesh_ptr && collinear( get(vpm,f_vertices[0]), get(vpm,f_vertices[1]), get(vpm,f_vertices[2]) ) ) + { + Node_ids face_vertex_nids; + + //check if one of the triangle input vertex is also a node + for (int ik=0;ik<3;++ik) + if ( f_indices[ik]second; + for (int i=0;i<3;++i) + std::copy(f_boundary.node_ids_array[i].begin(), + f_boundary.node_ids_array[i].end(), + std::back_inserter(face_vertex_nids)); + } + + std::sort(face_vertex_nids.begin(), face_vertex_nids.end()); + std::vector,2>> constraints; + for(Node_id id : face_vertex_nids) + { + CGAL_assertion(id < graph_of_constraints.size()); + const std::vector& neighbors=graph_of_constraints[id]; + if (!neighbors.empty()) + { + for(Node_id id_n :neighbors) + { + if (id_n new_faces; + for (const std::array, 2>& a : constraints) + { + halfedge_descriptor nh = Euler::split_face(a[0].first, a[1].first, tm); + new_faces.push_back(face(opposite(nh, tm), tm)); + + call_put(marks_on_edges,tm,edge(nh,tm),true); + output_builder.set_edge_per_polyline(tm,std::make_pair(a[0].second, a[1].second),nh); + } + + // now triangulate new faces + if (!new_faces.empty()) + { + new_faces.push_back(f); + for(face_descriptor nf : new_faces) + { + halfedge_descriptor h = halfedge(nf, tm), + nh = next(next(h,tm),tm); + while(next(nh, tm)!=h) + nh=next(Euler::split_face(h, nh, tm), tm); + } + } + + continue; + } + typename EK::Point_3 p = nodes.to_exact(get(vpm,f_vertices[0])), q = nodes.to_exact(get(vpm,f_vertices[1])), r = nodes.to_exact(get(vpm,f_vertices[2])); -///TODO use a positive normal and remove all work around to guarantee that triangulation of coplanar patches are compatible +///TODO use a positive normal and remove all workaround to guarantee that triangulation of coplanar patches are compatible CDT_traits traits(typename EK::Construct_normal_3()(p,q,r)); CDT cdt(traits); @@ -1100,14 +1348,13 @@ triangle_vertices[2]=cdt.tds().insert_dim_up(cdt.infinite_vertex(), false); triangle_vertices[2]->set_point(r); - triangle_vertices[0]->info()=f_indices[0]; triangle_vertices[1]->info()=f_indices[1]; triangle_vertices[2]->info()=f_indices[2]; - node_id_to_vertex[nb_nodes ]=f_vertices[0]; - node_id_to_vertex[nb_nodes+1]=f_vertices[1]; - node_id_to_vertex[nb_nodes+2]=f_vertices[2]; + node_id_to_vertex.set_temporary_vertex_for_retriangulation(nb_nodes, f_vertices[0]); + node_id_to_vertex.set_temporary_vertex_for_retriangulation(nb_nodes+1, f_vertices[1]); + node_id_to_vertex.set_temporary_vertex_for_retriangulation(nb_nodes+2, f_vertices[2]); //if one of the triangle input vertex is also a node for (int ik=0;ik<3;++ik){ @@ -1118,7 +1365,10 @@ if (doing_autorefinement || handle_non_manifold_features) // update the current vertex in node_id_to_vertex // to match the one of the face - node_id_to_vertex[f_indices[ik]]=f_vertices[ik]; + node_id_to_vertex.set_temporary_vertex_for_retriangulation(f_indices[ik], f_vertices[ik]); + // Note on set_temporary_vertex instead of set_vertex: here since the point is an input point + // it is OK not to store all vertices corresponding to this id as the approximate version + // is already tight and the call in Intersection_nodes::finalize() will not fix anything } } //insert points on edges @@ -1284,6 +1534,12 @@ } } + void check_no_duplicates(const INodes& nodes) const + { + if (const_mesh_ptr == nullptr) // actually only needed for clip + nodes.check_no_duplicates(); + } + void finalize(INodes& nodes, const TriangleMesh& tm1, const TriangleMesh& tm2, @@ -1297,12 +1553,11 @@ TriangleMesh* tm1_ptr = const_cast(&tm1); TriangleMesh* tm2_ptr = const_cast(&tm2); - vertex_descriptor null_vertex = Graph_traits::null_vertex(); const Node_id nb_nodes = nodes.size(); // we reserve nb_nodes+3 because we use the last three entries for the // face triangulation - mesh_to_node_id_to_vertex[tm1_ptr].resize(nb_nodes+3, null_vertex); - mesh_to_node_id_to_vertex[tm2_ptr].resize(nb_nodes+3, null_vertex); + mesh_to_node_id_to_vertex[tm1_ptr].resize(nb_nodes+3); + mesh_to_node_id_to_vertex[tm2_ptr].resize(nb_nodes+3); //store for each triangle face which boundary is intersected by the other surface, //original vertices (and halfedges in the refined mesh pointing on these vertices) @@ -1401,8 +1656,17 @@ //2)triangulation of the triangle faces containing intersection point in their interior // and also those with intersection points only on the boundary. + std::size_t total_size = 0; for (typename std::map::iterator - it=on_face.begin(); it!=on_face.end(); ++it) + it=on_face.begin(); it!=on_face.end(); ++it) + { + total_size += it->second.size(); + } + + user_visitor.start_triangulating_faces(total_size); + + for (typename std::map::iterator + it=on_face.begin(); it!=on_face.end(); ++it) { if(it->first == tm1_ptr) triangulate_intersected_faces(it, vpm1, nodes, mesh_to_face_boundaries); @@ -1410,13 +1674,17 @@ triangulate_intersected_faces(it, vpm2, nodes, mesh_to_face_boundaries); } - nodes.finalize(mesh_to_node_id_to_vertex); + user_visitor.end_triangulating_faces(); + nodes.finalize(mesh_to_node_id_to_vertex); + user_visitor.start_building_output(); // additional operations output_builder(nodes, input_with_coplanar_faces, is_node_of_degree_one, mesh_to_node_id_to_vertex); + + user_visitor.end_building_output(); } }; diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/do_no_use_CDT2.h cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/do_no_use_CDT2.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/do_no_use_CDT2.h 2022-06-03 19:05:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/do_no_use_CDT2.h 2022-07-13 19:06:08.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/do_no_use_CDT2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/do_no_use_CDT2.h $ // $Id: do_no_use_CDT2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/fair_impl.h cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/fair_impl.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/fair_impl.h 2022-06-03 19:05:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/fair_impl.h 2022-07-13 19:06:08.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/fair_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/fair_impl.h $ // $Id: fair_impl.h 625848e 2021-10-04T13:21:47+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/Hole_filling/do_not_use_DT3.h cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/Hole_filling/do_not_use_DT3.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/Hole_filling/do_not_use_DT3.h 2022-06-03 19:05:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/Hole_filling/do_not_use_DT3.h 2022-07-13 19:06:08.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Hole_filling/do_not_use_DT3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Hole_filling/do_not_use_DT3.h $ // $Id: do_not_use_DT3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/Hole_filling/experimental/experimental_code.h cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/Hole_filling/experimental/experimental_code.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/Hole_filling/experimental/experimental_code.h 2022-06-03 19:05:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/Hole_filling/experimental/experimental_code.h 2022-07-13 19:06:08.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Hole_filling/experimental/experimental_code.h $ -// $Id: experimental_code.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Hole_filling/experimental/experimental_code.h $ +// $Id: experimental_code.h 77e5bee 2021-12-27T14:33:34+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -121,7 +121,7 @@ typedef Weight_incomplete Weight; typedef Weight_calculator WC; - typedef std::vector > Facet_vector; /* deliberately not OutputIteratorValueType*/ + typedef std::vector > Facet_vector; /* deliberately not OutputIteratorValueType*/ typedef std::back_insert_iterator OutIt; typedef Tracer_polyline_incomplete Tracer; typedef std::pair Range; diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/Hole_filling/Triangulate_hole_polygon_mesh.h cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/Hole_filling/Triangulate_hole_polygon_mesh.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/Hole_filling/Triangulate_hole_polygon_mesh.h 2022-06-03 19:05:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/Hole_filling/Triangulate_hole_polygon_mesh.h 2022-07-13 19:06:08.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Hole_filling/Triangulate_hole_polygon_mesh.h $ -// $Id: Triangulate_hole_polygon_mesh.h 625848e 2021-10-04T13:21:47+02:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Hole_filling/Triangulate_hole_polygon_mesh.h $ +// $Id: Triangulate_hole_polygon_mesh.h 9e3a36c 2022-03-24T17:12:45+01:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -46,16 +46,21 @@ int i, int k, bool last = true) { - if(i + 1 == k) { return P[i+1]; } + if(i + 1 == k) + return P[i+1]; halfedge_descriptor h, g; - if(i+2 == k){ + if(i+2 == k) + { if(last) - { - h = P[i+1]; - Euler::fill_hole(h,pmesh); } + { + h = P[i + 1]; + Euler::fill_hole(h, pmesh); + } else - { h = Euler::add_face_to_border(prev(P[i+1],pmesh), P[i+2/*k*/], pmesh); } + { + h = Euler::add_face_to_border(prev(P[i + 1], pmesh), P[i + 2 /*k*/], pmesh); + } CGAL_assertion(face(h,pmesh) != boost::graph_traits::null_face()); *out++ = face(h,pmesh); @@ -68,12 +73,14 @@ g = operator()(lambda, la, k, false); if(last) - { - h = g; - Euler::fill_hole(g,pmesh); - } + { + h = g; + Euler::fill_hole(g, pmesh); + } else - { h = Euler::add_face_to_border(prev(h,pmesh), g, pmesh); } + { + h = Euler::add_face_to_border(prev(h, pmesh), g, pmesh); + } CGAL_assertion(face(h,pmesh) != boost::graph_traits::null_face()); *out++ = face(h,pmesh); @@ -87,7 +94,7 @@ }; // This function is used in test cases (since it returns not just OutputIterator but also Weight) -template +template std::pair triangulate_hole_polygon_mesh(PolygonMesh& pmesh, typename boost::graph_traits::halfedge_descriptor border_halfedge, @@ -96,6 +103,8 @@ bool use_delaunay_triangulation, const Kernel& k, const bool use_cdt, + const bool skip_cubic_algorithm, + Visitor& visitor, const typename Kernel::FT max_squared_distance) { typedef Halfedge_around_face_circulator Hedge_around_face_circulator; @@ -106,28 +115,29 @@ typedef std::map Vertex_map; typedef typename Vertex_map::iterator Vertex_map_it; - #ifdef CGAL_PMP_HOLE_FILLING_DEBUG +#ifdef CGAL_PMP_HOLE_FILLING_DEBUG CGAL::Timer timer; timer.start(); - #endif +#endif - std::vector P, Q; + std::vector P, Q; std::vector P_edges; Vertex_map vertex_map; int id = 0; Hedge_around_face_circulator circ(border_halfedge,pmesh), done(circ); - do{ + do + { P.push_back(get(vpmap, target(*circ, pmesh))); Q.push_back(get(vpmap, target(next(opposite(next(*circ,pmesh),pmesh),pmesh),pmesh))); P_edges.push_back(*circ); - if(!vertex_map.insert(std::make_pair(target(*circ,pmesh), id++)).second) { - #ifndef CGAL_TEST_SUITE + if(!vertex_map.insert(std::make_pair(target(*circ,pmesh), id++)).second) + { +#ifndef CGAL_TEST_SUITE CGAL_warning_msg(false, "Returning no output. Non-manifold vertex is found on boundary!"); - #else +#else std::cerr << "W: Returning no output. Non-manifold vertex is found on boundary!\n"; - #endif - return std::make_pair(out, - CGAL::internal::Weight_min_max_dihedral_and_area::NOT_VALID()); +#endif + return std::make_pair(out, CGAL::internal::Weight_min_max_dihedral_and_area::NOT_VALID()); } } while (++circ != done); @@ -151,52 +161,52 @@ if(v_it_neigh_it != vertex_map.end()) //other endpoint found in the map { int v_it_neigh_id = v_it_neigh_it->second; - if( v_it_neigh_id != v_it_prev && v_it_neigh_id != v_it_next ) - { //there is an edge incident to v_it, which is not next or previous + if(v_it_neigh_id != v_it_prev && v_it_neigh_id != v_it_next) + { + //there is an edge incident to v_it, which is not next or previous //from vertex_map (checked by comparing IDs) if(v_it_id < v_it_neigh_id) // to include each edge only once - { existing_edges.push_back(std::make_pair(v_it_id, v_it_neigh_id)); } + existing_edges.push_back(std::make_pair(v_it_id, v_it_neigh_id)); } } } while(++circ_vertex != done_vertex); } - //#define CGAL_USE_WEIGHT_INCOMPLETE - #ifdef CGAL_USE_WEIGHT_INCOMPLETE +//#define CGAL_USE_WEIGHT_INCOMPLETE +#ifdef CGAL_USE_WEIGHT_INCOMPLETE typedef CGAL::internal::Weight_calculator, CGAL::internal::Is_valid_existing_edges_and_degenerate_triangle> WC; - #else +#else typedef CGAL::internal::Weight_calculator WC; - #endif +#endif CGAL::internal::Is_valid_existing_edges_and_degenerate_triangle is_valid(existing_edges); // fill hole using polyline function, with custom tracer for PolygonMesh - Tracer_polyhedron - tracer(out, pmesh, P_edges); + Tracer_polyhedron tracer(out, pmesh, P_edges); #ifndef CGAL_HOLE_FILLING_DO_NOT_USE_CDT2 - if(use_cdt && triangulate_hole_polyline_with_cdt(P, tracer, is_valid, k, max_squared_distance)) - { - return std::make_pair(tracer.out, CGAL::internal::Weight_min_max_dihedral_and_area(0,0)); - } + if(use_cdt && triangulate_hole_polyline_with_cdt(P, tracer, visitor, is_valid, k, max_squared_distance)) + return std::make_pair(tracer.out, CGAL::internal::Weight_min_max_dihedral_and_area(0,0)); #endif CGAL::internal::Weight_min_max_dihedral_and_area weight = - triangulate_hole_polyline(P, Q, tracer, WC(is_valid), - use_delaunay_triangulation, k) -#ifdef CGAL_USE_WEIGHT_INCOMPLETE - .weight // get actual weight in Weight_incomplete +#ifndef CGAL_USE_WEIGHT_INCOMPLETE + triangulate_hole_polyline(P, Q, tracer, WC(is_valid), visitor, use_delaunay_triangulation, skip_cubic_algorithm, k); +#else + // get actual weight in Weight_incomplete + triangulate_hole_polyline(P, Q, tracer, WC(is_valid), visitor, use_delaunay_triangulation, k).weight; #endif - ; - #ifdef CGAL_PMP_HOLE_FILLING_DEBUG +#ifdef CGAL_PMP_HOLE_FILLING_DEBUG std::cerr << "Hole filling: " << timer.time() << " sc." << std::endl; timer.reset(); - #endif +#endif + return std::make_pair(tracer.out, weight); } -}// namespace internal -}// namespace Polygon_mesh_processing -}// namespace CGAL +} // namespace internal +} // namespace Polygon_mesh_processing +} // namespace CGAL + #endif //CGAL_HOLE_FILLING_TRIANGULATE_HOLE_POLYHEDRON_3_H diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/Hole_filling/Triangulate_hole_polyline.h cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/Hole_filling/Triangulate_hole_polyline.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/Hole_filling/Triangulate_hole_polyline.h 2022-06-03 19:05:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/Hole_filling/Triangulate_hole_polyline.h 2022-07-13 19:06:08.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Hole_filling/Triangulate_hole_polyline.h $ -// $Id: Triangulate_hole_polyline.h e855b27 2022-03-02T15:13:16+01:00 Laurent Rineau +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Hole_filling/Triangulate_hole_polyline.h $ +// $Id: Triangulate_hole_polyline.h d6e6ce9 2022-04-11T16:00:05+01:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -42,11 +42,9 @@ #include #include #include +#include #include -#include -#include -#include namespace CGAL { namespace internal { @@ -651,7 +649,7 @@ } }; - typedef boost::unordered_set Vertex_container; + typedef std::unordered_set Vertex_container; // contains edges as key, and each edge contains set of third vertices which denote neighbor facets to that edge typedef std::map, Vertex_container, Edge_comp> Graph; @@ -734,6 +732,7 @@ class Kernel, class Tracer, class WeightCalculator, + class Visitor, template class LookupTable = Lookup_table > class Triangulate_hole_polyline; @@ -745,6 +744,7 @@ class Kernel, class Tracer, class WeightCalculator, + class Visitor, template class LookupTable = Lookup_table_map > class Triangulate_hole_polyline_DT @@ -781,7 +781,8 @@ Weight operator()(const Polyline_3& P, const Polyline_3& Q, Tracer& tracer, - const WeightCalculator& WC) const + const WeightCalculator& WC, + Visitor& visitor) const { CGAL_assertion(P.front() == P.back()); CGAL_assertion(Q.empty() || (Q.front() == Q.back())); @@ -791,8 +792,8 @@ Triangulation tr; std::vector edge_exist; std::pair range(0, n-1); - boost::tuple, bool, bool> res = construct_3D_triangulation(P, range, tr, edge_exist); - if(!res.template get<2>()) { + std::tuple, bool, bool> res = construct_3D_triangulation(P, range, tr, edge_exist); + if(!std::get<2>(res)) { #ifdef CGAL_HOLE_FILLING_VERBOSE #ifndef CGAL_TEST_SUITE CGAL_warning_msg(false, "Returning no output. Dimension of 3D Triangulation is below 2!"); @@ -804,18 +805,19 @@ } // all border edges inside 3D Triangulation - if(boost::get<1>(res)) { + if(std::get<1>(res)) { LookupTable W(n, Weight::DEFAULT()); // do not forget that these default values are not changed for [i, i+1] LookupTable lambda(n,-1); typename Incident_facet_circulator_base::Edge_wrapper - e_start(*boost::get<0>(res)); + e_start(*std::get<0>(res)); if(tr.dimension() == 3) { - triangulate_DT(P, Q, W, lambda, e_start, tr, WC, false); + visitor.start_quadratic_phase(tr.number_of_finite_facets()); + triangulate_DT(P, Q, W, lambda, e_start, tr, WC, visitor, false); } else { CGAL_assertion(tr.dimension() == 2); - triangulate_DT(P, Q, W, lambda, e_start, tr, WC, false); + triangulate_DT(P, Q, W, lambda, e_start, tr, WC, visitor, false); } if(W.get(0, n-1) == Weight::NOT_VALID()) { @@ -826,25 +828,31 @@ std::cerr << "W: Returning no output. No possible triangulation is found!\n"; #endif #endif + visitor.end_quadratic_phase(false); return Weight::NOT_VALID(); } tracer(lambda, 0, n-1); + visitor.end_quadratic_phase(true); return W.get(0,n-1); } // How to handle missing border edges #if 1 - return fill_by_extra_triangles(tr, edge_exist, P, Q, tracer, WC); + visitor.start_quadratic_phase(tr.number_of_finite_facets()); + Weight w = fill_by_extra_triangles(tr, edge_exist, P, Q, tracer, WC, visitor); #else // This approach produce better patches when used with Weight_incomplete // (which should be arranged in internal::triangulate_hole_Polyhedron, triangulate_polyline) - return fill_by_incomplete_patches(tr, res.get<0>(), edge_exist, P, Q, tracer, WC); + Weight w = fill_by_incomplete_patches(tr, std::get<0>(res), edge_exist, P, Q, tracer, WC, visitor); #endif + + visitor.end_quadratic_phase(w != Weight::NOT_VALID()); + + return w; } private: - /************************************************************************ * Main algorithm which construct a minimum patch top-down searching through the space of tr * @@ -864,6 +872,7 @@ Edge_DT e, const Triangulation_DT& tr, const WeightCalculator& WC, + Visitor& visitor, const bool produce_incomplete) const { /********************************************************************** @@ -881,6 +890,8 @@ W.get(v0, v1) != Weight::DEFAULT() ) // the range is previously processed { return; } + visitor.quadratic_step(); + int m_min = -1; Weight w_min = Weight::NOT_VALID(); @@ -897,7 +908,7 @@ Edge_DT e0 = fb.edge_first(); // edge v0-v2 CGAL_assertion(e0.vertex_first() == v0 && e0.vertex_second() == v2); - triangulate_DT(P, Q, W, lambda, e0, tr, WC, produce_incomplete); // region v0-v2 + triangulate_DT(P, Q, W, lambda, e0, tr, WC, visitor, produce_incomplete); // region v0-v2 const Weight& we0 = W.get(v0, v2); if(!produce_incomplete && we0 == Weight::NOT_VALID()) @@ -907,7 +918,7 @@ Edge_DT e1 = fb.edge_second(); // edge v2-v1 CGAL_assertion(e1.vertex_first() == v2 && e1.vertex_second() == v1); - triangulate_DT(P, Q, W, lambda, e1, tr, WC, produce_incomplete); // region v2-v1 + triangulate_DT(P, Q, W, lambda, e1, tr, WC, visitor, produce_incomplete); // region v2-v1 const Weight& we1 = W.get(v2, v1); if(!produce_incomplete && we1 == Weight::NOT_VALID()) @@ -928,7 +939,7 @@ } // returns [h.first-h.second edge, true if all edges inside 3D triangulation, true if tr.dimension() >= 2] - boost::tuple, bool, bool> + std::tuple, bool, bool> construct_3D_triangulation(const Polyline_3& P, std::pair h, Triangulation& tr, @@ -937,11 +948,11 @@ // construct 3D tr with P[h.first], P[h.second] also assign ids from h.first to h.second boost::optional e; int n_border = h.second - h.first + 1; - tr.insert(boost::make_transform_iterator(boost::next(P.begin(), h.first), Auto_count(h.first)), - boost::make_transform_iterator(boost::next(P.begin(), h.second +1), Auto_count(h.first))); + tr.insert(boost::make_transform_iterator(std::next(P.begin(), h.first), Auto_count(h.first)), + boost::make_transform_iterator(std::next(P.begin(), h.second +1), Auto_count(h.first))); tr.infinite_vertex()->info() = -1; - if(tr.dimension() < 2) { return boost::make_tuple(e, false, false); } + if(tr.dimension() < 2) { return std::make_tuple(e, false, false); } // check whether all edges are included in DT, and get v0-vn-1 edge edge_exist.assign(n_border, false); @@ -972,7 +983,7 @@ bool is_3D_T_complete = (nb_exists == n_border); if(edge_exist[n_border-1]) { e = *v_first_v_second_edge; } - return boost::make_tuple(e, is_3D_T_complete, true); + return std::make_tuple(e, is_3D_T_complete, true); } /************************************************************************ @@ -988,11 +999,12 @@ const Polyline_3& P, const Polyline_3& Q, Tracer& tracer, - const WeightCalculator& WC) const + const WeightCalculator& WC, + Visitor& visitor) const { typedef std::pair Range; typedef std::back_insert_iterator > Output_hole_iterator; - typedef Tracer_polyline_incomplete, Emptyset_iterator, Output_hole_iterator> Remaining_holes_tracer; + typedef Tracer_polyline_incomplete, Emptyset_iterator, Output_hole_iterator> Remaining_holes_tracer; std::vector remaining_holes; @@ -1014,8 +1026,8 @@ if(!start_edge) { // switch to brute force - Triangulate_hole_polyline all_space; - all_space.triangulate_all(P, Q, WC, std::make_pair(h.first, h.second), W, lambda); + Triangulate_hole_polyline all_space; + all_space.triangulate_all(P, Q, WC, visitor, std::make_pair(h.first, h.second), W, lambda); if(W.get(h.first, h.second) == Weight::NOT_VALID()) { #ifdef CGAL_HOLE_FILLING_VERBOSE CGAL_warning_msg(false, "Returning no output. Filling hole with incomplete patches is not successful!"); @@ -1037,8 +1049,8 @@ // check whether there is any improvement (at least we should construct one triangle) if(W.get(h.first, h.second) == Weight::NOT_VALID()) { // switch to brute force - Triangulate_hole_polyline all_space; - all_space.triangulate_all(P, Q, WC, std::make_pair(h.first, h.second), W, lambda); + Triangulate_hole_polyline all_space; + all_space.triangulate_all(P, Q, WC, visitor, std::make_pair(h.first, h.second), W, lambda); if(W.get(h.first, h.second) == Weight::NOT_VALID()) { #ifdef CGAL_HOLE_FILLING_VERBOSE CGAL_warning_msg(false, "Returning no output. Filling hole with incomplete patches is not successful!"); @@ -1055,14 +1067,14 @@ // construct tr for next coming hole h = remaining_holes.back(); tr.clear(); - boost::tuple, bool, bool> res = construct_3D_triangulation(P, h, tr, edge_exist); - if(!boost::get<0>(res)) { + std::tuple, bool, bool> res = construct_3D_triangulation(P, h, tr, edge_exist); + if(!std::get<0>(res)) { #ifdef CGAL_HOLE_FILLING_VERBOSE CGAL_warning_msg(false, "Returning no output. Filling hole with incomplete patches is not successful!"); #endif return Weight::NOT_VALID(); } - start_edge = *boost::get<0>(res); + start_edge = *std::get<0>(res); // clear related regions in W, lambda for next coming hole W.set_range_to_default(h.first, h.second); lambda.set_range_to_default(h.first, h.second); @@ -1101,7 +1113,8 @@ const Polyline_3& P, const Polyline_3& Q, Tracer& tracer, - const WeightCalculator& WC) const + const WeightCalculator& WC, + Visitor& visitor) const { int n = static_cast(edge_exist.size()); LookupTable W(n, Weight::DEFAULT()); // do not forget that these default values are not changed for [i, i+1] @@ -1116,7 +1129,8 @@ Edge_graph::Edge_wrapper e_start(std::make_pair(0, n-1)); triangulate_DT - (P, Q, W, lambda, e_start, edge_graph, WC, false); + (P, Q, W, lambda, e_start, edge_graph, WC, visitor, false); + if(W.get(0, n-1) == Weight::NOT_VALID()) { #ifdef CGAL_HOLE_FILLING_VERBOSE @@ -1143,6 +1157,7 @@ class Kernel, class Tracer, class WeightCalculator, + class Visitor, template class LookupTable > class Triangulate_hole_polyline { @@ -1154,7 +1169,8 @@ Weight operator()(const Polyline_3& P, const Polyline_3& Q, Tracer& tracer, - const WeightCalculator& WC) const + const WeightCalculator& WC, + Visitor& visitor) const { CGAL_assertion(P.front() == P.back()); CGAL_assertion(Q.empty() || (Q.front() == Q.back())); @@ -1164,7 +1180,7 @@ LookupTable W(n,Weight::DEFAULT()); // do not forget that these default values are not changed for [i, i+1] LookupTable lambda(n,-1); - triangulate_all(P, Q, WC, std::make_pair(0,n-1), W, lambda); + triangulate_all(P, Q, WC, visitor, std::make_pair(0,n-1), W, lambda); if(W.get(0,n-1) == Weight::NOT_VALID() || n <= 2) { #ifdef CGAL_HOLE_FILLING_VERBOSE @@ -1184,10 +1200,16 @@ void triangulate_all(const Polyline_3& P, const Polyline_3& Q, const WeightCalculator& WC, + Visitor& visitor, std::pair range, LookupTable& W, LookupTable& lambda) const { + int f = range.first, s = range.second; + + const int N = s * ( -3* f * (s - 1) + s * s - 1) /6; + + visitor.start_cubic_phase(N); for(int j = 2; j<= range.second; ++j) { // determines range (2 - 3 - 4 ) for(int i=range.first; i<= range.second-j; ++i) { // iterates over ranges and find min triangulation in those ranges int k = i+j; // like [0-2, 1-3, 2-4, ...], [0-3, 1-4, 2-5, ...] @@ -1196,6 +1218,7 @@ Weight w_min = Weight::NOT_VALID(); // i is the range start (e.g. 1) k is the range end (e.g. 5) -> [1-5]. Now subdivide the region [1-5] with m -> 2,3,4 for(int m = i+1; m bool triangulate_hole_polyline_with_cdt(const PointRange& points, Tracer& tracer, + Visitor& visitor, const Validity_checker& is_valid, const Traits& traits, const typename Traits::FT max_squared_distance) @@ -1315,6 +1341,8 @@ typedef typename Traits::Vector_3 Vector_3; typedef typename Traits::Collinear_3 Collinear_3; + visitor.start_planar_phase(); + // Compute an average normal of the hole. const Collinear_3 collinear_3 = traits.collinear_3_object(); @@ -1357,6 +1385,7 @@ if (num_normals < 1) { // std::cerr << "WARNING: num normals, cdt 2 falls back to the original solution!" << std::endl; + visitor.end_planar_phase(false); return false; } @@ -1368,11 +1397,14 @@ const Vector_3 avg_normal = Vector_3(x, y, z); // std::cout << "avg normal: " << avg_normal << std::endl; - if (avg_normal==NULL_VECTOR) return false; - + if (avg_normal==NULL_VECTOR){ + visitor.end_planar_phase(false); + return false; + } // Checking the hole planarity. if (!is_planar_2(P, avg_normal, max_squared_distance, traits)) { // std::cerr << "WARNING: planarity, cdt 2 falls back to the original solution!" << std::endl; + visitor.end_planar_phase(false); return false; } @@ -1381,6 +1413,7 @@ const P_traits p_traits(avg_normal); if (!is_simple_2(P.begin(), P.end() - 1, p_traits)) { // std::cerr << "WARNING: simplicity, cdt 2 falls back to the original solution!" << std::endl; + visitor.end_planar_phase(false); return false; } @@ -1442,6 +1475,7 @@ if (cdt.dimension() != 2 || cdt.number_of_vertices() != size) { // std::cerr << "WARNING: dim + num vertices, cdt 2 falls back to the original solution!" << std::endl; + visitor.end_planar_phase(false); return false; } @@ -1459,6 +1493,7 @@ lambda.put(is[0], is[2], is[1]); if (!is_valid(P, is[0], is[1], is[2])) { // std::cerr << "WARNING: validity, cdt 2 falls back to the original solution!" << std::endl; + visitor.end_planar_phase(false); return false; } } @@ -1467,6 +1502,7 @@ // Call the tracer. It correctly orients the patch faces. // std::cout << "CDT is being used!" << std::endl; tracer(lambda, 0, static_cast(size) - 1); + visitor.end_planar_phase(true); return true; } @@ -1480,6 +1516,7 @@ typename PointRange2, typename Tracer, typename WeightCalculator, + typename Visitor, typename Kernel > typename WeightCalculator::Weight @@ -1487,19 +1524,23 @@ const PointRange2& third_points, Tracer& tracer, const WeightCalculator& WC, + Visitor& visitor, bool use_delaunay_triangulation, + bool skip_cubic_algorithm, const Kernel&) { CGAL_assertion(!points.empty()); + if (!use_delaunay_triangulation && skip_cubic_algorithm) + return WeightCalculator::Weight::NOT_VALID(); typedef Kernel K; typedef typename K::Point_3 Point_3; - #ifndef CGAL_HOLE_FILLING_DO_NOT_USE_DT3 - typedef CGAL::internal::Triangulate_hole_polyline_DT Fill_DT; - #else +#ifndef CGAL_HOLE_FILLING_DO_NOT_USE_DT3 + typedef CGAL::internal::Triangulate_hole_polyline_DT Fill_DT; +#else CGAL_USE(use_delaunay_triangulation); - #endif - typedef CGAL::internal::Triangulate_hole_polyline Fill; +#endif + typedef CGAL::internal::Triangulate_hole_polyline Fill; std::vector P(boost::begin(points), boost::end(points)); std::vector Q(boost::begin(third_points), boost::end(third_points)); @@ -1512,20 +1553,23 @@ } typename WeightCalculator::Weight w = - #ifndef CGAL_HOLE_FILLING_DO_NOT_USE_DT3 - use_delaunay_triangulation ? Fill_DT().operator()(P,Q,tracer,WC) : - #endif - Fill().operator()(P,Q,tracer,WC); +#ifndef CGAL_HOLE_FILLING_DO_NOT_USE_DT3 + use_delaunay_triangulation ? Fill_DT().operator()(P, Q, tracer, WC, visitor) : +#endif + Fill().operator()(P, Q, tracer, WC, visitor); #ifndef CGAL_HOLE_FILLING_DO_NOT_USE_DT3 - if (use_delaunay_triangulation - && w == WeightCalculator::Weight::NOT_VALID()) - w = Fill().operator()(P, Q, tracer, WC); + if(use_delaunay_triangulation && + w == WeightCalculator::Weight::NOT_VALID() + &&!skip_cubic_algorithm) + { + w = Fill().operator()(P, Q, tracer, WC, visitor); + } #endif - #ifdef CGAL_PMP_HOLE_FILLING_DEBUG +#ifdef CGAL_PMP_HOLE_FILLING_DEBUG std::cerr << w << std::endl; - #endif +#endif return w; } diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/Isotropic_remeshing/AABB_filtered_projection_traits.h cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/Isotropic_remeshing/AABB_filtered_projection_traits.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/Isotropic_remeshing/AABB_filtered_projection_traits.h 2022-06-03 19:05:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/Isotropic_remeshing/AABB_filtered_projection_traits.h 2022-07-13 19:06:08.000000000 +0000 @@ -4,8 +4,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Isotropic_remeshing/AABB_filtered_projection_traits.h $ -// $Id: AABB_filtered_projection_traits.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Isotropic_remeshing/AABB_filtered_projection_traits.h $ +// $Id: AABB_filtered_projection_traits.h 678b9d8 2022-06-24T11:09:06+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -76,7 +76,7 @@ set_of_indices.insert(index); } - bool go_further() const { return true; } + constexpr bool go_further() const { return true; } void intersection(const Point_3& query, const Primitive& primitive) { diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/Isotropic_remeshing/remesh_impl.h cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/Isotropic_remeshing/remesh_impl.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/Isotropic_remeshing/remesh_impl.h 2022-06-03 19:05:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/Isotropic_remeshing/remesh_impl.h 2022-07-13 19:06:08.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Isotropic_remeshing/remesh_impl.h $ -// $Id: remesh_impl.h 8166579 2021-10-11T19:58:07+02:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Isotropic_remeshing/remesh_impl.h $ +// $Id: remesh_impl.h 6869bdd 2022-06-07T16:15:53+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -22,6 +22,7 @@ #include #include #include +#include #include #include @@ -40,11 +41,10 @@ #include #include #include -#include -#include #include #include #include +#include #include #include @@ -52,6 +52,8 @@ #include #include #include +#include +#include #ifdef CGAL_PMP_REMESHING_DEBUG #include @@ -66,13 +68,10 @@ #ifdef CGAL_PMP_REMESHING_VERBOSE_PROGRESS #define CGAL_PMP_REMESHING_VERBOSE +#define CGAL_PMP_TANGENTIAL_RELAXATION_VERBOSE #endif - namespace CGAL { - -namespace PMP = Polygon_mesh_processing; - namespace Polygon_mesh_processing { namespace internal { @@ -114,8 +113,7 @@ , pmesh_ptr_(&pmesh) { std::vector border; - PMP::border_halfedges(faces, *pmesh_ptr_, std::back_inserter(border) - , PMP::parameters::face_index_map(fimap)); + border_halfedges(faces, *pmesh_ptr_, std::back_inserter(border), parameters::face_index_map(fimap)); for(halfedge_descriptor h : border) border_edges_ptr->insert(edge(h, *pmesh_ptr_)); @@ -193,22 +191,19 @@ if ( same_range(face_range, (faces(pmesh))) ) { // applied on the whole mesh - nb_cc - = PMP::connected_components(pmesh, - patch_ids_map, - PMP::parameters::edge_is_constrained_map(ecmap) - .face_index_map(fimap)); + nb_cc = connected_components(pmesh, patch_ids_map, + parameters::edge_is_constrained_map(ecmap) + .face_index_map(fimap)); } else { // applied on a subset of the mesh - nb_cc - = PMP::connected_components(pmesh, - patch_ids_map, - PMP::parameters::edge_is_constrained_map( - make_OR_property_map(ecmap - , internal::Border_constraint_pmap(pmesh, face_range, fimap) ) ) - .face_index_map(fimap)); + nb_cc = connected_components( + pmesh, patch_ids_map, + parameters::edge_is_constrained_map( + make_OR_property_map(ecmap, + internal::Border_constraint_pmap(pmesh, face_range, fimap))) + .face_index_map(fimap)); } } else @@ -812,9 +807,7 @@ #ifdef CGAL_PMP_REMESHING_DEBUG debug_status_map(); debug_self_intersections(); - CGAL_assertion(PMP::remove_degenerate_faces(mesh_, - parameters::vertex_point_map(vpmap_) - .geom_traits(gt_))); + CGAL_assertion(remove_degenerate_faces(mesh_, parameters::vertex_point_map(vpmap_).geom_traits(gt_))); #endif } @@ -850,20 +843,22 @@ if (!is_flip_allowed(e)) continue; //add geometric test to avoid axe cuts - if (!PMP::internal::should_flip(e, mesh_, vpmap_, gt_)) + if (!internal::should_flip(e, mesh_, vpmap_, gt_)) continue; halfedge_descriptor he = halfedge(e, mesh_); - std::array r1 = PMP::internal::is_badly_shaped( + std::array r1 = internal::is_badly_shaped( face(he, mesh_), mesh_, vpmap_, vcmap_, ecmap_, gt_, cap_threshold, // bound on the angle: above 160 deg => cap 4, // bound on shortest/longest edge above 4 => needle - 0);// collapse length threshold : not needed here - std::array r2 = PMP::internal::is_badly_shaped( + 0,// collapse length threshold : not needed here + 0); // flip triangle height threshold + + std::array r2 = internal::is_badly_shaped( face(opposite(he, mesh_), mesh_), - mesh_, vpmap_, vcmap_, ecmap_, gt_, cap_threshold, 4, 0); + mesh_, vpmap_, vcmap_, ecmap_, gt_, cap_threshold, 4, 0, 0); const bool badly_shaped = (r1[0] != boost::graph_traits::null_halfedge()//needle || r1[1] != boost::graph_traits::null_halfedge()//cap @@ -976,9 +971,7 @@ #ifdef CGAL_PMP_REMESHING_DEBUG debug_status_map(); - CGAL_assertion(PMP::remove_degenerate_faces(mesh_, - PMP::parameters::vertex_point_map(vpmap_) - .geom_traits(gt_))); + CGAL_assertion(remove_degenerate_faces(mesh_, parameters::vertex_point_map(vpmap_).geom_traits(gt_))); debug_self_intersections(); #endif @@ -991,109 +984,50 @@ // "applies an iterative smoothing filter to the mesh. // The vertex movement has to be constrained to the vertex tangent plane [...] // smoothing algorithm with uniform Laplacian weights" - void tangential_relaxation(const bool relax_constraints/*1d smoothing*/ - , const unsigned int nb_iterations) + void tangential_relaxation_impl(const bool relax_constraints/*1d smoothing*/ + , const unsigned int nb_iterations) { #ifdef CGAL_PMP_REMESHING_VERBOSE std::cout << "Tangential relaxation (" << nb_iterations << " iter.)..."; std::cout << std::endl; #endif - for (unsigned int nit = 0; nit < nb_iterations; ++nit) - { -#ifdef CGAL_PMP_REMESHING_VERBOSE_PROGRESS - std::cout << "\r\t(iteration " << (nit + 1) << " / "; - std::cout << nb_iterations << ") "; - std::cout.flush(); -#endif - typedef std::tuple VNP; - std::vector< VNP > barycenters; - // at each vertex, compute vertex normal - // at each vertex, compute barycenter of neighbors - for(vertex_descriptor v : vertices(mesh_)) - { - if (is_constrained(v) || is_isolated(v)) - continue; - - else if (is_on_patch(v)) - { - Vector_3 vn = PMP::compute_vertex_normal(v, mesh_, - parameters::vertex_point_map(vpmap_) - .geom_traits(gt_)); - Vector_3 move = CGAL::NULL_VECTOR; - unsigned int star_size = 0; - for(halfedge_descriptor h : halfedges_around_target(v, mesh_)) - { - move = move + Vector_3(get(vpmap_, v), get(vpmap_, source(h, mesh_))); - ++star_size; - } - CGAL_assertion(star_size > 0); //isolated vertices have already been discarded - move = (1. / (double)star_size) * move; - - barycenters.push_back( VNP(v, vn, get(vpmap_, v) + move) ); - } - else if (relax_constraints - && !protect_constraints_ - && is_on_patch_border(v) - && !is_corner(v)) - { - Vector_3 vn(NULL_VECTOR); - - std::vector border_halfedges; - for(halfedge_descriptor h : halfedges_around_target(v, mesh_)) - { - if (is_on_patch_border(h) || is_on_patch_border(opposite(h, mesh_))) - border_halfedges.push_back(h); - } - if (border_halfedges.size() == 2)//others are corner cases - { - vertex_descriptor ph0 = source(border_halfedges[0], mesh_); - vertex_descriptor ph1 = source(border_halfedges[1], mesh_); - double dot = to_double(Vector_3(get(vpmap_, v), get(vpmap_, ph0)) - * Vector_3(get(vpmap_, v), get(vpmap_, ph1))); - //check squared cosine is < 0.25 (~120 degrees) - if (0.25 < dot / (sqlength(border_halfedges[0]) * sqlength(border_halfedges[0]))) - barycenters.push_back( VNP(v, vn, CGAL::midpoint(midpoint(border_halfedges[0]), - midpoint(border_halfedges[1]))) ); - } - } - } - - // compute moves - typedef std::pair VP_pair; - std::vector< std::pair > new_locations; - new_locations.reserve(barycenters.size()); - for(const VNP& vnp : barycenters) - { - vertex_descriptor v = std::get<0>(vnp); - Point pv = get(vpmap_, v); - const Vector_3& nv = std::get<1>(vnp); - const Point& qv = std::get<2>(vnp); //barycenter at v - - new_locations.push_back( std::make_pair(v, qv + (nv * Vector_3(qv, pv)) * nv) ); - } - - // perform moves - for(const VP_pair& vp : new_locations) - { - const Point initial_pos = get(vpmap_, vp.first); - const Vector_3 move(initial_pos, vp.second); - put(vpmap_, vp.first, vp.second); - - //check that no inversion happened - double frac = 1.; - while (frac > 0.03 //5 attempts maximum - && !check_normals(vp.first)) //if a face has been inverted - { - frac = 0.5 * frac; - put(vpmap_, vp.first, initial_pos + frac * move);//shorten the move by 2 - } - if (frac <= 0.02) - put(vpmap_, vp.first, initial_pos);//cancel move + // property map of constrained edges for relaxation + auto edge_constraint = [&](const edge_descriptor e) + { + return this->is_constrained(e); + }; + auto constrained_edges_pmap + = boost::make_function_property_map(edge_constraint); + + // property map of constrained vertices for relaxation + auto vertex_constraint = [&](const vertex_descriptor v) + { + for (halfedge_descriptor h : halfedges_around_target(v, mesh_)) + { + Halfedge_status s = status(h); + if ( s == PATCH + || s == PATCH_BORDER + || status(opposite(h, mesh_)) == PATCH_BORDER) + return false; } + return true; + }; + auto constrained_vertices_pmap + = boost::make_function_property_map(vertex_constraint); + + tangential_relaxation( + vertices(mesh_), + mesh_, + CGAL::parameters::number_of_iterations(nb_iterations) + .vertex_point_map(vpmap_) + .geom_traits(gt_) + .edge_is_constrained_map(constrained_edges_pmap) + .vertex_is_constrained_map(constrained_vertices_pmap) + .relax_constraints(relax_constraints) + ); - CGAL_assertion(!input_mesh_is_valid_ || is_valid_polygon_mesh(mesh_)); - }//end for loop (nit == nb_iterations) + CGAL_assertion(!input_mesh_is_valid_ || is_valid_polygon_mesh(mesh_)); #ifdef CGAL_PMP_REMESHING_DEBUG debug_self_intersections(); @@ -1547,8 +1481,7 @@ if (f == boost::graph_traits::null_face()) return CGAL::NULL_VECTOR; - return PMP::compute_face_normal(f, mesh_, parameters::vertex_point_map(vpmap_) - .geom_traits(gt_)); + return compute_face_normal(f, mesh_, parameters::vertex_point_map(vpmap_).geom_traits(gt_)); } template @@ -1698,7 +1631,7 @@ { CGAL_assertion_code(std::size_t nb_done = 0); - boost::unordered_set degenerate_faces; + std::unordered_set degenerate_faces; for(halfedge_descriptor h : halfedges_around_target(halfedge(v, mesh_), mesh_)) { @@ -1959,10 +1892,8 @@ { std::cout << "Test self intersections..."; std::vector > facets; - PMP::self_intersections(mesh_, - std::back_inserter(facets), - PMP::parameters::vertex_point_map(vpmap_) - .geom_traits(gt_)); + self_intersections(mesh_, std::back_inserter(facets), + parameters::vertex_point_map(vpmap_).geom_traits(gt_)); //CGAL_assertion(facets.empty()); std::cout << "done ("<< facets.size() <<" facets)." << std::endl; } @@ -1971,11 +1902,8 @@ { std::cout << "Test self intersections..."; std::vector > facets; - PMP::self_intersections(faces_around_target(halfedge(v, mesh_), mesh_), - mesh_, - std::back_inserter(facets), - PMP::parameters::vertex_point_map(vpmap_) - .geom_traits(gt_)); + self_intersections(faces_around_target(halfedge(v, mesh_), mesh_), mesh_, std::back_inserter(facets), + parameters::vertex_point_map(vpmap_).geom_traits(gt_)); //CGAL_assertion(facets.empty()); std::cout << "done ("<< facets.size() <<" facets)." << std::endl; } diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/mesh_to_point_set_hausdorff_distance.h cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/mesh_to_point_set_hausdorff_distance.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/mesh_to_point_set_hausdorff_distance.h 2022-06-03 19:05:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/mesh_to_point_set_hausdorff_distance.h 2022-07-13 19:06:08.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/mesh_to_point_set_hausdorff_distance.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/mesh_to_point_set_hausdorff_distance.h $ // $Id: mesh_to_point_set_hausdorff_distance.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/named_function_params.h cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/named_function_params.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/named_function_params.h 2022-06-03 19:05:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/named_function_params.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,26 +0,0 @@ -// Copyright (c) 2015 GeometryFactory (France). -// All rights reserved. -// -// This file is part of CGAL (www.cgal.org). -// -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/named_function_params.h $ -// $Id: named_function_params.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot -// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial -// -// -// Author(s) : Jane Tournois - -#ifndef CGAL_PMP_BGL_NAMED_FUNCTION_PARAMS_H -#define CGAL_PMP_BGL_NAMED_FUNCTION_PARAMS_H - -#include - - -#include - -#define CGAL_PMP_NP_TEMPLATE_PARAMETERS CGAL_BGL_NP_TEMPLATE_PARAMETERS -#define CGAL_PMP_NP_CLASS CGAL_BGL_NP_CLASS - -namespace CGAL { namespace Polygon_mesh_processing { namespace parameters = CGAL::parameters; } } - -#endif //CGAL_PMP_BGL_NAMED_FUNCTION_PARAMS_H diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/named_params_helper.h cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/named_params_helper.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/named_params_helper.h 2022-06-03 19:05:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/named_params_helper.h 2022-07-13 19:06:08.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/named_params_helper.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/named_params_helper.h $ // $Id: named_params_helper.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/Polygon_mesh_slicer/Axis_parallel_plane_traits.h cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/Polygon_mesh_slicer/Axis_parallel_plane_traits.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/Polygon_mesh_slicer/Axis_parallel_plane_traits.h 2022-06-03 19:05:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/Polygon_mesh_slicer/Axis_parallel_plane_traits.h 2022-07-13 19:06:08.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Polygon_mesh_slicer/Axis_parallel_plane_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Polygon_mesh_slicer/Axis_parallel_plane_traits.h $ // $Id: Axis_parallel_plane_traits.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/Polygon_mesh_slicer/Traversal_traits.h cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/Polygon_mesh_slicer/Traversal_traits.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/Polygon_mesh_slicer/Traversal_traits.h 2022-06-03 19:05:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/Polygon_mesh_slicer/Traversal_traits.h 2022-07-13 19:06:08.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Polygon_mesh_slicer/Traversal_traits.h $ -// $Id: Traversal_traits.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Polygon_mesh_slicer/Traversal_traits.h $ +// $Id: Traversal_traits.h 678b9d8 2022-06-24T11:09:06+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -73,7 +73,7 @@ , do_intersect_3( m_traits.do_intersect_3_object() ) {} - bool go_further() const { return true; } + constexpr bool go_further() const { return true; } void intersection(const typename Traits::Plane_3& plane, const typename AABBTraits::Primitive& primitive) { diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/refine_impl.h cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/refine_impl.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/refine_impl.h 2022-06-03 19:05:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/refine_impl.h 2022-07-13 19:06:08.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/refine_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/refine_impl.h $ // $Id: refine_impl.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/repair_extra.h cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/repair_extra.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/repair_extra.h 2022-06-03 19:05:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/repair_extra.h 2022-07-13 19:06:08.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/repair_extra.h $ -// $Id: repair_extra.h 41bb11c 2019-11-19T17:08:25+01:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/repair_extra.h $ +// $Id: repair_extra.h 258d704 2022-02-24T19:57:17+01:00 Laurent Rineau // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -16,11 +16,17 @@ #include -#include +#include #include +#include +#include #include -#include +#include + +#include +#include +#include #ifndef DOXYGEN_RUNNING @@ -32,11 +38,14 @@ template -struct Edges_proximity_report{ +struct Edges_proximity_report +{ typedef typename boost::graph_traits::halfedge_descriptor halfedge_descriptor; typedef std::vector< std::pair > Halfedge_pairs; - double m_epsilon; + typedef typename GetGeomTraits::type::FT FT; + + FT m_sq_epsilon; Vpm m_vpm; PM& m_pm; Halfedge_multiplicity& m_multiplicity; @@ -46,7 +55,7 @@ Edges_proximity_report(double epsilon, Vpm vpm, PM& pm, Halfedge_multiplicity& multiplicity, Halfedge_pairs& matching_hedges) - : m_epsilon( epsilon ) + : m_sq_epsilon(square(epsilon)) , m_vpm(vpm) , m_pm(pm) , m_multiplicity(multiplicity) @@ -72,12 +81,12 @@ Point_ref src2 = get(m_vpm, source(h2, m_pm)); Point_ref tgt2 = get(m_vpm, target(h2, m_pm)); - if ( squared_distance(src1,tgt2) < m_epsilon * m_epsilon && - squared_distance(tgt1,src2) < m_epsilon * m_epsilon && + if ( compare_squared_distance(src1, tgt2, m_sq_epsilon) == SMALLER && + compare_squared_distance(tgt1, src2, m_sq_epsilon) == SMALLER && angle(src1, tgt1, tgt2, src2) == ACUTE ) { // candidate for stitching - m_matching_hedges.push_back( std::make_pair(h1,h2) ); + m_matching_hedges.emplace_back(h1,h2); ++(m_multiplicity.insert(std::make_pair(h1,0)).first->second); ++(m_multiplicity.insert(std::make_pair(h2,0)).first->second); } @@ -107,7 +116,7 @@ typedef typename boost::graph_traits::edge_descriptor edge_descriptor; typedef typename boost::graph_traits::vertex_descriptor vertex_descriptor; - typedef boost::unordered_map Halfedge_multiplicity; + typedef std::unordered_map Halfedge_multiplicity; typedef std::vector > Halfedge_pairs; typedef CGAL::Box_intersection_d::ID_FROM_BOX_ADDRESS Box_policy; @@ -118,6 +127,8 @@ typedef typename boost::property_traits::reference Point_ref; + const double half_eps = 0.5 * epsilon; + std::vector boxes; for(edge_descriptor ed : edges(pm)) { @@ -126,14 +137,18 @@ Point_ref src = get(vpm, source(ed, pm)); Point_ref tgt = get(vpm, target(ed, pm)); - boxes.push_back( Box( - Bbox_3( src.x()-epsilon/2, src.y()-epsilon/2, src.z()-epsilon/2, - src.x()+epsilon/2, src.y()+epsilon/2, src.z()+epsilon/2 ) - + - Bbox_3( tgt.x()-epsilon/2, tgt.y()-epsilon/2, tgt.z()-epsilon/2, - tgt.x()+epsilon/2, tgt.y()+epsilon/2, tgt.z()+epsilon/2 ), - ed ) - ); + const double sx = to_double(src.x()); + const double sy = to_double(src.y()); + const double sz = to_double(src.z()); + const double tx = to_double(tgt.x()); + const double ty = to_double(tgt.y()); + const double tz = to_double(tgt.z()); + + boxes.emplace_back(Bbox_3(sx - half_eps, sy - half_eps, sz - half_eps, + sx + half_eps, sy + half_eps, sz + half_eps) + + Bbox_3(tx - half_eps, ty - half_eps, tz - half_eps, + tx + half_eps, ty + half_eps, tz + half_eps), + ed); } } diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/Side_of_triangle_mesh/Point_inside_vertical_ray_cast.h cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/Side_of_triangle_mesh/Point_inside_vertical_ray_cast.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/Side_of_triangle_mesh/Point_inside_vertical_ray_cast.h 2022-06-03 19:05:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/Side_of_triangle_mesh/Point_inside_vertical_ray_cast.h 2022-07-13 19:06:08.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Side_of_triangle_mesh/Point_inside_vertical_ray_cast.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Side_of_triangle_mesh/Point_inside_vertical_ray_cast.h $ // $Id: Point_inside_vertical_ray_cast.h 3b2da64 2020-07-01T21:03:31+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/Side_of_triangle_mesh/Ray_3_Triangle_3_traversal_traits.h cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/Side_of_triangle_mesh/Ray_3_Triangle_3_traversal_traits.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/Side_of_triangle_mesh/Ray_3_Triangle_3_traversal_traits.h 2022-06-03 19:05:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/Side_of_triangle_mesh/Ray_3_Triangle_3_traversal_traits.h 2022-07-13 19:06:08.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Side_of_triangle_mesh/Ray_3_Triangle_3_traversal_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Side_of_triangle_mesh/Ray_3_Triangle_3_traversal_traits.h $ // $Id: Ray_3_Triangle_3_traversal_traits.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/simplify_polyline.h cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/simplify_polyline.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/simplify_polyline.h 2022-06-03 19:05:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/simplify_polyline.h 2022-07-13 19:06:08.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/simplify_polyline.h $ -// $Id: simplify_polyline.h 5ab80cd 2020-11-03T14:58:56+01:00 Maxime Gimeno +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/simplify_polyline.h $ +// $Id: simplify_polyline.h 75b03e6 2022-01-10T15:33:04+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -15,7 +15,7 @@ #include -#include +#include #include #include @@ -28,12 +28,13 @@ enum Polyline_simplification_algorithms { DOUGLAS_PEUCKER, ITERATIVE }; template + typename NamedParametersIn = parameters::Default_named_parameters, + typename NamedParametersOut = parameters::Default_named_parameters> void simplify_polyline(const PointRangeIn& input, PointRangeOut& output, const double max_squared_frechet_distance, - const NamedParametersIn& np_in, - const NamedParametersOut& np_out) + const NamedParametersIn& np_in = parameters::default_values(), + const NamedParametersOut& np_out = parameters::default_values()) { using parameters::choose_parameter; using parameters::get_parameter; @@ -44,7 +45,7 @@ typedef typename GetPointMap::type Point_map_in; typedef typename GetPointMap::type Point_map_out; - typedef typename Point_set_processing_3::GetK::Kernel Kernel; + typedef typename Point_set_processing_3_np_helper::Geom_traits Kernel; Point_map_in in_pm = choose_parameter(get_parameter(np_in, internal_np::point_map)); Point_map_out out_pm = choose_parameter(get_parameter(np_out, internal_np::point_map)); @@ -182,25 +183,6 @@ } } - -template -void simplify_polyline(const PointRangeIn& input, - PointRangeOut& output, - const double max_squared_frechet_distance) -{ - simplify_polyline(input, output, max_squared_frechet_distance, - parameters::all_default(), parameters::all_default()); -} - -template -void simplify_polyline(const PointRangeIn& input, - PointRangeOut& output, - const double max_squared_frechet_distance, - const NamedParametersIn& np_in) -{ - simplify_polyline(input, output, max_squared_frechet_distance, np_in, parameters::all_default()); -} - } } } // end of CGAL::Polygon_mesh_processing::experimental namespace diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/Smoothing/ceres_support.h cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/Smoothing/ceres_support.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/Smoothing/ceres_support.h 2022-06-03 19:05:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/Smoothing/ceres_support.h 2022-07-13 19:06:08.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Smoothing/ceres_support.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Smoothing/ceres_support.h $ // $Id: ceres_support.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/Smoothing/curvature_flow_impl.h cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/Smoothing/curvature_flow_impl.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/Smoothing/curvature_flow_impl.h 2022-06-03 19:05:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/Smoothing/curvature_flow_impl.h 2022-07-13 19:06:08.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Smoothing/curvature_flow_impl.h $ -// $Id: curvature_flow_impl.h aac86cb 2021-06-09T12:23:14+02:00 Dmitry Anisimov +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Smoothing/curvature_flow_impl.h $ +// $Id: curvature_flow_impl.h 6d3176e 2022-01-07T14:42:25+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -17,7 +17,7 @@ #include #include -#include +#include #include #include #include diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/Smoothing/mesh_smoothing_impl.h cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/Smoothing/mesh_smoothing_impl.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/Smoothing/mesh_smoothing_impl.h 2022-06-03 19:05:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/Smoothing/mesh_smoothing_impl.h 2022-07-13 19:06:08.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Smoothing/mesh_smoothing_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Smoothing/mesh_smoothing_impl.h $ // $Id: mesh_smoothing_impl.h 29ddd67 2020-02-06T17:14:16+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/Smoothing/smoothing_evaluation.h cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/Smoothing/smoothing_evaluation.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/Smoothing/smoothing_evaluation.h 2022-06-03 19:05:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/Smoothing/smoothing_evaluation.h 2022-07-13 19:06:08.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Smoothing/smoothing_evaluation.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Smoothing/smoothing_evaluation.h $ // $Id: smoothing_evaluation.h f33618e 2020-02-06T09:54:35+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/Snapping/helper.h cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/Snapping/helper.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/Snapping/helper.h 2022-06-03 19:05:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/Snapping/helper.h 2022-07-13 19:06:08.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Snapping/helper.h $ -// $Id: helper.h 60567ec 2021-09-28T16:25:43+02:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Snapping/helper.h $ +// $Id: helper.h c169c41 2022-01-12T13:33:49+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -17,7 +17,7 @@ #include #include -#include +#include #include namespace CGAL { @@ -42,12 +42,12 @@ template + typename NamedParameters = parameters::Default_named_parameters> void assign_tolerance_with_local_edge_length_bound(const HalfedgeRange& halfedge_range, ToleranceMap& tolerance_map, const typename GetGeomTraits::type::FT tolerance, PolygonMesh& mesh, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { typedef typename boost::graph_traits::vertex_descriptor vertex_descriptor; typedef typename boost::graph_traits::halfedge_descriptor halfedge_descriptor; @@ -92,17 +92,6 @@ } } -template -void assign_tolerance_with_local_edge_length_bound(const HalfedgeRange& halfedge_range, - ToleranceMap& tolerance_map, - const typename GetGeomTraits::type::FT tolerance, - PolygonMesh& mesh) -{ - return assign_tolerance_with_local_edge_length_bound(halfedge_range, tolerance_map, tolerance, mesh, CGAL::parameters::all_default()); -} - template bool is_collinear_with_tolerance(const typename GeomTraits::Point_3& p, // va == vb const typename GeomTraits::Point_3& pa, @@ -233,6 +222,10 @@ template void after_vertex_edge_snap(const Vertex /*new_vertex*/, const Mesh&) { } + // Called after CGAL::Euler::split_face(h1, h2, tm) + template + void after_split_face(const Halfedge_descriptor /*h1*/, const Halfedge_descriptor /*h2*/, const Mesh& /*tm*/) { } + // ------------------------------- Two passes (segmentation or not) ------------------------------ // Called at the start of the snapping pass that is restricted to compatible patch (first pass). diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/Snapping/snap.h cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/Snapping/snap.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/Snapping/snap.h 2022-06-03 19:05:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/Snapping/snap.h 2022-07-13 19:06:08.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Snapping/snap.h $ -// $Id: snap.h b92c22d 2021-09-28T16:49:19+02:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Snapping/snap.h $ +// $Id: snap.h ca23626 2022-03-11T14:28:18+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -25,7 +25,7 @@ #include #include -#include +#include #include #include #include @@ -151,13 +151,19 @@ new_tolerance += CGAL::approximate_sqrt(CGAL::squared_distance(new_p, pt)); } + if (!CGAL::Euler::does_satisfy_link_condition(edge(h, tm), tm)) + continue; + const halfedge_descriptor opoh = opposite(prev(opposite(h, tm), tm), tm); + if (is_border(opoh, tm)) + edges_to_test.erase( opoh ); vertex_descriptor v = Euler::collapse_edge(edge(h, tm), tm); + put(vpm, v, new_p); put(tolerance_map, v, new_tolerance); if(get(range_halfedges, prev_h)) edges_to_test.insert(prev_h); - if(get(range_halfedges, next_h)) + if(next_h!=opoh && get(range_halfedges, next_h)) edges_to_test.insert(next_h); ++collapsed_n; @@ -178,7 +184,7 @@ halfedge_range = HalfedgeRange(new_range.begin(), new_range.end()); - CGAL_postcondition(halfedge_range.size() == initial_n - collapsed_n); + CGAL_postcondition(halfedge_range.size() <= initial_n - collapsed_n); } // Adapted from @@ -764,15 +770,19 @@ if(is_visible) { + halfedge_descriptor h2 = prev(prev(h_to_split_opp, tm_T), tm_T); halfedge_descriptor new_hd = CGAL::Euler::split_face(h_to_split_opp, - prev(prev(h_to_split_opp, tm_T), tm_T), tm_T); + h2, tm_T); h_to_split = opposite(prev(new_hd, tm_T), tm_T); + visitor.after_split_face(h_to_split_opp, h2, tm_T); } else { + halfedge_descriptor h2 = prev(h_to_split_opp, tm_T); halfedge_descriptor new_hd = CGAL::Euler::split_face(opposite(res, tm_T), - prev(h_to_split_opp, tm_T), tm_T); + h2, tm_T); h_to_split = opposite(next(new_hd, tm_T), tm_T); + visitor.after_split_face(opposite(res, tm_T), h2, tm_T); } } } @@ -1094,7 +1104,6 @@ >::reference Visitor; using CGAL::parameters::choose_parameter; - using CGAL::parameters::is_default_parameter; using CGAL::parameters::get_parameter; using CGAL::parameters::get_parameter_reference; @@ -1104,7 +1113,7 @@ const bool is_second_mesh_fixed = choose_parameter(get_parameter(np_B, internal_np::do_lock_mesh), false); internal::Snapping_default_visitor default_visitor; - Visitor& visitor = choose_parameter(get_parameter_reference(np_A, internal_np::visitor), default_visitor); + Visitor visitor = choose_parameter(get_parameter_reference(np_A, internal_np::visitor), default_visitor); if(visitor.stop()) return 0; @@ -1291,13 +1300,16 @@ template + typename NamedParameters_A = parameters::Default_named_parameters, + typename NamedParameters_B = parameters::Default_named_parameters> std::size_t snap_borders(TriangleMesh& tm_A, ToleranceMap_A tolerance_map_A, TriangleMesh& tm_B, ToleranceMap_B tolerance_map_B, - const NamedParameters_A& np_A, - const NamedParameters_B& np_B) + const NamedParameters_A& np_A = parameters::default_values(), + const NamedParameters_B& np_B = parameters::default_values(), + const typename std::enable_if_t::value>* = 0 // Added to please MSVC 2015 + ) { typedef typename boost::graph_traits::halfedge_descriptor halfedge_descriptor; @@ -1313,11 +1325,12 @@ template + typename NamedParameters_A = parameters::Default_named_parameters, + typename NamedParameters_B = parameters::Default_named_parameters> std::size_t snap_borders(TriangleMesh& tm_A, TriangleMesh& tm_B, - const NamedParameters_A& np_A, - const NamedParameters_B& np_B) + const NamedParameters_A& np_A = parameters::default_values(), + const NamedParameters_B& np_B = parameters::default_values()) { typedef typename boost::graph_traits::halfedge_descriptor halfedge_descriptor; @@ -1342,27 +1355,6 @@ border_vertices_B, tm_B, tolerance_map_B, false /*no self snapping*/, np_A, np_B); } - -template -std::size_t snap_borders(TriangleMesh& tm_A, - ToleranceMap_A tolerance_map_A, - TriangleMesh& tm_B, - ToleranceMap_B tolerance_map_B) -{ - return snap_borders(tm_A, tolerance_map_A, tm_B, tolerance_map_B, - CGAL::parameters::all_default(), CGAL::parameters::all_default()); -} - -template -std::size_t snap_borders(TriangleMesh& tm_A, - TriangleMesh& tm_B) -{ - return snap_borders(tm_A, tm_B, CGAL::parameters::all_default(), CGAL::parameters::all_default()); -} - //////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////// @@ -1371,10 +1363,12 @@ template + typename CGAL_NP_TEMPLATE_PARAMETERS> std::size_t snap_borders(TriangleMesh& tm, ToleranceMap tolerance_map, - const CGAL_PMP_NP_CLASS& np) + const CGAL_NP_CLASS& np = parameters::default_values(), + const typename std::enable_if_t::value>* = 0 // Added to please MSVC 2015 +) { typedef typename boost::graph_traits::halfedge_descriptor halfedge_descriptor; @@ -1388,18 +1382,9 @@ template + typename CGAL_NP_TEMPLATE_PARAMETERS> std::size_t snap_borders(TriangleMesh& tm, - ToleranceMap tolerance_map) -{ - return snap_borders(tm, tolerance_map, CGAL::parameters::all_default()); -} - -template -std::size_t snap_borders(TriangleMesh& tm, - const CGAL_PMP_NP_CLASS& np) + const CGAL_NP_CLASS& np = parameters::default_values()) { typedef typename boost::graph_traits::halfedge_descriptor halfedge_descriptor; @@ -1421,13 +1406,6 @@ true /*self snapping*/, np, np); } -template -std::size_t snap_borders(TriangleMesh& tm) -{ - return snap_borders(tm, CGAL::parameters::all_default()); -} - } // end namespace experimental } // end namespace Polygon_mesh_processing } // end namespace CGAL diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/Snapping/snap_vertices.h cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/Snapping/snap_vertices.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/internal/Snapping/snap_vertices.h 2022-06-03 19:05:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/internal/Snapping/snap_vertices.h 2022-07-13 19:06:08.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Snapping/snap_vertices.h $ -// $Id: snap_vertices.h bb58df3 2021-09-29T16:59:26+02:00 Laurent Rineau +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Snapping/snap_vertices.h $ +// $Id: snap_vertices.h 7b12171 2022-04-29T17:15:52+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -22,7 +22,7 @@ #endif #include -#include +#include #include #include @@ -738,7 +738,7 @@ get_property_map(vertex_point, tm_B)); internal::Snapping_default_visitor default_visitor; - Visitor& visitor = choose_parameter(get_parameter_reference(np_A, internal_np::visitor), default_visitor); + Visitor visitor = choose_parameter(get_parameter_reference(np_A, internal_np::visitor), default_visitor); visitor.start_vertex_vertex_phase(); if(visitor.stop()) @@ -1196,15 +1196,16 @@ template + typename NamedParameters_A = parameters::Default_named_parameters, + typename NamedParameters_B = parameters::Default_named_parameters> std::size_t snap_vertices(const HalfedgeRange_A& halfedge_range_A, PolygonMesh& tm_A, ToleranceMap_A tolerance_map_A, const HalfedgeRange_B& halfedge_range_B, PolygonMesh& tm_B, ToleranceMap_B tolerance_map_B, - const NamedParameters_A& np_A, - const NamedParameters_B& np_B) + const NamedParameters_A& np_A = parameters::default_values(), + const NamedParameters_B& np_B = parameters::default_values()) { CGAL::Emptyset_iterator unused_output_iterator; @@ -1214,34 +1215,19 @@ unused_output_iterator, np_A, np_B); } -template -std::size_t snap_vertices(const HalfedgeRange_A& halfedge_range_A, - PolygonMesh& tm_A, - ToleranceMap_A tolerance_map_A, - const HalfedgeRange_B& halfedge_range_B, - PolygonMesh& tm_B, - ToleranceMap_B tolerance_map_B) -{ - return snap_vertices(halfedge_range_A, tm_A, tolerance_map_A, - halfedge_range_B, tm_B, tolerance_map_B, - CGAL::parameters::all_default(), CGAL::parameters::all_default()); -} template + typename CGAL_NP_TEMPLATE_PARAMETERS_1, + typename CGAL_NP_TEMPLATE_PARAMETERS_2> std::size_t snap_vertices(const HalfedgeRange_A& halfedge_range_A, PolygonMesh& tm_A, const HalfedgeRange_B& halfedge_range_B, PolygonMesh& tm_B, - const CGAL::Named_function_parameters& np_A, - const CGAL::Named_function_parameters& np_B) + const CGAL_NP_CLASS_1& np_A=parameters::default_values(), + const CGAL_NP_CLASS_2& np_B=parameters::default_values()) { - typedef CGAL::Named_function_parameters NamedParameters_A; - typedef typename GetGeomTraits::type GT; + typedef typename GetGeomTraits::type GT; typedef typename GT::FT FT; typedef CGAL::dynamic_vertex_property_t Vertex_property_tag; typedef typename boost::property_map::type Tolerance_map; @@ -1256,17 +1242,6 @@ return snap_vertices(halfedge_range_A, tm_A, tolerance_map_A, halfedge_range_B, tm_B, tolerance_map_B, np_A, np_B); } -template -std::size_t snap_vertices(const HalfedgeRange_A& halfedge_range_A, - PolygonMesh& tm_A, - const HalfedgeRange_B& halfedge_range_B, - PolygonMesh& tm_B) -{ - return snap_vertices(halfedge_range_A, tm_A, halfedge_range_B, tm_B, - parameters::all_default(), parameters::all_default()); -} - /////////////////////////////////////////////////////////////////////////////////////////////////// /// Border convenience overloads /////////////////////////////////////////////////////////////////////////////////////////////////// diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/intersection.h cgal-5.5/include/CGAL/Polygon_mesh_processing/intersection.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/intersection.h 2022-06-03 19:05:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/intersection.h 2022-07-13 19:06:08.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/intersection.h $ -// $Id: intersection.h 71ae816 2021-01-27T13:46:09+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/intersection.h $ +// $Id: intersection.h bb0b9a8 2022-03-07T15:32:37+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -333,7 +333,8 @@ }; // Note this is not officially documented -/* +/* \ingroup PMP_intersection_grp + * * reports all the pairs of faces intersecting between two triangulated surface meshes. * This function depends on the package \ref PkgBoxIntersectionD. * @@ -466,13 +467,15 @@ } // Note this is not officially documented -/* +/* \ingroup PMP_intersection_grp + * * reports all the pairs of segments and faces intersecting between * a triangulated surface mesh and a polyline. - * \attention If a polyline vertex intersects a face, the intersection will - * be reported twice (even more if it is on a vertex, edge, or point). * This function depends on the package \ref PkgBoxIntersectionD. * + * \attention If a polyline vertex intersects a face, the intersection will + * be reported twice (or more if it is on a vertex, edge, or point). + * * \pre `CGAL::is_triangle_mesh(tm)` * * \tparam TriangleMesh a model of `FaceListGraph` @@ -518,11 +521,11 @@ class OutputIterator, class NamedParameters> OutputIterator -compute_face_polyline_intersection( const FaceRange& face_range, - const Polyline& polyline, - const TriangleMesh& tm, - OutputIterator out, - const NamedParameters& np) +compute_face_polyline_intersection(const FaceRange& face_range, + const Polyline& polyline, + const TriangleMesh& tm, + OutputIterator out, + const NamedParameters& np) { using parameters::choose_parameter; using parameters::get_parameter; @@ -596,12 +599,14 @@ } // Note this is not officially documented -/* +/* \ingroup PMP_intersection_grp + * * reports all the pairs of segments and faces intersecting between * a triangulated surface mesh and a range of polylines. + * This function depends on the package \ref PkgBoxIntersectionD. + * * \attention If a polyline vertex intersects a face, the intersection will * be reported twice (even more if it is on a vertex, edge, or point). - * This function depends on the package \ref PkgBoxIntersectionD. * * \pre `CGAL::is_triangle_mesh(tm)` * @@ -743,11 +748,14 @@ } // Note this is not officially documented -/* +/* \ingroup PMP_intersection_grp + * * detects and records intersections between two polylines. * This function depends on the package \ref PkgBoxIntersectionD. + * * \attention If a polyline vertex intersects another polyline, the intersection will * be reported twice (even more if it is on a vertex). + * * \tparam Polyline a `RandomAccessRange` of points. * \tparam OutputIterator a model of `OutputIterator` holding objects of type * `std::pair`. This OutputIterator will hold the position of the @@ -818,12 +826,14 @@ } // Note this is not officially documented -/* +/* \ingroup PMP_intersection_grp + * * detects and records intersections between two ranges of polylines. - * \attention If a polyline vertex intersects another polyline, the intersection will - * be reported twice (even more if it is on a vertex). * This function depends on the package \ref PkgBoxIntersectionD. * + * \attention If a polyline vertex intersects another polyline, the intersection will + * be reported twice (even more if it is on a vertex). + * * \tparam PolylineRange a `RandomAccessRange` of `RandomAccessRange` of points. * \tparam OutputIterator a model of `OutputIterator` holding objects of type * `std::pair, std::pair >`. @@ -925,7 +935,8 @@ } // Note this is not officially documented -/* +/* \ingroup PMP_intersection_grp + * * reports all the pairs of faces intersecting between two triangulated surface meshes. * This function depends on the package \ref PkgBoxIntersectionD. * @@ -980,13 +991,14 @@ } // Note this is not officially documented -/* - * detects and records intersections between a triangulated surface mesh - * and a polyline. - * \attention If a polyline vertex intersects a face or another polyline, the intersection will - * be reported twice (even more if it is on a vertex, edge, or point). +/* \ingroup PMP_intersection_grp + * + * detects and records intersections between a triangulated surface mesh and a polyline. * This function depends on the package \ref PkgBoxIntersectionD. * + * \attention If a polyline vertex intersects a face or another polyline, the intersection will + * be reported twice (even more if it is on a vertex, edge, or point). + * * \pre `CGAL::is_triangle_mesh(tm)` * * \tparam TriangleMesh a model of `FaceListGraph` @@ -995,7 +1007,7 @@ * \cgalDescribePolylineType * \tparam OutputIterator a model of `OutputIterator` holding objects of type * `std::pair`. This OutputIterator will hold the position of the - * elements in their respective range. In the case of the polyline, this position is the index + * elements in their respective range. In the case of the polyline, this position is the index * of the segment that holds the intersection, so it is the index of the first point of the * segment following the range order. * \tparam NamedParameters a sequence of \ref bgl_namedparameters "Named Parameters" @@ -1030,14 +1042,13 @@ class NamedParameters> OutputIterator compute_face_polyline_intersection(const TriangleMesh& tm, - const Polyline& polyline, - OutputIterator out, - const NamedParameters& np) + const Polyline& polyline, + OutputIterator out, + const NamedParameters& np) { return compute_face_polyline_intersection(faces(tm), polyline, tm, out, np); } - // functions to check for overlap of meshes template void get_one_point_per_cc(TriangleMesh& tm, @@ -1045,19 +1056,19 @@ std::vector& points_of_interest) { typedef typename boost::graph_traits::face_descriptor face_descriptor; - boost::unordered_map fid_map; + std::unordered_map fid_map; int id = 0; for(face_descriptor fd : faces(tm)) { fid_map.insert(std::make_pair(fd,id++)); } - boost::associative_property_map< boost::unordered_map > + boost::associative_property_map< std::unordered_map > fid_pmap(fid_map); - boost::unordered_map fcc_map; + std::unordered_map fcc_map; int nb_cc = Polygon_mesh_processing::connected_components(tm, boost::make_assoc_property_map(fcc_map), - Polygon_mesh_processing::parameters::face_index_map(fid_pmap)); + parameters::face_index_map(fid_pmap)); std::vector is_cc_treated(nb_cc, false); points_of_interest.resize(nb_cc); int cc_treated = 0; @@ -1114,7 +1125,8 @@ }// namespace internal /** - * \ingroup PMP_predicates_grp + * \ingroup PMP_intersection_grp + * * returns `true` if there exists a segment of a polyline of `polylines1` * and a segment of a polyline of `polylines2` which intersect, and `false` otherwise. * This function depends on the package \ref PkgBoxIntersectionD. @@ -1157,7 +1169,8 @@ } /** - * \ingroup PMP_predicates_grp + * \ingroup PMP_intersection_grp + * * returns `true` if there exists a segment of `polyline1` and a segment of `polyline2` which intersect, * and `false` otherwise. * This function depends on the package \ref PkgBoxIntersectionD. @@ -1203,9 +1216,12 @@ } /** - * \ingroup PMP_predicates_grp - * returns `true` if there exists a face of `tm1` and a face of `tm2` which intersect, and `false` otherwise. - * If `do_overlap_test_of_bounded_sides` is set to `true`, the overlap of bounded sides are tested as well. In that case, the meshes must be closed. + * \ingroup PMP_intersection_grp + * + * \brief returns `true` if there exists a face of `tm1` and a face of `tm2` which intersect, and `false` otherwise. + * + * If `do_overlap_test_of_bounded_sides` is set to `true`, the overlap of bounded sides are tested as well. + * In that case, the meshes must be closed. * This function depends on the package \ref PkgBoxIntersectionD. * * @pre `CGAL::is_triangle_mesh(tm1)` @@ -1249,14 +1265,21 @@ * \cgalParamNEnd * \cgalNamedParamsEnd * + * \see `intersecting_meshes()` */ template + class CGAL_NP_TEMPLATE_PARAMETERS_1, + class CGAL_NP_TEMPLATE_PARAMETERS_2> bool do_intersect(const TriangleMesh& tm1, const TriangleMesh& tm2, - const NamedParameters1& np1, - const NamedParameters2& np2) + const CGAL_NP_CLASS_1& np1 = parameters::default_values(), + const CGAL_NP_CLASS_2& np2 = parameters::default_values() +#ifndef DOXYGEN_RUNNING + , const typename boost::disable_if< + typename boost::has_range_const_iterator::type + >::type* = 0 +#endif + ) { using parameters::choose_parameter; using parameters::get_parameter; @@ -1279,13 +1302,13 @@ if (test_overlap) { - typedef typename GetVertexPointMap::const_type VertexPointMap1; - typedef typename GetVertexPointMap::const_type VertexPointMap2; + typedef typename GetVertexPointMap::const_type VertexPointMap1; + typedef typename GetVertexPointMap::const_type VertexPointMap2; VertexPointMap1 vpm1 = choose_parameter(get_parameter(np1, internal_np::vertex_point), get_const_property_map(boost::vertex_point, tm1)); VertexPointMap2 vpm2 = choose_parameter(get_parameter(np2, internal_np::vertex_point), get_const_property_map(boost::vertex_point, tm2)); - typedef typename GetGeomTraits::type GeomTraits; + typedef typename GetGeomTraits::type GeomTraits; GeomTraits gt = choose_parameter(get_parameter(np1, internal_np::geom_traits)); return internal::is_mesh2_in_mesh1(tm1, tm2, vpm1, vpm2, gt) || @@ -1294,24 +1317,13 @@ return false; } -//convenient overload -template -bool do_intersect(const TriangleMesh& tm1, - const TriangleMesh& tm2, - const typename boost::disable_if< - typename boost::has_range_const_iterator::type - >::type* = 0) -{ - CGAL_precondition(CGAL::is_triangle_mesh(tm1)); - CGAL_precondition(CGAL::is_triangle_mesh(tm2)); - return CGAL::Polygon_mesh_processing::do_intersect(tm1, tm2, parameters::all_default(), parameters::all_default()); -} - /** - * \ingroup PMP_predicates_grp + * \ingroup PMP_intersection_grp + * * returns `true` if there exists a face of `tm` and a segment of a polyline of `polylines` which intersect, * and `false` otherwise. * This function depends on the package \ref PkgBoxIntersectionD. + * * @pre `CGAL::is_triangle_mesh(tm)` * * \tparam TriangleMesh a model of `FaceListGraph` @@ -1344,10 +1356,10 @@ */ template + class NamedParameters = parameters::Default_named_parameters> bool do_intersect(const TriangleMesh& tm, const PolylineRange& polylines, - const NamedParameters& np + const NamedParameters& np = parameters::default_values() #ifndef DOXYGEN_RUNNING , const typename boost::enable_if< typename boost::has_range_iterator< @@ -1374,9 +1386,11 @@ } /** - * \ingroup PMP_predicates_grp + * \ingroup PMP_intersection_grp + * * returns `true` if there exists a face of `tm` and a segment of `polyline` which intersect, and `false` otherwise. * This function depends on the package \ref PkgBoxIntersectionD. + * * @pre `CGAL::is_triangle_mesh(tm)` * * \tparam TriangleMesh a model of `FaceListGraph` @@ -1409,18 +1423,22 @@ */ template + class CGAL_NP_TEMPLATE_PARAMETERS> bool do_intersect(const TriangleMesh& tm, const Polyline& polyline, - const NamedParameters& np + const CGAL_NP_CLASS& np = parameters::default_values() #ifndef DOXYGEN_RUNNING , const typename boost::disable_if< - typename boost::has_range_iterator< - typename boost::mpl::eval_if< - boost::has_range_iterator, - boost::range_value, - boost::false_type - >::type + typename boost::mpl::or_< + typename boost::is_same::type, // Added to please MSVC 2015 + typename boost::mpl::not_::type>::type, // not a range + typename boost::has_range_iterator< + typename boost::mpl::eval_if< + boost::has_range_iterator, + boost::range_value, + boost::false_type + >::type + >::type // not a range of a range >::type >::type* = 0 #endif @@ -1438,46 +1456,6 @@ return false; } -template -bool do_intersect(const TriangleMesh& tm, - const PolylineRange& polylines, - const typename boost::enable_if< - typename boost::has_range_iterator< - typename boost::mpl::eval_if< - boost::has_range_iterator, - boost::range_value, - boost::false_type - >::type - >::type - >::type* = 0) -{ - CGAL_precondition(CGAL::is_triangle_mesh(tm)); - return CGAL::Polygon_mesh_processing::do_intersect(tm, polylines, parameters::all_default()); -} - - -template -bool do_intersect(const TriangleMesh& tm, - const Polyline& polyline, - const typename boost::disable_if< - typename boost::has_range_const_iterator::type - >::type* = 0, - const typename boost::disable_if< - typename boost::has_range_iterator< - typename boost::mpl::eval_if< - boost::has_range_iterator, - boost::range_value, - boost::false_type - >::type - >::type - >::type* = 0) -{ - CGAL_precondition(CGAL::is_triangle_mesh(tm)); - return CGAL::Polygon_mesh_processing::do_intersect(tm, polyline, parameters::all_default()); -} - namespace internal{ templateinfo(), *b2->info(), - Polygon_mesh_processing::parameters::vertex_point_map(vpm1) + parameters::vertex_point_map(vpm1) .geom_traits(gt), - Polygon_mesh_processing::parameters::vertex_point_map(vpm2) + parameters::vertex_point_map(vpm2) .geom_traits(gt))) { *m_iterator++ = std::make_pair(mesh_id_1, mesh_id_2); @@ -1594,7 +1572,8 @@ }//end internal /*! - * \ingroup PMP_predicates_grp + * \ingroup PMP_intersection_grp + * * detects and reports all the pairs of meshes intersecting in a range of triangulated surface meshes. * A pair of meshes intersecting is put in the output iterator `out` as a `std::pair`, * each index refering to the index of the triangle mesh in the input range. @@ -1639,8 +1618,9 @@ * \cgalParamExtra{All vertex point maps must have the same value type} * \cgalParamNEnd * \cgalNamedParamsEnd + * + * \see `do_intersect()` */ - template >nps( - std::distance(range.begin(), range.end()), parameters::all_default()); + std::vector nps( + std::distance(range.begin(), range.end()), parameters::default_values()); return intersecting_meshes(range, out, np, nps); } @@ -1697,11 +1677,12 @@ OutputIterator intersecting_meshes(const TriangleMeshRange& range, OutputIterator out) { - return intersecting_meshes(range, out, parameters::all_default()); + return intersecting_meshes(range, out, parameters::default_values()); } /** * \ingroup PMP_corefinement_grp + * * computes the intersection of triangles of `tm1` and `tm2`. The output is a * set of polylines with all vertices but endpoints being of degree 2. * @@ -1743,17 +1724,18 @@ * \cgalParamNEnd * \cgalNamedParamsEnd * + * \see `do_intersect()` */ template + class NamedParameters1 = parameters::Default_named_parameters, + class NamedParameters2 = parameters::Default_named_parameters > OutputIterator surface_intersection(const TriangleMesh& tm1, const TriangleMesh& tm2, OutputIterator polyline_output, - const NamedParameters1& np1, - const NamedParameters2& np2) + const NamedParameters1& np1 = parameters::default_values(), + const NamedParameters2& np2 = parameters::default_values()) { const bool throw_on_self_intersection = parameters::choose_parameter(parameters::get_parameter(np1, internal_np::throw_on_self_intersection), false); @@ -1809,11 +1791,11 @@ */ template + class NamedParameters = parameters::Default_named_parameters > OutputIterator surface_self_intersection(const TriangleMesh& tm, OutputIterator polyline_output, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { // Vertex point maps typedef typename GetVertexPointMap::const_type VPM; @@ -1830,77 +1812,6 @@ } } //end of namespace experimental - - -template -OutputIterator -surface_intersection(const TriangleMesh& tm1, - const TriangleMesh& tm2, - OutputIterator polyline_output) -{ - return surface_intersection(tm1, tm2, polyline_output, - CGAL::Polygon_mesh_processing::parameters::all_default(), - CGAL::Polygon_mesh_processing::parameters::all_default()); -} - -template -OutputIterator -surface_intersection(const TriangleMesh& tm1, - const TriangleMesh& tm2, - OutputIterator polyline_output, - const NamedParameters1& np) -{ - return surface_intersection(tm1, tm2, polyline_output, np, - CGAL::Polygon_mesh_processing::parameters::all_default()); -} - -#ifndef CGAL_NO_DEPRECATED_CODE -template -OutputIterator -surface_intersection(const TriangleMesh& tm1, - const TriangleMesh& tm2, - OutputIterator polyline_output, - const NamedParameters1& np1, - const NamedParameters2& np2, - const bool throw_on_self_intersection) -{ - return surface_intersection(tm1, tm2, polyline_output, - np1.throw_on_self_intersection(throw_on_self_intersection), np2); -} - -template -OutputIterator -surface_intersection(const TriangleMesh& tm1, - const TriangleMesh& tm2, - OutputIterator polyline_output, - const bool throw_on_self_intersection) -{ - return surface_intersection(tm1, tm2, polyline_output, - CGAL::Polygon_mesh_processing::parameters::throw_on_self_intersection(throw_on_self_intersection), - CGAL::Polygon_mesh_processing::parameters::all_default()); -} -#endif - -namespace experimental { -template -OutputIterator -surface_self_intersection(const TriangleMesh& tm, - OutputIterator polyline_output) -{ - return surface_self_intersection(tm, polyline_output, - CGAL::Polygon_mesh_processing::parameters::all_default() - ); -} - -} //end of namespace experimental } //end of namespace Polygon_mesh_processing } //end of namespace CGAL diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/IO/polygon_mesh_io.h cgal-5.5/include/CGAL/Polygon_mesh_processing/IO/polygon_mesh_io.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/IO/polygon_mesh_io.h 2022-06-03 19:05:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/IO/polygon_mesh_io.h 2022-07-13 19:06:07.000000000 +0000 @@ -6,8 +6,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/IO/polygon_mesh_io.h $ -// $Id: polygon_mesh_io.h fb6f703 2021-05-04T14:07:49+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/IO/polygon_mesh_io.h $ +// $Id: polygon_mesh_io.h d5b51a8 2022-03-23T18:39:31+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Mael Rouxel-Labbé @@ -22,7 +22,7 @@ #include #include -#include +#include #include #include @@ -37,7 +37,8 @@ /*! \ingroup PMP_IO_grp - * \brief reads the file as a polygon soup, repairs, and orients it as to obtain a polygon mesh. + * \brief reads the file as a polygon soup, repairs (using `repair_polygon_soup()`), + * and orients it (using `orient_polygon_soup()`) as to obtain a polygon mesh. * * Supported file formats are the following: * - \ref IOStreamOFF (`.off`) @@ -49,6 +50,9 @@ * * The format is detected from the filename extension (letter case is not important). * + * If repairing and orientation are known to not be required, one can use + * \link PkgBGLIOFct `CGAL::IO::read_polygon_mesh()` \endlink directly. + * * \tparam PolygonMesh a model of `MutableFaceGraph` * \tparam NamedParameters a sequence of \ref bgl_namedparameters "Named Parameters" * @@ -82,12 +86,12 @@ * * \return `true` if the reading, repairing, and orientation operations were successful, `false` otherwise. * - * \sa \link PkgBGLIOFct `CGAL::IO::write_polygon_mesh()` \endlink + * \sa \link PkgBGLIOFct `CGAL::IO::read_polygon_mesh()` \endlink */ -template +template bool read_polygon_mesh(const std::string& fname, PolygonMesh& g, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { namespace PMP = CGAL::Polygon_mesh_processing; @@ -125,21 +129,11 @@ return false; } - PMP::polygon_soup_to_polygon_mesh(points, faces, g, parameters::all_default(), np); + PMP::polygon_soup_to_polygon_mesh(points, faces, g, parameters::default_values(), np); return true; } -/// \cond SKIP_IN_MANUAL - -template -bool read_polygon_mesh(const std::string& fname, PolygonMesh& g) -{ - return CGAL::Polygon_mesh_processing::IO::read_polygon_mesh(fname, g, parameters::all_default()); -} - -/// \endcond - } // namespace IO } // namespace Polygon_mesh_processing } // namespace CGAL diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/locate.h cgal-5.5/include/CGAL/Polygon_mesh_processing/locate.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/locate.h 2022-06-03 19:05:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/locate.h 2022-07-13 19:06:08.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/locate.h $ -// $Id: locate.h 590ddf8 2021-10-08T15:38:47+02:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/locate.h $ +// $Id: locate.h 75b03e6 2022-01-10T15:33:04+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Mael Rouxel-Labbé, @@ -73,7 +73,7 @@ // Just for convenience template > + typename NamedParameters = parameters::Default_named_parameters> struct Location_traits { typedef typename GetVertexPointMap::const_type VertexPointMap; @@ -586,7 +586,7 @@ /// \returns a point whose type is the same as the value type of the vertex point property map /// provided by the user or via named parameters, or the internal point map of the mesh `tm`. /// -template +template #ifdef DOXYGEN_RUNNING Point construct_point(const Face_location& loc, @@ -596,7 +596,7 @@ std::array >& loc, #endif const TriangleMesh& tm, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { typedef typename boost::graph_traits::halfedge_descriptor halfedge_descriptor; typedef typename GetGeomTraits::type Geom_traits; @@ -623,19 +623,6 @@ return bp_constructor(p0, loc.second[0], p1, loc.second[1], p2, loc.second[2], gt); } -template -typename property_map_value::type -#ifdef DOXYGEN_RUNNING -construct_point(const Face_location& loc, -#else -construct_point(const std::pair::face_descriptor, - std::array >& loc, -#endif - const TriangleMesh& tm) -{ - return construct_point(loc, tm, parameters::all_default()); -} - /// \name Location Predicates /// @{ @@ -1110,7 +1097,7 @@ /// the user via named parameters (with `geom_traits`) or using `CGAL::Kernel_traits` /// and the point type of the vertex point property map in use. /// -template +template #ifdef DOXYGEN_RUNNING Face_location locate_in_face(const Point& query, @@ -1120,7 +1107,7 @@ #endif const typename boost::graph_traits::face_descriptor fd, const TriangleMesh& tm, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { typedef typename boost::graph_traits::vertex_descriptor vertex_descriptor; @@ -1165,16 +1152,6 @@ return std::make_pair(fd, coords); } -#ifndef DOXYGEN_RUNNING // because this is in the middle of a @{ @} doxygen group -template -typename internal::Location_traits::Face_location -locate_in_face(const typename internal::Location_traits::Point& query, - const typename boost::graph_traits::face_descriptor f, - const TriangleMesh& tm) -{ - return locate_in_face(query, f, tm, parameters::all_default()); -} -#endif /// \ingroup PMP_locate_grp /// @@ -1589,7 +1566,7 @@ /// \cgalParamNEnd /// \cgalNamedParamsEnd /// -template +template void build_AABB_tree(const TriangleMesh& tm, AABB_tree< @@ -1600,7 +1577,7 @@ typename GetGeomTraits::type, #endif CGAL::AABB_face_graph_triangle_primitive > >& outTree, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { typedef typename GetVertexPointMap::const_type VertexPointMap; @@ -1613,14 +1590,6 @@ return internal::build_AABB_tree(tm, outTree, vpm); } -#ifndef DOXYGEN_RUNNING -template -void build_AABB_tree(const TriangleMesh& tm, AABB_tree& outTree) -{ - return build_AABB_tree(tm, outTree, parameters::all_default()); -} -#endif - /// \ingroup PMP_locate_grp /// /// \brief returns the face location nearest to the given point, as a location. @@ -1671,7 +1640,7 @@ /// the user via named parameters (with `geom_traits`) or using `CGAL::Kernel_traits` /// and the point type of the vertex point property map in use. /// -template +template #ifdef DOXYGEN_RUNNING Face_location locate_with_AABB_tree(const Point& p, @@ -1685,7 +1654,7 @@ CGAL::AABB_face_graph_triangle_primitive > >& tree, #endif const TriangleMesh& tm, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { typedef typename internal::Location_traits::Point Point; typedef internal::Point_to_Point_3 P_to_P3; @@ -1718,17 +1687,6 @@ return locate_in_face(result.first, result.second, tm, CGAL::parameters::vertex_point_map(wrapped_vpm)); } -#ifndef DOXYGEN_RUNNING -template -typename internal::Location_traits::Face_location -locate_with_AABB_tree(const typename internal::Location_traits::Point& p, - const AABB_tree& tree, - const TriangleMesh& tm) -{ - return locate_with_AABB_tree(p, tree, tm, parameters::all_default()); -} -#endif - /// \ingroup PMP_locate_grp /// /// \brief returns the nearest face location to the given point. @@ -1771,7 +1729,7 @@ /// \cgalParamNEnd /// \cgalNamedParamsEnd /// -template +template #ifdef DOXYGEN_RUNNING Face_location locate(const Point& p, @@ -1780,7 +1738,7 @@ locate(const typename internal::Location_traits::Point& p, #endif const TriangleMesh& tm, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { // Wrap the input VPM with a one converting to 3D (costs nothing if the input VPM // already has value type Kernel::Point_3) @@ -1812,16 +1770,6 @@ return locate_with_AABB_tree(p3, tree, tm, parameters::vertex_point_map(wrapped_vpm)); } -#ifndef DOXYGEN_RUNNING -template -typename internal::Location_traits::Face_location -locate(const typename property_map_value::type& p, - const TriangleMesh& tm) -{ - return locate(p, tm, parameters::all_default()); -} -#endif - /// \ingroup PMP_locate_grp /// /// \brief returns the face location along `ray` nearest to its source point. @@ -1868,7 +1816,7 @@ /// /// \pre `ray` is an object with the same ambient dimension as the point type (the value type of the vertex point map). /// -template +template #ifdef DOXYGEN_RUNNING Face_location locate_with_AABB_tree(const Ray& ray, @@ -1883,7 +1831,7 @@ > >& tree, #endif const TriangleMesh& tm, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { typedef typename GetGeomTraits::type Geom_traits; @@ -1952,17 +1900,6 @@ CGAL::make_array(FT(0), FT(0), FT(0))); } -#ifndef DOXYGEN_RUNNING -template -typename internal::Location_traits::Face_location -locate_with_AABB_tree(const typename internal::Location_traits::Ray& ray, - const AABB_tree& tree, - const TriangleMesh& tm) -{ - return locate_with_AABB_tree(ray, tree, tm, parameters::all_default()); -} -#endif - /// \ingroup PMP_locate_grp /// /// \brief returns the face location along `ray` nearest to its source point. @@ -2010,7 +1947,7 @@ /// /// \pre `ray` is an object with the same ambient dimension as the point type (the value type of the vertex point map). /// -template +template #ifdef DOXYGEN_RUNNING Face_location locate(const Ray& ray, @@ -2019,7 +1956,7 @@ locate(const typename internal::Location_traits::Ray& ray, #endif const TriangleMesh& tm, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { typedef typename GetVertexPointMap::const_type VertexPointMap; @@ -2044,17 +1981,6 @@ return locate_with_AABB_tree(ray, tree, tm, np); } -#ifndef DOXYGEN_RUNNING -template -typename internal::Location_traits::Face_location -locate(const typename internal::Ray_type_selector< - typename internal::Location_traits::Point>::type& ray, - const TriangleMesh& tm) -{ - return locate(ray, tm, parameters::all_default()); -} -#endif - /// @} } // namespace Polygon_mesh_processing diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/manifoldness.h cgal-5.5/include/CGAL/Polygon_mesh_processing/manifoldness.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/manifoldness.h 2022-06-03 19:05:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/manifoldness.h 2022-07-13 19:06:08.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/manifoldness.h $ -// $Id: manifoldness.h 41765b6 2021-02-05T16:10:22+01:00 Laurent Rineau +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/manifoldness.h $ +// $Id: manifoldness.h bb0b9a8 2022-03-07T15:32:37+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Sebastien Loriot, @@ -15,7 +15,7 @@ #include -#include +#include #include #include @@ -34,18 +34,20 @@ namespace Polygon_mesh_processing { /// \ingroup PMP_repairing_grp -/// returns whether a vertex of a polygon mesh is non-manifold. +/// +/// \brief returns whether a vertex of a polygon mesh is non-manifold. +/// +/// \warning This function has linear runtime with respect to the size of the mesh. The function +/// `non_manifold_vertices()` should be used when gathering all non manifold vertices. /// /// @tparam PolygonMesh a model of `HalfedgeListGraph` /// /// @param v a vertex of `pm` /// @param pm a triangle mesh containing `v` /// -/// \warning This function has linear runtime with respect to the size of the mesh. +/// \return `true` if the vertex is non-manifold, `false` otherwise /// /// \sa `duplicate_non_manifold_vertices()` -/// -/// \return `true` if the vertex is non-manifold, `false` otherwise. template bool is_non_manifold_vertex(typename boost::graph_traits::vertex_descriptor v, const PolygonMesh& pm) @@ -283,10 +285,13 @@ } // end namespace internal /// \ingroup PMP_repairing_grp -/// collects the non-manifold vertices (if any) present in the mesh. A non-manifold vertex `v` is returned -/// via one incident halfedge `h` such that `target(h, pm) = v` for all the umbrellas that `v` appears in -/// (an umbrella being the set of faces incident to all the halfedges reachable by walking around `v` -/// using `hnext = prev(opposite(h, pm), pm)`, starting from `h`). +/// +/// \brief collects the non-manifold vertices (if any) present in the mesh. +/// +/// A non-manifold vertex `v` is returned via one incident halfedge `h` such that `target(h, pm) = v` +/// for all the umbrellas that `v` appears in (an umbrella being the set of faces incident +/// to all the halfedges reachable by walking around `v` using `hnext = prev(opposite(h, pm), pm)`, +/// starting from `h`). /// /// @tparam PolygonMesh a model of `HalfedgeListGraph` /// @tparam OutputIterator a model of `OutputIterator` holding objects of type @@ -295,10 +300,10 @@ /// @param pm a triangle mesh /// @param out the output iterator that collects halfedges incident to `v` /// +/// \return the output iterator +/// /// \sa `is_non_manifold_vertex()` /// \sa `duplicate_non_manifold_vertices()` -/// -/// \return the output iterator. template OutputIterator non_manifold_vertices(const PolygonMesh& pm, OutputIterator out) @@ -390,6 +395,7 @@ } /// \ingroup PMP_repairing_grp +/// /// duplicates all the non-manifold vertices of the input mesh. /// /// @tparam PolygonMesh a model of `HalfedgeListGraph` and `MutableHalfedgeGraph` @@ -426,10 +432,12 @@ /// \cgalParamNEnd /// \cgalNamedParamsEnd /// -/// \return the number of vertices created. -template +/// \return the number of vertices created +/// +/// \see `non_manifold_vertices()` +template std::size_t duplicate_non_manifold_vertices(PolygonMesh& pm, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { using parameters::get_parameter; using parameters::choose_parameter; @@ -460,12 +468,6 @@ return nb_new_vertices; } -template -std::size_t duplicate_non_manifold_vertices(PolygonMesh& pm) -{ - return duplicate_non_manifold_vertices(pm, parameters::all_default()); -} - } // namespace Polygon_mesh_processing } // namespace CGAL diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/measure.h cgal-5.5/include/CGAL/Polygon_mesh_processing/measure.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/measure.h 2022-06-03 19:05:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/measure.h 2022-07-13 19:06:08.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/measure.h $ -// $Id: measure.h 168941a 2021-08-31T12:19:31+01:00 Andreas Fabri +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/measure.h $ +// $Id: measure.h 763c5e9 2022-03-30T08:05:20+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -21,30 +21,25 @@ #include #include #include -#include +#include #include #include // needed for CGAL::exact(FT)/CGAL::exact(Lazy_exact_nt) #include -#include #include #include #include #include - -#ifdef DOXYGEN_RUNNING -#define CGAL_PMP_NP_TEMPLATE_PARAMETERS NamedParameters -#define CGAL_PMP_NP_CLASS NamedParameters -#endif +#include namespace CGAL { // workaround for area(face_range, tm) overload -template -class GetGeomTraits +template +class GetGeomTraits { public: struct type{}; @@ -62,7 +57,8 @@ }//namespace internal /** - * \ingroup measure_grp + * \ingroup PMP_measure_grp + * * computes the length of an edge of a given polygon mesh. * The edge is given by one of its halfedges, or the edge itself. * @@ -89,20 +85,19 @@ * \cgalParamNEnd * \cgalNamedParamsEnd * - * @return the length of `h`. The return type `FT` is a number type. It is - * either deduced from the `geom_traits` \ref bgl_namedparameters "Named Parameters" if provided, - * or the geometric traits class deduced from the point property map - * of `pmesh`. + * @return the length of `h`. The return type `FT` is a number type either deduced + * from the `geom_traits` \ref bgl_namedparameters "Named Parameters" if provided, + * or the geometric traits class deduced from the point property map of `pmesh`. * * \warning This function involves a square root computation. - * If `FT` does not have a `sqrt()` operation, the square root computation - * will be done approximately. + * If `FT` does not support the `sqrt()` operation, the square root computation + * will be performed approximately. * * @sa `squared_edge_length()` * @sa `face_border_length()` */ template + typename NamedParameters = parameters::Default_named_parameters> #ifdef DOXYGEN_RUNNING FT #else @@ -110,7 +105,7 @@ #endif edge_length(typename boost::graph_traits::halfedge_descriptor h, const PolygonMesh& pmesh, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { typedef typename GetGeomTraits::type Geom_traits; @@ -129,36 +124,20 @@ get(vpm, target(h, pmesh)))); } -template -typename CGAL::Kernel_traits::type>::Kernel::FT -edge_length(typename boost::graph_traits::halfedge_descriptor h, - const PolygonMesh& pmesh) -{ - return edge_length(h, pmesh, CGAL::Polygon_mesh_processing::parameters::all_default()); -} // edge overloads template + typename NamedParameters = parameters::Default_named_parameters> typename GetGeomTraits::type::FT edge_length(typename boost::graph_traits::edge_descriptor e, const PolygonMesh& pmesh, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { return edge_length(halfedge(e, pmesh), pmesh, np); } -template -typename CGAL::Kernel_traits::type>::Kernel::FT -edge_length(typename boost::graph_traits::edge_descriptor e, - const PolygonMesh& pmesh) -{ - return edge_length(halfedge(e, pmesh), pmesh); -} - /** - * \ingroup measure_grp + * \ingroup PMP_measure_grp + * * computes the squared length of an edge of a given polygon mesh. * The edge is given by one of its halfedges, or the edge itself. * @@ -185,16 +164,15 @@ * \cgalParamNEnd * \cgalNamedParamsEnd * - * @return the squared length of `h`. The return type `FT` is a number type. It is - * either deduced from the `geom_traits` \ref bgl_namedparameters "Named Parameters" if provided, - * or the geometric traits class deduced from the point property map - * of `pmesh`. + * @return the squared length of `h`. The return type `FT` is a number type either deduced + * from the `geom_traits` \ref bgl_namedparameters "Named Parameters" if provided, + * or the geometric traits class deduced from the point property map of `pmesh`. * * @sa `edge_length()` * @sa `face_border_length()` */ template + typename NamedParameters = parameters::Default_named_parameters> #ifdef DOXYGEN_RUNNING FT #else @@ -202,7 +180,7 @@ #endif squared_edge_length(typename boost::graph_traits::halfedge_descriptor h, const PolygonMesh& pmesh, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { typedef typename GetGeomTraits::type Geom_traits; @@ -221,39 +199,22 @@ get(vpm, target(h, pmesh))); } -template -typename CGAL::Kernel_traits::type>::Kernel::FT -squared_edge_length(typename boost::graph_traits::halfedge_descriptor h, - const PolygonMesh& pmesh) -{ - return squared_edge_length(h, pmesh, CGAL::Polygon_mesh_processing::parameters::all_default()); -} + // edge overloads template + typename NamedParameters = parameters::Default_named_parameters> typename GetGeomTraits::type::FT squared_edge_length(typename boost::graph_traits::edge_descriptor e, const PolygonMesh& pmesh, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { return squared_edge_length(halfedge(e, pmesh), pmesh, np); } -template -typename CGAL::Kernel_traits::type>::Kernel::FT -squared_edge_length(typename boost::graph_traits::edge_descriptor e, - const PolygonMesh& pmesh) -{ - return squared_edge_length(halfedge(e, pmesh), pmesh); -} - - /** - * \ingroup measure_grp - * computes the length of the border polyline - * that contains a given halfedge. + * \ingroup PMP_measure_grp + * + * computes the length of the border polyline that contains a given halfedge. * * @tparam PolygonMesh a model of `HalfedgeGraph` * @tparam NamedParameters a sequence of \ref bgl_namedparameters "Named Parameters" @@ -279,19 +240,18 @@ * \cgalNamedParamsEnd * * @return the length of the sequence of border edges of `face(h, pmesh)`. - * The return type `FT` is a number type. It is - * either deduced from the `geom_traits` \ref bgl_namedparameters "Named Parameters" if provided, - * or the geometric traits class deduced from the point property map - * of `pmesh`. + * The return type `FT` is a number type either deduced from the `geom_traits` + * \ref bgl_namedparameters "Named Parameters" if provided, or the geometric traits class deduced + * from the point property map of `pmesh`. * * \warning This function involves a square root computation. - * If `Kernel::FT` does not have a `sqrt()` operation, the square root computation - * will be done approximately. + * If `Kernel::FT` does not support the `sqrt()` operation, the square root computation + * will be performed approximately. * * @sa `edge_length()` */ template + typename NamedParameters = parameters::Default_named_parameters> #ifdef DOXYGEN_RUNNING FT #else @@ -299,7 +259,7 @@ #endif face_border_length(typename boost::graph_traits::halfedge_descriptor h, const PolygonMesh& pmesh, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { typename GetGeomTraits::type::FT result = 0; @@ -312,19 +272,11 @@ return result; } -template -typename CGAL::Kernel_traits::type>::Kernel::FT -face_border_length(typename boost::graph_traits::halfedge_descriptor h, - const PolygonMesh& pmesh) -{ - return face_border_length(h, pmesh, CGAL::Polygon_mesh_processing::parameters::all_default()); -} - /** - * \ingroup measure_grp + * \ingroup PMP_measure_grp + * * finds the longest border of a given triangulated surface and returns - * a halfedge that is part of this border and the length of this border. + * a halfedge that is part of this border as well as the length of this border. * * @tparam PolygonMesh a model of `HalfedgeGraph` * @tparam NamedParameters a sequence of \ref bgl_namedparameters "Named Parameters" @@ -353,28 +305,32 @@ * The return type `halfedge_descriptor` is a halfedge descriptor. It is * deduced from the graph traits corresponding to the type `PolygonMesh`. * - `second`: the length of the longest border - * The return type `FT` is a number type. It is - * either deduced from the `geom_traits` \ref bgl_namedparameters "Named Parameters" if provided, - * or the geometric traits class deduced from the point property map - * of `pmesh` + * The return type `FT` is a number type either deduced from the `geom_traits` + * \ref bgl_namedparameters "Named Parameters" if provided, + * or the geometric traits class deduced from the point property map of `pmesh` + * + * @warning This function involves a square root computation. + * If `Kernel::FT` does not support the `sqrt()` operation, the square root computation + * will be performed approximately. * + * @see `face_border_length()` */ template + typename NamedParameters = parameters::Default_named_parameters> #ifdef DOXYGEN_RUNNING std::pair #else std::pair::halfedge_descriptor, -typename GetGeomTraits::type::FT> + typename GetGeomTraits::type::FT> #endif longest_border(const PolygonMesh& pmesh, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { typedef typename CGAL::Kernel_traits< typename property_map_value::type>::Kernel::FT FT; typedef typename boost::graph_traits::halfedge_descriptor halfedge_descriptor; - boost::unordered_set visited; + std::unordered_set visited; halfedge_descriptor result_halfedge = boost::graph_traits::null_halfedge(); FT result_len = 0; for(halfedge_descriptor h : halfedges(pmesh)) @@ -401,19 +357,10 @@ return std::make_pair(result_halfedge, result_len); } -template -std::pair::halfedge_descriptor, -typename CGAL::Kernel_traits::type>::Kernel::FT> -longest_border(const PolygonMesh& pmesh) -{ - return longest_border(pmesh, CGAL::Polygon_mesh_processing::parameters::all_default()); -} - /** - * \ingroup measure_grp - * computes the area of a face of a given - * triangulated surface mesh. + * \ingroup PMP_measure_grp + * + * computes the area of a face of a given triangulated surface mesh. * * @tparam TriangleMesh a model of `FaceGraph` * @tparam NamedParameters a sequence of \ref bgl_namedparameters "Named Parameters" @@ -441,28 +388,27 @@ * @pre `f != boost::graph_traits::%null_face()` * * @return the area of `f`. - * The return type `FT` is a number type. It is - * either deduced from the `geom_traits` \ref bgl_namedparameters "Named Parameters" if provided, - * or the geometric traits class deduced from the point property map - * of `tmesh`. + * The return type `FT` is a number type either deduced from the `geom_traits` + * \ref bgl_namedparameters "Named Parameters" if provided, or the geometric traits class deduced + * from the point property map of `tmesh`. * * \warning This function involves a square root computation. - * If `Kernel::FT` does not have a `sqrt()` operation, the square root computation - * will be done approximately. + * If `Kernel::FT` does not support the `sqrt()` operation, the square root computation + * will be performed approximately. * * @sa `squared_face_area()` * @sa `area()` */ template + typename CGAL_NP_TEMPLATE_PARAMETERS> #ifdef DOXYGEN_RUNNING FT #else -typename GetGeomTraits::type::FT +typename GetGeomTraits::type::FT #endif face_area(typename boost::graph_traits::face_descriptor f, const TriangleMesh& tmesh, - const CGAL_PMP_NP_CLASS& np) + const CGAL_NP_CLASS& np = parameters::default_values()) { using parameters::choose_parameter; using parameters::get_parameter; @@ -471,14 +417,14 @@ CGAL_precondition(boost::graph_traits::null_face() != f); - typename GetVertexPointMap::const_type + typename GetVertexPointMap::const_type vpm = choose_parameter(get_parameter(np, internal_np::vertex_point), get_const_property_map(CGAL::vertex_point, tmesh)); halfedge_descriptor hd = halfedge(f, tmesh); halfedge_descriptor nhd = next(hd, tmesh); - typedef typename GetGeomTraits::type GT; + typedef typename GetGeomTraits::type GT; GT traits = choose_parameter(get_parameter(np, internal_np::geom_traits)); return approximate_sqrt(traits.compute_squared_area_3_object()(get(vpm, source(hd, tmesh)), @@ -486,19 +432,11 @@ get(vpm, target(nhd, tmesh)))); } -template -typename CGAL::Kernel_traits::type>::Kernel::FT -face_area(typename boost::graph_traits::face_descriptor f, - const TriangleMesh& tmesh) -{ - return face_area(f, tmesh, CGAL::Polygon_mesh_processing::parameters::all_default()); -} /** - * \ingroup measure_grp - * computes the squared area of a face of a given - * triangulated surface mesh. + * \ingroup PMP_measure_grp + * + * computes the squared area of a face of a given triangulated surface mesh. * * @tparam TriangleMesh a model of `FaceGraph` * @tparam NamedParameters a sequence of \ref bgl_namedparameters "Named Parameters" @@ -526,23 +464,22 @@ * @pre `f != boost::graph_traits::%null_face()` * * @return the squared area of `f`. - * The return type `FT` is a number type. It is - * either deduced from the `geom_traits` \ref bgl_namedparameters "Named Parameters" if provided, - * or the geometric traits class deduced from the point property map - * of `tmesh`. + * The return type `FT` is a number type either deduced from the `geom_traits` + * \ref bgl_namedparameters "Named Parameters" if provided, + * or the geometric traits class deduced from the point property map of `tmesh`. * * @sa `face_area()` */ template + typename CGAL_NP_TEMPLATE_PARAMETERS> #ifdef DOXYGEN_RUNNING FT #else -typename GetGeomTraits::type::FT +typename GetGeomTraits::type::FT #endif squared_face_area(typename boost::graph_traits::face_descriptor f, const TriangleMesh& tmesh, - const CGAL_PMP_NP_CLASS& np) + const CGAL_NP_CLASS& np = parameters::default_values()) { using parameters::choose_parameter; using parameters::get_parameter; @@ -551,14 +488,14 @@ CGAL_precondition(boost::graph_traits::null_face() != f); - typename GetVertexPointMap::const_type + typename GetVertexPointMap::const_type vpm = choose_parameter(get_parameter(np, internal_np::vertex_point), get_const_property_map(CGAL::vertex_point, tmesh)); halfedge_descriptor hd = halfedge(f, tmesh); halfedge_descriptor nhd = next(hd, tmesh); - typedef typename GetGeomTraits::type GT; + typedef typename GetGeomTraits::type GT; GT traits = choose_parameter(get_parameter(np, internal_np::geom_traits)); return traits.compute_squared_area_3_object()(get(vpm, source(hd, tmesh)), @@ -566,20 +503,10 @@ get(vpm, target(nhd, tmesh))); } -template -typename CGAL::Kernel_traits::type>::Kernel::FT -squared_face_area(typename boost::graph_traits::face_descriptor f, - const TriangleMesh& tmesh) -{ - return squared_face_area(f, tmesh, CGAL::Polygon_mesh_processing::parameters::all_default()); -} - - /** - * \ingroup measure_grp - * computes the area of a range of faces of a given - * triangulated surface mesh. + * \ingroup PMP_measure_grp + * + * computes the area of a range of faces of a given triangulated surface mesh. * * @tparam FaceRange range of `boost::graph_traits::%face_descriptor`, model of `Range`. @@ -608,32 +535,31 @@ * \cgalNamedParamsEnd * * @return sum of face areas of `faces`. - * The return type `FT` is a number type. It is - * either deduced from the `geom_traits` \ref bgl_namedparameters "Named Parameters" if provided, - * or the geometric traits class deduced from the point property map - * of `tmesh`. + * The return type `FT` is a number type either deduced from the `geom_traits` + * \ref bgl_namedparameters "Named Parameters" if provided, + * or the geometric traits class deduced from the point property map of `tmesh`. * * \warning This function involves a square root computation. - * If `Kernel::FT` does not have a `sqrt()` operation, the square root computation - * will be done approximately. + * If `Kernel::FT` does not support the `sqrt()` operation, the square root computation + * will be performed approximately. * * @sa `face_area()` */ template + typename CGAL_NP_TEMPLATE_PARAMETERS> #ifdef DOXYGEN_RUNNING FT #else -typename GetGeomTraits::type::FT +typename GetGeomTraits::type::FT #endif area(FaceRange face_range, const TriangleMesh& tmesh, - const CGAL_PMP_NP_CLASS& np) + const CGAL_NP_CLASS& np = parameters::default_values()) { typedef typename boost::graph_traits::face_descriptor face_descriptor; - typename GetGeomTraits::type::FT result = 0; + typename GetGeomTraits::type::FT result = 0; for(face_descriptor f : face_range) { result += face_area(f, tmesh, np); @@ -643,15 +569,8 @@ return result; } -template -typename GetGeomTraits::type::FT -area(FaceRange face_range, const TriangleMesh& tmesh) -{ - return area(face_range, tmesh, CGAL::Polygon_mesh_processing::parameters::all_default()); -} - /** - * \ingroup measure_grp + * \ingroup PMP_measure_grp * computes the surface area of a triangulated surface mesh. * * @tparam TriangleMesh a model of `FaceGraph` @@ -677,41 +596,33 @@ * \cgalNamedParamsEnd * * @return the surface area of `tmesh`. - * The return type `FT` is a number type. It is - * either deduced from the `geom_traits` \ref bgl_namedparameters "Named Parameters" if provided, - * or the geometric traits class deduced from the point property map - * of `tmesh`. + * The return type `FT` is a number type either deduced from the `geom_traits` + * \ref bgl_namedparameters "Named Parameters" if provided, + * or the geometric traits class deduced from the point property map of `tmesh`. * * \warning This function involves a square root computation. - * If `Kernel::FT` does not have a `sqrt()` operation, the square root computation - * will be done approximately. + * If `Kernel::FT` does not support the `sqrt()` operation, the square root computation + * will be performed approximately. * * @sa `face_area()` */ template + typename CGAL_NP_TEMPLATE_PARAMETERS> #ifdef DOXYGEN_RUNNING FT #else -typename GetGeomTraits::type::FT +typename GetGeomTraits::type::FT #endif -area(const TriangleMesh& tmesh, const CGAL_PMP_NP_CLASS& np) +area(const TriangleMesh& tmesh, + const CGAL_NP_CLASS& np = parameters::default_values()) { return area(faces(tmesh), tmesh, np); } -template -typename CGAL::Kernel_traits::type>::Kernel::FT -area(const TriangleMesh& tmesh) -{ - return area(faces(tmesh), tmesh, CGAL::Polygon_mesh_processing::parameters::all_default()); -} - /** - * \ingroup measure_grp - * computes the volume of the domain bounded by - * a closed triangulated surface mesh. + * \ingroup PMP_measure_grp + * + * computes the volume of the domain bounded by a closed triangulated surface mesh. * * @tparam TriangleMesh a model of `HalfedgeGraph` * @tparam NamedParameters a sequence of \ref bgl_namedparameters "Named Parameters" @@ -738,20 +649,19 @@ * \cgalNamedParamsEnd * * @return the volume bounded by `tmesh`. - * The return type `FT` is a number type. It is - * either deduced from the `geom_traits` \ref bgl_namedparameters "Named Parameters" if provided, - * or the geometric traits class deduced from the point property map - * of `tmesh`. + * The return type `FT` is a number type either deduced from the `geom_traits` + * \ref bgl_namedparameters "Named Parameters" if provided, + * or the geometric traits class deduced from the point property map of `tmesh`. */ template + typename CGAL_NP_TEMPLATE_PARAMETERS> #ifdef DOXYGEN_RUNNING FT #else -typename GetGeomTraits::type::FT +typename GetGeomTraits::type::FT #endif volume(const TriangleMesh& tmesh, - const CGAL_PMP_NP_CLASS& np) + const CGAL_NP_CLASS& np = parameters::default_values()) { CGAL_assertion(is_triangle_mesh(tmesh)); CGAL_assertion(is_closed(tmesh)); @@ -759,14 +669,14 @@ using parameters::choose_parameter; using parameters::get_parameter; - typename GetVertexPointMap::const_type + typename GetVertexPointMap::const_type vpm = choose_parameter(get_parameter(np, internal_np::vertex_point), get_const_property_map(CGAL::vertex_point, tmesh)); - typename GetGeomTraits::type::Point_3 origin(0, 0, 0); + typename GetGeomTraits::type::Point_3 origin(0, 0, 0); typedef typename boost::graph_traits::face_descriptor face_descriptor; - typename GetGeomTraits::type::FT volume = 0; + typename GetGeomTraits::type::FT volume = 0; typename CGAL::Kernel_traits::type>::Kernel::Compute_volume_3 cv3; @@ -782,16 +692,9 @@ return volume; } -template -typename CGAL::Kernel_traits::type>::Kernel::FT -volume(const TriangleMesh& tmesh) -{ - return volume(tmesh, CGAL::Polygon_mesh_processing::parameters::all_default()); -} - /** - * \ingroup measure_grp + * \ingroup PMP_measure_grp + * * computes the aspect ratio of a face of a given triangulated surface mesh. * * @tparam TriangleMesh a model of `HalfedgeGraph` @@ -819,33 +722,37 @@ * * @pre `f != boost::graph_traits::%null_face()` * - * @return the aspect ratio of `f`. The return type `FT` is a number type. It is + * @return the aspect ratio of `f`. The return type `FT` is a number type * either deduced from the `geom_traits` \ref bgl_namedparameters "Named Parameters" if provided, * or the geometric traits class deduced from the point property map of `tmesh`. * + * \warning This function involves a square root computation. + * If `Kernel::FT` does not support the `sqrt()` operation, the square root computation + * will be performed approximately. */ template + typename CGAL_NP_TEMPLATE_PARAMETERS> #ifdef DOXYGEN_RUNNING FT #else -typename GetGeomTraits::type::FT +typename GetGeomTraits::type::FT #endif face_aspect_ratio(typename boost::graph_traits::face_descriptor f, const TriangleMesh& tmesh, - const CGAL_PMP_NP_CLASS& np) + const CGAL_NP_CLASS& np = parameters::default_values()) { - CGAL_precondition(is_triangle(f, tmesh)); + CGAL_precondition(f != boost::graph_traits::null_face()); + CGAL_precondition(is_triangle(halfedge(f, tmesh), tmesh)); typedef typename boost::graph_traits::halfedge_descriptor halfedge_descriptor; - typedef typename GetGeomTraits::type Geom_traits; + typedef typename GetGeomTraits::type Geom_traits; typedef typename Geom_traits::FT FT; using parameters::choose_parameter; using parameters::get_parameter; - typename GetVertexPointMap::const_type + typename GetVertexPointMap::const_type vpm = choose_parameter(get_parameter(np, internal_np::vertex_point), get_const_property_map(CGAL::vertex_point, tmesh)); @@ -900,19 +807,10 @@ return aspect_ratio; } -template -typename CGAL::Kernel_traits::type>::Kernel::FT -face_aspect_ratio(typename boost::graph_traits::face_descriptor f, - const TriangleMesh& tmesh) -{ - return face_aspect_ratio(f, tmesh, CGAL::Polygon_mesh_processing::parameters::all_default()); -} - /** - * \ingroup measure_grp - * computes the centroid of a volume bounded by - * a closed triangulated surface mesh. + * \ingroup PMP_measure_grp + * + * computes the centroid of a volume bounded by a closed triangulated surface mesh. * * @tparam TriangleMesh a model of `FaceListGraph` * @tparam NamedParameters a sequence of \ref bgl_namedparameters "Named Parameters" @@ -940,13 +838,14 @@ * * @return the centroid of the domain bounded by `tmesh`. */ -template +template #ifdef DOXYGEN_RUNNING Point_3 #else -typename GetGeomTraits::type::Point_3 +typename GetGeomTraits::type::Point_3 #endif -centroid(const TriangleMesh& tmesh, const CGAL_PMP_NP_CLASS& np) +centroid(const TriangleMesh& tmesh, + const CGAL_NP_CLASS& np = parameters::default_values()) { // See: http://www2.imperial.ac.uk/~rn/centroid.pdf @@ -956,11 +855,11 @@ using parameters::choose_parameter; using parameters::get_parameter; - typedef typename GetVertexPointMap::const_type Vpm; + typedef typename GetVertexPointMap::const_type Vpm; Vpm vpm = choose_parameter(get_parameter(np, internal_np::vertex_point), get_const_property_map(CGAL::vertex_point, tmesh)); - typedef typename GetGeomTraits::type Kernel; + typedef typename GetGeomTraits::type Kernel; typedef typename Kernel::Point_3 Point_3; typedef typename Kernel::Vector_3 Vector_3; typedef typename Kernel::Construct_translated_point_3 Construct_translated_point_3; @@ -1009,17 +908,9 @@ return point(ORIGIN, centroid); } -template -typename CGAL::Kernel_traits::type>::Kernel::Point_3 -centroid(const TriangleMesh& tmesh) -{ - return centroid(tmesh, CGAL::Polygon_mesh_processing::parameters::all_default()); -} - - /** - * \ingroup measure_grp + * \ingroup PMP_measure_grp + * * identifies faces only present in `m1` and `m2` as well as the faces present * in both polygon meshes. Two faces are matching if they have the same * orientation and the same points. @@ -1027,19 +918,19 @@ * @tparam PolygonMesh1 a model of `HalfedgeListGraph` and `FaceListGraph` * @tparam PolygonMesh2 a model of `HalfedgeListGraph` and `FaceListGraph` * @tparam FaceOutputIterator1 model of `OutputIterator` - holding `boost::graph_traits::%face_descriptor`. + * holding `boost::graph_traits::%face_descriptor`. * @tparam FaceOutputIterator2 model of `OutputIterator` - holding `boost::graph_traits::%face_descriptor`. + * holding `boost::graph_traits::%face_descriptor`. * @tparam FacePairOutputIterator model of `OutputIterator` - holding `std::pair::%face_descriptor, - boost::graph_traits::%face_descriptor`. + * holding `std::pair::%face_descriptor, + * boost::graph_traits::%face_descriptor`. * * @tparam NamedParameters1 a sequence of \ref bgl_namedparameters "Named Parameters" * @tparam NamedParameters2 a sequence of \ref bgl_namedparameters "Named Parameters" * - * @param m1 the first `PolygonMesh` - * @param m2 the second `PolygonMesh` - * @param common output iterator collecting the faces that are common to both meshes. + * @param m1 the first polygon mesh + * @param m2 the second polygon mesh + * @param common output iterator collecting the faces that are common to both meshes * @param m1_only output iterator collecting the faces that are only in `m1` * @param m2_only output iterator collecting the faces that are only in `m2` * @param np1 an optional sequence of \ref bgl_namedparameters "Named Parameters" among the ones listed below @@ -1072,11 +963,15 @@ typename FacePairOutputIterator, typename FaceOutputIterator1, typename FaceOutputIterator2, - typename NamedParameters1, - typename NamedParameters2 > -void match_faces(const PolygonMesh1& m1, const PolygonMesh2& m2, - FacePairOutputIterator common, FaceOutputIterator1 m1_only, FaceOutputIterator2 m2_only, - const NamedParameters1& np1, const NamedParameters2& np2) + typename NamedParameters1 = parameters::Default_named_parameters, + typename NamedParameters2 = parameters::Default_named_parameters > +void match_faces(const PolygonMesh1& m1, + const PolygonMesh2& m2, + FacePairOutputIterator common, + FaceOutputIterator1 m1_only, + FaceOutputIterator2 m2_only, + const NamedParameters1& np1 = parameters::default_values(), + const NamedParameters2& np2 = parameters::default_values()) { typedef typename GetVertexPointMap::const_type VPMap1; typedef typename GetVertexPointMap::const_type VPMap2; @@ -1188,21 +1083,6 @@ } } -template -void match_faces(const PolygonMesh1& m1, const PolygonMesh2& m2, - FacePairOutputIterator common, FaceOutputIterator1 m1_only, FaceOutputIterator2 m2_only, - const NamedParameters& np) -{ - match_faces(m1, m2, common, m1_only, m2_only, np, parameters::all_default()); -} - -template -void match_faces(const PolygonMesh1& m1, const PolygonMesh2& m2, - FacePairOutputIterator common, FaceOutputIterator1 m1_only, FaceOutputIterator2 m2_only) -{ - match_faces(m1, m2, common, m1_only, m2_only, parameters::all_default(), parameters::all_default()); -} - } // namespace Polygon_mesh_processing } // namespace CGAL diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/merge_border_vertices.h cgal-5.5/include/CGAL/Polygon_mesh_processing/merge_border_vertices.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/merge_border_vertices.h 2022-06-03 19:05:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/merge_border_vertices.h 2022-07-13 19:06:08.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/merge_border_vertices.h $ -// $Id: merge_border_vertices.h 4231bc8 2020-07-13T14:17:50+02:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/merge_border_vertices.h $ +// $Id: merge_border_vertices.h bb0b9a8 2022-03-07T15:32:37+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -19,7 +19,7 @@ #include #include #include -#include +#include #include #include @@ -62,7 +62,7 @@ const VertexPointMap& vpm; }; -// Given a container of vectors of halfedges whose target are geometrically indentical, +// Given a container of vectors of halfedges whose target are geometrically identical, // check that the intervals described by these pairs are either disjoint or nested. // This is done to ensure valid combinatorics when we merge the vertices. // If incompatible (overlapping) intervals are found, the pair representating the longest @@ -205,6 +205,7 @@ } // \ingroup PMP_repairing_grp +// // merges target vertices of a list of halfedges. // Halfedges must be sorted in the list. // @@ -259,6 +260,7 @@ } // end of internal /// \ingroup PMP_repairing_grp +/// /// merges identical vertices around a cycle of boundary edges. /// /// @tparam PolygonMesh a model of `FaceListGraph` and `MutableFaceGraph`. @@ -277,11 +279,12 @@ /// \cgalParamNEnd /// \cgalNamedParamsEnd /// -template -void merge_duplicated_vertices_in_boundary_cycle( - typename boost::graph_traits::halfedge_descriptor h, - PolygonMesh& pm, - const NamedParameters& np) +/// \see `merge_duplicated_vertices_in_boundary_cycles()` +template +void merge_duplicated_vertices_in_boundary_cycle(typename boost::graph_traits::halfedge_descriptor h, + PolygonMesh& pm, + const NamedParameters& np = parameters::default_values()) { typedef typename boost::graph_traits::halfedge_descriptor halfedge_descriptor; typedef typename GetVertexPointMap::const_type Vpm; @@ -315,6 +318,7 @@ } /// \ingroup PMP_repairing_grp +/// /// extracts boundary cycles and merges the duplicated vertices of each cycle. /// /// @tparam PolygonMesh a model of `FaceListGraph` and `MutableFaceGraph`. @@ -333,9 +337,10 @@ /// \cgalNamedParamsEnd /// /// \sa `merge_duplicated_vertices_in_boundary_cycle()` -template +template void merge_duplicated_vertices_in_boundary_cycles( PolygonMesh& pm, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { typedef typename boost::graph_traits::halfedge_descriptor halfedge_descriptor; @@ -346,20 +351,6 @@ merge_duplicated_vertices_in_boundary_cycle(h, pm, np); } -template -void merge_duplicated_vertices_in_boundary_cycles(PolygonMesh& pm) -{ - merge_duplicated_vertices_in_boundary_cycles(pm, parameters::all_default()); -} - -template -void merge_duplicated_vertices_in_boundary_cycle( - typename boost::graph_traits::halfedge_descriptor h, - PolygonMesh& pm) -{ - merge_duplicated_vertices_in_boundary_cycle(h, pm, parameters::all_default()); -} - } } // end of CGAL::Polygon_mesh_processing #endif //CGAL_POLYGON_MESH_PROCESSING_MERGE_BORDER_VERTICES_H diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/Non_manifold_feature_map.h cgal-5.5/include/CGAL/Polygon_mesh_processing/Non_manifold_feature_map.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/Non_manifold_feature_map.h 2022-06-03 19:05:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/Non_manifold_feature_map.h 2022-07-13 19:06:07.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/Non_manifold_feature_map.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/Non_manifold_feature_map.h $ // $Id: Non_manifold_feature_map.h 64ead81 2021-10-08T15:28:13+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/orientation.h cgal-5.5/include/CGAL/Polygon_mesh_processing/orientation.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/orientation.h 2022-06-03 19:05:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/orientation.h 2022-07-13 19:06:08.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/orientation.h $ -// $Id: orientation.h 1ab6b44 2021-10-15T10:22:08+02:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/orientation.h $ +// $Id: orientation.h 317cc6c 2022-06-29T09:50:45+02:00 Laurent Rineau // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -21,7 +21,7 @@ #include #include #include -#include +#include #include #include #include @@ -30,10 +30,10 @@ #include #include -#include #include #include +#include #include namespace CGAL { @@ -141,11 +141,14 @@ /** * \ingroup PMP_orientation_grp - * tests whether a closed triangle mesh has a positive orientation. + * + * \brief tests whether a closed triangle mesh has a positive orientation. + * * A closed triangle mesh is considered to have a positive orientation if the normal vectors * to all its faces point outside the domain bounded by the triangle mesh. * The normal vector to each face is chosen pointing on the side of the face * where its sequence of vertices is seen counterclockwise. + * * @pre `CGAL::is_closed(tm)` * @pre `CGAL::is_triangle_mesh(tm)` * @pre If `tm` contains several connected components, they are oriented consistently. @@ -181,9 +184,10 @@ * * \sa `CGAL::Polygon_mesh_processing::reverse_face_orientations()` */ -template +template bool is_outward_oriented(const TriangleMesh& tm, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { CGAL_warning(CGAL::is_closed(tm)); CGAL_warning(CGAL::is_triangle_mesh(tm)); @@ -230,17 +234,6 @@ return internal::is_outward_oriented(v_max, tm, np); } -///\cond SKIP_IN_MANUAL - -template -bool is_outward_oriented(const TriangleMesh& tm) -{ - return is_outward_oriented(tm, - CGAL::Polygon_mesh_processing::parameters::all_default()); -} - -/// \endcond - template void reverse_orientation(typename boost::graph_traits::halfedge_descriptor first, PolygonMesh& pmesh) { @@ -270,9 +263,12 @@ /** * \ingroup PMP_orientation_grp +* * reverses for each face the order of the vertices along the face boundary. * * @tparam PolygonMesh a model of `FaceListGraph` and `MutableFaceGraph` +* +* @sa `is_outward_oriented()` */ template void reverse_face_orientations(PolygonMesh& pmesh) @@ -311,7 +307,7 @@ reverse_orientation(halfedge(fd,pmesh),pmesh); //extract all border cycles - boost::unordered_set already_seen; + std::unordered_set already_seen; std::vector border_cycles; for(halfedge_descriptor h : halfedges(pmesh)) if ( is_border(h,pmesh) && already_seen.insert(h).second ) @@ -328,13 +324,16 @@ /** * \ingroup PMP_orientation_grp +* * reverses for each face in `face_range` the order of the vertices along the face boundary. -* The function does not perform any control and if the orientation change of the faces +* The function does not perform any control and if the change of orientation of the faces * makes the polygon mesh invalid, the behavior is undefined. * * @tparam PolygonMesh a model of `FaceListGraph` and `MutableFaceGraph` * @tparam FaceRange range of face descriptors, model of `Range`. * Its iterator type is `InputIterator`. +* +* @sa `is_outward_oriented()` */ template void reverse_face_orientations(const FaceRange& face_range, PolygonMesh& pmesh) @@ -365,10 +364,11 @@ /** * \ingroup PMP_orientation_grp -* makes each connected component of a closed triangulated surface mesh -* inward or outward oriented. +* makes each closed connected component of a triangulated surface mesh +* inward or outward oriented. If a connected component is not closed, +* the orientation may or may not be changed or not is not guaranteed. * -* @tparam TriangleMesh a model of `FaceListGraph` and `MutableFaceGraph` . +* @tparam TriangleMesh a model of `FaceListGraph` and `MutableFaceGraph` * @tparam NamedParameters a sequence of \ref bgl_namedparameters * * @param tm a closed triangulated surface mesh @@ -405,9 +405,10 @@ * \cgalParamNEnd * \cgalNamedParamsEnd */ -template +template void orient(TriangleMesh& tm, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { typedef boost::graph_traits Graph_traits; typedef typename Graph_traits::vertex_descriptor vertex_descriptor; @@ -418,7 +419,6 @@ CGAL_precondition(is_triangle_mesh(tm)); CGAL_precondition(is_valid_polygon_mesh(tm)); - CGAL_precondition(is_closed(tm)); using parameters::choose_parameter; using parameters::get_parameter; @@ -464,20 +464,23 @@ //orient ccs outward for(std::size_t id=0; id -void orient(TriangleMesh& tm) -{ - orient(tm, parameters::all_default()); -} - /*! * \ingroup PMP_orientation_grp * Enumeration type used to indicate the status of a set of faces @@ -652,6 +655,7 @@ /*! * \ingroup PMP_orientation_grp + * * assigns to each face of `tm` an id corresponding to the volume connected component * it contributes to. * @@ -811,11 +815,11 @@ * * \return the number of volume components defined by `tm` */ -template +template std::size_t volume_connected_components(const TriangleMesh& tm, VolumeFaceIndexMap volume_id_map, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { CGAL_precondition(is_triangle_mesh(tm)); CGAL_precondition(is_closed(tm)); @@ -978,6 +982,8 @@ cc_to_handle.reset(xtrm_cc_id); nesting_levels[xtrm_cc_id] = k; + if(!cc_to_handle.any()) break; + // collect id inside xtrm_cc_id CC typedef Side_of_triangle_mesh Side_of_tm; typename Side_of_tm::AABB_tree aabb_tree(faces_per_cc[xtrm_cc_id].begin(), @@ -1232,7 +1238,7 @@ * indicates if `tm` bounds a volume. * See \ref coref_def_subsec for details. * - * @tparam TriangleMesh a model of `MutableFaceGraph`, `HalfedgeListGraph` and `FaceListGraph`. + * @tparam TriangleMesh a model of `HalfedgeListGraph`, `FaceListGraph`, and `MutableFaceGraph`. * @tparam NamedParameters a sequence of \ref bgl_namedparameters "Named Parameters" * * @param tm a closed triangulated surface mesh @@ -1240,6 +1246,8 @@ * * @pre `CGAL::is_closed(tm)` * + * @attention if `tm` is self-intersecting the behavior of this function is undefined. + * * \cgalNamedParamsBegin * \cgalParamNBegin{vertex_point_map} * \cgalParamDescription{a property map associating points to the vertices of `tm`} @@ -1269,8 +1277,8 @@ * * \see `CGAL::Polygon_mesh_processing::orient_to_bound_a_volume()` */ -template -bool does_bound_a_volume(const TriangleMesh& tm, const NamedParameters& np) +template +bool does_bound_a_volume(const TriangleMesh& tm, const NamedParameters& np = parameters::default_values()) { typedef boost::graph_traits GT; typedef typename GT::face_descriptor face_descriptor; @@ -1287,27 +1295,13 @@ return res!=0; } -/// \cond SKIP_IN_MANUAL -template -bool does_bound_a_volume(const TriangleMesh& tm) -{ - return does_bound_a_volume(tm, parameters::all_default()); -} - -template -std::size_t volume_connected_components(const TriangleMesh& tm, VolumeFaceIndexMap volume_id_map) -{ - return volume_connected_components(tm, volume_id_map, parameters::all_default()); -} -/// \endcond - - -/** \ingroup PMP_orientation_grp +/*! + * \ingroup PMP_orientation_grp * * orients the connected components of `tm` to make it bound a volume. * See \ref coref_def_subsec for a precise definition. * - * @tparam TriangleMesh a model of `MutableFaceGraph`, `HalfedgeListGraph` and `FaceListGraph`. + * @tparam TriangleMesh a model of `HalfedgeListGraph`, `FaceListGraph`, and `MutableFaceGraph`. * @tparam NamedParameters a sequence of \ref bgl_namedparameters * * @param tm a closed triangulated surface mesh @@ -1349,9 +1343,9 @@ * * \see `CGAL::Polygon_mesh_processing::does_bound_a_volume()` */ -template +template void orient_to_bound_a_volume(TriangleMesh& tm, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { typedef boost::graph_traits Graph_traits; typedef typename Graph_traits::face_descriptor face_descriptor; @@ -1415,19 +1409,14 @@ reverse_face_orientations(faces_to_reverse, tm); } -template -void orient_to_bound_a_volume(TriangleMesh& tm) -{ - orient_to_bound_a_volume(tm, parameters::all_default()); -} - /*! * \ingroup PMP_orientation_grp + * * reverses the connected components of `tm` having compatible boundary cycles * that could be merged if their orientation were made compatible, and stitches them. * Connected components are examined by increasing number of faces. * - * @tparam PolygonMesh a model of `MutableFaceGraph`, `HalfedgeListGraph` and `FaceListGraph`. + * @tparam PolygonMesh a model of `HalfedgeListGraph`, `FaceListGraph`, and `MutableFaceGraph`. * @tparam NamedParameters a sequence of \ref bgl_namedparameters * * @param pm a surface mesh @@ -1460,9 +1449,10 @@ * \cgalParamNEnd * \cgalNamedParamsEnd */ -template +template void merge_reversible_connected_components(PolygonMesh& pm, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { typedef boost::graph_traits GrT; typedef typename GrT::face_descriptor face_descriptor; @@ -1627,11 +1617,239 @@ } } -template -void merge_reversible_connected_components(PolygonMesh& pm) + +/*! + * \ingroup PMP_orientation_grp + * + * identifies faces whose orientation must be reversed in order to enable stitching of connected components. + * Each face is assigned a bit (`false` or `true`) + * such that two faces have compatible orientations iff they are assigned the same bits. + * + * @tparam PolygonMesh a model of `HalfedgeListGraph`, `FaceGraph`. + * @tparam FaceBitMap a model of `WritablePropertyMap` with `face_descriptor` as key and `bool` as value_type + * @tparam NamedParameters a sequence of \ref bgl_namedparameters + * + * @param pm a surface mesh + * @param fbm face bit map indicating if a face orientation should be reversed to be stitchable + * (see `CGAL::Polygon_mesh_processing::stitch_borders()`) with another face. If `false` is + * returned, the map will not be filled. + * @param np an optional sequence of \ref bgl_namedparameters "Named Parameters" among the ones listed below + * + * @return `true` if `pm` can be reoriented and `false` otherwise. + * + * \cgalNamedParamsBegin + * \cgalParamNBegin{vertex_point_map} + * \cgalParamDescription{a property map associating points to the vertices of `pm`} + * \cgalParamType{a class model of `ReadablePropertyMap` with `boost::graph_traits::%vertex_descriptor` + * as key type and `%Point_3` as value type} + * \cgalParamDefault{`boost::get(CGAL::vertex_point, pm)`} + * \cgalParamExtra{If this parameter is omitted, an internal property map for `CGAL::vertex_point_t` + * should be available for the vertices of `pm`.} + * \cgalParamNEnd + * \cgalNamedParamsEnd + * + * \sa reverse_face_orientations() + * \sa stitch_borders() + * + */ +template +bool compatible_orientations(const PolygonMesh& pm, + FaceBitMap fbm, + const NamedParameters& np = parameters::default_values()) { - merge_reversible_connected_components(pm, parameters::all_default()); + typedef boost::graph_traits GrT; + typedef typename GrT::face_descriptor face_descriptor; + typedef typename GrT::halfedge_descriptor halfedge_descriptor; + + typedef typename GetVertexPointMap::const_type Vpm; + + typedef typename boost::property_traits::value_type Point_3; + Vpm vpm = parameters::choose_parameter(parameters::get_parameter(np, internal_np::vertex_point), + get_const_property_map(vertex_point, pm)); + + typedef std::size_t F_cc_id; // Face cc-id + typedef std::size_t E_id; // Edge id + + typedef dynamic_face_property_t Face_property_tag; + typedef typename boost::property_map::const_type Face_cc_map; + Face_cc_map f_cc_ids = get(Face_property_tag(), pm); + F_cc_id nb_cc = connected_components(pm, f_cc_ids); + + std::vector nb_faces_per_cc(nb_cc, 0); + for (face_descriptor f : faces(pm)) + nb_faces_per_cc[ get(f_cc_ids, f) ]+=1; + + // collect border halfedges + std::vector border_hedges; + for (halfedge_descriptor h : halfedges(pm)) + if ( is_border(h, pm) ) + border_hedges.push_back(h); + std::size_t nb_bh=border_hedges.size(); + + // compute the edge id of all border halfedges + typedef std::map< std::pair, E_id> E_id_map; + E_id_map e_id_map; + E_id e_id = 0; + + std::vector eids; + eids.reserve(nb_bh); + for (halfedge_descriptor h : border_hedges) + { + std::pair< typename E_id_map::iterator, bool > insert_res = + e_id_map.insert( + std::make_pair( + make_sorted_pair(get(vpm, source(h, pm)), + get(vpm, target(h,pm))), e_id) ); + if (insert_res.second) + ++e_id; + eids.push_back(insert_res.first->second); + } + + // fill incidence per edge + std::vector< std::vector > incident_ccs_per_edge(e_id); + for (std::size_t i=0; i > compatible_patches(nb_cc); + std::vector< std::vector > incompatible_patches(nb_cc); + + for (std::vector& v : incident_ccs_per_edge) + { + // ignore non-manifold edges + if (v.size()!=2) continue; + F_cc_id front_id=get(f_cc_ids, face(opposite(v.front(), pm), pm)); + F_cc_id back_id=get(f_cc_ids, face(opposite(v.back(), pm), pm)); + + if (front_id==back_id) continue; + + if (get(vpm, source(v.front(), pm))==get(vpm, target(v.back(), pm))) + { + compatible_patches[front_id].push_back(back_id); + compatible_patches[back_id].push_back(front_id); + } + else + { + incompatible_patches[front_id].push_back(back_id); + incompatible_patches[back_id].push_back(front_id); + } + } + + for(F_cc_id cc_id=0; cc_id cc_bits(nb_cc, false); + std::vector cc_handled(nb_cc, false); + + std::set< F_cc_id, std::function > sorted_ids( + [&nb_faces_per_cc](F_cc_id i, F_cc_id j) + {return nb_faces_per_cc[i]==nb_faces_per_cc[j] ? inb_faces_per_cc[j];} + ); + for(F_cc_id cc_id=0; cc_id bit_0_cc_set; + std::set bit_1_cc_set; + bit_0_cc_set.insert(cc_id); + std::vector stack_0=compatible_patches[cc_id]; + std::vector stack_1=incompatible_patches[cc_id]; + + while( !stack_0.empty() || !stack_1.empty()) + { + // increase the set of patches for bit 0 using compatible_patches + while( !stack_0.empty() ) + { + F_cc_id back=stack_0.back(); + stack_0.pop_back(); + if (!bit_0_cc_set.insert(back).second) continue; + stack_0.insert(stack_0.end(), compatible_patches[back].begin(), compatible_patches[back].end()); + } + + // extract incompatible components + for (F_cc_id cid : bit_0_cc_set) + stack_1.insert(stack_1.end(), incompatible_patches[cid].begin(), incompatible_patches[cid].end()); + // increase the set of patches for bit 1 using compatible_patches + while( !stack_1.empty() ) + { + F_cc_id back=stack_1.back(); + stack_1.pop_back(); + if (!bit_1_cc_set.insert(back).second) continue; + stack_1.insert(stack_1.end(), compatible_patches[back].begin(), compatible_patches[back].end()); + } + for (F_cc_id cid1 : bit_1_cc_set) + for (F_cc_id cid0 : incompatible_patches[cid1]) + if( bit_0_cc_set.count(cid0)==0 ) + stack_0.push_back(cid0); + } + + // set intersection should be empty + std::vector inter; + std::set_intersection( bit_0_cc_set.begin(), bit_0_cc_set.end(), + bit_1_cc_set.begin(), bit_1_cc_set.end(), + std::back_inserter(inter)); + if (!inter.empty()) + { +#ifdef CGAL_PMP_DEBUG_ORIENTATION + std::cout << "DEBUG: Set intersection is not empty\n"; +#endif + return false; + } + + // set bit of compatible patches + for (F_cc_id id : bit_0_cc_set) + { + if (cc_handled[id]) + { + if(cc_bits[id] == true) + { +#ifdef CGAL_PMP_DEBUG_ORIENTATION + std::cout << "DEBUG: orientation bit already set to 1, incompatible with 0\n"; +#endif + return false; + } + else + continue; + } + cc_handled[id]=true; + } + + // set bit of incompatible patches + for (F_cc_id id : bit_1_cc_set) + { + if (cc_handled[id]) + { + if(cc_bits[id] == false) + { +#ifdef CGAL_PMP_DEBUG_ORIENTATION + std::cout << "DEBUG: orientation bit already set to 0, incompatible with 1\n"; +#endif + return false; + } + else + continue; + } + cc_handled[id]=true; + cc_bits[id]=true; + } + } + + // set the bit per face + for (face_descriptor f : faces(pm)) + put(fbm, f, cc_bits[get(f_cc_ids,f)]); + + return true; } + } // namespace Polygon_mesh_processing } // namespace CGAL #endif // CGAL_ORIENT_POLYGON_MESH_H diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/orient_polygon_soup_extension.h cgal-5.5/include/CGAL/Polygon_mesh_processing/orient_polygon_soup_extension.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/orient_polygon_soup_extension.h 2022-06-03 19:05:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/orient_polygon_soup_extension.h 2022-07-13 19:06:08.000000000 +0000 @@ -3,12 +3,14 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/orient_polygon_soup_extension.h $ -// $Id: orient_polygon_soup_extension.h b539d4a 2021-08-05T18:06:50+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/orient_polygon_soup_extension.h $ +// $Id: orient_polygon_soup_extension.h 010bcfc 2022-03-30T08:03:50+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // -// Author(s) : Sebastien Loriot and Maxime Gimeno +// Author(s) : Sebastien Loriot +// Maxime Gimeno +// Mael Rouxel-Labbé #ifndef CGAL_ORIENT_POLYGON_SOUP_EXTENSION_H #define CGAL_ORIENT_POLYGON_SOUP_EXTENSION_H @@ -17,6 +19,7 @@ #include #include +#include #include #include @@ -30,35 +33,37 @@ #include #endif // CGAL_LINKED_WITH_TBB - namespace CGAL { - namespace Polygon_mesh_processing { /*! * \ingroup PMP_orientation_grp + * * duplicates each point \a p at which the intersection * of an infinitesimally small ball centered at \a p * with the polygons incident to it is not a topological disk. * * @tparam PointRange a model of the concepts `RandomAccessContainer` - * and `BackInsertionSequence` whose `value_type` is the point type. + * and `BackInsertionSequence` whose `value_type` is the point type * @tparam PolygonRange a model of the concept `RandomAccessContainer` * whose `value_type` is a model of the concept `RandomAccessContainer` - * whose `value_type` is `std::size_t`, and is also a model of `BackInsertionSequence`. + * whose `value_type` is `std::size_t`, and is also a model of `BackInsertionSequence` * * @param points points of the soup of polygons. Some additional points might be pushed back to resolve * non-manifoldness or non-orientability issues. * @param polygons each element in the vector describes a polygon using the indices of the points in `points`. * If needed the order of the indices of a polygon might be reversed. + * * @return `false` if some points were duplicated, thus producing a self-intersecting surface mesh. * @return `true` otherwise. + * * @sa `orient_polygon_soup()` + * @sa `duplicate_non_manifold_vertices()` */ template bool duplicate_non_manifold_edges_in_polygon_soup(PointRange& points, - PolygonRange& polygons) + PolygonRange& polygons) { std::size_t inital_nb_pts = points.size(); typedef CGAL::Polygon_mesh_processing::internal:: @@ -81,22 +86,166 @@ * \ingroup PMP_orientation_grp * * orients each triangle of a triangle soup using the orientation of its + * closest non degenerate triangle in a triangle soup. + * + * \tparam Concurrency_tag enables sequential versus parallel orientation. + * Possible values are `Sequential_tag` (the default), + * `Parallel_if_available_tag`, and `Parallel_tag`. + * \tparam ReferencePointRange a model of the concept `RandomAccessContainer` + * whose `value_type` is the point type + * \tparam ReferenceTriangleRange a model of the concept `RandomAccessContainer` + * whose `value_type` is a model of the concept `RandomAccessContainer` + * whose `value_type` is `std::size_t` and is of size 3 + * \tparam PointRange a model of the concept `RandomAccessContainer` whose `value_type` is the point type + * \tparam TriangleRange a model of the concept `RandomAccessContainer` + * whose `value_type` is a model of the concept `RandomAccessContainer` + * whose `value_type` is `std::size_t`and is of size 3. + * \tparam NamedParameters1 a sequence of \ref bgl_namedparameters "Named Parameters" + * \tparam NamedParameters2 a sequence of \ref bgl_namedparameters "Named Parameters" + * + * \param ref_points the points of the reference soup + * \param ref_faces triples of indices of points in `ref_points` defining the triangles of the reference soup + * \param points the points of the soup to be oriented + * \param faces triples of indices of points in `points` defining the triangles of the soup + * \param np1 an optional sequence of \ref bgl_namedparameters "Named Parameters" among the ones listed below + * + * \cgalNamedParamsBegin + * \cgalParamNBegin{point_map} + * \cgalParamDescription{a property map associating points to the elements of the point set `ref_points`} + * \cgalParamType{a model of `ReadablePropertyMap` whose key type is the value type + * of the iterator of `ReferencePointRange` and whose value type is `geom_traits::Point_3`} + * \cgalParamDefault{`CGAL::Identity_property_map`} + * \cgalParamNEnd + * + * \cgalParamNBegin{geom_traits} + * \cgalParamDescription{an instance of a geometric traits class} + * \cgalParamType{a class model of `Kernel`} + * \cgalParamDefault{a \cgal Kernel deduced from the point type, using `CGAL::Kernel_traits`} + * \cgalParamNEnd + * \cgalNamedParamsEnd + * + * \param np2 an optional sequence of \ref bgl_namedparameters "Named Parameters" among the ones listed below + * + * \cgalNamedParamsBegin + * \cgalParamNBegin{point_map} + * \cgalParamDescription{a property map associating points to the elements of the point set `points`} + * \cgalParamType{a model of `ReadablePropertyMap` whose key type is the value type + * of the iterator of `PointRange` and whose value type is `geom_traits::Point_3`} + * \cgalParamDefault{`CGAL::Identity_property_map`} + * \cgalParamNEnd + * \cgalNamedParamsEnd + * + * \attention The types of points in `ReferencePointRange`, `PointRange`, and `geom_traits` must be the same. + */ +template +void orient_triangle_soup_with_reference_triangle_soup(const ReferencePointRange& ref_points, + const ReferenceFaceRange& ref_faces, + const PointRange& points, + FaceRange& faces, + const NamedParameters1& np1 = parameters::default_values(), + const NamedParameters2& np2 = parameters::default_values()) +{ + using parameters::choose_parameter; + using parameters::get_parameter; + + typedef Point_set_processing_3_np_helper NP_helper1; + typedef typename NP_helper1::Const_point_map PointMap1; + + typedef Point_set_processing_3_np_helper NP_helper2; + typedef typename NP_helper2::Const_point_map PointMap2; + typedef typename boost::property_traits::reference PM2_Point_ref; + + typedef typename boost::property_traits::value_type Point_3; + CGAL_static_assertion((std::is_same::value_type>::value)); + + typedef typename CGAL::Kernel_traits::Kernel K; + typedef typename K::Triangle_3 Triangle; + typedef typename K::Vector_3 Vector; + + PointMap1 point_map1 = NP_helper1::get_const_point_map(ref_points, np1); + PointMap2 point_map2 = NP_helper2::get_const_point_map(points, np2); + + K k = choose_parameter(get_parameter(np1, internal_np::geom_traits)); + + typename K::Construct_centroid_3 centroid = k.construct_centroid_3_object(); + typename K::Construct_vector_3 vector = k.construct_vector_3_object(); + typename K::Is_degenerate_3 is_degenerate = k.is_degenerate_3_object(); + typename K::Compute_scalar_product_3 scalar_product = k.compute_scalar_product_3_object(); + typename K::Construct_cross_product_vector_3 cross_product = k.construct_cross_product_vector_3_object(); + + // build a tree filtering degenerate faces + std::vector ref_triangles; + ref_triangles.reserve(ref_faces.size()); + for(const auto& f : ref_faces) + { + Triangle tr(get(point_map1, ref_points[f[0]]), + get(point_map1, ref_points[f[1]]), + get(point_map1, ref_points[f[2]])); + + if(!is_degenerate(tr)) + ref_triangles.emplace_back(tr); + } + + typedef typename std::vector::const_iterator Iterator; + typedef CGAL::AABB_triangle_primitive Primitive; + typedef CGAL::AABB_traits Tree_traits; + + CGAL::AABB_tree tree(ref_triangles.begin(), ref_triangles.end()); + + // now orient the faces + tree.build(); + tree.accelerate_distance_queries(); + + auto process_facet = [&](const std::size_t fid) + { + PM2_Point_ref p0 = get(point_map2, points[faces[fid][0]]); + PM2_Point_ref p1 = get(point_map2, points[faces[fid][1]]); + PM2_Point_ref p2 = get(point_map2, points[faces[fid][2]]); + const Point_3 mid = centroid(p0, p1, p2); + + auto pt_and_ref_tr = tree.closest_point_and_primitive(mid); + const Triangle& ref_tr = *(pt_and_ref_tr.second); + Vector ref_n = cross_product(vector(ref_tr[0], ref_tr[1]), + vector(ref_tr[0], ref_tr[2])); + if(is_negative(scalar_product(ref_n, cross_product(vector(p0, p1), vector(p0, p2))))) + std::swap(faces[fid][1], faces[fid][2]); + }; + +#if !defined(CGAL_LINKED_WITH_TBB) + CGAL_static_assertion_msg (!(std::is_convertible::value), + "Parallel_tag is enabled but TBB is unavailable."); +#else + if(std::is_convertible::value) + tbb::parallel_for(std::size_t(0), faces.size(), std::size_t(1), process_facet); + else +#endif + std::for_each(boost::counting_iterator(0), + boost::counting_iterator(faces.size()), + process_facet); +} + +/*! + * \ingroup PMP_orientation_grp + * + * orients each triangle of a triangle soup using the orientation of its * closest non degenerate triangle in `tm_ref`. * * \tparam Concurrency_tag enables sequential versus parallel orientation. - Possible values are `Sequential_tag` (the default), - `Parallel_if_available_tag`, and `Parallel_tag`. - * \tparam PointRange a model of the concepts `RandomAccessContainer` - * and `BackInsertionSequence` whose value type is the point type. - * @tparam TriangleRange a model of the concept `RandomAccessContainer` - * whose `value_type` is a model of the concept `RandomAccessContainer` - * whose `value_type` is `std::size_t`and of size 3. - * @tparam TriangleMesh a model of `FaceListGraph` and `MutableFaceGraph` . + * Possible values are `Sequential_tag` (the default), + * `Parallel_if_available_tag`, and `Parallel_tag`. + * \tparam PointRange a model of the concept `RandomAccessContainer` whose value type is the point type + * \tparam TriangleRange a model of the concept `RandomAccessContainer` + * whose `value_type` is a model of the concept `RandomAccessContainer` + * whose `value_type` is `std::size_t`and of size 3 + * \tparam TriangleMesh a model of `FaceListGraph` * - * \param tm_ref the reference triangle_mesh. - * \param points the points of the soup. - * \param triangles the triangles of the soup. - * @param np an optional sequence of \ref bgl_namedparameters "Named Parameters" among the ones listed below + * \param tm_ref the reference triangle_mesh + * \param points the points of the soup + * \param triangles the triangles of the soup + * \param np1 an optional sequence of \ref bgl_namedparameters "Named Parameters" among the ones listed below * * \cgalNamedParamsBegin * \cgalParamNBegin{vertex_point_map} @@ -108,46 +257,75 @@ * * \cgalParamNBegin{geom_traits} * \cgalParamDescription{an instance of a geometric traits class} - * \cgalParamType{The traits class must provide the nested functor `Collinear_3` to check whether three points are collinear. } + * \cgalParamType{a class model of `Kernel`} * \cgalParamDefault{a \cgal Kernel deduced from the point type, using `CGAL::Kernel_traits`} - * \cgalParamExtra{The geometric traits class must be compatible with the vertex point type.} * \cgalParamNEnd * \cgalNamedParamsEnd * - * \attention The types of points in `PointRange`, `geom_traits` and `vertex_point_map` must be the same. + * \param np2 an optional sequence of \ref bgl_namedparameters "Named Parameters" among the ones listed below + * + * \cgalNamedParamsBegin + * \cgalParamNBegin{point_map} + * \cgalParamDescription{a property map associating points to the elements of the point set `points`} + * \cgalParamType{a model of `ReadablePropertyMap` whose key type is the value type + * of the iterator of `PointRange` and whose value type is `geom_traits::Point_3`} + * \cgalParamDefault{`CGAL::Identity_property_map`} + * \cgalParamNEnd + * \cgalNamedParamsEnd + * + * \attention The types of points in `PointRange`, `geom_traits`, and `vertex_point_map` must be the same. + * + * \sa `orient_polygon_soup()` */ - -template -void -orient_triangle_soup_with_reference_triangle_mesh( - const TriangleMesh& tm_ref, - PointRange& points, - TriangleRange& triangles, - const NamedParameters& np) +template +void orient_triangle_soup_with_reference_triangle_mesh(const TriangleMesh& tm_ref, + const PointRange& points, + TriangleRange& triangles, + const NamedParameters1& np1 = parameters::default_values(), + const NamedParameters2& np2 = parameters::default_values()) { namespace PMP = CGAL::Polygon_mesh_processing; + using parameters::choose_parameter; + using parameters::get_parameter; + typedef boost::graph_traits GrT; typedef typename GrT::face_descriptor face_descriptor; - typedef typename PointRange::value_type Point_3; - typedef typename GetGeomTraits::type K; - typedef typename - GetVertexPointMap::const_type Vpm; + typedef typename GetGeomTraits::type K; + typedef typename K::Vector_3 Vector; + + typedef typename GetVertexPointMap::const_type VPM; + typedef typename boost::property_traits::value_type Point_3; + + VPM vpm = choose_parameter(get_parameter(np1, internal_np::vertex_point), + get_const_property_map(CGAL::vertex_point, tm_ref)); - Vpm vpm = parameters::choose_parameter(parameters::get_parameter(np, internal_np::vertex_point), - get_const_property_map(CGAL::vertex_point, tm_ref)); + typedef Point_set_processing_3_np_helper NP_helper; + typedef typename NP_helper::Const_point_map PointMap; + typedef typename boost::property_traits::reference PM2_Point_ref; + PointMap point_map = NP_helper::get_const_point_map(points, np2); + CGAL_static_assertion((std::is_same::value_type>::value)); + + K k = choose_parameter(get_parameter(np1, internal_np::geom_traits)); + + typename K::Construct_centroid_3 centroid = k.construct_centroid_3_object(); + typename K::Construct_vector_3 vector = k.construct_vector_3_object(); + typename K::Compute_scalar_product_3 scalar_product = k.compute_scalar_product_3_object(); + typename K::Construct_cross_product_vector_3 cross_product = k.construct_cross_product_vector_3_object(); + + // build a tree filtering degenerate faces typedef std::function Face_predicate; - Face_predicate is_not_deg = - [&tm_ref, np](face_descriptor f) + Face_predicate is_not_deg = [&](face_descriptor f) { - return !PMP::is_degenerate_triangle_face(f, tm_ref, np); + return !PMP::is_degenerate_triangle_face(f, tm_ref, np1); }; - // build a tree filtering degenerate faces - typedef CGAL::AABB_face_graph_triangle_primitive Primitive; + typedef CGAL::AABB_face_graph_triangle_primitive Primitive; typedef CGAL::AABB_traits Tree_traits; boost::filter_iterator @@ -159,18 +337,18 @@ // now orient the faces tree.build(); tree.accelerate_distance_queries(); - auto process_facet = - [&points, &tree, &tm_ref, &triangles](std::size_t fid) { - const Point_3& p0 = points[triangles[fid][0]]; - const Point_3& p1 = points[triangles[fid][1]]; - const Point_3& p2 = points[triangles[fid][2]]; - const Point_3 mid = CGAL::centroid(p0, p1, p2); - std::pair pt_and_f = - tree.closest_point_and_primitive(mid); - auto face_ref_normal = PMP::compute_face_normal(pt_and_f.second, tm_ref); - if(face_ref_normal * cross_product(p1-p0, p2-p0) < 0) { + auto process_facet = [&](const std::size_t fid) + { + PM2_Point_ref p0 = get(point_map, points[triangles[fid][0]]); + PM2_Point_ref p1 = get(point_map, points[triangles[fid][1]]); + PM2_Point_ref p2 = get(point_map, points[triangles[fid][2]]); + const Point_3 mid = centroid(p0, p1, p2); + + std::pair pt_and_f = tree.closest_point_and_primitive(mid); + Vector face_ref_normal = PMP::compute_face_normal(pt_and_f.second, tm_ref, + CGAL::parameters::vertex_point_map(vpm)); + if(is_negative(scalar_product(face_ref_normal, cross_product(vector(p0,p1), vector(p0, p2))))) std::swap(triangles[fid][1], triangles[fid][2]); - } }; #if !defined(CGAL_LINKED_WITH_TBB) @@ -181,23 +359,12 @@ tbb::parallel_for(std::size_t(0), triangles.size(), std::size_t(1), process_facet); else #endif - std::for_each( - boost::counting_iterator (0), - boost::counting_iterator (triangles.size()), - process_facet); + std::for_each(boost::counting_iterator (0), + boost::counting_iterator (triangles.size()), + process_facet); } +} // namespace Polygon_mesh_processing +} // namespace CGAL -template -void -orient_triangle_soup_with_reference_triangle_mesh( - const TriangleMesh& tm_ref, - PointRange& points, - TriangleRange& triangles) -{ - orient_triangle_soup_with_reference_triangle_mesh(tm_ref, points, triangles, CGAL::parameters::all_default()); -} - -}}//end namespace CGAL::Polygon_mesh_processing #endif // CGAL_ORIENT_POLYGON_SOUP_EXTENSION_H diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/orient_polygon_soup.h cgal-5.5/include/CGAL/Polygon_mesh_processing/orient_polygon_soup.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/orient_polygon_soup.h 2022-06-03 19:05:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/orient_polygon_soup.h 2022-07-13 19:06:08.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/orient_polygon_soup.h $ -// $Id: orient_polygon_soup.h 17ca9d8 2021-08-05T18:11:26+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/orient_polygon_soup.h $ +// $Id: orient_polygon_soup.h bb0b9a8 2022-03-07T15:32:37+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -21,7 +21,7 @@ #include #include #include -#include +#include #include #include @@ -480,7 +480,9 @@ /** * \ingroup PMP_orientation_grp - * tries to consistently orient a soup of polygons in 3D space. + * + * \brief tries to consistently orient a soup of polygons in 3D space. + * * When it is not possible to produce a combinatorial manifold surface, * some points are duplicated. * Because a polygon soup does not have any connectivity (each point @@ -521,11 +523,13 @@ * @return `true` if the orientation operation succeded. * @return `false` if some points were duplicated, thus producing a self-intersecting polyhedron. * + * @sa `orient_triangle_soup_with_reference_triangle_mesh()` */ -template +template bool orient_polygon_soup(PointRange& points, PolygonRange& polygons, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { using parameters::choose_parameter; using parameters::get_parameter; @@ -546,14 +550,6 @@ return inital_nb_pts==points.size(); } - -template -bool orient_polygon_soup(PointRange& points, - PolygonRange& polygons) -{ - return orient_polygon_soup(points, polygons, parameters::all_default()); -} - } }//end namespace CGAL::Polygon_mesh_processing #include diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/polygon_mesh_to_polygon_soup.h cgal-5.5/include/CGAL/Polygon_mesh_processing/polygon_mesh_to_polygon_soup.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/polygon_mesh_to_polygon_soup.h 2022-06-03 19:05:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/polygon_mesh_to_polygon_soup.h 2022-07-13 19:06:08.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/polygon_mesh_to_polygon_soup.h $ -// $Id: polygon_mesh_to_polygon_soup.h 1d98f0f 2020-12-09T14:40:02+01:00 Maxime Gimeno +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/polygon_mesh_to_polygon_soup.h $ +// $Id: polygon_mesh_to_polygon_soup.h c169c41 2022-01-12T13:33:49+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -16,8 +16,9 @@ #include #include +#include #include -#include +#include #include #include #include @@ -26,8 +27,33 @@ #include #include +#include +#include + namespace CGAL { namespace Polygon_mesh_processing { +namespace internal { + +template +struct PM_to_PS_point_converter +{ + PS_Point operator()(const PM_Point& p) const + { + CGAL_static_assertion((std::is_convertible::value)); + return PS_Point(p); + } +}; + +template +struct PM_to_PS_point_converter > +{ + std::array operator()(const PM_Point& p) const + { + return { p[0], p[1], p[2] }; + } +}; + +} // namespace internal /// \ingroup PMP_repairing_grp /// @@ -68,11 +94,11 @@ /// template + typename NamedParameters = parameters::Default_named_parameters> void polygon_mesh_to_polygon_soup(const PolygonMesh& mesh, PointRange& points, PolygonRange& polygons, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { typedef typename boost::graph_traits::vertex_descriptor vertex_descriptor; typedef typename boost::graph_traits::halfedge_descriptor halfedge_descriptor; @@ -84,20 +110,24 @@ typedef typename GetVertexPointMap::const_type VPM; VPM vpm = choose_parameter(get_parameter(np, internal_np::vertex_point), get_const_property_map(vertex_point, mesh)); + typedef typename boost::property_traits::value_type PM_Point; typedef CGAL::dynamic_vertex_property_t Vertex_index; typedef typename boost::property_map::const_type VIM; VIM vim = get(Vertex_index(), mesh); + typedef typename boost::range_value::type PS_Point; typedef typename boost::range_value::type Polygon; + internal::PM_to_PS_point_converter converter; + std::size_t index = points.size(); // so that multiple meshes can be put into the same soup CGAL::internal::reserve(points, points.size() + vertices(mesh).size()); CGAL::internal::reserve(polygons, polygons.size() + faces(mesh).size()); for(const vertex_descriptor v : vertices(mesh)) { - points.emplace_back(get(vpm, v)); + points.push_back(converter(get(vpm, v))); put(vim, v, index++); } @@ -117,18 +147,6 @@ } } -/// \cond SKIP_IN_MANUAL - -template -void polygon_mesh_to_polygon_soup(const PolygonMesh& mesh, - PointRange& points, - PolygonRange& polygons) -{ - return polygon_mesh_to_polygon_soup(mesh, points, polygons, CGAL::parameters::all_default()); -} - -/// \endcond - } // namespace Polygon_mesh_processing } // namespace CGAL diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/polygon_soup_to_polygon_mesh.h cgal-5.5/include/CGAL/Polygon_mesh_processing/polygon_soup_to_polygon_mesh.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/polygon_soup_to_polygon_mesh.h 2022-06-03 19:05:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/polygon_soup_to_polygon_mesh.h 2022-07-13 19:06:08.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/polygon_soup_to_polygon_mesh.h $ -// $Id: polygon_soup_to_polygon_mesh.h 19e5e4a 2021-03-02T12:25:28+00:00 Andreas Fabri +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/polygon_soup_to_polygon_mesh.h $ +// $Id: polygon_soup_to_polygon_mesh.h bb0b9a8 2022-03-07T15:32:37+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -145,9 +145,10 @@ /** * \ingroup PMP_repairing_grp * -* returns `true` if the soup of polygons defines a valid polygon +* \brief returns `true` if the soup of polygons defines a valid polygon * mesh that can be handled by * `CGAL::Polygon_mesh_processing::polygon_soup_to_polygon_mesh()`. +* * It checks that each edge has at most two incident faces and such an edge * is visited in opposite direction along the two face boundaries, * no polygon has twice the same vertex, @@ -164,7 +165,7 @@ * @param polygons each element in the range describes a polygon * using the indices of the vertices. * -* @sa `orient_polygon_soup()` +* @sa `CGAL::Polygon_mesh_processing::orient_polygon_soup()` */ template bool is_polygon_soup_a_polygon_mesh(const PolygonRange& polygons) @@ -221,6 +222,7 @@ /** * \ingroup PMP_repairing_grp +* * builds a polygon mesh from a soup of polygons. * * @pre the input polygon soup describes a consistently oriented @@ -269,12 +271,12 @@ */ template + typename NamedParameters_PS = parameters::Default_named_parameters, typename NamedParameters_PM = parameters::Default_named_parameters> void polygon_soup_to_polygon_mesh(const PointRange& points, const PolygonRange& polygons, PolygonMesh& out, - const NamedParameters_PS& np_ps, - const NamedParameters_PM& np_pm) + const NamedParameters_PS& np_ps = parameters::default_values(), + const NamedParameters_PM& np_pm = parameters::default_values()) { CGAL_precondition_msg(is_polygon_soup_a_polygon_mesh(polygons), "Input soup needs to define a valid polygon mesh! See is_polygon_soup_a_polygon_mesh() for further information."); @@ -293,29 +295,6 @@ converter(out, vpm); } -/// \cond SKIP_IN_MANUAL - -template -void polygon_soup_to_polygon_mesh(const PointRange& points, - const PolygonRange& polygons, - PolygonMesh& out, - const NamedParameters_PS& np_ps) -{ - return polygon_soup_to_polygon_mesh(points, polygons, out, np_ps, parameters::all_default()); -} - -template -void polygon_soup_to_polygon_mesh(const PointRange& points, - const PolygonRange& polygons, - PolygonMesh& out) -{ - return polygon_soup_to_polygon_mesh(points, polygons, out, parameters::all_default(), parameters::all_default()); -} - -/// \endcond - } // namespace Polygon_mesh_processing } // namespace CGAL diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/random_perturbation.h cgal-5.5/include/CGAL/Polygon_mesh_processing/random_perturbation.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/random_perturbation.h 2022-06-03 19:05:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/random_perturbation.h 2022-07-13 19:06:08.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/random_perturbation.h $ -// $Id: random_perturbation.h 10ba347 2020-10-02T15:20:53+02:00 Sebastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/random_perturbation.h $ +// $Id: random_perturbation.h bb0b9a8 2022-03-07T15:32:37+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -19,7 +19,7 @@ #include -#include +#include #include #include @@ -97,21 +97,21 @@ /*! * \ingroup PMP_meshing_grp -* @brief randomly perturbs the locations of vertices of a triangulated surface mesh. +* +* @brief randomly perturbs the locations of non-border vertices of a triangulated surface mesh. +* * By default, the vertices are re-projected onto the input surface after perturbation. -* Note that no geometric checks are done after the perturbation -* (face orientation might become incorrect and self-intersections might be introduced). +* Note that no geometric checks are performed after the perturbation (self-intersections might be introduced). * * @tparam VertexRange model of `Range`, holding * vertices of type `boost::graph_traits::%vertex_descriptor`. * Its iterator type is `ForwardIterator`. -* @tparam TriangleMesh model of `MutableFaceGraph`. +* @tparam TriangleMesh model of `VertexListGraph`. * @tparam NamedParameters a sequence of \ref bgl_namedparameters "Named Parameters" * * @param vertices the range of vertices to be perturbed * @param tmesh the triangulated surface mesh -* @param perturbation_max_size the maximal length of moves that can be applied to -* vertices of `tmesh`. +* @param perturbation_max_size the maximal length of moves that can be applied to vertices of `tmesh`. * @param np an optional sequence of \ref bgl_namedparameters "Named Parameters" among the ones listed below * * \cgalNamedParamsBegin @@ -152,11 +152,11 @@ * \cgalNamedParamsEnd * */ -template +template void random_perturbation(VertexRange vertices , TriangleMesh& tmesh , const double& perturbation_max_size - , const NamedParameters& np) + , const NamedParameters& np = parameters::default_values()) { typedef TriangleMesh PM; using parameters::get_parameter; @@ -210,34 +210,64 @@ /*! * \ingroup PMP_meshing_grp -* @brief same as above, but all non-border vertices of `tmesh` are perturbed. +* +* @brief randomly perturbs the locations of all non-border vertices of a triangulated surface mesh. +* +* By default, the vertices are re-projected onto the input surface after perturbation. +* Note that no geometric checks are performed after the perturbation (self-intersections might be introduced). +* +* @tparam TriangleMesh model of `VertexListGraph`. +* @tparam NamedParameters a sequence of \ref bgl_namedparameters "Named Parameters" +* +* @param tmesh the triangulated surface mesh +* @param perturbation_max_size the maximal length of moves that can be applied to vertices of `tmesh`. +* @param np an optional sequence of \ref bgl_namedparameters "Named Parameters" among the ones listed below +* +* \cgalNamedParamsBegin +* \cgalParamNBegin{vertex_point_map} +* \cgalParamDescription{a property map associating points to the vertices of `tmesh`} +* \cgalParamType{a class model of `ReadWritePropertyMap` with `boost::graph_traits::%vertex_descriptor` +* as key type and `%Point_3` as value type} +* \cgalParamDefault{`boost::get(CGAL::vertex_point, tmesh)`} +* \cgalParamNEnd +* +* \cgalParamNBegin{geom_traits} +* \cgalParamDescription{an instance of a geometric traits class} +* \cgalParamType{a class model of `Kernel`} +* \cgalParamDefault{a \cgal Kernel deduced from the point type, using `CGAL::Kernel_traits`} +* \cgalParamExtra{The geometric traits class must be compatible with the vertex point type.} +* \cgalParamNEnd +* +* \cgalParamNBegin{vertex_is_constrained_map} +* \cgalParamDescription{a property map containing the constrained-or-not status of each vertex of `tmesh`} +* \cgalParamType{a class model of `ReadWritePropertyMap` with `boost::graph_traits::%vertex_descriptor` +* as key type and `bool` as value type. It must be default constructible.} +* \cgalParamDefault{a default property map where no vertex is constrained} +* \cgalParamExtra{A constrained vertex cannot be modified at all during perturbation} +* \cgalParamNEnd +* +* \cgalParamNBegin{do_project} +* \cgalParamDescription{indicates whether vertices are reprojected on the input surface +* after their coordinates random perturbation} +* \cgalParamType{Boolean} +* \cgalParamDefault{`true`} +* \cgalParamNEnd +* +* \cgalParamNBegin{random_seed} +* \cgalParamDescription{a value to seed the random number generator, and make the perturbation deterministic} +* \cgalParamType{unsigned int} +* \cgalParamDefault{`unsigned int(-1)`} +* \cgalParamNEnd +* \cgalNamedParamsEnd */ -template +template void random_perturbation(TriangleMesh& tmesh , const double& perturbation_max_size - , const NamedParameters& np) + , const NamedParameters& np = parameters::default_values()) { random_perturbation(vertices(tmesh), tmesh, perturbation_max_size, np); } -template -void random_perturbation(VertexRange vertices - , TriangleMesh& tmesh - , const double& perturbation_max_size) -{ - random_perturbation(vertices, tmesh, perturbation_max_size, - parameters::all_default()); -} - -template -void random_perturbation(TriangleMesh& tmesh - , const double& perturbation_max_size) -{ - random_perturbation(tmesh, - perturbation_max_size, - parameters::all_default()); -} - } //end namespace Polygon_mesh_processing } //end namespace CGAL diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/refine.h cgal-5.5/include/CGAL/Polygon_mesh_processing/refine.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/refine.h 2022-06-03 19:05:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/refine.h 2022-07-13 19:06:08.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/refine.h $ -// $Id: refine.h 48bd92b 2020-04-13T13:03:05+02:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/refine.h $ +// $Id: refine.h bb0b9a8 2022-03-07T15:32:37+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -16,7 +16,7 @@ #include -#include +#include #include #include @@ -27,7 +27,8 @@ /*! \ingroup PMP_meshing_grp - @brief refines a region of a triangle mesh + + @brief refines a region of a triangle mesh. @tparam TriangleMesh model of `MutableFaceGraph` @tparam FaceRange range of face descriptors, model of `Range`. @@ -72,18 +73,18 @@ typename FaceRange, typename FaceOutputIterator, typename VertexOutputIterator, - typename NamedParameters> + typename NamedParameters = parameters::Default_named_parameters> std::pair refine(TriangleMesh& tmesh, const FaceRange& faces, FaceOutputIterator faces_out, VertexOutputIterator vertices_out, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { using parameters::choose_parameter; using parameters::get_parameter; - CGAL_precondition(is_triangle_mesh(tmesh) ); + CGAL_precondition(is_triangle_mesh(tmesh)); typedef typename GetVertexPointMap::type VPmap; VPmap vpm = choose_parameter(get_parameter(np, internal_np::vertex_point), @@ -97,22 +98,6 @@ return std::make_pair(faces_out, vertices_out); } -///\cond SKIP_IN_MANUAL - template - - std::pair - refine(TriangleMesh& tmesh, - const FaceRange& faces, - FaceOutputIterator faces_out, - VertexOutputIterator vertices_out) - { - return refine(tmesh, faces, faces_out, vertices_out, - CGAL::Polygon_mesh_processing::parameters::all_default()); - } -///\endcond }//end namespace Polygon_mesh_processing }//end namespace CGAL diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/remesh.h cgal-5.5/include/CGAL/Polygon_mesh_processing/remesh.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/remesh.h 2022-06-03 19:05:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/remesh.h 2022-07-13 19:06:08.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/remesh.h $ -// $Id: remesh.h 2a90c31 2021-06-24T12:08:05+02:00 Jane Tournois +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/remesh.h $ +// $Id: remesh.h 477353d 2022-04-20T15:55:50+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -19,7 +19,7 @@ #include -#include +#include #include #ifdef CGAL_PMP_REMESHING_VERBOSE @@ -32,6 +32,7 @@ /*! * \ingroup PMP_meshing_grp +* * @brief remeshes a triangulated region of a polygon mesh. * This operation sequentially performs edge splits, edge collapses, * edge flips, tangential relaxation and projection to the initial surface @@ -52,7 +53,7 @@ * @param np an optional sequence of \ref bgl_namedparameters "Named Parameters" among the ones listed below * * @pre if constraints protection is activated, the constrained edges must -* not be longer than 4/3*`target_edge_length` +* not be longer than 4/3*`target_edge_length`. * * \cgalNamedParamsBegin * \cgalParamNBegin{vertex_point_map} @@ -105,7 +106,7 @@ * * \cgalParamNBegin{protect_constraints} * \cgalParamDescription{If `true`, the edges set as constrained in `edge_is_constrained_map` -* (or by default the boundary edges) are not split nor collapsed during remeshing.} +* (or by default the boundary edges) are neither split nor collapsed during remeshing.} * \cgalParamType{Boolean} * \cgalParamDefault{`false`} * \cgalParamExtra{Note that around constrained edges that have their length higher than @@ -159,7 +160,7 @@ * * \cgalParamNBegin{relax_constraints} * \cgalParamDescription{If `true`, the end vertices of the edges set as constrained -* in `edge_is_constrained_map` and boundary edges move along the} +* in `edge_is_constrained_map` and boundary edges move along the * constrained polylines they belong to.} * \cgalParamType{Boolean} * \cgalParamDefault{`false`} @@ -192,11 +193,11 @@ */ template + , typename NamedParameters = parameters::Default_named_parameters> void isotropic_remeshing(const FaceRange& faces , const double& target_edge_length , PolygonMesh& pmesh - , const NamedParameters& np) + , const NamedParameters& np = parameters::default_values()) { if (boost::begin(faces)==boost::end(faces)) return; @@ -217,7 +218,7 @@ #endif static const bool need_aabb_tree = - parameters::is_default_parameter(get_parameter(np, internal_np::projection_functor)); + parameters::is_default_parameter::value; typedef typename GetGeomTraits::type GT; GT gt = choose_parameter(get_parameter(np, internal_np::geom_traits)); @@ -254,7 +255,7 @@ FPMap fpmap = choose_parameter( get_parameter(np, internal_np::face_patch), internal::Connected_components_pmap(faces, pmesh, ecmap, fimap, - parameters::is_default_parameter(get_parameter(np, internal_np::face_patch)) && (need_aabb_tree + parameters::is_default_parameter::value && (need_aabb_tree #if !defined(CGAL_NO_PRECONDITIONS) || protect // face patch map is used to identify patch border edges to check protected edges are short enough #endif @@ -321,7 +322,7 @@ } if(do_flip) remesher.flip_edges_for_valence_and_shape(); - remesher.tangential_relaxation(smoothing_1d, nb_laplacian); + remesher.tangential_relaxation_impl(smoothing_1d, nb_laplacian); if ( choose_parameter(get_parameter(np, internal_np::do_project), true) ) remesher.project_to_surface(get_parameter(np, internal_np::projection_functor)); #ifdef CGAL_PMP_REMESHING_VERBOSE @@ -337,20 +338,6 @@ #endif } -template -void isotropic_remeshing( - const FaceRange& faces - , const double& target_edge_length - , PolygonMesh& pmesh) -{ - isotropic_remeshing( - faces, - target_edge_length, - pmesh, - parameters::all_default()); -} - /*! * \ingroup PMP_meshing_grp * @brief splits the edges listed in `edges` into sub-edges @@ -404,11 +391,11 @@ */ template + , typename NamedParameters = parameters::Default_named_parameters> void split_long_edges(const EdgeRange& edges , const double& max_length , PolygonMesh& pmesh - , const NamedParameters& np) + , const NamedParameters& np = parameters::default_values()) { typedef PolygonMesh PM; typedef typename boost::graph_traits::edge_descriptor edge_descriptor; @@ -448,17 +435,6 @@ remesher.split_long_edges(edges, max_length); } -template -void split_long_edges(const EdgeRange& edges - , const double& max_length - , PolygonMesh& pmesh) -{ - split_long_edges(edges, - max_length, - pmesh, - parameters::all_default()); -} - } //end namespace Polygon_mesh_processing } //end namespace CGAL diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/repair_degeneracies.h cgal-5.5/include/CGAL/Polygon_mesh_processing/repair_degeneracies.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/repair_degeneracies.h 2022-06-03 19:05:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/repair_degeneracies.h 2022-07-13 19:06:08.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/repair_degeneracies.h $ -// $Id: repair_degeneracies.h 6e10413 2022-03-09T11:33:24+01:00 Laurent Rineau +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/repair_degeneracies.h $ +// $Id: repair_degeneracies.h a4e5360 2022-07-04T10:52:07+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Sebastien Loriot, @@ -20,7 +20,7 @@ #include #include -#include +#include #include #include #include @@ -61,7 +61,8 @@ const Traits& gt, const double cap_threshold, // angle over 160° ==> cap const double needle_threshold, // longest edge / shortest edge over this ratio ==> needle - const double collapse_length_threshold) // max length of edges allowed to be collapsed + const double collapse_length_threshold, // max length of edges allowed to be collapsed + const double flip_triangle_height_threshold_squared) // max height of triangles allowed to be flipped { namespace PMP = CGAL::Polygon_mesh_processing; @@ -83,8 +84,14 @@ } res = PMP::is_cap_triangle_face(f, tmesh, cap_threshold, parameters::vertex_point_map(vpm).geom_traits(gt)); - if(res != null_h && !get(ecm, edge(res, tmesh))) + if( res != null_h && !get(ecm, edge(res, tmesh) ) && + (flip_triangle_height_threshold_squared == 0 || + typename Traits::Compare_squared_distance_3()( get(vpm, target(next(res,tmesh), tmesh)), + typename Traits::Line_3(get(vpm, source(res,tmesh)), get(vpm, target(res,tmesh))), + flip_triangle_height_threshold_squared) != LARGER )) + { return make_array(null_h, res); + } return make_array(null_h, null_h); } @@ -100,13 +107,15 @@ const double cap_threshold, // angle over this threshold (as a cosine) ==> cap const double needle_threshold, // longest edge / shortest edge over this ratio ==> needle const double collapse_length_threshold, // max length of edges allowed to be collapsed + const double flip_triangle_height_threshold_squared, // max height squared of triangles that can be flipped HalfedgeContainer& edges_to_collapse, HalfedgeContainer& edges_to_flip) { typedef typename boost::graph_traits::halfedge_descriptor halfedge_descriptor; std::array res = is_badly_shaped(f, tmesh, vpm, vcm, ecm, gt, cap_threshold, - needle_threshold, collapse_length_threshold); + needle_threshold, + collapse_length_threshold, flip_triangle_height_threshold_squared); if(res[0] != boost::graph_traits::null_halfedge()) { @@ -530,13 +539,13 @@ namespace experimental { // @todo check what to use as priority queue with removable elements, set might not be optimal -template +template bool remove_almost_degenerate_faces(const FaceRange& face_range, TriangleMesh& tmesh, const double cap_threshold, const double needle_threshold, const double collapse_length_threshold, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { using CGAL::parameters::choose_parameter; using CGAL::parameters::get_parameter; @@ -580,6 +589,9 @@ typedef typename boost::property_map::type DVCM; DVCM vcm = get(Vertex_property_tag(), tmesh); + const double flip_triangle_height_threshold_squared = + CGAL::square(choose_parameter(get_parameter(np, internal_np::flip_triangle_height_threshold), 0)); + CGAL_precondition(is_valid_polygon_mesh(tmesh)); CGAL_precondition(is_triangle_mesh(tmesh)); @@ -611,7 +623,8 @@ for(face_descriptor f : face_range) { internal::collect_badly_shaped_triangles(f, tmesh, vpm, vcm, ecm, gt, - cap_threshold, needle_threshold, collapse_length_threshold, + cap_threshold, needle_threshold, + collapse_length_threshold, flip_triangle_height_threshold_squared, edges_to_collapse, edges_to_flip); } @@ -671,7 +684,7 @@ // Verify that the element is still badly shaped const std::array nc = internal::is_badly_shaped(face(h, tmesh), tmesh, vpm, vcm, ecm, gt, - cap_threshold, needle_threshold, collapse_length_threshold); + cap_threshold, needle_threshold, collapse_length_threshold, flip_triangle_height_threshold_squared); if(nc[0] != h) { @@ -757,7 +770,8 @@ if(!is_border(hv, tmesh)) { internal::collect_badly_shaped_triangles(face(hv, tmesh), tmesh, vpm, vcm, ecm, gt, - cap_threshold, needle_threshold, collapse_length_threshold, + cap_threshold, needle_threshold, + collapse_length_threshold, flip_triangle_height_threshold_squared, edges_to_collapse, edges_to_flip); } } @@ -806,7 +820,7 @@ std::array nc = internal::is_badly_shaped(face(h, tmesh), tmesh, vpm, vcm, ecm, gt, cap_threshold, needle_threshold, - collapse_length_threshold); + collapse_length_threshold, flip_triangle_height_threshold_squared); // Check the triangle is still a cap if(nc[1] != h) { @@ -819,6 +833,18 @@ // special case of `edge(h, tmesh)` being a border edge --> remove the face if(is_border(opposite(h, tmesh), tmesh)) { + // check a non-manifold vertex won't be created + bool removal_is_nm=false; + for(halfedge_descriptor hh : CGAL::halfedges_around_target(next(h, tmesh), tmesh)) + { + if (is_border(hh, tmesh)) + { + removal_is_nm = true; + break; + } + } + if (removal_is_nm) continue; + for(halfedge_descriptor hh : CGAL::halfedges_around_face(h, tmesh)) { // Remove from even 'next_edges_to_flip' because it might have been re-added from a flip @@ -868,7 +894,8 @@ CGAL_assertion(!is_border(h, tmesh)); std::array nc = internal::is_badly_shaped(face(h, tmesh), tmesh, vpm, vcm, ecm, gt, - cap_threshold, needle_threshold, collapse_length_threshold); + cap_threshold, needle_threshold, + collapse_length_threshold, flip_triangle_height_threshold_squared); if(nc[1] != boost::graph_traits::null_halfedge() && nc[1] != h) next_edges_to_flip.insert(nc[1]); @@ -909,40 +936,17 @@ return false; } -template -bool remove_almost_degenerate_faces(const FaceRange& face_range, - TriangleMesh& tmesh, - const double cap_threshold, - const double needle_threshold, - const double collapse_length_threshold) -{ - return remove_almost_degenerate_faces(face_range, tmesh, - cap_threshold, needle_threshold, collapse_length_threshold, - CGAL::parameters::all_default()); -} - -template +template bool remove_almost_degenerate_faces(TriangleMesh& tmesh, const double cap_threshold, const double needle_threshold, const double collapse_length_threshold, - const CGAL_PMP_NP_CLASS& np) + const CGAL_NP_CLASS& np = parameters::default_values()) { return remove_almost_degenerate_faces(faces(tmesh), tmesh, cap_threshold, needle_threshold, collapse_length_threshold, np); } -template -bool remove_almost_degenerate_faces(TriangleMesh& tmesh, - const double cap_threshold, - const double needle_threshold, - const double collapse_length_threshold) -{ - return remove_almost_degenerate_faces(faces(tmesh), tmesh, - cap_threshold, needle_threshold, collapse_length_threshold, - CGAL::parameters::all_default()); -} - } // namespace experimental //////////////////////////////////////////////////////////////////////////////////////////////////// @@ -1226,11 +1230,50 @@ return remove_a_border_edge(ed, tm, input_range, edge_set, face_set); } -template +// \ingroup PMP_repairing_grp +// +// removes the degenerate edges from a triangulated surface mesh. +// An edge is considered degenerate if its two extremities share the same location. +// +// @pre `CGAL::is_triangle_mesh(tmesh)` +// +// @tparam TriangleMesh a model of `FaceListGraph` and `MutableFaceGraph` +// @tparam NamedParameters a sequence of \ref bgl_namedparameters "Named Parameters" +// +// @param tmesh the triangulated surface mesh to be repaired +// @param np an optional sequence of \ref bgl_namedparameters "Named Parameters" among the ones listed below +// +// \cgalNamedParamsBegin +// \cgalParamNBegin{vertex_point_map} +// \cgalParamDescription{a property map associating points to the vertices of `tmesh`} +// \cgalParamType{a class model of `ReadablePropertyMap` with `boost::graph_traits::%vertex_descriptor` +// as key type and `%Point_3` as value type} +// \cgalParamDefault{`boost::get(CGAL::vertex_point, tmesh)`} +// \cgalParamExtra{If this parameter is omitted, an internal property map for `CGAL::vertex_point_t` +// must be available in `TriangleMesh`.} +// \cgalParamNEnd +// +// \cgalParamNBegin{geom_traits} +// \cgalParamDescription{an instance of a geometric traits class} +// \cgalParamType{The traits class must provide the nested type `Point_3`, +// and the nested functors: +// - `Compare_distance_3` to compute the distance between 2 points +// - `Less_xyz_3` to compare lexicographically two points +// - `Equal_3` to check whether 2 points are identical. +// For each functor `Foo`, a function `Foo foo_object()` must be provided.} +// \cgalParamDefault{a \cgal Kernel deduced from the point type, using `CGAL::Kernel_traits`} +// \cgalParamExtra{The geometric traits class must be compatible with the vertex point type.} +// \cgalParamNEnd +// \cgalNamedParamsEnd +// +// \return `true` if all degenerate faces were successfully removed, and `false` otherwise. +// +// \sa `degenerate_edges()` +template bool remove_degenerate_edges(const EdgeRange& edge_range, TriangleMesh& tmesh, FaceSet& face_set, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { CGAL_assertion(CGAL::is_triangle_mesh(tmesh)); CGAL_assertion(CGAL::is_valid_polygon_mesh(tmesh)); @@ -1729,39 +1772,25 @@ return all_removed; } -template +template bool remove_degenerate_edges(const EdgeRange& edge_range, TriangleMesh& tmesh, - const CGAL_PMP_NP_CLASS& np) + const CGAL_NP_CLASS& np = parameters::default_values()) { std::set::face_descriptor> face_set; return remove_degenerate_edges(edge_range, tmesh, face_set, np); } -template +template bool remove_degenerate_edges(TriangleMesh& tmesh, - const CGAL_PMP_NP_CLASS& np) + const CGAL_NP_CLASS& np = parameters::default_values()) { std::set::face_descriptor> face_set; return remove_degenerate_edges(edges(tmesh), tmesh, face_set, np); } -template -bool remove_degenerate_edges(const EdgeRange& edge_range, - TriangleMesh& tmesh) -{ - std::set::face_descriptor> face_set; - return remove_degenerate_edges(edge_range, tmesh, face_set, parameters::all_default()); -} - -template -bool remove_degenerate_edges(TriangleMesh& tmesh) -{ - std::set::face_descriptor> face_set; - return remove_degenerate_edges(edges(tmesh), tmesh, face_set, parameters::all_default()); -} - // \ingroup PMP_repairing_grp +// // removes the degenerate faces from a triangulated surface mesh. // A face is considered degenerate if two of its vertices share the same location, // or more generally if all its vertices are collinear. @@ -1771,7 +1800,7 @@ // @tparam TriangleMesh a model of `FaceListGraph` and `MutableFaceGraph` // @tparam NamedParameters a sequence of \ref bgl_namedparameters "Named Parameters" // -// @param tmesh the triangulated surface mesh to be repaired +// @param tmesh the triangulated surface mesh to be repaired // @param np an optional sequence of \ref bgl_namedparameters "Named Parameters" among the ones listed below // // \cgalNamedParamsBegin @@ -1792,7 +1821,7 @@ // - `Collinear_3` to check whether 3 points are collinear // - `Less_xyz_3` to compare lexicographically two points // - `Equal_3` to check whether 2 points are identical. -// For each functor Foo, a function `Foo foo_object()` must be provided.} +// For each functor `Foo`, a function `Foo foo_object()` must be provided.} // \cgalParamDefault{a \cgal Kernel deduced from the point type, using `CGAL::Kernel_traits`} // \cgalParamExtra{The geometric traits class must be compatible with the vertex point type.} // \cgalParamNEnd @@ -1802,10 +1831,12 @@ // We should probably do something with the return type. // // \return `true` if all degenerate faces were successfully removed, and `false` otherwise. -template +// +// \sa `degenerate_faces()` +template bool remove_degenerate_faces(const FaceRange& face_range, TriangleMesh& tmesh, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { CGAL_assertion(CGAL::is_triangle_mesh(tmesh)); CGAL_assertion(CGAL::is_valid_polygon_mesh(tmesh)); @@ -2618,26 +2649,13 @@ return all_removed; } -template -bool remove_degenerate_faces(const FaceRange& face_range, - TriangleMesh& tmesh) -{ - return remove_degenerate_faces(face_range, tmesh, CGAL::parameters::all_default()); -} - -template +template bool remove_degenerate_faces(TriangleMesh& tmesh, - const CGAL_PMP_NP_CLASS& np) + const CGAL_NP_CLASS& np = parameters::default_values()) { return remove_degenerate_faces(faces(tmesh), tmesh, np); } -template -bool remove_degenerate_faces(TriangleMesh& tmesh) -{ - return remove_degenerate_faces(tmesh, CGAL::parameters::all_default()); -} - } // namespace Polygon_mesh_processing } // namespace CGAL diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/repair.h cgal-5.5/include/CGAL/Polygon_mesh_processing/repair.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/repair.h 2022-06-03 19:05:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/repair.h 2022-07-13 19:06:08.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/repair.h $ -// $Id: repair.h b56b368 2022-03-21T11:23:27+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/repair.h $ +// $Id: repair.h 477353d 2022-04-20T15:55:50+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -30,16 +30,16 @@ namespace Polygon_mesh_processing { /// \ingroup PMP_repairing_grp -/// removes the isolated vertices from any polygon mesh. -/// A vertex is considered isolated if it is not incident to any simplex -/// of higher dimension. +/// +/// \brief removes the isolated vertices from any polygon mesh. +/// +/// A vertex is considered isolated if it is not incident to a simplex of higher dimension. /// /// @tparam PolygonMesh a model of `FaceListGraph` and `MutableFaceGraph` /// /// @param pmesh the polygon mesh to be repaired /// -/// @return number of removed isolated vertices -/// +/// @return the number of removed isolated vertices template std::size_t remove_isolated_vertices(PolygonMesh& pmesh) { @@ -62,7 +62,7 @@ /// \ingroup PMP_repairing_grp /// -/// removes connected components whose area or volume is under a certain threshold value. +/// \brief removes connected components whose area or volume is under a certain threshold value. /// /// Thresholds are provided via \ref bgl_namedparameters "Named Parameters". (see below). /// If thresholds are not provided by the user, default values are computed as follows: @@ -147,10 +147,12 @@ /// /// \return the number of connected components removed (ignoring isolated vertices). /// +/// \sa `keep_connected_components()` +/// \sa `remove_connected_components()` template + typename NamedParameters = parameters::Default_named_parameters> std::size_t remove_connected_components_of_negligible_size(TriangleMesh& tmesh, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { using parameters::choose_parameter; using parameters::is_default_parameter; @@ -175,8 +177,8 @@ FT volume_threshold = choose_parameter(get_parameter(np, internal_np::volume_threshold), FT(-1)); // If no threshold is provided, compute it as a % of the bbox - const bool is_default_area_threshold = is_default_parameter(get_parameter(np, internal_np::area_threshold)); - const bool is_default_volume_threshold = is_default_parameter(get_parameter(np, internal_np::volume_threshold)); + const bool is_default_area_threshold = is_default_parameter::value; + const bool is_default_volume_threshold = is_default_parameter::value; const bool dry_run = choose_parameter(get_parameter(np, internal_np::dry_run), false); @@ -343,12 +345,6 @@ return res; } -template -std::size_t remove_connected_components_of_negligible_size(TriangleMesh& tmesh) -{ - return remove_connected_components_of_negligible_size(tmesh, parameters::all_default()); -} - } // namespace Polygon_mesh_processing } // namespace CGAL diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/repair_polygon_soup.h cgal-5.5/include/CGAL/Polygon_mesh_processing/repair_polygon_soup.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/repair_polygon_soup.h 2022-06-03 19:05:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/repair_polygon_soup.h 2022-07-13 19:06:08.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/repair_polygon_soup.h $ -// $Id: repair_polygon_soup.h c03444a 2021-06-17T08:29:08+02:00 Andreas Fabri +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/repair_polygon_soup.h $ +// $Id: repair_polygon_soup.h b25217e 2022-07-07T13:42:37+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Mael Rouxel-Labbé @@ -14,10 +14,10 @@ #include -#include -#include +#include #include +#include #include #include @@ -31,6 +31,7 @@ #include #include #include +#include #include #include #include @@ -158,12 +159,13 @@ // \cgalParamNBegin{geom_traits} // \cgalParamDescription{an instance of a geometric traits class} // \cgalParamType{The traits class must provide the nested functor `Equal_3` -// to compare lexicographically two points a function `Equal_3 equal_3_object()`.} +// to compare lexicographically two points, and a function `Equal_3 equal_3_object()`.} // \cgalParamDefault{a \cgal Kernel deduced from the point type, using `CGAL::Kernel_traits`} // \cgalParamExtra{The geometric traits class must be compatible with the vertex point type.} // \cgalParamNEnd // \cgalNamedParamsEnd // +// \sa `repair_polygon_soup()` template std::size_t simplify_polygons_in_polygon_soup(PointRange& points, PolygonRange& polygons, @@ -218,6 +220,7 @@ // \cgalParamNEnd // \cgalNamedParamsEnd // +// \sa `repair_polygon_soup()` template std::size_t split_pinched_polygons_in_polygon_soup(PointRange& points, PolygonRange& polygons, @@ -312,6 +315,7 @@ // \param polygons a vector of polygons. Each element in the vector describes a polygon // using the indices of the points in `points`. // +// \sa `repair_polygon_soup()` template std::size_t remove_invalid_polygons_in_polygon_soup(PointRange& /*points*/, PolygonRange& polygons) @@ -359,6 +363,7 @@ /// /// \returns the number of removed isolated points /// +/// \sa `repair_polygon_soup()` template std::size_t remove_isolated_points_in_polygon_soup(PointRange& points, PolygonRange& polygons) @@ -447,7 +452,8 @@ /// \ingroup PMP_repairing_grp /// -/// merges the duplicate points in a polygon soup. +/// \brief merges the duplicate points in a polygon soup. +/// /// Note that the index of a point that is merged with another point will thus change /// in all the polygons that the point appears in. /// @@ -475,10 +481,11 @@ /// /// \returns the number of removed points /// -template +/// \sa `repair_polygon_soup()` +template std::size_t merge_duplicate_points_in_polygon_soup(PointRange& points, PolygonRange& polygons, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { typedef typename internal::Polygon_types::P_ID P_ID; typedef typename internal::Polygon_types::Point_3 Point_3; @@ -549,13 +556,6 @@ return removed_points_n; } -template -std::size_t merge_duplicate_points_in_polygon_soup(PointRange& points, - PolygonRange& polygons) -{ - return merge_duplicate_points_in_polygon_soup(points, polygons, CGAL::parameters::all_default()); -} - namespace internal { // Find the position of the (arbitrarily chose) first point of the canonical point @@ -605,22 +605,31 @@ const bool reversed) { const std::size_t polygon_size = polygon.size(); + Polygon canonical_polygon; + CGAL::internal::resize(canonical_polygon, polygon_size); if(reversed) { - std::size_t rfirst = polygon_size - 1 - first; - canonical_polygon.insert(canonical_polygon.end(), polygon.rbegin() + rfirst, polygon.rend()); - canonical_polygon.insert(canonical_polygon.end(), polygon.rbegin(), polygon.rbegin() + rfirst); + std::size_t rfirst = first + 1; + std::size_t pos = 0; + for(std::size_t i=rfirst; i --> 0 ;) // first to 0 + canonical_polygon[pos++] = polygon[i]; + for(std::size_t i=polygon_size; i --> rfirst ;) // polygon_size-1 to first+1 + canonical_polygon[pos++] = polygon[i]; } else { - canonical_polygon.insert(canonical_polygon.end(), polygon.begin() + first, polygon.end()); - canonical_polygon.insert(canonical_polygon.end(), polygon.begin(), polygon.begin() + first); + std::size_t pos = 0; + for(std::size_t i=first; i DuplicateOutputIterator collect_duplicate_polygons(const PointRange& points, const PolygonRange& polygons, @@ -881,10 +891,11 @@ /// /// \returns the number of removed polygons /// -template +/// \sa `repair_polygon_soup()` +template std::size_t merge_duplicate_polygons_in_polygon_soup(const PointRange& points, PolygonRange& polygons, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { using parameters::get_parameter; using parameters::choose_parameter; @@ -980,17 +991,67 @@ return removed_polygons_n; } -template -std::size_t merge_duplicate_polygons_in_polygon_soup(PointRange& points, - PolygonRange& polygons) -{ - return merge_duplicate_polygons_in_polygon_soup(points, polygons, CGAL::parameters::all_default()); -} +namespace internal { + +template ::Polygon_3> +struct Polygon_soup_fixer +{ + template + void operator()(PointRange& points, + PolygonRange& polygons, + const NamedParameters& np) const + { + using parameters::get_parameter; + using parameters::choose_parameter; + + typedef typename GetPolygonGeomTraits::type Traits; + Traits traits = choose_parameter(get_parameter(np, internal_np::geom_traits)); + + #ifdef CGAL_PMP_REPAIR_POLYGON_SOUP_VERBOSE + std::cout << "Repairing soup with " << points.size() << " points and " << polygons.size() << " polygons" << std::endl; + #endif + + merge_duplicate_points_in_polygon_soup(points, polygons, np); + simplify_polygons_in_polygon_soup(points, polygons, traits); + split_pinched_polygons_in_polygon_soup(points, polygons, traits); + remove_invalid_polygons_in_polygon_soup(points, polygons); + merge_duplicate_polygons_in_polygon_soup(points, polygons, np); + remove_isolated_points_in_polygon_soup(points, polygons); + } +}; + +// Specialization if the polygon soup is an array +// Disable repair functions that are meaningless for arrays +template +struct Polygon_soup_fixer > +{ + template + void operator()(PointRange& points, + PolygonRange& polygons, + const NamedParameters& np) const + { + #ifdef CGAL_PMP_REPAIR_POLYGON_SOUP_VERBOSE + std::cout << "Repairing soup with " << points.size() << " points and " << polygons.size() << " arrays" << std::endl; + #endif + + merge_duplicate_points_in_polygon_soup(points, polygons, np); +// skipped steps: +// simplify_polygons_in_polygon_soup(points, polygons, traits); +// split_pinched_polygons_in_polygon_soup(points, polygons, traits); + remove_invalid_polygons_in_polygon_soup(points, polygons); + merge_duplicate_polygons_in_polygon_soup(points, polygons, np); + remove_isolated_points_in_polygon_soup(points, polygons); + } +}; + +} // namespace internal /// \ingroup PMP_repairing_grp /// -/// cleans a given polygon soup through various repairing operations. More precisely, this function -/// carries out the following tasks, in the same order as they are listed: +/// \brief cleans a given polygon soup through various repairing operations. +/// +/// More precisely, this function carries out the following tasks, in the same order as they are listed: /// - merging of duplicate points, using the function /// `CGAL::Polygon_mesh_processing::merge_duplicate_points_in_polygon_soup()`; /// - simplification of polygons to remove geometrically identical consecutive vertices; @@ -1003,7 +1064,7 @@ /// using the function `CGAL::Polygon_mesh_processing::remove_isolated_points_in_polygon_soup()`. /// /// Note that the point and polygon containers will be modified by the repairing operations, -/// and thus the indexation of the polygons will also be changed. +/// and thus the indexing of the polygons will also be changed. /// /// \tparam PointRange a model of the concepts `SequenceContainer` and `Swappable` /// and whose value type is the point type. @@ -1044,34 +1105,13 @@ /// \cgalParamNEnd /// \cgalNamedParamsEnd /// -template +template void repair_polygon_soup(PointRange& points, PolygonRange& polygons, - const NamedParameters& np) -{ - using parameters::get_parameter; - using parameters::choose_parameter; - - typedef typename internal::GetPolygonGeomTraits::type Traits; - Traits traits = choose_parameter(get_parameter(np, internal_np::geom_traits)); - -#ifdef CGAL_PMP_REPAIR_POLYGON_SOUP_VERBOSE - std::cout << "Repairing soup with " << points.size() << " points and " << polygons.size() << " polygons" << std::endl; -#endif - - merge_duplicate_points_in_polygon_soup(points, polygons, np); - internal::simplify_polygons_in_polygon_soup(points, polygons, traits); - internal::split_pinched_polygons_in_polygon_soup(points, polygons, traits); - internal::remove_invalid_polygons_in_polygon_soup(points, polygons); - merge_duplicate_polygons_in_polygon_soup(points, polygons, np); - remove_isolated_points_in_polygon_soup(points, polygons); -} - -template -void repair_polygon_soup(PointRange& points, - PolygonRange& polygons) + const NamedParameters& np = parameters::default_values()) { - return repair_polygon_soup(points, polygons, CGAL::parameters::all_default()); + internal::Polygon_soup_fixer fixer; + fixer(points, polygons, np); } } // end namespace Polygon_mesh_processing diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/repair_self_intersections.h cgal-5.5/include/CGAL/Polygon_mesh_processing/repair_self_intersections.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/repair_self_intersections.h 2022-06-03 19:05:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/repair_self_intersections.h 2022-07-13 19:06:08.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/repair_self_intersections.h $ -// $Id: repair_self_intersections.h 40c7a67 2021-06-17T11:58:30+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/repair_self_intersections.h $ +// $Id: repair_self_intersections.h 373decc 2022-06-29T10:36:34+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Sebastien Loriot, @@ -15,32 +15,40 @@ #include +#include #include #include #include #include +#include #include -#include +#include #include #ifndef CGAL_PMP_REMOVE_SELF_INTERSECTION_NO_POLYHEDRAL_ENVELOPE_CHECK #include #endif +#include +#include +#include #include #include #include -#include +#include #include #include #include +#ifdef CGAL_PMP_REPAIR_SI_USE_OBB_IN_COMPACTIFICATION +#include +#endif #include - #include #include #include #include #include #include +#include #include #include #include @@ -75,8 +83,91 @@ // -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*- +template +FaceOutputIterator replace_faces_with_patch_without_reuse(const std::vector::vertex_descriptor>& border_vertices, + const std::set::face_descriptor>& faces, + const std::vector >& patch, + PolygonMesh& pmesh, + VertexPointMap vpm, + FaceOutputIterator out) +{ + typedef typename boost::graph_traits::vertex_descriptor vertex_descriptor; + typedef typename boost::graph_traits::face_descriptor face_descriptor; + + typedef std::vector Point_face; + typedef std::vector Vertex_face; + + std::map point_to_vd; + + // First, add those for which the vertex will not change + for(const vertex_descriptor v : border_vertices) + { + // In this version, remove_face() will get rid of isolated vertices so only vertices incident + // to at least one face that is not going to be removed will be kept + bool kept_vertex = false; + for(face_descriptor f : faces_around_target(halfedge(v, pmesh), pmesh)) + { + if(f != boost::graph_traits::null_face() && faces.count(f) == 0) + { + kept_vertex = true; + break; + } + } + + if(kept_vertex) + point_to_vd[get(vpm, v)] = v; + } + + for(face_descriptor f : faces) + Euler::remove_face(halfedge(f, pmesh), pmesh); + + CGAL_assertion(is_valid_polygon_mesh(pmesh)); + + // now build a correspondence map and the faces with vertices + const vertex_descriptor null_v = boost::graph_traits::null_vertex(); + for(const Point_face& face : patch) + { + Vertex_face vface; + vface.reserve(face.size()); + + for(const Point& p : face) + { + bool success; + typename std::map::iterator it; + std::tie(it, success) = point_to_vd.emplace(p, null_v); + vertex_descriptor& v = it->second; + + if(success) + { + // first time we meet that point, means it's an interior point and we need to make a new vertex + v = add_vertex(pmesh); + put(vpm, v, p); + } + + vface.push_back(v); + } + + face_descriptor new_f = boost::graph_traits::null_face(); + if(Euler::can_add_face(vface, pmesh)) + new_f = Euler::add_face(vface, pmesh); + + if(new_f == boost::graph_traits::null_face()) + { +#ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG + std::cerr << "Error: failed to insert patch face??" << std::endl; +#endif + return out; + } + + out++ = new_f; + } + + return out; +} + + // @todo these could be extracted to somewhere else, it's useful in itself -template +template FaceOutputIterator replace_faces_with_patch(const std::vector::vertex_descriptor>& border_vertices, const std::set::vertex_descriptor>& interior_vertices, const std::vector::halfedge_descriptor>& border_hedges, @@ -84,10 +175,10 @@ const std::set::face_descriptor>& faces, const std::vector >& patch, PolygonMesh& pmesh, - VPM& vpm, + VertexPointMap vpm, FaceOutputIterator out) { - CGAL_static_assertion((std::is_same::value_type, Point>::value)); + CGAL_static_assertion((std::is_same::value_type, Point>::value)); typedef typename boost::graph_traits::vertex_descriptor vertex_descriptor; typedef typename boost::graph_traits::halfedge_descriptor halfedge_descriptor; @@ -99,6 +190,11 @@ CGAL_precondition(is_valid_polygon_mesh(pmesh)); +#ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG + std::cout << " DEBUG: Replacing range with patch: "; + std::cout << faces.size() << " triangles removed, " << patch.size() << " created\n"; +#endif + // To be used to create new elements std::vector vertex_stack(interior_vertices.begin(), interior_vertices.end()); std::vector edge_stack(interior_edges.begin(), interior_edges.end()); @@ -108,11 +204,11 @@ std::vector patch_with_vertices; patch_with_vertices.reserve(patch.size()); - std::map point_to_vs; + std::map point_to_vd; // first, add those for which the vertex will not change for(const vertex_descriptor v : border_vertices) - point_to_vs[get(vpm, v)] = v; + point_to_vd[get(vpm, v)] = v; // now build a correspondence map and the faces with vertices const vertex_descriptor null_v = boost::graph_traits::null_vertex(); @@ -125,10 +221,10 @@ { bool success; typename std::map::iterator it; - std::tie(it, success) = point_to_vs.insert(std::make_pair(p, null_v)); + std::tie(it, success) = point_to_vd.emplace(p, null_v); vertex_descriptor& v = it->second; - if(success) // first time we meet that point, means it`s an interior point and we need to make a new vertex + if(success) // first time we meet that point, means it's an interior point and we need to make a new vertex { if(vertex_stack.empty()) { @@ -160,16 +256,13 @@ { const vertex_descriptor vs = source(h, pmesh); const vertex_descriptor vt = target(h, pmesh); - halfedge_map.insert(std::make_pair(std::make_pair(vs, vt), h)); + halfedge_map.emplace(std::make_pair(vs, vt), h); set_halfedge(target(h, pmesh), h, pmesh); // update vertex halfedge pointer ++i; } face_descriptor f = boost::graph_traits::null_face(); -#ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG - std::vector new_faces; -#endif for(const Vertex_face& vface : patch_with_vertices) { @@ -183,10 +276,8 @@ face_stack.pop_back(); } + CGAL_assertion(f != boost::graph_traits::null_face()); *out++ = f; -#ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG - new_faces.push_back(f); -#endif std::vector hedges; hedges.reserve(vface.size()); @@ -199,8 +290,8 @@ // get the corresponding halfedge (either a new one or an already created) bool success; typename Vertex_pair_halfedge_map::iterator it; - std::tie(it, success) = halfedge_map.insert(std::make_pair(std::make_pair(vi, vj), - boost::graph_traits::null_halfedge())); + std::tie(it, success) = halfedge_map.emplace(std::make_pair(vi, vj), + boost::graph_traits::null_halfedge()); halfedge_descriptor& h = it->second; if(success) // this halfedge is an interior halfedge @@ -244,29 +335,20 @@ for(face_descriptor f : face_stack) remove_face(f, pmesh); -#ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_OUTPUT +#ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_OUTPUT_INTERMEDIATE_FULL_MESH CGAL::IO::write_polygon_mesh("results/last_patch_replacement.off", pmesh, CGAL::parameters::stream_precision(17)); #endif -#ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG - std::cout << " DEBUG: Replacing range with patch: "; - std::cout << faces.size() << " triangles removed, " << patch.size() << " created\n"; -#endif - CGAL_postcondition(is_valid_polygon_mesh(pmesh)); -#ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG - CGAL_postcondition(!does_self_intersect(new_faces, pmesh)); -#endif - return out; } -template +template FaceOutputIterator replace_faces_with_patch(const std::set::face_descriptor>& face_range, const std::vector >& patch, PolygonMesh& pmesh, - VPM& vpm, + VertexPointMap vpm, FaceOutputIterator out) { typedef typename boost::graph_traits::vertex_descriptor vertex_descriptor; @@ -317,11 +399,11 @@ pmesh, vpm, out); } -template +template void replace_faces_with_patch(const std::set::face_descriptor>& faces, const std::vector >& patch, PolygonMesh& pmesh, - VPM& vpm) + VertexPointMap vpm) { CGAL::Emptyset_iterator out; replace_faces_with_patch(faces, patch, pmesh, vpm, out); @@ -329,39 +411,17 @@ // -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*- -template -void back_up_face_range_as_point_patch(std::vector >& point_patch, - const FaceRange& face_range, - const PolygonMesh& tmesh, - const VertexPointMap vpm) -{ - typedef typename boost::graph_traits::halfedge_descriptor halfedge_descriptor; - typedef typename boost::graph_traits::face_descriptor face_descriptor; - - point_patch.reserve(face_range.size()); - - for(const face_descriptor f : face_range) - { - std::vector face_points; - for(const halfedge_descriptor h : CGAL::halfedges_around_face(halfedge(f, tmesh), tmesh)) - face_points.push_back(get(vpm, target(h, tmesh))); - - point_patch.push_back(face_points); - } -} - -// -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*- - template -void constrain_sharp_and_border_edges(const FaceRange& faces, - TriangleMesh& tmesh, - EdgeConstrainMap& eif, - const bool constrain_sharp_edges, - const double dihedral_angle, - const double /*weak_DA*/, - VertexPointMap vpm, - const GeomTraits& gt) +void constrain_edges(const FaceRange& faces, + TriangleMesh& tmesh, + const bool constrain_border_edges, + const bool constrain_sharp_edges, + const double dihedral_angle, + const double /*weak_DA*/, + EdgeConstrainMap& eif, + VertexPointMap vpm, + const GeomTraits& gt) { typedef typename boost::graph_traits::halfedge_descriptor halfedge_descriptor; typedef typename boost::graph_traits::edge_descriptor edge_descriptor; @@ -370,16 +430,18 @@ typedef typename GeomTraits::FT FT; typedef typename GeomTraits::Vector_3 Vector; - std::map is_border_of_selection; + std::unordered_map is_border_of_selection; for(face_descriptor f : faces) { - // @fixme what about nm vertices for(halfedge_descriptor h : CGAL::halfedges_around_face(halfedge(f, tmesh), tmesh)) { // Default initialization is guaranteed to be `false`. Thus, meet it once will switch // the value to `true` and meeting it twice will switch back to `false`. const edge_descriptor e = edge(h, tmesh); - is_border_of_selection[e] = !(is_border_of_selection[e]); + if(constrain_sharp_edges) + is_border_of_selection[e] = !(is_border_of_selection[e]); + else + is_border_of_selection[e] = false; } } @@ -387,10 +449,7 @@ CGAL::Polygon_mesh_processing::experimental::detect_sharp_edges_pp(faces, tmesh, dihedral_angle, eif, parameters::weak_dihedral_angle(weak_DA)); - // borders are also constrained - for(const auto& ep : is_border_of_selection) - if(ep.second) - put(eif, ep.first, true); + // ... #else // this is basically the code that is in detect_features (at the very bottom) // but we do not want a folding to be marked as a sharp feature so the dihedral angle is also @@ -401,6 +460,9 @@ for(const auto& ep : is_border_of_selection) { bool flag = ep.second; + if(!constrain_border_edges) + flag = false; + if(constrain_sharp_edges && !flag) { const halfedge_descriptor h = halfedge(ep.first, tmesh); @@ -409,15 +471,18 @@ const face_descriptor f1 = face(h, tmesh); const face_descriptor f2 = face(opposite(h, tmesh), tmesh); - // @todo cache normals + // @speed cache normals const Vector n1 = compute_face_normal(f1, tmesh, parameters::vertex_point_map(vpm).geom_traits(gt)); const Vector n2 = compute_face_normal(f2, tmesh, parameters::vertex_point_map(vpm).geom_traits(gt)); - const FT c = gt.compute_scalar_product_3_object()(n1, n2); + if(n1 != CGAL::NULL_VECTOR && n2 != CGAL::NULL_VECTOR) + { + const FT c = gt.compute_scalar_product_3_object()(n1, n2); - // Do not mark as sharp edges with a dihedral angle that is almost `pi` because this is likely - // due to a foldness on the mesh rather than a sharp edge that we wish to preserve - // (Ideally this would be pre-treated as part of the flatness treatment) - flag = (c <= cos_angle && c >= -cos_angle); + // Do not mark as sharp edges with a dihedral angle that is almost `pi` because this is likely + // due to a fold on the mesh rather than a sharp edge that we would like to preserve + // (Ideally this would be pre-treated as part of the flatness treatment) + flag = (c <= cos_angle && c >= -cos_angle); + } } is_border_of_selection[ep.first] = flag; // Only needed for output, really @@ -477,13 +542,19 @@ VertexPointMap local_vpm = get_property_map(vertex_point, local_mesh); - constrain_sharp_and_border_edges(faces(local_mesh), local_mesh, eif, constrain_sharp_edges, - dihedral_angle, weak_DA, local_vpm, gt); + constrain_edges(faces(local_mesh), local_mesh, true /*constrain_borders*/, + constrain_sharp_edges, dihedral_angle, weak_DA, eif, local_vpm, gt); // @todo choice of number of iterations? Till convergence && max of 100? - Polygon_mesh_processing::smooth_mesh(faces(local_mesh), local_mesh, CP::edge_is_constrained_map(eif) - .number_of_iterations(100) - .use_safety_constraints(false)); + Polygon_mesh_processing::angle_and_area_smoothing(faces(local_mesh), + local_mesh, + CP::edge_is_constrained_map(eif) + .number_of_iterations(100) + .use_safety_constraints(false) +#ifndef CGAL_PMP_USE_CERES_SOLVER + .use_area_smoothing(false) +#endif + ); #ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_OUTPUT CGAL::IO::write_polygon_mesh("results/post_smoothing_local_mesh.off", local_mesh, CGAL::parameters::stream_precision(17)); @@ -504,6 +575,7 @@ return false; } + // Patch is acceptable, swap it in std::vector > patch; for(const face_descriptor f : faces(local_mesh)) { @@ -515,7 +587,6 @@ std::set new_faces; replace_faces_with_patch(face_range, patch, tmesh, vpm, std::inserter(new_faces, new_faces.end())); - CGAL_assertion(!does_self_intersect(new_faces, tmesh, parameters::vertex_point_map(vpm))); #ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG if(constrain_sharp_edges) @@ -558,64 +629,124 @@ return true; } -// -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*- +template +struct Strict_intersect_edges // "strict" as in "not sharing a vertex" +{ + typedef typename boost::graph_traits::halfedge_descriptor halfedge_descriptor; + typedef typename GT::Segment_3 Segment; -#ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_OUTPUT + mutable OutputIterator m_iterator; + const TM& m_tmesh; + const VPM m_vpmap; + + typename GT::Construct_segment_3 m_construct_segment; + typename GT::Do_intersect_3 m_do_intersect; + + Strict_intersect_edges(const TM& tmesh, VPM vpmap, const GT& gt, OutputIterator it) + : + m_iterator(it), + m_tmesh(tmesh), + m_vpmap(vpmap), + m_construct_segment(gt.construct_segment_3_object()), + m_do_intersect(gt.do_intersect_3_object()) + {} + + void operator()(const Box* b, const Box* c) const + { + const halfedge_descriptor h = b->info(); + const halfedge_descriptor g = c->info(); + + if(source(h, m_tmesh) == target(g, m_tmesh) || target(h, m_tmesh) == source(g, m_tmesh)) + return; + + const Segment s1 = m_construct_segment(get(m_vpmap, source(h, m_tmesh)), get(m_vpmap, target(h, m_tmesh))); + const Segment s2 = m_construct_segment(get(m_vpmap, source(g, m_tmesh)), get(m_vpmap, target(g, m_tmesh))); + + if(m_do_intersect(s1, s2)) + *m_iterator++ = std::make_pair(b->info(), c->info()); + } +}; -template -void dump_cc(const FaceContainer& cc_faces, - const TriangleMesh& mesh, - const std::string filename) +template +bool is_simple_3(const std::vector::halfedge_descriptor>& cc_border_hedges, + const TriangleMesh& tmesh, + VertexPointMap vpm, + const GeomTraits& gt) { - typedef typename boost::graph_traits::face_descriptor face_descriptor; + typedef typename boost::graph_traits::halfedge_descriptor halfedge_descriptor; - typedef typename GetVertexPointMap::const_type VertexPointMap; - VertexPointMap vpm =get_const_property_map(vertex_point, mesh); + typedef typename boost::property_traits::reference Point_ref; - std::ofstream out(filename); - out.precision(17); + typedef CGAL::Box_intersection_d::ID_FROM_BOX_ADDRESS Box_policy; + typedef CGAL::Box_intersection_d::Box_with_info_d Box; - out << "OFF\n"; - out << 3*cc_faces.size() << " " << cc_faces.size() << " 0\n"; + std::vector boxes; + boxes.reserve(cc_border_hedges.size()); - for(const face_descriptor f : cc_faces) + for(halfedge_descriptor h : cc_border_hedges) { - out << get(vpm, source(halfedge(f, mesh), mesh)) << "\n"; - out << get(vpm, target(halfedge(f, mesh), mesh)) << "\n"; - out << get(vpm, target(next(halfedge(f, mesh), mesh), mesh)) << "\n"; + const Point_ref p = get(vpm, source(h, tmesh)); + const Point_ref q = get(vpm, target(h, tmesh)); + CGAL_assertion(!gt.equal_3_object()(p, q)); + + boxes.emplace_back(p.bbox() + q.bbox(), h); } - int id = 0; - for(const face_descriptor f : cc_faces) + // generate box pointers + std::vector box_ptr; + box_ptr.reserve(boxes.size()); + + for(Box& b : boxes) + box_ptr.push_back(&b); + + typedef boost::function_output_iterator Throwing_output_iterator; + typedef internal::Strict_intersect_edges Throwing_filter; + Throwing_filter throwing_filter(tmesh, vpm, gt, Throwing_output_iterator()); + + try + { + const std::ptrdiff_t cutoff = 2000; + CGAL::box_self_intersection_d(box_ptr.begin(), box_ptr.end(), throwing_filter, cutoff); + } + catch(CGAL::internal::Throw_at_output_exception&) { - CGAL_USE(f); - out << "3 " << id << " " << id+1 << " " << id+2 << "\n"; - id += 3; + return false; } - out.close(); + return true; } +// -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*- + +#ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_OUTPUT template -void dump_tentative_hole(std::vector >& point_patch, - const std::string filename) +void dump_patch(const std::string filename, + std::vector >& point_patch) { std::ofstream out(filename); out << std::setprecision(17); +#ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG + std::cout << " DEBUG: Writing " << point_patch.size() << " face(s) into " << filename << std::endl; +#endif + + std::vector points; + std::vector > faces; + std::map unique_points_with_id; for(const std::vector& face : point_patch) for(const Point& p : face) - unique_points_with_id.insert(std::make_pair(p, 0)); + unique_points_with_id.emplace(p, 0); out << "OFF\n"; out << unique_points_with_id.size() << " " << point_patch.size() << " 0\n"; int unique_id = 0; - for(auto& pp : unique_points_with_id) + for(auto& e : unique_points_with_id) { - out << pp.first << "\n"; - pp.second = unique_id++; + e.second = unique_id++; + out << e.first << "\n"; } for(const std::vector& face : point_patch) @@ -630,6 +761,48 @@ out.close(); } +template +void dump_cc(const std::string filename, + const FaceContainer& cc_faces, + const PolygonMesh& pmesh, + const VertexPointMap vpm) +{ + typedef typename boost::property_traits::value_type Point; + + typedef typename boost::graph_traits::vertex_descriptor vertex_descriptor; + typedef typename boost::graph_traits::face_descriptor face_descriptor; + +#ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG + std::cout << " DEBUG: Writing " << cc_faces.size() << " face(s) into " << filename << std::endl; +#endif + + std::unordered_map vertex_ids; + std::stringstream vss, fss; + std::size_t id = 0; + for(face_descriptor f : cc_faces) + { + fss << degree(f, pmesh); + for(vertex_descriptor v : vertices_around_face(halfedge(f, pmesh), pmesh)) + { + auto res = vertex_ids.emplace(v, id); + if(res.second) // insert was successful (first time seeing this vertex) + { + ++id; + vss << get(vpm, v) << "\n"; + } + + fss << " " << res.first->second /*id*/; + } + fss << "\n"; + } + + std::ofstream out(filename); + out << std::setprecision(17); + + out << "OFF\n"; + out << id << " " << cc_faces.size() << " 0\n"; + out << vss.str() << "\n" << fss.str() << std::endl; +} #endif // CGAL_PMP_REMOVE_SELF_INTERSECTION_OUTPUT // -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*- @@ -677,66 +850,183 @@ return third_p; } -template -bool construct_tentative_hole_patch(std::vector::vertex_descriptor>& cc_border_vertices, - std::set::vertex_descriptor>& cc_interior_vertices, - std::set::edge_descriptor>& cc_interior_edges, - const std::vector& hole_points, - const std::vector& third_points, - const std::vector::halfedge_descriptor>& cc_border_hedges, - const std::set::face_descriptor>& cc_faces, - std::vector >& point_patch, - const TriangleMesh& tmesh, - VertexPointMap /*vpm*/, - const GeomTraits& /*gt*/) +template +bool check_patch_compatibility(const std::vector >& patch, + const std::vector::vertex_descriptor>& border_vertices, + const std::vector::halfedge_descriptor>& border_hedges, + const std::set::edge_descriptor>& interior_edges, + const TriangleMesh& tmesh, + const VertexPointMap vpm) { - CGAL_static_assertion((std::is_same::value_type, Point>::value)); - - typedef typename boost::graph_traits::halfedge_descriptor halfedge_descriptor; - typedef typename boost::graph_traits::face_descriptor face_descriptor; + typedef typename boost::graph_traits::vertex_descriptor vertex_descriptor; + typedef typename boost::graph_traits::halfedge_descriptor halfedge_descriptor; - typedef CGAL::Triple Face_indices; + if(patch.empty()) + { +#ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG + std::cout << " DEBUG: Empty patch" << std::endl; +#endif + return false; + } - CGAL_assertion(cc_border_hedges.size() == cc_border_hedges.size()); - CGAL_assertion(hole_points.size() == third_points.size()); + std::map point_to_vd; + for(vertex_descriptor v : border_vertices) + point_to_vd[get(vpm, v)] = v; - // Collect vertices and edges inside the current selection cc: first collect all vertices and - // edges incident to the faces to remove... - for(const face_descriptor f : cc_faces) + // make sure that the hole filling is valid: check that no edge + // already in the mesh is present in hole_faces. + bool non_manifold_edge_found = false; + for(const std::vector& f : patch) { - for(halfedge_descriptor h : halfedges_around_face(halfedge(f, tmesh), tmesh)) + for(int i=0; i<3; ++i) { - if(halfedge(target(h, tmesh), tmesh) == h) // limit the number of insertions - cc_interior_vertices.insert(target(h, tmesh)); + const Point& p0 = f[i]; + const Point& p1 = f[(i+1)%3]; - cc_interior_edges.insert(edge(h, tmesh)); + auto p0_it = point_to_vd.find(p0); + auto p1_it = point_to_vd.find(p1); + + // @fixme + // If any of the vertices is an inner point created through refine(), we don't have an easy way + //to know the possible correspondency with an existing vertex of the mesh: it might be a vertex + // part of a completely different CC. Unfortunately, a nm edge could be created with this vertex, + // but the complexity to check all vertices of the mesh is horrible (even spatially filtered, + // this needs to be updated, ...) + if(p0_it == point_to_vd.end() || p1_it == point_to_vd.end()) + continue; + + const vertex_descriptor v0 = p0_it->second; + const vertex_descriptor v1 = p1_it->second; + + halfedge_descriptor h = halfedge(v0, v1, tmesh).first; // null halfedge if not found + if(h != boost::graph_traits::null_halfedge()) + { + if(std::find(border_hedges.begin(), border_hedges.end(), h) == border_hedges.end() && + interior_edges.count(edge(h, tmesh)) == 0) + { + non_manifold_edge_found = true; + break; + } + } } + + if(non_manifold_edge_found) + break; } - // ... and then remove those on the boundary - for(halfedge_descriptor h : cc_border_hedges) + if(non_manifold_edge_found) { - cc_interior_vertices.erase(target(h, tmesh)); - cc_interior_edges.erase(edge(h, tmesh)); +#ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG + std::cout << " DEBUG: Triangulation produced is non-manifold when plugged into the mesh.\n"; +#endif + + return false; } - // try to triangulate the hole using default parameters - // (using Delaunay search space if CGAL_HOLE_FILLING_DO_NOT_USE_DT3 is not defined) - std::vector hole_faces; - if(hole_points.size() > 3) - triangulate_hole_polyline(hole_points, third_points, std::back_inserter(hole_faces)); - else - hole_faces.emplace_back(0, 1, 2); // trivial hole filling + return true; +} - if(hole_faces.empty()) - { +// Patch is not valid if: +// - we insert the same face more than once +// - insert (geometric) non-manifold edges +template +bool check_patch_sanity(const std::vector >& patch) +{ + std::set > unique_faces; + std::map, int> unique_edges; + + for(const std::vector& face : patch) + { + if(!unique_faces.emplace(face.begin(), face.end()).second) // this face had already been found + return false; + + int i = (unique_edges.insert(std::make_pair(std::set { face[0], face[1] }, 0)).first->second)++; + if(i == 2) // non-manifold edge + return false; + + i = (unique_edges.insert(std::make_pair(std::set { face[1], face[2] }, 0)).first->second)++; + if(i == 2) // non-manifold edge + return false; + + i = (unique_edges.insert(std::make_pair(std::set { face[2], face[0] }, 0)).first->second)++; + if(i == 2) // non-manifold edge + return false; + } + + // Check for self-intersections within the patch + // @todo something better than just making a mesh out of the soup? + std::vector points; + std::vector > faces; + std::map ids; + + std::size_t c = 0; + for(const std::vector& face : patch) + { + std::vector ps_f; + for(const Point& pt : face) + { + std::size_t id = c; + auto is_insert_successful = ids.emplace(pt, c); + if(is_insert_successful.second) // first time we've seen that point + { + ++c; + points.push_back(pt); + } + else // already seen that point + { + id = is_insert_successful.first->second; + } + + CGAL_assertion(id < points.size()); + ps_f.push_back(id); + } + + faces.push_back(ps_f); + } + + TriangleMesh patch_mesh; + if(is_polygon_soup_a_polygon_mesh(faces)) + polygon_soup_to_polygon_mesh(points, faces, patch_mesh); + else + return false; + + if(does_self_intersect(patch_mesh)) + { +#ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG + std::cout << " DEBUG: Tentative patch has self-intersections." << std::endl; +#endif + + return false; + } + + return true; +} + +template +bool construct_hole_patch(std::vector >& hole_faces, + const std::vector& hole_points, + const std::vector& third_points, + const GeomTraits& gt) +{ + if(hole_points.size() > 3) + { + triangulate_hole_polyline(hole_points, third_points, std::back_inserter(hole_faces), + parameters::geom_traits(gt)); + } + else + { + hole_faces.emplace_back(0, 1, 2); // trivial hole filling + } + + if(hole_faces.empty()) + { #ifndef CGAL_HOLE_FILLING_DO_NOT_USE_DT3 #ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG std::cout << " DEBUG: Failed to fill a hole using Delaunay search space.\n"; #endif triangulate_hole_polyline(hole_points, third_points, std::back_inserter(hole_faces), - parameters::use_delaunay_triangulation(false)); + parameters::use_delaunay_triangulation(false).geom_traits(gt)); #endif if(hole_faces.empty()) { @@ -750,88 +1040,262 @@ #ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_OUTPUT std::cout << " DEBUG: " << hole_faces.size() << " faces in the patch" << std::endl; std::vector > to_dump; - for(const Face_indices& face : hole_faces) + for(const auto& face : hole_faces) { - to_dump.emplace_back(std::initializer_list{hole_points[face.first], - hole_points[face.second], - hole_points[face.third]}); + to_dump.emplace_back(std::initializer_list{ hole_points[face.first], + hole_points[face.second], + hole_points[face.third] }); } CGAL_assertion(to_dump.size() == hole_faces.size()); - static int hole_id = 0; + static int patch_id = 0; std::stringstream oss; - oss << "results/tentative_hole_" << hole_id++ << ".off" << std::ends; + oss << "results/raw_patch_" << patch_id++ << ".off" << std::ends; const std::string filename = oss.str().c_str(); - dump_tentative_hole(to_dump, filename); + dump_patch(filename, to_dump); #endif - // make sure that the hole filling is valid, we check that no - // edge already in the mesh is present in hole_faces. - bool non_manifold_edge_found = false; - for(const Face_indices& triangle : hole_faces) + return true; +} + +template +struct Mesh_projection_functor +{ + typedef typename GeomTraits::Point_3 Point_3; + typedef typename GeomTraits::Triangle_3 Triangle_3; + + typedef std::vector Triangle_container; + typedef CGAL::AABB_triangle_primitive Primitive; + typedef CGAL::AABB_traits Traits; + typedef CGAL::AABB_tree Tree; + + template + Mesh_projection_functor(const TriangleMesh& mesh, + const VPM vpm) { - std::array edges = make_array(triangle.first, triangle.second, - triangle.second, triangle.third, - triangle.third, triangle.first); - for(int k=0; k<3; ++k) - { - const int vi = edges[2*k], vj = edges[2*k+1]; + triangles.reserve(num_faces(mesh)); + for(auto f : faces(mesh)) + triangles.emplace_back(get(vpm, target(halfedge(f, mesh), mesh)), + get(vpm, target(next(halfedge(f, mesh), mesh), mesh)), + get(vpm, source(halfedge(f, mesh), mesh))); - // ignore boundary edges - if(vi+1 == vj || (vj == 0 && static_cast(vi) == cc_border_vertices.size()-1)) - continue; + tree.insert(std::cbegin(triangles), std::cend(triangles)); + } + + Point_3 operator()(const Point_3& p) const { return tree.closest_point(p); } - halfedge_descriptor h = halfedge(cc_border_vertices[vi], cc_border_vertices[vj], tmesh).first; - if(h != boost::graph_traits::null_halfedge() && - cc_interior_edges.count(edge(h, tmesh)) == 0) +private: + Triangle_container triangles; + Tree tree; +}; + +template +bool adapt_patch(std::vector >& point_patch, + const Projector& projector, + const TriangleMesh&, + const GeomTraits&) +{ + typedef typename boost::graph_traits::vertex_descriptor vertex_descriptor; + typedef typename boost::graph_traits::halfedge_descriptor halfedge_descriptor; + typedef typename boost::graph_traits::face_descriptor face_descriptor; + +#ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_OUTPUT + dump_patch("results/pre-adapt.off", point_patch); +#endif + + CGAL_precondition(!point_patch.empty()); + + std::vector soup_points; + std::vector > soup_faces; + + std::size_t pid = 0; + std::map point_ids; + for(const auto& fp : point_patch) + { + CGAL_assertion(fp.size() == 3); + std::array f; + for(std::size_t i=0; i<3; ++i) + { + auto res = point_ids.emplace(fp[i], pid); + if(res.second) { - non_manifold_edge_found = true; - break; + soup_points.push_back(fp[i]); + ++pid; } + f[i] = res.first->second; } + soup_faces.push_back(f); + } - if(non_manifold_edge_found) - break; + CGAL_assertion(is_polygon_soup_a_polygon_mesh(soup_faces)); + + TriangleMesh local_mesh; + auto local_vpm = get(vertex_point, local_mesh); + + polygon_soup_to_polygon_mesh(soup_points, soup_faces, local_mesh); + bool has_SI = does_self_intersect(local_mesh); + + std::vector border_hedges; + border_halfedges(faces(local_mesh), local_mesh, std::back_inserter(border_hedges)); + + std::vector new_vertices; + refine(local_mesh, faces(local_mesh), CGAL::Emptyset_iterator(), std::back_inserter(new_vertices)); + + for(vertex_descriptor v : new_vertices) + put(local_vpm, v, projector(get(local_vpm, v))); + + // The projector can create degenerate faces + if(!remove_degenerate_faces(local_mesh)) + return !has_SI; + +#ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_OUTPUT + static int adapted_patch_id = 0; + std::stringstream oss; + oss << "results/adapted_patch_" << adapted_patch_id++ << ".off" << std::ends; + const std::string filename = oss.str().c_str(); + std::cout << " DEBUG: Writing " << point_patch.size() << " faces into " << filename << std::endl; + IO::write_polygon_mesh(filename, local_mesh); +#endif + + // If the adapted tentative patch has SI, revert back to the base patch + if(does_self_intersect(local_mesh)) + return !has_SI; // if the base patch also has self-intersections, we are done + + // Replace the tentative patch with the new, self-intersection-less, adapted patch + point_patch.clear(); + point_patch.reserve(num_faces(local_mesh)); + + for(face_descriptor f : faces(local_mesh)) + { + std::vector fp { get(local_vpm, target(halfedge(f, local_mesh), local_mesh)), + get(local_vpm, target(next(halfedge(f, local_mesh), local_mesh), local_mesh)), + get(local_vpm, source(halfedge(f, local_mesh), local_mesh)) }; + point_patch.push_back(fp); } - if(non_manifold_edge_found) + return true; +} + +// This overload uses hole filling to construct a patch and tests the manifoldness of the patch +template +bool construct_manifold_hole_patch(std::vector >& point_patch, + const std::vector& hole_points, + const std::vector& third_points, + const std::vector::vertex_descriptor>& cc_border_vertices, + const std::vector::halfedge_descriptor>& cc_border_hedges, + const std::set::edge_descriptor>& cc_interior_edges, + const Projector& projector, + const TriangleMesh& tmesh, + const VertexPointMap vpm, + const GeomTraits& gt) +{ + typedef CGAL::Triple Face_indices; + + // Try to triangulate the hole using default parameters + // (using Delaunay search space if CGAL_HOLE_FILLING_DO_NOT_USE_DT3 is not defined) + std::vector hole_faces; + construct_hole_patch(hole_faces, hole_points, third_points, gt); + + std::vector > local_point_patch; + local_point_patch.reserve(hole_faces.size()); + for(const Face_indices& face : hole_faces) + { + local_point_patch.emplace_back(std::initializer_list{hole_points[face.first], + hole_points[face.second], + hole_points[face.third]}); + } + + if(!adapt_patch(local_point_patch, projector, tmesh, gt)) { #ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG - std::cout << " DEBUG: Triangulation produced is non-manifold when plugged into the mesh.\n"; + std::cout << " DEBUG: Failed to adapt the patch..." << std::endl; #endif - return false; } - point_patch.reserve(point_patch.size() + hole_faces.size()); - for(const Face_indices& face : hole_faces) + // Check manifoldness compatibility with the rest of the mesh + if(!check_patch_compatibility(local_point_patch, cc_border_vertices, cc_border_hedges, cc_interior_edges, tmesh, vpm)) { - point_patch.emplace_back(std::initializer_list{hole_points[face.first], - hole_points[face.second], - hole_points[face.third]}); +#ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG + std::cout << " DEBUG: Incompatible patch" << std::endl; +#endif + return false; } + point_patch.reserve(point_patch.size() + local_point_patch.size()); + std::move(std::begin(local_point_patch), std::end(local_point_patch), std::back_inserter(point_patch)); + + bool is_sane = check_patch_sanity(point_patch); #ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG - std::cout << " DEBUG: Found acceptable hole-filling patch.\n"; + if(is_sane) + std::cout << " DEBUG: Found sane hole-filling patch (" << point_patch.size() << " faces)\n"; + else + std::cout << " DEBUG: Insane hole-filling patch\n"; #endif - return true; + return is_sane; +} + +// This overloads fill the containers `cc_interior_vertices` and `cc_interior_edges` +template +bool construct_tentative_hole_patch_with_border(std::vector >& point_patch, + const std::vector& hole_points, + const std::vector& third_points, + const std::vector::vertex_descriptor>& cc_border_vertices, + const std::vector::halfedge_descriptor>& cc_border_hedges, + std::set::vertex_descriptor>& cc_interior_vertices, + std::set::edge_descriptor>& cc_interior_edges, + const std::set::face_descriptor>& cc_faces, + const Projector& projector, + const TriangleMesh& tmesh, + const VertexPointMap vpm, + const GeomTraits& gt) +{ + typedef typename boost::graph_traits::halfedge_descriptor halfedge_descriptor; + typedef typename boost::graph_traits::face_descriptor face_descriptor; + + CGAL_assertion(hole_points.size() == third_points.size()); + + // Collect vertices and edges inside the current selection cc: first collect all vertices and + // edges incident to the faces to remove... + for(const face_descriptor f : cc_faces) + { + for(halfedge_descriptor h : halfedges_around_face(halfedge(f, tmesh), tmesh)) + { + if(halfedge(target(h, tmesh), tmesh) == h) // to limit the number of insertions + cc_interior_vertices.insert(target(h, tmesh)); + + cc_interior_edges.insert(edge(h, tmesh)); + } + } + + // ... and then remove those on the boundary + for(halfedge_descriptor h : cc_border_hedges) + { + cc_interior_vertices.erase(target(h, tmesh)); + cc_interior_edges.erase(edge(h, tmesh)); + } + + return construct_manifold_hole_patch(point_patch, hole_points, third_points, + cc_border_vertices, cc_border_hedges, cc_interior_edges, + projector, tmesh, vpm, gt); } // This function constructs the ranges `hole_points` and `third_points`. Note that for a sub-hole, // these two ranges are constructed in another function because we don't want to set 'third_points' // for edges that are on the border of the sub-hole but not on the border of the (full) hole. -template -bool construct_tentative_hole_patch(std::vector::vertex_descriptor>& cc_border_vertices, +template +bool construct_tentative_hole_patch(std::vector::value_type> >& patch, + std::vector::vertex_descriptor>& cc_border_vertices, std::set::vertex_descriptor>& cc_interior_vertices, std::set::edge_descriptor>& cc_interior_edges, const std::vector::halfedge_descriptor>& cc_border_hedges, const std::set::face_descriptor>& cc_faces, - std::vector::value_type> >& patch, + const Projector& projector, const TriangleMesh& tmesh, - VertexPointMap vpm, + const VertexPointMap vpm, const GeomTraits& gt) { typedef typename boost::graph_traits::vertex_descriptor vertex_descriptor; @@ -839,6 +1303,8 @@ typedef typename boost::property_traits::value_type Point; + cc_border_vertices.reserve(cc_border_hedges.size()); + std::vector hole_points, third_points; hole_points.reserve(cc_border_hedges.size()); third_points.reserve(cc_border_hedges.size()); @@ -859,19 +1325,21 @@ CGAL_postcondition(hole_points.size() >= 3); - return construct_tentative_hole_patch(cc_border_vertices, cc_interior_vertices, cc_interior_edges, - hole_points, third_points, cc_border_hedges, cc_faces, - patch, tmesh, vpm, gt); + return construct_tentative_hole_patch_with_border(patch, hole_points, third_points, + cc_border_vertices, cc_border_hedges, + cc_interior_vertices, cc_interior_edges, + cc_faces, projector, tmesh, vpm, gt); } -// In that overload, we don't know the border of the patch because the face range is a sub-region +// In this overload, we don't know the border of the patch because the face range is a sub-region // of the hole. We also construct `hole_points` and `third_points`, but with no third point for internal // sharp edges because a local self-intersection is usually caused by folding and thus we do not want -// a third point resulting from folding to constrain the way we fill the hole in the wrong way. -template +// a third point resulting from folding to wrongly influence the hole filling process. +template bool construct_tentative_sub_hole_patch(std::vector::value_type> >& patch, const std::set::face_descriptor>& sub_cc_faces, const std::set::face_descriptor>& cc_faces, + const Projector& projector, TriangleMesh& tmesh, VertexPointMap vpm, const GeomTraits& gt) @@ -921,8 +1389,16 @@ return false; } - // @todo we don't care about those sets, so instead there could be a system of output iterators - // in construct_tentative_hole_patch() instead (and here would be emptyset iterators). + if(!is_simple_3(cc_border_hedges, tmesh, vpm, gt)) + { +#ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG + std::cout << "Hole filling cannot handle non-simple sub border" << std::endl; +#endif + return false; + } + + // @todo we don't care about these sets, so instead there could be a system of output iterators + // in construct_tentative_hole_patch instead (and here would be emptyset iterators). std::set cc_interior_vertices; std::set cc_interior_edges; @@ -953,99 +1429,25 @@ } } - return construct_tentative_hole_patch(cc_border_vertices, cc_interior_vertices, cc_interior_edges, - hole_points, third_points, cc_border_hedges, sub_cc_faces, - patch, tmesh, vpm, gt); + return construct_tentative_hole_patch_with_border(patch, hole_points, third_points, + cc_border_vertices, cc_border_hedges, + cc_interior_vertices, cc_interior_edges, + sub_cc_faces, projector, tmesh, vpm, gt); } // -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*- -// Patch is not valid if: -// - we insert the same face more than once -// - insert (geometric) non-manifold edges -template -bool check_patch_sanity(const std::vector >& patch) -{ - std::set > unique_faces; - std::map, int> unique_edges; - - for(const std::vector& face : patch) - { - if(!unique_faces.emplace(face.begin(), face.end()).second) // this face had already been found - return false; - - int i = (unique_edges.insert(std::make_pair(std::set { face[0], face[1] }, 0)).first->second)++; - if(i == 2) // non-manifold edge - return false; - - i = (unique_edges.insert(std::make_pair(std::set { face[1], face[2] }, 0)).first->second)++; - if(i == 2) // non-manifold edge - return false; - - i = (unique_edges.insert(std::make_pair(std::set { face[2], face[0] }, 0)).first->second)++; - if(i == 2) // non-manifold edge - return false; - } - - // Check for self-intersections - // Don't know anything better than just making a mesh out of the soup for now... - std::vector points; - std::vector > faces; - std::map ids; - - std::size_t c = 0; - for(const std::vector& face : patch) - { - std::vector ps_f; - for(const Point& pt : face) - { - std::size_t id = c; - std::pair::iterator, bool> is_insert_successful = - ids.insert(std::make_pair(pt, c)); - if(is_insert_successful.second) // first time we've seen that point - { - ++c; - points.push_back(pt); - } - else // already seen that point - { - id = is_insert_successful.first->second; - } - - CGAL_assertion(id < points.size()); - ps_f.push_back(id); - } - - faces.push_back(ps_f); - } - - TriangleMesh patch_mesh; - if(is_polygon_soup_a_polygon_mesh(faces)) - polygon_soup_to_polygon_mesh(points, faces, patch_mesh); - else - return false; - - if(does_self_intersect(patch_mesh)) - { -#ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG - std::cout << " DEBUG: Tentative patch has self-intersections." << std::endl; -#endif - - return false; - } - - return true; -} - // This function is only called when the hole is NOT subdivided into smaller holes -template +template bool fill_hole(std::vector::halfedge_descriptor>& cc_border_hedges, - std::set::face_descriptor>& cc_faces, + const std::set::face_descriptor>& cc_faces, std::set::face_descriptor>& working_face_range, - TriangleMesh& tmesh, const PolyhedralEnvelope& cc_envelope, + const Projector& projector, + TriangleMesh& tmesh, VertexPointMap vpm, - const GeomTraits& gt) + const GeomTraits& gt, + bool reuse_faces = true) { typedef typename boost::graph_traits::vertex_descriptor vertex_descriptor; typedef typename boost::graph_traits::edge_descriptor edge_descriptor; @@ -1057,12 +1459,6 @@ std::cout << " DEBUG: Attempting hole-filling (no constraints), " << cc_faces.size() << " faces\n"; #endif - if(!order_border_halfedge_range(cc_border_hedges, tmesh)) - { - CGAL_assertion(false); // we shouldn't fail to orient the boundary cycle of the complete hole - return false; - } - std::set cc_interior_vertices; std::set cc_interior_edges; @@ -1070,9 +1466,8 @@ cc_border_vertices.reserve(cc_border_hedges.size()); std::vector > patch; - if(!construct_tentative_hole_patch(cc_border_vertices, cc_interior_vertices, cc_interior_edges, - cc_border_hedges, cc_faces, patch, tmesh, vpm, gt) || - !check_patch_sanity(patch)) + if(!construct_tentative_hole_patch(patch, cc_border_vertices, cc_interior_vertices, cc_interior_edges, + cc_border_hedges, cc_faces, projector, tmesh, vpm, gt)) { #ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG std::cout << " DEBUG: Failed to find acceptable hole patch\n"; @@ -1081,7 +1476,7 @@ return false; } - if (!cc_envelope.is_empty() && !cc_envelope(patch)) + if(!cc_envelope.is_empty() && !cc_envelope(patch)) { #ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG std::cout << " DEBUG: Patch is not inside the input polyhedral envelope\n"; @@ -1089,22 +1484,32 @@ return false; } - // Could renew the range directly within the patch replacement function - // to avoid erasing and re-adding the same face +#ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG + std::cout << " DEBUG: Found acceptable hole-filling patch (" << patch.size() << " faces)\n"; +#endif + for(const face_descriptor f : cc_faces) working_face_range.erase(f); // Plug the new triangles in the mesh, reusing previous edges and faces - replace_faces_with_patch(cc_border_vertices, cc_interior_vertices, - cc_border_hedges, cc_interior_edges, - cc_faces, patch, tmesh, vpm, - std::inserter(working_face_range, working_face_range.end())); + if(reuse_faces) + { + replace_faces_with_patch(cc_border_vertices, cc_interior_vertices, + cc_border_hedges, cc_interior_edges, + cc_faces, patch, tmesh, vpm, + std::inserter(working_face_range, working_face_range.end())); + } + else + { + replace_faces_with_patch_without_reuse(cc_border_vertices, cc_faces, patch, tmesh, vpm, + std::inserter(working_face_range, working_face_range.end())); + } -#ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_OUTPUT +#ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_OUTPUT_INTERMEDIATE_FULL_MESH static int filed_hole_id = 0; std::stringstream oss; oss << "results/filled_basic_" << filed_hole_id++ << ".off" << std::ends; - std::ofstream(oss.str().c_str()) << std::setprecision(17) << tmesh; + CGAL::IO::write_polygon_mesh(oss.str().c_str(), tmesh, CGAL::parameters::stream_precision(17)); #endif CGAL_postcondition(is_valid_polygon_mesh(tmesh)); @@ -1113,11 +1518,12 @@ } // Same function as above but border of the hole is not known -template -bool fill_hole(std::set::face_descriptor>& cc_faces, +template +bool fill_hole(const std::set::face_descriptor>& cc_faces, std::set::face_descriptor>& working_face_range, - TriangleMesh& tmesh, const PolyhedralEnvelope& cc_envelope, + const Projector& projector, + TriangleMesh& tmesh, VertexPointMap vpm, const GeomTraits& gt) { @@ -1138,20 +1544,20 @@ } if(order_border_halfedge_range(cc_border_hedges, tmesh)) - return fill_hole(cc_border_hedges, cc_faces, working_face_range, tmesh, - cc_envelope,vpm, gt); + return fill_hole(cc_border_hedges, cc_faces, working_face_range, cc_envelope, projector, tmesh, vpm, gt); else return false; } -template +template bool fill_hole_with_constraints(std::vector::halfedge_descriptor>& cc_border_hedges, - std::set::face_descriptor>& cc_faces, + const std::set::face_descriptor>& cc_faces, std::set::face_descriptor>& working_face_range, TriangleMesh& tmesh, const double dihedral_angle, const double weak_DA, const PolyhedralEnvelope& cc_envelope, + const Projector& projector, VertexPointMap vpm, const GeomTraits& gt) { @@ -1168,7 +1574,8 @@ typedef typename boost::property_map::type EIFMap; EIFMap eif = get(Edge_property_tag(), tmesh); - constrain_sharp_and_border_edges(cc_faces, tmesh, eif, true /*constrain_sharp_edges*/, dihedral_angle, weak_DA, vpm, gt); + constrain_edges(cc_faces, tmesh, true /*constrain_border_edges*/, true /*constrain_sharp_edges*/, + dihedral_angle, weak_DA, eif, vpm, gt); // Partition the hole using these constrained edges std::set visited_faces; @@ -1180,269 +1587,375 @@ if(!visited_faces.insert(f).second) // already visited that face continue; - // gather the faces of the sub-hole + // gather the faces making a sub-hole std::set sub_cc; Polygon_mesh_processing::connected_component(f, tmesh, std::inserter(sub_cc, sub_cc.end()), CGAL::parameters::edge_is_constrained_map(eif)); visited_faces.insert(sub_cc.begin(), sub_cc.end()); -#ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG - std::cout << "CC of size " << sub_cc.size() << " (total: " << cc_faces.size() << ")" << std::endl; -#endif ++cc_counter; #ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_OUTPUT - dump_cc(sub_cc, tmesh, "results/current_cc.off"); + dump_cc("results/current_cc.off", sub_cc, tmesh, vpm); #endif // The mesh is not modified, but 'patch' gets filled - if(!construct_tentative_sub_hole_patch(patch, sub_cc, cc_faces, tmesh, vpm, gt)) + if(!construct_tentative_sub_hole_patch(patch, sub_cc, cc_faces, projector, tmesh, vpm, gt)) { // Something went wrong while finding a potential cover for the a sub-hole --> use basic hole-filling - return fill_hole(cc_border_hedges, cc_faces, working_face_range, tmesh, - cc_envelope,vpm, gt); + return fill_hole(cc_border_hedges, cc_faces, working_face_range, cc_envelope, projector, tmesh, vpm, gt); } } -#ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG - std::cout << cc_counter << " independent sub holes" << std::endl; -#endif -#ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_OUTPUT - std::ofstream out("results/hole_fillers.off"); - out.precision(17); - out << "OFF\n"; - out << 3*patch.size() << " " << patch.size() << " 0\n"; +#ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_OUTPUT + dump_patch("results/hole_fillers.off", patch); +#endif - for(const auto& f : patch) + // We're assembling multiple patches so we could have the same face appearing multiple times... + if(!check_patch_sanity(patch)) { - for(const auto& pt : f) - out << pt << "\n"; +#ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG + std::cout << " DEBUG: Unhealthy patch, defaulting to basic fill_hole" << std::endl; +#endif + return fill_hole(cc_border_hedges, cc_faces, working_face_range, cc_envelope, projector, tmesh, vpm, gt); } - int id = 0; - for(std::size_t i=0; i +bool remove_self_intersections_with_hole_filling(std::vector::halfedge_descriptor>& cc_border_hedges, + const std::set::face_descriptor>& cc_faces, + std::set::face_descriptor>& working_face_range, + TriangleMesh& tmesh, + const double strong_dihedral_angle, + const double weak_dihedral_angle, + const PolyhedralEnvelope& cc_envelope, + const Projector& projector, + VertexPointMap vpm, + const GeomTraits& gt) +{ +#ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_OUTPUT + std::ofstream out("results/zone_border.polylines.txt"); + out << std::setprecision(17); + for(const auto& h : cc_border_hedges) + out << "2 " << tmesh.point(source(h, tmesh)) << " " << tmesh.point(target(h, tmesh)) << std::endl; out.close(); #endif - // We're assembling multiple patches so we could have the same face appearing multiple times... - if(!check_patch_sanity(patch)) + if(!order_border_halfedge_range(cc_border_hedges, tmesh)) { #ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG - std::cout << "Unhealthy patch, use base fill_hole" << std::endl; + std::cout << " DEBUG: Failed to orient the boundary??\n"; #endif - return fill_hole(cc_border_hedges, cc_faces, working_face_range, tmesh, - cc_envelope, vpm, gt); + + CGAL_assertion(false); // we shouldn't fail to orient the boundary cycle of the complete hole + return false; } - // check if the patch is inside the input polyhedral envelope - if(!cc_envelope.is_empty() && !cc_envelope(patch)) + if(!is_simple_3(cc_border_hedges, tmesh, vpm, gt)) { #ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG - std::cout << "Patch is not entirely inside the input polyhedral envelope, use base fill_hole" << std::endl; + std::cout << "Hole filling cannot handle non-simple border" << std::endl; #endif - return fill_hole(cc_border_hedges, cc_faces, working_face_range, tmesh, - cc_envelope, vpm, gt); + return false; } - // Plug the hole-filling patch in the mesh - std::set new_faces; - replace_faces_with_patch(cc_faces, patch, tmesh, vpm, std::inserter(new_faces, new_faces.end())); + bool fixed_by_hole_filling = false; - // Otherwise it should have failed the sanity check - CGAL_assertion(!does_self_intersect(new_faces, tmesh, parameters::vertex_point_map(vpm))); +#ifndef CGAL_PMP_REMOVE_SELF_INTERSECTIONS_NO_CONSTRAINTS_IN_HOLE_FILLING + fixed_by_hole_filling = fill_hole_with_constraints(cc_border_hedges, cc_faces, working_face_range, + tmesh, strong_dihedral_angle, weak_dihedral_angle, + cc_envelope, projector, vpm, gt); + if(fixed_by_hole_filling) + { +#ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG + ++self_intersections_solved_by_constrained_hole_filling; +#endif - // Update working range with the new faces - for(const face_descriptor f : cc_faces) - working_face_range.erase(f); + return true; + } +#endif // CGAL_PMP_REMOVE_SELF_INTERSECTIONS_NO_CONSTRAINTS_IN_HOLE_FILLING - working_face_range.insert(new_faces.begin(), new_faces.end()); + fixed_by_hole_filling = fill_hole(cc_border_hedges, cc_faces, working_face_range, cc_envelope, + projector, tmesh, vpm, gt); + if(fixed_by_hole_filling) + { +#ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG + ++self_intersections_solved_by_constrained_hole_filling; +#endif - return true; + return true; + } + + return false; } -template -struct Strict_intersect_edges // "strict" as in "not sharing a vertex" +template +bool handle_CC_with_complex_topology(std::vector::halfedge_descriptor>& cc_border_hedges, + const std::set::face_descriptor>& cc_faces, + std::set::face_descriptor>& working_face_range, + TriangleMesh& tmesh, + const double strong_dihedral_angle, + const double weak_dihedral_angle, + const bool preserve_genus, + const PolyhedralEnvelope& cc_envelope, + const Projector& projector, + VertexPointMap vpm, + const GeomTraits& gt) { - typedef typename boost::graph_traits::halfedge_descriptor halfedge_descriptor; - typedef typename GT::Segment_3 Segment; + typedef typename boost::graph_traits::vertex_descriptor vertex_descriptor; + typedef typename boost::graph_traits::halfedge_descriptor halfedge_descriptor; + typedef typename boost::graph_traits::edge_descriptor edge_descriptor; + typedef typename boost::graph_traits::face_descriptor face_descriptor; - mutable OutputIterator m_iterator; - const TM& m_tmesh; - const VPM m_vpmap; + typedef typename GeomTraits::FT FT; + typedef typename boost::property_traits::value_type Point; - typename GT::Construct_segment_3 m_construct_segment; - typename GT::Do_intersect_3 m_do_intersect; +#ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG + std::cout << " DEBUG: CC with Euler_chi != 1" << std::endl; +#endif - Strict_intersect_edges(const TM& tmesh, VPM vpmap, const GT& gt, OutputIterator it) - : - m_iterator(it), - m_tmesh(tmesh), - m_vpmap(vpmap), - m_construct_segment(gt.construct_segment_3_object()), - m_do_intersect(gt.do_intersect_3_object()) - {} + if(preserve_genus) + { +#ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG + std::cout << " DEBUG: CC not handled, selection is not a topological disk (preserve_genus=true)\n"; +#endif + return false; + } - void operator()(const Box* b, const Box* c) const + const CGAL::Face_filtered_graph ccmesh(tmesh, cc_faces); + if(!ccmesh.is_selection_valid()) { - const halfedge_descriptor h = b->info(); - const halfedge_descriptor g = c->info(); +#ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG + std::cout << " DEBUG: invalid FFG selection\n"; +#endif + return false; + } - if(source(h, m_tmesh) == target(g, m_tmesh) || target(h, m_tmesh) == source(g, m_tmesh)) - return; + std::vector boundary_reps; + extract_boundary_cycles(ccmesh, std::back_inserter(boundary_reps)); - const Segment s1 = m_construct_segment(get(m_vpmap, source(h, m_tmesh)), get(m_vpmap, target(h, m_tmesh))); - const Segment s2 = m_construct_segment(get(m_vpmap, source(g, m_tmesh)), get(m_vpmap, target(g, m_tmesh))); +#ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG + std::cout << " DEBUG: " << boundary_reps.size() << " borders in the CC\n"; +#endif - if(m_do_intersect(s1, s2)) - *m_iterator++ = std::make_pair(b->info(), c->info()); + if(boundary_reps.size() == 1) + { +#ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG + std::cout << " DEBUG: Complex topology but single border --> standard hole filling\n"; +#endif + + // If there is a single border, fill the hole as if it were a topological disk. + // This will lose some information since chi != -1, but preserve_genus = false here + return remove_self_intersections_with_hole_filling(cc_border_hedges, cc_faces, working_face_range, + tmesh, strong_dihedral_angle, weak_dihedral_angle, + cc_envelope, projector, vpm, gt); } -}; -template -bool is_simple_3(const std::vector::halfedge_descriptor>& cc_border_hedges, - const TriangleMesh& tmesh, - VertexPointMap vpm, - const GeomTraits& gt) -{ - typedef typename boost::graph_traits::halfedge_descriptor halfedge_descriptor; + // From there on, there is more than one border - typedef typename boost::property_traits::reference Point_ref; + std::vector is_hole_incident_to_patch(boundary_reps.size()); + std::vector hole_lengths(boundary_reps.size()); - typedef CGAL::Box_intersection_d::ID_FROM_BOX_ADDRESS Box_policy; - typedef CGAL::Box_intersection_d::Box_with_info_d Box; + int holes_incident_to_patches_n = 0; + for(std::size_t hole_id = 0; hole_id longest_border_hedges; + halfedge_descriptor bh = boundary_reps[longest_border_id], end = bh; + do + { + longest_border_hedges.push_back(opposite(bh, tmesh)); + bh = prev(bh, ccmesh); // prev because we insert the opposite + } + while(bh != end); + + // 'false' because we can't do on-the-fly patching due to multiple boundary cycles + // @todo this currently doesn't attempt to constrain sharp edges + return fill_hole(longest_border_hedges, cc_faces, working_face_range, cc_envelope, projector, + tmesh, vpm, gt, false /*reuse*/); + } + + // If there exists some boundary cycles with "fake" border halfedges, hole-fill those +#ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG + std::cout << " DEBUG: Complex topology, some fake borders (" << holes_incident_to_patches_n << ")\n"; +#endif + + // This is needed for the patch insertion process at the end + std::vector all_border_vertices; // border vertices for all the borders to be filled + + // The patch is built iteratively and made of as many CCs as there are holes being filled + std::vector > patch; + + for(std::size_t hole_id=0; hole_id border_hedges; + halfedge_descriptor bh = boundary_reps[hole_id], end = bh; + do + { + border_hedges.push_back(opposite(bh, tmesh)); + bh = prev(bh, ccmesh); // prev because we insert the opposite + } + while(bh != end); + + std::vector border_vertices; + border_vertices.reserve(border_hedges.size()); + all_border_vertices.reserve(all_border_vertices.size() + border_hedges.size()); - std::vector boxes; - boxes.reserve(cc_border_hedges.size()); + std::vector hole_points, third_points; + hole_points.reserve(border_hedges.size()); + third_points.reserve(border_hedges.size()); - for(halfedge_descriptor h : cc_border_hedges) - { - const Point_ref p = get(vpm, source(h, tmesh)); - const Point_ref q = get(vpm, target(h, tmesh)); - CGAL_assertion(!gt.equal_3_object()(p, q)); + for(const halfedge_descriptor h : border_hedges) + { + CGAL_assertion(!is_border(h, tmesh)); - boxes.emplace_back(p.bbox() + q.bbox(), h); - } + const vertex_descriptor v = source(h, tmesh); + hole_points.push_back(get(vpm, v)); - // generate box pointers - std::vector box_ptr; - box_ptr.reserve(boxes.size()); + border_vertices.push_back(v); + all_border_vertices.push_back(v); - for(Box& b : boxes) - box_ptr.push_back(&b); + if(is_border_edge(h, tmesh)) // h is incident to a real face + third_points.push_back(construct_artificial_third_point(h, tmesh, vpm, gt)); + else + third_points.push_back(get(vpm, target(next(opposite(h, tmesh), tmesh), tmesh))); + } - typedef boost::function_output_iterator Throwing_output_iterator; - typedef internal::Strict_intersect_edges Throwing_filter; - Throwing_filter throwing_filter(tmesh, vpm, gt, Throwing_output_iterator()); + std::set interior_vertices; + std::set interior_edges; - try - { - const std::ptrdiff_t cutoff = 2000; - CGAL::box_self_intersection_d(box_ptr.begin(), box_ptr.end(), throwing_filter, cutoff); - } - catch(CGAL::internal::Throw_at_output_exception&) - { - return false; - } + if(!construct_tentative_hole_patch_with_border(patch, hole_points, third_points, + border_vertices, border_hedges, + interior_vertices, interior_edges, + cc_faces, projector, tmesh, vpm, gt)) + { +#ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG + std::cout << " DEBUG: Failed to fill hole #" << hole_id << "\n"; +#endif - return true; -} + return false; + } + } -template -bool remove_self_intersections_with_hole_filling(std::vector::halfedge_descriptor>& cc_border_hedges, - std::set::face_descriptor>& cc_faces, - std::set::face_descriptor>& working_face_range, - TriangleMesh& tmesh, - bool local_self_intersection_removal, - const double strong_dihedral_angle, - const double weak_dihedral_angle, - const PolyhedralEnvelope& cc_envelope, - VertexPointMap vpm, - const GeomTraits& gt) -{ + // Built the patch from all the boundary cycles, put it in #ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_OUTPUT - std::ofstream out("results/zone_border.polylines.txt"); - out << std::setprecision(17); - for(const auto& h : cc_border_hedges) - out << "2 " << tmesh.point(source(h, tmesh)) << " " << tmesh.point(target(h, tmesh)) << std::endl; - out.close(); + dump_patch("results/multiple_real_borders.off", patch); #endif - if(!is_simple_3(cc_border_hedges, tmesh, vpm, gt)) + // We're assembling multiple patches so we could have the same face appearing multiple times... + if(!check_patch_sanity(patch)) { #ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG - std::cout << "Hole filling cannot handle non-simple border" << std::endl; + std::cout << " DEBUG: Unhealthy patch(s), defaulting to basic fill_hole" << std::endl; #endif return false; } -#ifdef CGAL_PMP_REMOVE_SELF_INTERSECTIONS_NO_CONSTRAINTS_IN_HOLE_FILLING - // Do not try to impose sharp edge constraints if we are not doing local-only self intersections removal - local_self_intersection_removal = false; -#endif - - bool success = false; - if(local_self_intersection_removal) - { - success = fill_hole_with_constraints(cc_border_hedges, cc_faces, working_face_range, tmesh, - strong_dihedral_angle, weak_dihedral_angle, - cc_envelope, vpm, gt); - } - else + // check if the patch is inside the input polyhedral envelope + if(!cc_envelope.is_empty() && !cc_envelope(patch)) { - success = fill_hole(cc_border_hedges, cc_faces, working_face_range, tmesh, - cc_envelope, vpm, gt); - } - #ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG - if(success) - { - if(local_self_intersection_removal) - ++self_intersections_solved_by_constrained_hole_filling; - else - ++self_intersections_solved_by_unconstrained_hole_filling; - } + std::cout << " DEBUG: Patch is not entirely inside the input polyhedral envelope, defaulting to basic fill_hole" << std::endl; #endif + return false; + } + + for(const face_descriptor f : cc_faces) + working_face_range.erase(f); + + // Plug the hole-filling patch in the mesh + replace_faces_with_patch_without_reuse(all_border_vertices, cc_faces, patch, tmesh, vpm, + std::inserter(working_face_range, working_face_range.end())); - return success; + return true; } -// the parameter `step` controls how many extra layers of faces we take around the range `faces_to_remove` -template +// the parameter `step` controls how many extra layers of faces we take around the range `faces_to_treat` +template std::pair -remove_self_intersections_one_step(std::set::face_descriptor>& faces_to_remove, +remove_self_intersections_one_step(std::set::face_descriptor>& faces_to_treat, std::set::face_descriptor>& working_face_range, TriangleMesh& tmesh, const int step, const bool preserve_genus, - const bool only_treat_self_intersections_locally, + const bool treat_all_CCs, const double strong_dihedral_angle, const double weak_dihedral_angle, const double containment_epsilon, + const Projector& projector, VertexPointMap vpm, const GeomTraits& gt, Visitor& visitor) { - typedef boost::graph_traits graph_traits; - typedef typename graph_traits::vertex_descriptor vertex_descriptor; - typedef typename graph_traits::halfedge_descriptor halfedge_descriptor; - typedef typename graph_traits::face_descriptor face_descriptor; - - std::set faces_to_remove_copy = faces_to_remove; + typedef boost::graph_traits graph_traits; + typedef typename graph_traits::halfedge_descriptor halfedge_descriptor; + typedef typename graph_traits::face_descriptor face_descriptor; -#if defined(CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG) || defined(CGAL_PMP_REMOVE_SELF_INTERSECTION_OUTPUT) - static int call_id = -1; - ++call_id; +#ifdef CGAL_PMP_REPAIR_SI_USE_OBB_IN_COMPACTIFICATION + typedef typename graph_traits::vertex_descriptor vertex_descriptor; + typedef typename boost::property_traits::value_type Point; #endif -#ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG - std::cout << "##### running remove_self_intersections_one_step (#" << call_id << "), step " << step - << " with " << faces_to_remove.size() << " intersecting faces\n"; -#endif + std::set faces_to_treat_copy = faces_to_treat; bool something_was_done = false; // indicates if a region was successfully remeshed bool all_fixed = true; // indicates if all removal went well @@ -1451,34 +1964,41 @@ bool topology_issue = false; #ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG - std::cout << " DEBUG: is_valid in one_step(tmesh)? " << is_valid_polygon_mesh(tmesh) << "\n"; - std::cout.flush(); + std::cout << " DEBUG: is_valid in one_step(tmesh)? " << is_valid_polygon_mesh(tmesh) << std::endl; unsolved_self_intersections = 0; #endif CGAL_precondition(is_valid_polygon_mesh(tmesh)); + #if defined(CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG) || defined(CGAL_PMP_REMOVE_SELF_INTERSECTION_OUTPUT) int cc_id = -1; #endif - while(!faces_to_remove.empty()) + while(!faces_to_treat.empty()) { - if (visitor.stop()) + if(visitor.stop()) return std::make_pair(false, false); + visitor.start_component_handling(); - visitor.status_update(faces_to_remove); + visitor.status_update(faces_to_treat); + #if defined(CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG) || defined(CGAL_PMP_REMOVE_SELF_INTERSECTION_OUTPUT) ++cc_id; #endif + #ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG - std::cout << " DEBUG: --------------- Removal per CC: " << faces_to_remove.size() << " remaining faces to remove (CC: " << cc_id << " - step: " << step << ")\n"; + std::cout << " DEBUG: Remaining faces to remove: " << faces_to_treat.size() << "\n"; + std::cout << " DEBUG: --------------- Considering CC #" << cc_id << " ---------------\n"; + std::cout << " DEBUG: Initial face " << *faces_to_treat.begin() << "\n"; + std::cout << " DEBUG: first face: " << get(vpm, target(halfedge(*(faces_to_treat.begin()), tmesh), tmesh)) << " " + << get(vpm, target(next(halfedge(*(faces_to_treat.begin()), tmesh), tmesh), tmesh)) << " " + << get(vpm, source(halfedge(*(faces_to_treat.begin()), tmesh), tmesh)) << "\n"; #endif - // Process a connected component of faces to remove. - // collect all the faces from the connected component + // Collect all the faces from the connected component std::set cc_faces; - std::vector queue(1, *faces_to_remove.begin()); // temporary queue + std::vector queue(1, *faces_to_treat.begin()); // temporary queue cc_faces.insert(queue.back()); while(!queue.empty()) { @@ -1488,9 +2008,9 @@ for(int i=0; i<3; ++i) { face_descriptor adjacent_face = face(opposite(h, tmesh), tmesh); - if(adjacent_face!=boost::graph_traits::null_face()) + if(adjacent_face != boost::graph_traits::null_face()) { - if(faces_to_remove.count(adjacent_face) != 0 && cc_faces.insert(adjacent_face).second) + if(faces_to_treat.count(adjacent_face) != 0 && cc_faces.insert(adjacent_face).second) queue.push_back(adjacent_face); } @@ -1499,21 +2019,17 @@ } #ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG - std::cout << " DEBUG: " << cc_faces.size() << " faces in the current CC\n"; - std::cout << " DEBUG: first face: " << get(vpm, source(halfedge(*(cc_faces.begin()), tmesh), tmesh)) << " " - << get(vpm, target(halfedge(*(cc_faces.begin()), tmesh), tmesh)) << " " - << get(vpm, target(next(halfedge(*(cc_faces.begin()), tmesh), tmesh), tmesh)) << "\n"; + std::cout << " DEBUG: " << cc_faces.size() << " faces in base CC\n"; #endif #ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_OUTPUT - std::string fname = "results/initial_r_"+std::to_string(call_id)+"_cc_" + std::to_string(cc_id)+"_s_"+std::to_string(step)+".off"; - std::cout << " DEBUG: Writing initial CC #" << cc_id << " in " << fname << std::endl; - dump_cc(cc_faces, tmesh, fname); - - fname="results/mesh_at_r_"+std::to_string(call_id)+"_cc_"+std::to_string(cc_id)+"_s_"+std::to_string(step)+".off"; - std::cout << " DEBUG: Writing current mesh in " << fname << std::endl; - std::ofstream mout(fname); mout << std::setprecision(17) << tmesh; - mout.close(); + std::string fname = "results/initial_step_"+std::to_string(step)+"_CC_" + std::to_string(cc_id)+".off"; + dump_cc(fname, cc_faces, tmesh, vpm); +#endif + +#ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_OUTPUT_INTERMEDIATE_FULL_MESH + fname = "results/mesh_at_step_"+std::to_string(step)+"_CC_"+std::to_string(cc_id)+".off"; + CGAL::IO::write_polygon_mesh(fname, tmesh, CGAL::parameters::stream_precision); #endif // expand the region to be filled @@ -1525,25 +2041,48 @@ } #ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_OUTPUT - fname="results/expanded_r_"+std::to_string(call_id)+"_cc_"+std::to_string(cc_id)+"_s_"+std::to_string(step)+".off"; - std::cout << " DEBUG: Writing expanded CC #" << cc_id << " in " << fname << std::endl; - dump_cc(cc_faces, tmesh, fname); + std::cout << " DEBUG: " << cc_faces.size() << " faces in expanded CC\n"; + + fname = "results/expanded_step_"+std::to_string(step)+"_CC_"+std::to_string(cc_id)+".off"; + dump_cc(fname, cc_faces, tmesh, vpm); #endif + // @todo keep this? // try to compactify the selection region by also selecting all the faces included // in the bounding box of the initial selection std::vector stack_for_expension; + +#ifdef CGAL_PMP_REPAIR_SI_USE_OBB_IN_COMPACTIFICATION + std::set cc_points; + for(face_descriptor f : cc_faces) + for(vertex_descriptor v : vertices_around_face(halfedge(f, tmesh), tmesh)) + cc_points.insert(get(vpm, v)); + + typedef typename GeomTraits::Aff_transformation_3 Aff_transformation; + Aff_transformation tr{CGAL::Identity_transformation()}; + + if(cc_points.size() > 3) + CGAL::oriented_bounding_box(cc_points, tr, CGAL::parameters::random_seed(0)); + + // Construct the rotated OBB Bbox_3 bb; + for(const Point& p : cc_points) + bb += (tr.transform(p)).bbox(); + +#else + Bbox_3 bb; +#endif + for(face_descriptor fd : cc_faces) { for(halfedge_descriptor h : halfedges_around_face(halfedge(fd, tmesh), tmesh)) { +#ifndef CGAL_PMP_REPAIR_SI_USE_OBB_IN_COMPACTIFICATION bb += get(vpm, target(h, tmesh)).bbox(); +#endif face_descriptor nf = face(opposite(h, tmesh), tmesh); if(nf != boost::graph_traits::null_face() && cc_faces.count(nf) == 0) - { stack_for_expension.push_back(opposite(h, tmesh)); - } } } @@ -1554,7 +2093,11 @@ if(cc_faces.count(face(h, tmesh)) == 1) continue; +#ifdef CGAL_PMP_REPAIR_SI_USE_OBB_IN_COMPACTIFICATION + if(do_overlap(bb, tr.transform(get(vpm, target(next(h, tmesh), tmesh))).bbox())) +#else if(do_overlap(bb, get(vpm, target(next(h, tmesh), tmesh)).bbox())) +#endif { cc_faces.insert(face(h, tmesh)); halfedge_descriptor candidate = opposite(next(h, tmesh), tmesh); @@ -1567,145 +2110,57 @@ } } - if(only_treat_self_intersections_locally) - { - if(!does_self_intersect(cc_faces, tmesh, parameters::vertex_point_map(vpm).geom_traits(gt))) - { -#ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG - std::cout << " DEBUG: No self-intersection in CC\n"; -#endif - - for(const face_descriptor f : cc_faces) - faces_to_remove.erase(f); - - continue; - } - } + Boolean_property_map > is_selected(cc_faces); + expand_face_selection_for_removal(cc_faces, tmesh, is_selected); #ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG std::cout << " DEBUG: " << cc_faces.size() << " faces in expanded and compactified CC\n"; #endif - // remove faces from the set to process - for(const face_descriptor f : cc_faces) - faces_to_remove.erase(f); - #ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_OUTPUT - fname="results/expanded_compactified_r_"+std::to_string(call_id)+"_cc_"+std::to_string(cc_id)+"_s_"+std::to_string(step)+".off"; - std::cout << " DEBUG: Writing expanded and compactified CC #" << cc_id << " in " << fname << std::endl; - dump_cc(cc_faces, tmesh, fname); + fname = "results/expanded_compactified_step_"+std::to_string(step)+"_CC_"+std::to_string(cc_id)+".off"; + dump_cc(fname, cc_faces, tmesh, vpm); #endif - //Check for non-manifold vertices in the selection and remove them by selecting all incident faces: - // extract the set of halfedges that is on the boundary of the holes to be - // made. In addition, we make sure no hole to be created contains a vertex - // visited more than once along a hole border (pinched surface) - // We save the size of boundary_hedges to make sur halfedges added - // from non_filled_hole are not removed. - bool non_manifold_vertex_remaining_in_selection = false; - do - { - bool non_manifold_vertex_removed = false; //here non-manifold is for the 1D polyline - std::vector boundary_hedges; - for(face_descriptor fh : cc_faces) - { - halfedge_descriptor h = halfedge(fh, tmesh); - for(int i=0; i<3; ++i) - { - if(is_border(opposite(h, tmesh), tmesh) || cc_faces.count(face(opposite(h, tmesh), tmesh)) == 0) - boundary_hedges.push_back(h); - - h = next(h, tmesh); - } - } - - // detect vertices visited more than once along - // a hole border. We then remove all faces incident - // to such a vertex to force the removal of the vertex. - // Actually even if two holes are sharing a vertex, this - // vertex will be removed. It is not needed but since - // we do not yet have one halfedge per hole it is simpler - // and does not harm - std::set border_vertices; - for(halfedge_descriptor h : boundary_hedges) - { - if(!border_vertices.insert(target(h, tmesh)).second) - { - bool any_face_added = false; - for(halfedge_descriptor hh : halfedges_around_target(h, tmesh)) - { - if(!is_border(hh, tmesh)) - { - // add the face to the current selection - any_face_added |= cc_faces.insert(face(hh, tmesh)).second; - faces_to_remove.erase(face(hh, tmesh)); - } - } - - if(any_face_added) - non_manifold_vertex_removed = true; - else - non_manifold_vertex_remaining_in_selection = true; - } - } + // Now, we have a proper selection to work on. - if(!non_manifold_vertex_removed) - break; - } - while(true); + for(const face_descriptor f : cc_faces) + faces_to_treat.erase(f); - if(preserve_genus && non_manifold_vertex_remaining_in_selection) + if(cc_faces.size() == 1) { - topology_issue = true; #ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG - std::cout << " DEBUG: CC not handled due to the presence at least one non-manifold vertex\n"; - - ++unsolved_self_intersections; + std::cout << " DEBUG: Compactified CC of size 1, moving on\n"; #endif - visitor.end_component_handling(); - continue; // cannot replace a patch containing a nm vertex by a disk + continue; } - // before running this function if preserve_genus=false, we duplicated - // all of them - CGAL_assertion(!non_manifold_vertex_remaining_in_selection); - - // Collect halfedges on the boundary of the region to be selected - // (pointing inside the domain to be remeshed) - std::vector cc_border_hedges; - for(face_descriptor fd : cc_faces) - { - halfedge_descriptor h = halfedge(fd, tmesh); - for(int i=0; i<3; ++i) - { - if(is_border(opposite(h, tmesh), tmesh) || cc_faces.count(face(opposite(h, tmesh), tmesh)) == 0) - cc_border_hedges.push_back(h); - - h = next(h, tmesh); - } - } + bool self_intersects = does_self_intersect(cc_faces, tmesh, parameters::vertex_point_map(vpm).geom_traits(gt)); +#ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG + if(!self_intersects) + std::cout << " DEBUG: No self-intersection within the CC\n"; +#endif - if(cc_faces.size() == 1) // it is a triangle nothing better can be done + if(!treat_all_CCs && !self_intersects) { #ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG - ++unsolved_self_intersections; + ++unsolved_self_intersections; #endif + + all_fixed = false; visitor.end_component_handling(); continue; } - working_face_range.insert(cc_faces.begin(), cc_faces.end()); - - // Now, we have a proper selection that we can work on. - #ifndef CGAL_PMP_REMOVE_SELF_INTERSECTION_NO_POLYHEDRAL_ENVELOPE_CHECK Polyhedral_envelope cc_envelope; - if (containment_epsilon!=0) + if(containment_epsilon != 0) cc_envelope = Polyhedral_envelope(cc_faces, tmesh, containment_epsilon); #else - struct Return_true { - bool is_empty() const { return true; } + struct Return_true + { + constexpr bool is_empty() const { return true; } bool operator()(const std::vector >&) const { return true; } bool operator()(const TriangleMesh&) const { return true; } }; @@ -1718,188 +2173,120 @@ // First, try to smooth if we only care about local self-intersections // Two different approaches: // - First, try to constrain edges that are in the zone to smooth and whose dihedral angle is large, - // but not too large (we don't want to constrain edges that are created by foldings) + // but not too large (we don't want to constrain edges that are foldings); // - If that fails, try to smooth without any constraints, but make sure that the deviation from - // the first zone is small + // the first zone is small. // // If smoothing fails, the face patch is restored to its pre-smoothing state. // - // Note that there is no need to update the working range because smoothing doesn`t change + // There is no need to update the working range because smoothing doesn`t change // the number of faces (and old faces are re-used). - bool fixed_by_smoothing = false; - - if(only_treat_self_intersections_locally) + // + // Do not smooth if there are no self-intersections within the patch: this means the intersection + // is with another CC and smoothing is unlikely to move the surface sufficiently + if(self_intersects) { - fixed_by_smoothing = remove_self_intersections_with_smoothing(cc_faces, tmesh, true, - strong_dihedral_angle, - weak_dihedral_angle, - cc_envelope, - vpm, gt); + bool fixed_by_smoothing = false; + + fixed_by_smoothing = remove_self_intersections_with_smoothing(cc_faces, tmesh, true /*constrain_sharp_edges*/, + strong_dihedral_angle, weak_dihedral_angle, + cc_envelope, vpm, gt); - if(!fixed_by_smoothing) // try again, but without constraining sharp edges + if(!fixed_by_smoothing) { #ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG std::cout << " DEBUG: Could not be solved via smoothing with constraints\n"; #endif - fixed_by_smoothing = remove_self_intersections_with_smoothing(cc_faces, tmesh, false, - strong_dihedral_angle, - weak_dihedral_angle, - cc_envelope, - vpm, gt); + // try again, but without constraining sharp edges + fixed_by_smoothing = remove_self_intersections_with_smoothing(cc_faces, tmesh, false /*constrain_sharp_edges*/, + strong_dihedral_angle, weak_dihedral_angle, + cc_envelope, vpm, gt); } - } - if(fixed_by_smoothing) - { + if(fixed_by_smoothing) + { #ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG - std::cout << " DEBUG: Solved with smoothing!\n"; + std::cout << " DEBUG: Solved with smoothing!\n"; #endif - something_was_done = true; - visitor.end_component_handling(); - continue; - } + something_was_done = true; + visitor.end_component_handling(); + continue; + } #ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG - else - { - std::cout << " DEBUG: Could not be solved via smoothing\n"; - } + else + { + std::cout << " DEBUG: Could not be solved via smoothing\n"; + } #endif + } + #endif // ndef CGAL_PMP_REMOVE_SELF_INTERSECTIONS_NO_SMOOTHING #ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG - std::cout << " DEBUG: Trying hole-filling based approach\n"; + std::cout << " DEBUG: Trying hole-filling based approach...\n"; #endif - int selection_chi = euler_characteristic_of_selection(cc_faces, tmesh); - - if( selection_chi!=1 ) // not a topological disk + // Collect halfedges on the boundary of the region to be selected + // (incident to faces that are part of the CC) + std::vector cc_border_hedges; + for(face_descriptor fd : cc_faces) { - if (preserve_genus) - { -#ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG - std::cout << " DEBUG: CC not handled, selection is not a topological disk (preserve_genus=true)\n"; - ++unsolved_self_intersections; -#endif - topology_issue = true; - continue; - } - - // check if the topological issue is created by border edges - std::vector mesh_non_border_hedges; - std::set mesh_border_hedge; - - for(halfedge_descriptor h : cc_border_hedges) + for(halfedge_descriptor h : halfedges_around_face(halfedge(fd, tmesh), tmesh)) { - if(!is_border(opposite(h, tmesh), tmesh)) - mesh_non_border_hedges.push_back(h); - else - mesh_border_hedge.insert(opposite(h, tmesh)); + if(is_border(opposite(h, tmesh), tmesh) || cc_faces.count(face(opposite(h, tmesh), tmesh)) == 0) + cc_border_hedges.push_back(h); } + } - if (mesh_border_hedge.empty()) - { + // Whichever step we are at, no border means no expansion will change this selection + // This CC was not fixed by smoothing, and there is nothing hole filling can do + // @todo just remove the CC? + if(cc_border_hedges.empty()) + { #ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG - std::cout << " DEBUG: CC not handled, selection is not a topological disk (preserve_genus=false)\n"; - ++unsolved_self_intersections; + std::cout << " DEBUG: CC is closed!\n"; // @todo wrap? + ++unsolved_self_intersections; #endif - topology_issue = true; - continue; - } - // we look for cycles of border halfedges and update selection_chi - while(!mesh_border_hedge.empty()) - { - // we must count the number of cycle of boundary edges - halfedge_descriptor h_b = *mesh_border_hedge.begin(), h=h_b; - mesh_border_hedge.erase(mesh_border_hedge.begin()); - do - { - h = next(h, tmesh); - if(h == h_b) - { - // found a cycle - selection_chi += 1; - break; - } - else - { - typename std::set::iterator it = mesh_border_hedge.find(h); - if(it == mesh_border_hedge.end()) - break; // not a cycle does not count - - mesh_border_hedge.erase(it); - } - } - while(true); - } + all_fixed = false; + visitor.end_component_handling(); + continue; + } - if(selection_chi!=1) + int selection_chi = euler_characteristic_of_selection(cc_faces, tmesh); + if(selection_chi != 1) // not a topological disk + { + if(!handle_CC_with_complex_topology(cc_border_hedges, cc_faces, working_face_range, + tmesh, strong_dihedral_angle, weak_dihedral_angle, + preserve_genus, cc_envelope, projector, vpm, gt)) { #ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG - std::cout << " DEBUG: CC not handled, selection is not a topological disk even if" - << " boundary cycles are removed: chi=" << selection_chi << "\n"; - ++unsolved_self_intersections; + std::cout << " DEBUG: Failed to handle complex CC\n"; + ++unsolved_self_intersections; #endif topology_issue = true; - visitor.end_component_handling(); - continue; + all_fixed = false; } else { - cc_border_hedges.swap(mesh_non_border_hedges); - - // count the number of cycles of halfedges of the boundary - std::map bhs; - for(halfedge_descriptor h : cc_border_hedges) - bhs[source(h, tmesh)] = target(h, tmesh); - - int nbc=0; - while(!bhs.empty()) - { - ++nbc; - std::pair top=*bhs.begin(); - bhs.erase(bhs.begin()); - - do - { - typename std::map::iterator it_find = bhs.find(top.second); - if(it_find == bhs.end()) - break; - - top = *it_find; - bhs.erase(it_find); - } - while(true); - } - - if(nbc != 1) - { #ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG - std::cout << " DEBUG: CC not handled because it is not a topological disk(" - << nbc << " boundary cycles)\n"; - ++unsolved_self_intersections; + ++self_intersections_solved_by_unconstrained_hole_filling; #endif - all_fixed = false; - visitor.end_component_handling(); - continue; - } - else - { -#ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG - std::cout << " DEBUG: CC that is not a topological disk but has only one boundary cycle(preserve_genus=false)\n"; -#endif - } + something_was_done = true; } + + visitor.end_component_handling(); + continue; } + // From here on, the CC is a topological disk + if(!remove_self_intersections_with_hole_filling(cc_border_hedges, cc_faces, working_face_range, - tmesh, only_treat_self_intersections_locally, - strong_dihedral_angle, weak_dihedral_angle, - cc_envelope, - vpm, gt)) + tmesh, strong_dihedral_angle, weak_dihedral_angle, + cc_envelope, projector, vpm, gt)) { #ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG std::cout << " DEBUG: Failed to fill hole\n"; @@ -1912,21 +2299,26 @@ { something_was_done = true; } + visitor.end_component_handling(); } if(!something_was_done) { - faces_to_remove.swap(faces_to_remove_copy); + faces_to_treat.swap(faces_to_treat_copy); #ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG std::cout << " DEBUG: Nothing was changed during this step, self-intersections won`t be recomputed." << std::endl; #endif } -#ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_OUTPUT +#ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG + std::cout << " DEBUG: " << unsolved_self_intersections << " unsolved SI" << std::endl; +#endif + +#ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_OUTPUT_INTERMEDIATE_FULL_MESH std::stringstream oss; oss << "results/after_step_" << step << ".off" << std::ends; - std::ofstream(oss.str().c_str()) << std::setprecision(17) << tmesh; + CGAL::IO::write_polygon_mesh(oss.str().c_str(), tmesh, CGAL::parameters::stream_precision(17)); #endif return std::make_pair(all_fixed, topology_issue); @@ -1939,7 +2331,7 @@ template struct Remove_self_intersection_default_visitor { - bool stop() const { return false; } + constexpr bool stop() const { return false; } template void status_update(const FaceContainer&) {} void start_main_loop() {} @@ -1949,17 +2341,17 @@ void start_component_handling() {} void end_component_handling() {} void parameters_used( bool /* parameters_used(preserve_genus */, - bool /* only_treat_self_intersections_locally */, + bool /* treat_all_CCs */, int /* max_steps */, double /* strong_dihedral_angle */, double /* weak_dihedral_angle */, double /* containment_epsilon */ ) {} }; -template +template bool remove_self_intersections(const FaceRange& face_range, TriangleMesh& tmesh, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { using parameters::choose_parameter; using parameters::get_parameter; @@ -1967,6 +2359,10 @@ typedef boost::graph_traits graph_traits; typedef typename graph_traits::face_descriptor face_descriptor; +#ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_OUTPUT + IO::write_polygon_mesh("results/input.off", tmesh, parameters::stream_precision(17)); +#endif + // named parameter extraction typedef typename GetVertexPointMap::type VertexPointMap; VertexPointMap vpm = choose_parameter(get_parameter(np, internal_np::vertex_point), @@ -1976,12 +2372,15 @@ GeomTraits gt = choose_parameter(get_parameter(np, internal_np::geom_traits)); bool preserve_genus = choose_parameter(get_parameter(np, internal_np::preserve_genus), true); - const bool only_treat_self_intersections_locally = choose_parameter(get_parameter(np, internal_np::apply_per_connected_component), false); + + // @tmp Squatting that named parameter to signify that treatment should be applied within the CC + // even if there are no self-intersections. For example, two spheres intersecting each other. + const bool treat_all_CCs = choose_parameter(get_parameter(np, internal_np::apply_per_connected_component), true); // When treating intersections locally, we don't want to grow the working range too much as // either the solution is found fast, or it's too difficult and neither local smoothing or local // hole filling are going to provide nice results. - const int default_max_step = only_treat_self_intersections_locally ? 2 : 7; + const int default_max_step = 7; const int max_steps = choose_parameter(get_parameter(np, internal_np::number_of_iterations), default_max_step); // @fixme give it its own named parameter rather than abusing 'with_dihedral_angle'? @@ -1990,7 +2389,8 @@ // detect_feature_pp NP (unused for now) const double weak_dihedral_angle = 0.; // choose_parameter(get_parameter(np, internal_np::weak_dihedral_angle), 20.); - struct Return_false { + struct Return_false + { bool operator()(std::pair) const { return false; } }; @@ -2005,10 +2405,12 @@ // use containment check const double containment_epsilon = choose_parameter(get_parameter(np, internal_np::polyhedral_envelope_epsilon), 0.); + internal::Mesh_projection_functor projector(tmesh, vpm); + #ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG std::cout << "DEBUG: Starting remove_self_intersections, is_valid(tmesh)? " << is_valid_polygon_mesh(tmesh) << "\n"; std::cout << "\tpreserve_genus: " << preserve_genus << std::endl; - std::cout << "\tonly_treat_self_intersections_locally: " << only_treat_self_intersections_locally << std::endl; + std::cout << "\ttreat_all_CCs: " << treat_all_CCs << std::endl; std::cout << "\tmax_steps: " << max_steps << std::endl; std::cout << "\tstrong_dihedral_angle: " << strong_dihedral_angle << std::endl; std::cout << "\tweak_dihedral_angle: " << weak_dihedral_angle << std::endl; @@ -2023,7 +2425,7 @@ Visitor visitor = choose_parameter(get_parameter(np, internal_np::visitor)); visitor.parameters_used(preserve_genus, - only_treat_self_intersections_locally, + treat_all_CCs, max_steps, strong_dihedral_angle, weak_dihedral_angle, @@ -2036,16 +2438,22 @@ int step = -1; bool all_fixed = true; // indicates if the filling of all created holes went fine bool topology_issue = false; // indicates if some boundary cycles of edges are blocking the fixing - std::set faces_to_remove; + std::set faces_to_treat; std::set working_face_range(face_range.begin(), face_range.end()); visitor.start_main_loop(); while(++step < max_steps) { - if (visitor.stop()) break; +#ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG + std::cout << " DEBUG: ========== STEP " << step << " / " << max_steps - 1 << " ==========" << std::endl; +#endif + + if(visitor.stop()) + break; + visitor.start_iteration(); - if(faces_to_remove.empty()) // the previous round might have been blocked due to topological constraints + if(faces_to_treat.empty()) // the previous round might have been blocked due to topological constraints { typedef std::pair Face_pair; std::vector self_inter; @@ -2053,32 +2461,33 @@ // TODO : possible optimization to reduce the range to check with the bbox // of the previous patches or something. self_intersections(working_face_range, tmesh, - CGAL::filter_output_iterator(std::back_inserter(self_inter), out_it_predicates)); + filter_output_iterator(std::back_inserter(self_inter), out_it_predicates), + parameters::vertex_point_map(vpm).geom_traits(gt)); #ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG std::cout << " DEBUG: " << self_inter.size() << " intersecting pairs" << std::endl; #endif for(const Face_pair& fp : self_inter) { - faces_to_remove.insert(fp.first); - faces_to_remove.insert(fp.second); + faces_to_treat.insert(fp.first); + faces_to_treat.insert(fp.second); } } - if(faces_to_remove.empty() && all_fixed) + if(faces_to_treat.empty()) { #ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG - std::cout << "DEBUG: There are no more faces to remove." << std::endl; + std::cout << "DEBUG: There are no more faces to treat." << std::endl; #endif break; } - visitor.status_update(faces_to_remove); + visitor.status_update(faces_to_treat); std::tie(all_fixed, topology_issue) = internal::remove_self_intersections_one_step( - faces_to_remove, working_face_range, tmesh, - step, preserve_genus, only_treat_self_intersections_locally, - strong_dihedral_angle, weak_dihedral_angle, containment_epsilon, vpm, gt, visitor); + faces_to_treat, working_face_range, tmesh, step, + preserve_genus, treat_all_CCs, strong_dihedral_angle, weak_dihedral_angle, + containment_epsilon, projector, vpm, gt, visitor); #ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG if(all_fixed && topology_issue) @@ -2094,32 +2503,27 @@ std::cout << "solved by unconstrained smoothing: " << internal::self_intersections_solved_by_unconstrained_smoothing << std::endl; std::cout << "solved by constrained hole-filling: " << internal::self_intersections_solved_by_constrained_hole_filling << std::endl; std::cout << "solved by unconstrained hole-filling: " << internal::self_intersections_solved_by_unconstrained_hole_filling << std::endl; - std::cout << "unsolved: " << internal::unsolved_self_intersections << std::endl; + std::cout << "issues during CC treatment: " << internal::unsolved_self_intersections << std::endl; #endif #ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_OUTPUT std::ofstream("results/final.off") << std::setprecision(17) << tmesh; #endif - return step < max_steps; -} + bool self_intersects = does_self_intersect(working_face_range, tmesh, parameters::vertex_point_map(vpm).geom_traits(gt)); -template -bool remove_self_intersections(const FaceRange& face_range, TriangleMesh& tmesh) -{ - return remove_self_intersections(face_range, tmesh, parameters::all_default()); -} +#ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG + if(self_intersects) + std::cout << "DEBUG: Failed to solve all self-intersections.\n"; +#endif -template -bool remove_self_intersections(TriangleMesh& tmesh, const CGAL_PMP_NP_CLASS& np) -{ - return remove_self_intersections(faces(tmesh), tmesh, np); + return !self_intersects; } -template -bool remove_self_intersections(TriangleMesh& tmesh) +template +bool remove_self_intersections(TriangleMesh& tmesh, const CGAL_NP_CLASS& np = parameters::default_values()) { - return remove_self_intersections(tmesh, parameters::all_default()); + return remove_self_intersections(faces(tmesh), tmesh, np); } } // namespace experimental diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/self_intersections.h cgal-5.5/include/CGAL/Polygon_mesh_processing/self_intersections.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/self_intersections.h 2022-06-03 19:05:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/self_intersections.h 2022-07-13 19:06:09.000000000 +0000 @@ -4,8 +4,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/self_intersections.h $ -// $Id: self_intersections.h f4f484c 2021-10-25T09:47:29+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/self_intersections.h $ +// $Id: self_intersections.h 477353d 2022-04-20T15:55:50+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -21,7 +21,7 @@ #include -#include +#include #include #include @@ -50,11 +50,6 @@ #include #include -#ifdef DOXYGEN_RUNNING -#define CGAL_PMP_NP_TEMPLATE_PARAMETERS NamedParameters -#define CGAL_PMP_NP_CLASS NamedParameters -#endif - namespace CGAL { namespace Polygon_mesh_processing { namespace internal { @@ -187,7 +182,7 @@ return true; return false; -}; +} template @@ -238,7 +233,7 @@ using CGAL::parameters::choose_parameter; using CGAL::parameters::get_parameter; - using parameters::is_default_parameter; + using CGAL::parameters::is_default_parameter; typedef TriangleMesh TM; typedef typename boost::graph_traits::halfedge_descriptor halfedge_descriptor; @@ -254,7 +249,7 @@ VPM vpmap = choose_parameter(get_parameter(np, internal_np::vertex_point), get_const_property_map(boost::vertex_point, tmesh)); - const bool do_limit = !(is_default_parameter(get_parameter(np, internal_np::maximum_number))); + const bool do_limit = !(is_default_parameter::value); const unsigned int maximum_number = choose_parameter(get_parameter(np, internal_np::maximum_number), 0); if(do_limit && maximum_number == 0) { @@ -391,7 +386,8 @@ typedef internal::Strict_intersect_faces > Intersecting_faces_limited_filter; Intersecting_faces_limited_filter limited_intersect_faces(tmesh, vpmap, gt, boost::make_function_output_iterator(max_inter_counter)); - try{ + try + { CGAL::box_self_intersection_d(box_ptr.begin(), box_ptr.end(), limited_intersect_faces, cutoff); } catch (const CGAL::internal::Throw_at_output_exception&) @@ -409,6 +405,7 @@ /*! * \ingroup PMP_intersection_grp + * * collects intersections between a subset of faces of a triangulated surface mesh. * Two faces are said to intersect if the corresponding triangles intersect * and the intersection is not an edge nor a vertex incident to both faces. @@ -456,37 +453,26 @@ * \cgalNamedParamsEnd * * @return `out` + * + * @sa `does_self_intersect()` */ template < class ConcurrencyTag = Sequential_tag, class TriangleMesh, class FaceRange, class FacePairOutputIterator, - class NamedParameters> + class NamedParameters = parameters::Default_named_parameters> FacePairOutputIterator self_intersections(const FaceRange& face_range, const TriangleMesh& tmesh, FacePairOutputIterator out, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { return internal::self_intersections_impl(face_range, tmesh, out, false /*don't throw*/, np); } -/// \cond SKIP_IN_MANUAL -template -FacePairOutputIterator -self_intersections(const FaceRange& face_range, - const TriangleMesh& tmesh, - FacePairOutputIterator out) -{ - return self_intersections(face_range, tmesh, out, CGAL::parameters::all_default()); -} -/// \endcond - /** * \ingroup PMP_intersection_grp + * * collects intersections between all the faces of a triangulated surface mesh. * Two faces are said to intersect if the corresponding triangles intersect * and the intersection is not an edge nor a vertex incident to both faces. @@ -535,32 +521,28 @@ * \cgalNamedParamsEnd * * @return `out` + * + * @sa `does_self_intersect()` */ template + class CGAL_NP_TEMPLATE_PARAMETERS> FacePairOutputIterator self_intersections(const TriangleMesh& tmesh, FacePairOutputIterator out, - const CGAL_PMP_NP_CLASS& np) + const CGAL_NP_CLASS& np = parameters::default_values()) { return self_intersections(faces(tmesh), tmesh, out, np); } -/// \cond SKIP_IN_MANUAL -template -FacePairOutputIterator -self_intersections(const TriangleMesh& tmesh, FacePairOutputIterator out) -{ - return self_intersections(faces(tmesh), tmesh, out, parameters::all_default()); -} -/// \endcond - /** * \ingroup PMP_intersection_grp - * tests if a set of faces of a triangulated surface mesh self-intersects. + * + * \brief tests if a set of faces of a triangulated surface mesh self-intersects. + * * This function depends on the package \ref PkgBoxIntersectionD + * * @pre `CGAL::is_triangle_mesh(tmesh)` * * @tparam ConcurrencyTag enables sequential versus parallel algorithm. @@ -591,14 +573,16 @@ * \cgalNamedParamsEnd * * @return `true` if the faces in `face_range` self-intersect + * + * @sa `self_intersections()` */ template + class NamedParameters = parameters::Default_named_parameters> bool does_self_intersect(const FaceRange& face_range, const TriangleMesh& tmesh, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { CGAL_precondition(CGAL::is_triangle_mesh(tmesh)); @@ -627,8 +611,11 @@ /** * \ingroup PMP_intersection_grp - * tests if a triangulated surface mesh self-intersects. + * + * \brief tests if a triangulated surface mesh self-intersects. + * * This function depends on the package \ref PkgBoxIntersectionD + * * @pre `CGAL::is_triangle_mesh(tmesh)` * * @tparam ConcurrencyTag enables sequential versus parallel algorithm. @@ -657,31 +644,18 @@ * \cgalNamedParamsEnd * * @return `true` if `tmesh` self-intersects + * + * @sa `self_intersections()` */ template + class CGAL_NP_TEMPLATE_PARAMETERS> bool does_self_intersect(const TriangleMesh& tmesh, - const CGAL_PMP_NP_CLASS& np) + const CGAL_NP_CLASS& np = parameters::default_values()) { return does_self_intersect(faces(tmesh), tmesh, np); } -/// \cond SKIP_IN_MANUAL -template -bool does_self_intersect(const TriangleMesh& tmesh) -{ - return does_self_intersect(faces(tmesh), tmesh, CGAL::parameters::all_default()); -} - -template -bool does_self_intersect(const FaceRange& face_range, - const TriangleMesh& tmesh) -{ - return does_self_intersect(face_range, tmesh, CGAL::parameters::all_default()); -} -/// \endcond - }// namespace Polygon_mesh_processing }// namespace CGAL diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/shape_predicates.h cgal-5.5/include/CGAL/Polygon_mesh_processing/shape_predicates.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/shape_predicates.h 2022-06-03 19:05:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/shape_predicates.h 2022-07-13 19:06:09.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/shape_predicates.h $ -// $Id: shape_predicates.h 68f53bc 2021-02-19T18:04:58+01:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/shape_predicates.h $ +// $Id: shape_predicates.h 6869bdd 2022-06-07T16:15:53+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -16,16 +16,21 @@ #include -#include +#include #include #include #include #include +#include +#include +#include +#include #include #include +#include #include #include #include @@ -35,7 +40,8 @@ namespace Polygon_mesh_processing { -/// \ingroup PMP_repairing_grp +/// \ingroup PMP_predicates_grp +/// /// checks whether an edge is degenerate. /// An edge is considered degenerate if the geometric positions of its two extremities are identical. /// @@ -63,13 +69,13 @@ /// \cgalParamNEnd /// \cgalNamedParamsEnd /// -/// \sa `degenerate_edges()` -/// /// \return `true` if the edge `e` is degenerate, `false` otherwise. -template +/// +/// \sa `degenerate_edges()` +template bool is_degenerate_edge(typename boost::graph_traits::edge_descriptor e, const PolygonMesh& pm, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { using parameters::get_parameter; using parameters::choose_parameter; @@ -84,14 +90,8 @@ return traits.equal_3_object()(get(vpmap, source(e, pm)), get(vpmap, target(e, pm))); } -template -bool is_degenerate_edge(typename boost::graph_traits::edge_descriptor e, - const PolygonMesh& pm) -{ - return is_degenerate_edge(e, pm, parameters::all_default()); -} - -/// \ingroup PMP_repairing_grp +/// \ingroup PMP_predicates_grp +/// /// collects the degenerate edges within a given range of edges. /// /// @tparam EdgeRange a model of `Range` with value type `boost::graph_traits::%edge_descriptor` @@ -121,11 +121,14 @@ /// \cgalParamExtra{The geometric traits class must be compatible with the vertex point type.} /// \cgalParamNEnd /// \cgalNamedParamsEnd -template +/// +/// \sa `is_degenerate_edge()` +// \sa `remove_degenerate_edges()` +template OutputIterator degenerate_edges(const EdgeRange& edges, const TriangleMesh& tm, OutputIterator out, - const NamedParameters& np) + const CGAL_NP_CLASS& np = parameters::default_values()) { typedef typename boost::graph_traits::edge_descriptor edge_descriptor; @@ -136,44 +139,22 @@ return out; } -template -OutputIterator degenerate_edges(const EdgeRange& edges, - const TriangleMesh& tm, - OutputIterator out, - typename boost::enable_if< - typename boost::has_range_iterator - >::type* = 0) -{ - return degenerate_edges(edges, tm, out, CGAL::parameters::all_default()); -} - -/// \ingroup PMP_repairing_grp -/// calls the function `degenerate_edges()` with the range: `edges(tm)`. +/// \ingroup PMP_predicates_grp /// -/// See above for the comprehensive description of the parameters. +/// calls the function `degenerate_edges()` with the range: `edges(tm)`. /// -template +/// See the other overload for the comprehensive description of the parameters. +template OutputIterator degenerate_edges(const TriangleMesh& tm, OutputIterator out, - const NamedParameters& np -#ifndef DOXYGEN_RUNNING - , - typename boost::disable_if< - boost::has_range_iterator - >::type* = 0 -#endif + const CGAL_NP_CLASS& np = parameters::default_values() ) { return degenerate_edges(edges(tm), tm, out, np); } -template -OutputIterator degenerate_edges(const TriangleMesh& tm, OutputIterator out) -{ - return degenerate_edges(edges(tm), tm, out, CGAL::parameters::all_default()); -} - -/// \ingroup PMP_repairing_grp +/// \ingroup PMP_predicates_grp +/// /// checks whether a triangle face is degenerate. /// A triangle face is considered degenerate if the geometric positions of its vertices are collinear. /// @@ -201,13 +182,13 @@ /// \cgalParamNEnd /// \cgalNamedParamsEnd /// -/// \sa `degenerate_faces()` -/// /// \return `true` if the face `f` is degenerate, `false` otherwise. -template +/// +/// \sa `degenerate_faces()` +template bool is_degenerate_triangle_face(typename boost::graph_traits::face_descriptor f, const TriangleMesh& tm, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { CGAL_precondition(CGAL::is_triangle(halfedge(f, tm), tm)); @@ -228,14 +209,8 @@ get(vpmap, target(next(h, tm), tm))); } -template -bool is_degenerate_triangle_face(typename boost::graph_traits::face_descriptor f, - const TriangleMesh& tm) -{ - return CGAL::Polygon_mesh_processing::is_degenerate_triangle_face(f, tm, parameters::all_default()); -} - -/// \ingroup PMP_repairing_grp +/// \ingroup PMP_predicates_grp +/// /// collects the degenerate faces within a given range of faces. /// /// @tparam FaceRange a model of `Range` with value type `boost::graph_traits::%face_descriptor` @@ -266,11 +241,13 @@ /// \cgalParamNEnd /// \cgalNamedParamsEnd /// -template +/// \sa `is_degenerate_triangle_face()` +// `\sa remove_degenerate_faces()` +template OutputIterator degenerate_faces(const FaceRange& faces, const TriangleMesh& tm, OutputIterator out, - const NamedParameters& np) + const CGAL_NP_CLASS& np = parameters::default_values()) { typedef typename boost::graph_traits::face_descriptor face_descriptor; @@ -282,44 +259,103 @@ return out; } -template -OutputIterator degenerate_faces(const FaceRange& faces, - const TriangleMesh& tm, - OutputIterator out, - typename boost::enable_if< - boost::has_range_iterator - >::type* = 0) -{ - return degenerate_faces(faces, tm, out, CGAL::parameters::all_default()); -} - -/// \ingroup PMP_repairing_grp -/// calls the function `degenerate_faces()` with the range: `faces(tm)`. +/// \ingroup PMP_predicates_grp /// -/// See above for the comprehensive description of the parameters. +/// calls the function `degenerate_faces()` with the range: `faces(tm)`. /// -template +/// See the other overload for the comprehensive description of the parameters. +template OutputIterator degenerate_faces(const TriangleMesh& tm, OutputIterator out, - const NamedParameters& np -#ifndef DOXYGEN_RUNNING - , - typename boost::disable_if< - boost::has_range_iterator - >::type* = 0 -#endif + const CGAL_NP_CLASS& np = parameters::default_values() ) { return degenerate_faces(faces(tm), tm, out, np); } -template -OutputIterator degenerate_faces(const TriangleMesh& tm, OutputIterator out) +namespace internal { + +template class Pred> +struct Get_filtered_predicate_RT { - return degenerate_faces(faces(tm), tm, out, CGAL::parameters::all_default()); -} + typedef typename Exact_kernel_selector::Exact_kernel_rt Exact_kernel_rt; + typedef typename Exact_kernel_selector::C2E_rt C2E_rt; + typedef Simple_cartesian Approximate_kernel; + typedef Cartesian_converter C2F; + + typedef Filtered_predicate, + Pred, + C2E_rt, C2F> type; +}; + +// predicates + +template +struct Is_edge_length_ratio_over_threshold_impl +{ + typedef int result_type; + + /// Computes the ratio between the longest edge's length and the shortest edge's length + /// and compares with a user-defined bound. + /// Returns -1 if the ratio is below the bound, and 0, 1, or 2 otherwise, with the value + /// indicating the shortest halfedge. + int operator()(const typename K::Point_3& p, + const typename K::Point_3& q, + const typename K::Point_3& r, + const typename K::FT threshold_squared) const + { + typedef typename K::FT FT; + + FT sq_length_0 = K().compute_squared_distance_3_object()(p, q); + + FT min_sq_length = sq_length_0, max_sq_length = sq_length_0; + int min_id = 0; -/// \ingroup PMP_repairing_grp + auto get_min_max = [&](const typename K::Point_3& pa, const typename K::Point_3& pb, int id) -> void + { + const FT sq_length = K().compute_squared_distance_3_object()(pa, pb); + + if(max_sq_length < sq_length) + max_sq_length = sq_length; + + if(sq_length < min_sq_length) + { + min_sq_length = sq_length; + min_id = id; + } + }; + + get_min_max(q, r, 1); + get_min_max(r, p, 2); + + if(min_sq_length == 0) + return min_id; + + if(compare(max_sq_length, threshold_squared * min_sq_length) != CGAL::SMALLER) + return min_id; + else + return -1; + } +}; + +template +struct Is_edge_length_ratio_over_threshold + : public Is_edge_length_ratio_over_threshold_impl +{ + using Is_edge_length_ratio_over_threshold_impl::operator(); +}; + +template +struct Is_edge_length_ratio_over_threshold + : public Get_filtered_predicate_RT::type +{ + using Get_filtered_predicate_RT::type::operator(); +}; + +} // namespace internal + +/// \ingroup PMP_predicates_grp +/// /// checks whether a triangle face is needle. /// A triangle is said to be a needle if its longest edge is much longer than its shortest edge. /// @@ -350,12 +386,14 @@ /// /// \return the shortest halfedge if the triangle face is a needle, and a null halfedge otherwise. /// If the face contains degenerate edges, a halfedge corresponding to one of these edges is returned. -template +/// +/// \sa `is_cap_triangle_face()` +template typename boost::graph_traits::halfedge_descriptor is_needle_triangle_face(typename boost::graph_traits::face_descriptor f, const TriangleMesh& tm, const double threshold, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { CGAL_precondition(threshold >= 1.); CGAL_precondition(f != boost::graph_traits::null_face()); @@ -364,69 +402,108 @@ using parameters::get_parameter; using parameters::choose_parameter; - typedef typename boost::graph_traits::halfedge_descriptor halfedge_descriptor; + typedef typename boost::graph_traits::halfedge_descriptor halfedge_descriptor; typedef typename GetVertexPointMap::const_type VertexPointMap; VertexPointMap vpmap = choose_parameter(get_parameter(np, internal_np::vertex_point), get_const_property_map(vertex_point, tm)); - typedef typename GetGeomTraits::type Traits; - Traits traits = choose_parameter(get_parameter(np, internal_np::geom_traits)); + typedef typename GetGeomTraits::type Traits; - typedef typename Traits::FT FT; + const halfedge_descriptor h = halfedge(f, tm); - CGAL::Halfedge_around_face_iterator hit, hend; - boost::tie(hit, hend) = CGAL::halfedges_around_face(halfedge(f, tm), tm); - CGAL_precondition(std::distance(hit, hend) == 3); + internal::Is_edge_length_ratio_over_threshold pred; + const int res = pred(get(vpmap, source(h, tm)), + get(vpmap, target(h, tm)), + get(vpmap, target(next(h, tm), tm)), + square(threshold)); - const halfedge_descriptor h0 = *hit++; - FT sq_length = traits.compute_squared_distance_3_object()(get(vpmap, source(h0, tm)), - get(vpmap, target(h0, tm))); + if(res == -1) + return boost::graph_traits::null_halfedge(); + if(res == 0) + return h; + if(res == 1) + return next(h, tm); + else + return prev(h, tm); +} - FT min_sq_length = sq_length, max_sq_length = sq_length; - halfedge_descriptor min_h = h0; +namespace internal { - for(; hit!=hend; ++hit) +template +struct Is_cap_angle_over_threshold_impl +{ + typedef int result_type; + + /// Computes the ratio between the longest edge's length and the shortest edge's length + /// and compares with a user-defined bound. + /// Returns -1 if the ratio is below the bound, and 0, 1, or 2 otherwise, with the value + /// indicating the shortest halfedge. + int operator()(const typename K::Point_3& p, + const typename K::Point_3& q, + const typename K::Point_3& r, + const typename K::FT threshold_squared) const { - const halfedge_descriptor h = *hit; - sq_length = traits.compute_squared_distance_3_object()(get(vpmap, source(h, tm)), - get(vpmap, target(h, tm))); + typedef typename K::FT FT; + typedef typename K::Vector_3 Vector_3; - if(max_sq_length < sq_length) - max_sq_length = sq_length; + std::array sq_lengths = { K().compute_squared_distance_3_object()(p, q), + K().compute_squared_distance_3_object()(q, r), + K().compute_squared_distance_3_object()(r, p) }; - if(min_sq_length > sq_length) - { - min_h = h; - min_sq_length = sq_length; - } - } + // If even one edge is degenerate, it cannot be a cap + if(is_zero(sq_lengths[0]) || is_zero(sq_lengths[1]) || is_zero(sq_lengths[2])) + return -1; - if(min_sq_length == 0) - return min_h; + auto handle_triplet = [&](const typename K::Point_3& pa, + const typename K::Point_3& pb, + const typename K::Point_3& pc, int pos) -> bool + { + const Vector_3 vc = K().construct_vector_3_object()(pb, pc); + const Vector_3 va = K().construct_vector_3_object()(pb, pa); + const FT dot_ca = K().compute_scalar_product_3_object()(vc, va); + const bool neg_sp = !(is_positive(dot_ca)); + if(!neg_sp) + return false; + + const FT sq_c = sq_lengths[(pos+1)%3]; + const FT sq_a = sq_lengths[pos]; + + return (compare(square(dot_ca), threshold_squared * sq_c * sq_a) != CGAL::SMALLER); + }; + + // halfedge 0 is between p and q, so cap at q => return halfedge 2 (r to p) + if(handle_triplet(p, q, r, 0)) + return 2; + if(handle_triplet(q, r, p, 1)) + return 0; + if(handle_triplet(r, p, q, 2)) + return 1; - const FT sq_threshold = square(FT(threshold)); - if(max_sq_length / min_sq_length >= sq_threshold) - { - CGAL_assertion(min_h != boost::graph_traits::null_halfedge()); - return min_h; + return -1; } - else - return boost::graph_traits::null_halfedge(); -} +}; -template -typename boost::graph_traits::halfedge_descriptor -is_needle_triangle_face(typename boost::graph_traits::face_descriptor f, - const TriangleMesh& tm, - const double threshold) +template +struct Is_cap_angle_over_threshold + : public Is_cap_angle_over_threshold_impl { - return is_needle_triangle_face(f, tm, threshold, parameters::all_default()); -} + using Is_cap_angle_over_threshold_impl::operator(); +}; + +template +struct Is_cap_angle_over_threshold + : public Get_filtered_predicate_RT::type +{ + using Get_filtered_predicate_RT::type::operator(); +}; + +} // namespace internal -/// \ingroup PMP_repairing_grp +/// \ingroup PMP_predicates_grp +/// /// checks whether a triangle face is a cap. -/// A triangle is said to be a cap if one of the its angles is close to `180` degrees. +/// A triangle is said to be a cap if one of its angles is close to `180` degrees. /// /// @tparam TriangleMesh a model of `FaceGraph` /// @tparam NamedParameters a sequence of \ref bgl_namedparameters "Named Parameters" @@ -457,12 +534,14 @@ /// \cgalNamedParamsEnd /// /// \return the halfedge opposite of the largest angle if the face is a cap, and a null halfedge otherwise. -template +/// +/// \sa `is_needle_triangle_face()` +template typename boost::graph_traits::halfedge_descriptor is_cap_triangle_face(typename boost::graph_traits::face_descriptor f, const TriangleMesh& tm, const double threshold, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { CGAL_precondition(f != boost::graph_traits::null_face()); CGAL_precondition(CGAL::is_triangle(halfedge(f, tm), tm)); @@ -472,7 +551,6 @@ using parameters::get_parameter; using parameters::choose_parameter; - typedef typename boost::graph_traits::vertex_descriptor vertex_descriptor; typedef typename boost::graph_traits::halfedge_descriptor halfedge_descriptor; typedef typename GetVertexPointMap::const_type VertexPointMap; @@ -480,59 +558,26 @@ get_const_property_map(vertex_point, tm)); typedef typename GetGeomTraits::type Traits; - Traits traits = choose_parameter(get_parameter(np, internal_np::geom_traits)); - typedef typename Traits::FT FT; - typedef typename Traits::Vector_3 Vector_3; + const halfedge_descriptor h = halfedge(f, tm); - const FT sq_threshold = square(FT(threshold)); - const halfedge_descriptor h0 = halfedge(f, tm); - - std::array sq_lengths; - int pos = 0; - for(halfedge_descriptor h : halfedges_around_face(h0, tm)) - { - const FT sq_d = traits.compute_squared_distance_3_object()(get(vpmap, source(h, tm)), - get(vpmap, target(h, tm))); - - // If even one edge is degenerate, it cannot be a cap - if(sq_d == 0) - return boost::graph_traits::null_halfedge(); - - sq_lengths[pos++] = sq_d; - } + internal::Is_cap_angle_over_threshold pred; + const int res = pred(get(vpmap, source(h, tm)), + get(vpmap, target(h, tm)), + get(vpmap, target(next(h, tm), tm)), + square(threshold)); - pos = 0; - for(halfedge_descriptor h : halfedges_around_face(h0, tm)) - { - const vertex_descriptor v0 = source(h, tm); - const vertex_descriptor v1 = target(h, tm); - const vertex_descriptor v2 = target(next(h, tm), tm); - const Vector_3 a = traits.construct_vector_3_object()(get(vpmap, v1), get(vpmap, v2)); - const Vector_3 b = traits.construct_vector_3_object()(get(vpmap, v1), get(vpmap, v0)); - const FT dot_ab = traits.compute_scalar_product_3_object()(a, b); - const bool neg_sp = (dot_ab <= 0); - const FT sq_a = sq_lengths[(pos+1)%3]; - const FT sq_b = sq_lengths[pos]; - const FT sq_cos = dot_ab * dot_ab / (sq_a * sq_b); - - if(neg_sp && sq_cos >= sq_threshold) - return prev(h, tm); - - ++pos; - } - return boost::graph_traits::null_halfedge(); -} - -template -typename boost::graph_traits::halfedge_descriptor -is_cap_triangle_face(typename boost::graph_traits::face_descriptor f, - const TriangleMesh& tm, - const double threshold) -{ - return is_cap_triangle_face(f, tm, threshold, parameters::all_default()); + if(res == -1) + return boost::graph_traits::null_halfedge(); + if(res == 0) + return h; + if(res == 1) + return next(h, tm); + else + return prev(h, tm); } -} } // end namespaces CGAL and PMP +} // namespace Polygon_mesh_processing +} // namespace CGAL #endif // CGAL_POLYGON_MESH_PROCESSING_SHAPE_PREDICATES_H diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/smooth_mesh.h cgal-5.5/include/CGAL/Polygon_mesh_processing/smooth_mesh.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/smooth_mesh.h 2022-06-03 19:05:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/smooth_mesh.h 2022-07-13 19:06:09.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/smooth_mesh.h $ -// $Id: smooth_mesh.h f55ef7d 2020-10-09T18:36:17+02:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/smooth_mesh.h $ +// $Id: smooth_mesh.h 0d2b1cb 2022-03-31T16:50:40+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -16,363 +16,43 @@ #include -#include -#include -#include - -#include -#include - -#include - -#ifdef DOXYGEN_RUNNING -#define CGAL_PMP_NP_TEMPLATE_PARAMETERS NamedParameters -#define CGAL_PMP_NP_CLASS NamedParameters -#endif +#define CGAL_DEPRECATED_HEADER "" +#define CGAL_REPLACEMENT_HEADER "" +#include + +#include + +#ifndef CGAL_NO_DEPRECATED_CODE namespace CGAL { namespace Polygon_mesh_processing { /*! -* \ingroup PMP_meshing_grp -* -* \short smooths a triangulated region of a polygon mesh. -* -* This function attempts to make the triangle angle and area distributions as uniform as possible -* by moving (non-constrained) vertices. -* -* Angle-based smoothing does not change the combinatorial information of the mesh. Area-based smoothing -* might change the combinatorial information, unless specified otherwise. It is also possible -* to make the smoothing algorithm "safer" by rejecting moves that, when applied, would worsen the -* quality of the mesh, e.g. that would decrease the value of the smallest angle around a vertex or -* create self-intersections. -* -* Optionally, the points are reprojected after each iteration. -* -* @tparam TriangleMesh model of `MutableFaceGraph`. -* @tparam FaceRange range of `boost::graph_traits::%face_descriptor`, - model of `Range`. Its iterator type is `ForwardIterator`. -* @tparam NamedParameters a sequence of \ref bgl_namedparameters "Named Parameters" -* -* @param tmesh a polygon mesh with triangulated surface patches to be smoothed. -* @param faces the range of triangular faces defining one or several surface patches to be smoothed. -* @param np an optional sequence of \ref bgl_namedparameters "Named Parameters" among the ones listed below -* -* \cgalNamedParamsBegin -* \cgalParamNBegin{number_of_iterations} -* \cgalParamDescription{the number of iterations for the sequence of the smoothing iterations performed} -* \cgalParamType{unsigned int} -* \cgalParamDefault{`1`} -* \cgalParamNEnd -* -* \cgalParamNBegin{use_angle_smoothing} -* \cgalParamDescription{value to indicate whether angle-based smoothing should be used} -* \cgalParamType{Boolean} -* \cgalParamDefault{`true`} -* \cgalParamNEnd -* -* \cgalParamNBegin{use_area_smoothing} -* \cgalParamDescription{value to indicate whether area-based smoothing should be used} -* \cgalParamType{Boolean} -* \cgalParamDefault{`true`} -* \cgalParamNEnd -* -* \cgalParamNBegin{vertex_point_map} -* \cgalParamDescription{a property map associating points to the vertices of `tmesh`} -* \cgalParamType{a class model of `ReadWritePropertyMap` with `boost::graph_traits::%vertex_descriptor` -* as key type and `%Point_3` as value type} -* \cgalParamDefault{`boost::get(CGAL::vertex_point, tmesh)`} -* \cgalParamExtra{If this parameter is omitted, an internal property map for `CGAL::vertex_point_t` -* must be available in `TriangleMesh`.} -* \cgalParamNEnd -* -* \cgalParamNBegin{geom_traits} -* \cgalParamDescription{an instance of a geometric traits class} -* \cgalParamType{a class model of `Kernel`} -* \cgalParamDefault{a \cgal Kernel deduced from the point type, using `CGAL::Kernel_traits`} -* \cgalParamExtra{The geometric traits class must be compatible with the vertex point type.} -* \cgalParamNEnd -* -* \cgalParamNBegin{use_safety_constraints} -* \cgalParamDescription{If `true`, vertex moves that would worsen the mesh are ignored.} -* \cgalParamType{Boolean} -* \cgalParamDefault{`false`} -* \cgalParamNEnd -* -* \cgalParamNBegin{use_Delaunay_flips} -* \cgalParamDescription{If `true`, area-based smoothing will be completed by a phase of -* Delaunay-based edge-flips to prevent the creation of elongated triangles.} -* \cgalParamType{Boolean} -* \cgalParamDefault{`true`} -* \cgalParamNEnd -* -* \cgalParamNBegin{do_project} -* \cgalParamDescription{If `true`, points are projected onto the initial surface after each iteration.} -* \cgalParamType{Boolean} -* \cgalParamDefault{`true`} -* \cgalParamNEnd -* -* \cgalParamNBegin{vertex_is_constrained_map} -* \cgalParamDescription{a property map containing the constrained-or-not status of each vertex of `tmesh`.} -* \cgalParamType{a class model of `ReadWritePropertyMap` with `boost::graph_traits::%vertex_descriptor` -* as key type and `bool` as value type. It must be default constructible.} -* \cgalParamDefault{a default property map where no vertex is constrained} -* \cgalParamExtra{A constrained vertex cannot be modified at all during smoothing.} -* \cgalParamNEnd +* \ingroup PMPDeprecated * -* \cgalParamNBegin{edge_is_constrained_map} -* \cgalParamDescription{a property map containing the constrained-or-not status of each edge of `tmesh`.} -* \cgalParamType{a class model of `ReadWritePropertyMap` with `boost::graph_traits::%edge_descriptor` -* as key type and `bool` as value type. It must be default constructible.} -* \cgalParamDefault{a default property map where no edge is constrained} -* \cgalParamExtra{A constrained edge cannot be modified at all during smoothing.} -* \cgalParamNEnd -* \cgalNamedParamsEnd -* -* @warning The third party library \link thirdpartyCeres Ceres \endlink is required -* to use area-based smoothing. -* -* @pre `tmesh` does not contain any degenerate faces +* \deprecated This function is deprecated since \cgal 5.5, +* `CGAL::angle_and_area_smoothing()` should be used instead. */ -template -void smooth_mesh(const FaceRange& faces, - TriangleMesh& tmesh, - const NamedParameters& np) +template +CGAL_DEPRECATED void smooth_mesh(const FaceRange& faces, + TriangleMesh& tmesh, + const NamedParameters& np = parameters::default_values()) { - typedef typename boost::graph_traits::vertex_descriptor vertex_descriptor; - typedef typename boost::graph_traits::halfedge_descriptor halfedge_descriptor; - typedef typename boost::graph_traits::edge_descriptor edge_descriptor; - typedef typename boost::graph_traits::face_descriptor face_descriptor; - - typedef typename GetGeomTraits::type GeomTraits; - typedef typename GetVertexPointMap::type VertexPointMap; - - // We need a default pmap that is not just 'constant_pmap(false)' because if an edge is constrained, - // its vertices are constrained. - typedef CGAL::dynamic_vertex_property_t Vertex_property_tag; - typedef typename boost::property_map::type Default_VCMap; - typedef typename internal_np::Lookup_named_param_def ::type VCMap; - - typedef typename internal_np::Lookup_named_param_def // default - > ::type ECMap; - - typedef internal::Area_smoother Area_optimizer; - typedef internal::Mesh_smoother Area_smoother; - typedef internal::Delaunay_edge_flipper Delaunay_flipper; - - typedef internal::Angle_smoother Angle_optimizer; - typedef internal::Mesh_smoother Angle_smoother; - - typedef typename GeomTraits::Triangle_3 Triangle; - typedef std::vector Triangle_container; - - typedef CGAL::AABB_triangle_primitive AABB_Primitive; - typedef CGAL::AABB_traits AABB_Traits; - typedef CGAL::AABB_tree Tree; - - if(std::begin(faces) == std::end(faces)) - return; - - using parameters::choose_parameter; - using parameters::get_parameter; - - // named parameters - GeomTraits gt = choose_parameter(get_parameter(np, internal_np::geom_traits)); - VertexPointMap vpmap = choose_parameter(get_parameter(np, internal_np::vertex_point), - get_property_map(CGAL::vertex_point, tmesh)); - - const bool use_angle_smoothing = choose_parameter(get_parameter(np, internal_np::use_angle_smoothing), true); - bool use_area_smoothing = choose_parameter(get_parameter(np, internal_np::use_area_smoothing), true); - -#ifndef CGAL_PMP_USE_CERES_SOLVER - std::cerr << "Area-based smoothing requires the Ceres Library, which is not available." << std::endl; - std::cerr << "No such smoothing will be performed!" << std::endl; - use_area_smoothing = false; -#endif - - if(!use_angle_smoothing && !use_area_smoothing) - std::cerr << "Called PMP::smooth_mesh() without any smoothing method selected or available" << std::endl; - - unsigned int nb_iterations = choose_parameter(get_parameter(np, internal_np::number_of_iterations), 1); - const bool do_project = choose_parameter(get_parameter(np, internal_np::do_project), true); - const bool use_safety_constraints = choose_parameter(get_parameter(np, internal_np::use_safety_constraints), true); - const bool use_Delaunay_flips = choose_parameter(get_parameter(np, internal_np::use_Delaunay_flips), true); - - VCMap vcmap = choose_parameter(get_parameter(np, internal_np::vertex_is_constrained), - get(Vertex_property_tag(), tmesh)); - - // If it's the default vcmap, manually set everything to false because the dynamic pmap has no default initialization - if((std::is_same::value)) - { - for(vertex_descriptor v : vertices(tmesh)) - put(vcmap, v, false); - } - - ECMap ecmap = choose_parameter(get_parameter(np, internal_np::edge_is_constrained), - Static_boolean_property_map()); - - // a constrained edge has constrained extremities - for(face_descriptor f : faces) - { - if(f == boost::graph_traits::null_face()) - continue; - - for(halfedge_descriptor h : CGAL::halfedges_around_face(halfedge(f, tmesh), tmesh)) - { - if(get(ecmap, edge(h, tmesh))) - { - put(vcmap, source(h, tmesh), true); - put(vcmap, target(h, tmesh), true); - } - } - } - - // Construct the AABB tree (if needed for reprojection) - std::vector input_triangles; - - if(do_project) - { - input_triangles.reserve(faces.size()); - - for(face_descriptor f : faces) - { - halfedge_descriptor h = halfedge(f, tmesh); - if(is_border(h, tmesh)) // should not happen, but just in case - continue; - - input_triangles.push_back(gt.construct_triangle_3_object()(get(vpmap, source(h, tmesh)), - get(vpmap, target(h, tmesh)), - get(vpmap, target(next(h, tmesh), tmesh)))); - } - } - - Tree aabb_tree(input_triangles.begin(), input_triangles.end()); - - // Setup the working ranges and check some preconditions - Angle_smoother angle_smoother(tmesh, vpmap, vcmap, gt); - Area_smoother area_smoother(tmesh, vpmap, vcmap, gt); - Delaunay_flipper delaunay_flipper(tmesh, vpmap, ecmap, gt); - - if(use_angle_smoothing) - angle_smoother.init_smoothing(faces); - - if(use_area_smoothing) - area_smoother.init_smoothing(faces); - - for(unsigned int i=0; i -void smooth_mesh(const FaceRange& face_range, TriangleMesh& tmesh) -{ - smooth_mesh(face_range, tmesh, parameters::all_default()); -} - -template -void smooth_mesh(TriangleMesh& tmesh, const CGAL_PMP_NP_CLASS& np) +template +CGAL_DEPRECATED void smooth_mesh(TriangleMesh& tmesh, const CGAL_NP_CLASS& np = parameters::default_values()) { smooth_mesh(faces(tmesh), tmesh, np); } +///\endcond -template -void smooth_mesh(TriangleMesh& tmesh) -{ - smooth_mesh(faces(tmesh), tmesh, parameters::all_default()); -} - -template -void angles_evaluation(TriangleMesh& tmesh, GeomTraits traits, Stream& output) -{ - internal::Quality_evaluator evaluator(tmesh, traits); - evaluator.gather_angles(); - evaluator.extract_angles(output); -} - -template -void areas_evaluation(TriangleMesh& tmesh, GeomTraits traits, Stream& output) -{ - internal::Quality_evaluator evaluator(tmesh, traits); - evaluator.measure_areas(); - evaluator.extract_areas(output); -} - -template -void aspect_ratio_evaluation(TriangleMesh& tmesh, GeomTraits traits, Stream& output) -{ - internal::Quality_evaluator evaluator(tmesh, traits); - evaluator.calc_aspect_ratios(); - evaluator.extract_aspect_ratios(output); -} -///\endcond SKIP_IN_MANUAL } // namespace Polygon_mesh_processing } // namespace CGAL +#endif //#ifndef CGAL_NO_DEPRECATED_CODE + #endif // CGAL_POLYGON_MESH_PROCESSING_SMOOTH_MESH_H diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/smooth_shape.h cgal-5.5/include/CGAL/Polygon_mesh_processing/smooth_shape.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/smooth_shape.h 2022-06-03 19:05:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/smooth_shape.h 2022-07-13 19:06:09.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/smooth_shape.h $ -// $Id: smooth_shape.h 521c72d 2021-10-04T13:22:00+02:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/smooth_shape.h $ +// $Id: smooth_shape.h bb0b9a8 2022-03-07T15:32:37+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -30,17 +30,14 @@ #include #endif -#ifdef DOXYGEN_RUNNING -#define CGAL_PMP_NP_TEMPLATE_PARAMETERS NamedParameters -#define CGAL_PMP_NP_CLASS NamedParameters -#endif - namespace CGAL { namespace Polygon_mesh_processing { /*! * \ingroup PMP_meshing_grp -* smooths the overall shape of the mesh by using the mean curvature flow. +* +* @brief smooths the overall shape of the mesh by using the mean curvature flow. +* * The effect depends on the curvature of each area and on a time step which * represents the amount by which vertices are allowed to move. * The result conformally maps the initial surface to a sphere. @@ -98,13 +95,15 @@ * \cgalParamNEnd * \cgalNamedParamsEnd * -* @warning This function involves linear algebra, that is computed using a non-exact floating-point arithmetic. +* @warning This function involves linear algebra, that is computed using non-exact, floating-point arithmetic. +* +* @see `smooth_mesh()` */ -template +template void smooth_shape(const FaceRange& faces, TriangleMesh& tmesh, const double time, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { if(std::begin(faces) == std::end(faces)) return; @@ -202,28 +201,13 @@ } /// \cond SKIP_IN_MANUAL -template -void smooth_shape(const FaceRange& faces, - TriangleMesh& tmesh, - const double time) -{ - smooth_shape(faces, tmesh, time, parameters::all_default()); -} - -template +template void smooth_shape(TriangleMesh& tmesh, const double time, - const CGAL_PMP_NP_CLASS& np) + const CGAL_NP_CLASS& np = parameters::default_values()) { smooth_shape(faces(tmesh), tmesh, time, np); } - -template -void smooth_shape(TriangleMesh& tmesh, - const double time) -{ - smooth_shape(faces(tmesh), tmesh, time, parameters::all_default()); -} /// \endcond } // Polygon_mesh_processing diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/stitch_borders.h cgal-5.5/include/CGAL/Polygon_mesh_processing/stitch_borders.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/stitch_borders.h 2022-06-03 19:05:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/stitch_borders.h 2022-07-13 19:06:09.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/stitch_borders.h $ -// $Id: stitch_borders.h abe1f6e 2021-02-22T16:51:35+01:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/stitch_borders.h $ +// $Id: stitch_borders.h cc50e44 2022-07-11T13:24:20+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -19,7 +19,7 @@ #include #include -#include +#include #include #include #include @@ -34,6 +34,7 @@ #include #include +#include #include #include @@ -44,11 +45,6 @@ #include #include -#ifdef DOXYGEN_RUNNING -#define CGAL_PMP_NP_TEMPLATE_PARAMETERS NamedParameters -#define CGAL_PMP_NP_CLASS NamedParameters -#endif - #ifdef CGAL_PMP_STITCHING_DEBUG_PP # ifndef CGAL_PMP_STITCHING_DEBUG # define CGAL_PMP_STITCHING_DEBUG @@ -62,29 +58,46 @@ ////// Helper structs // Used to compare halfedges based on their geometry -template +template struct Less_for_halfedge { + typedef typename boost::graph_traits::vertex_descriptor vertex_descriptor; typedef typename boost::graph_traits::halfedge_descriptor halfedge_descriptor; typedef typename boost::property_traits::reference Point; - Less_for_halfedge(const PolygonMesh& pmesh_, const VertexPointMap& vpm_) - : pmesh(pmesh_), vpm(vpm_) + Less_for_halfedge(const PolygonMesh& pmesh_, const VertexPointMap vpm_, const GeomTraits& gt_) + : pmesh(pmesh_), vpm(vpm_), gt(gt_) {} bool operator()(const halfedge_descriptor h1, const halfedge_descriptor h2) const { - Point s1 = get(vpm,target(opposite(h1, pmesh), pmesh)); - Point t1 = get(vpm,target(h1, pmesh)); - Point s2 = get(vpm,target(opposite(h2, pmesh), pmesh)); - Point t2 = get(vpm,target(h2, pmesh)); + typename GeomTraits::Equal_3 equal = gt.equal_3_object(); + typename GeomTraits::Less_xyz_3 less = gt.less_xyz_3_object(); + + vertex_descriptor vm1 = source(h1, pmesh); + vertex_descriptor vM1 = target(h1, pmesh); + vertex_descriptor vm2 = source(h2, pmesh); + vertex_descriptor vM2 = target(h2, pmesh); + + if(less(get(vpm, vM1), get(vpm, vm1))) + std::swap(vM1, vm1); + if(less(get(vpm, vM2), get(vpm, vm2))) + std::swap(vM2, vm2); + + Point pm1 = get(vpm, vm1); + Point pM1 = get(vpm, vM1); + Point pm2 = get(vpm, vm2); + Point pM2 = get(vpm, vM2); - return (s1 < t1 ? std::make_pair(s1,t1) : std::make_pair(t1, s1)) - < (s2 < t2 ? std::make_pair(s2,t2) : std::make_pair(t2, s2)); + if(equal(pm1, pm2)) + return less(pM1, pM2); + + return less(pm1, pm2); } const PolygonMesh& pmesh; - const VertexPointMap& vpm; + const VertexPointMap vpm; + const GeomTraits& gt; }; // The following structs determine which of the two halfedges is kept when a pair is merged @@ -320,15 +333,19 @@ typename Border_halfedge_map, typename Halfedge_pair, typename Manifold_halfedge_pair, + typename Mesh, typename VPM, - typename Mesh> + typename GT> void fill_pairs(const Halfedge& he, Border_halfedge_map& border_halfedge_map, Halfedge_pair& halfedge_pairs, Manifold_halfedge_pair& manifold_halfedge_pairs, + const Mesh& pmesh, VPM vpm, - const Mesh& pmesh) + const GT& gt) { + typename GT::Equal_3 equal = gt.equal_3_object(); + typename Border_halfedge_map::iterator set_it; bool insertion_ok; std::tie(set_it, insertion_ok) = border_halfedge_map.emplace(he, std::make_pair(1,0)); @@ -341,8 +358,8 @@ const Halfedge other_he = set_it->first; set_it->second.second = halfedge_pairs.size(); // set the id of the pair in the vector halfedge_pairs.emplace_back(other_he, he); - if(get(vpm, source(he,pmesh)) == get(vpm, target(other_he, pmesh)) && - get(vpm, target(he,pmesh)) == get(vpm, source(other_he, pmesh))) + if(equal(get(vpm, source(he,pmesh)), get(vpm, target(other_he, pmesh))) && + equal(get(vpm, target(he,pmesh)), get(vpm, source(other_he, pmesh)))) { // Even if the halfedges are compatible, refuse to stitch if that would break the graph if(face(opposite(he, pmesh), pmesh) == face(opposite(other_he, pmesh), pmesh)) @@ -366,23 +383,26 @@ typename PolygonMesh, typename HalfedgeKeeper, typename OutputIterator, - typename CGAL_PMP_NP_TEMPLATE_PARAMETERS> + typename CGAL_NP_TEMPLATE_PARAMETERS> OutputIterator collect_duplicated_stitchable_boundary_edges(const HalfedgeRange& halfedge_range, PolygonMesh& pmesh, const HalfedgeKeeper& hd_kpr, const bool per_cc, OutputIterator out, - const CGAL_PMP_NP_CLASS& np) + const CGAL_NP_CLASS& np) { using parameters::choose_parameter; using parameters::get_parameter; typedef typename boost::graph_traits::halfedge_descriptor halfedge_descriptor; - typedef typename GetVertexPointMap::const_type VPM; + typedef typename GetVertexPointMap::const_type VPM; VPM vpm = choose_parameter(get_parameter(np, internal_np::vertex_point), get_const_property_map(vertex_point, pmesh)); + typedef typename GetGeomTraits::type GT; + GT gt = choose_parameter(get_parameter(np, internal_np::geom_traits)); + typedef CGAL::dynamic_face_property_t Face_property_tag; typedef typename boost::property_map::type Face_cc_map; @@ -390,10 +410,10 @@ std::size_t num_cc = 0; std::vector > border_edges_per_cc; - typedef Less_for_halfedge Less_hedge; + typedef Less_for_halfedge Less_hedge; typedef std::map, Less_hedge> Border_halfedge_map; - Less_hedge less_hedge(pmesh, vpm); + Less_hedge less_hedge(pmesh, vpm, gt); Border_halfedge_map border_halfedge_map(less_hedge); std::vector > halfedge_pairs; @@ -424,7 +444,7 @@ if(per_cc) border_edges_per_cc[get(cc, face(opposite(he, pmesh), pmesh))].push_back(he); else - fill_pairs(he, border_halfedge_map, halfedge_pairs, manifold_halfedge_pairs, vpm, pmesh); + fill_pairs(he, border_halfedge_map, halfedge_pairs, manifold_halfedge_pairs, pmesh, vpm, gt); } if(per_cc) @@ -439,7 +459,7 @@ { halfedge_descriptor he = border_edges_per_cc[i][j]; fill_pairs(he, border_halfedge_map_in_cc, halfedge_pairs, - manifold_halfedge_pairs, vpm, pmesh); + manifold_halfedge_pairs, pmesh, vpm, gt); } // put in `out` only manifold edges from the set of edges to stitch. @@ -695,8 +715,10 @@ // We look for vertex to be stitched and collect all incident edges with another endpoint // to be stitched (that is not an edge scheduled for stitching). That way we can detect // if more that one edge will share the same two "master" endpoints. - typedef boost::unordered_map, - std::vector > Halfedges_after_stitching; + typedef std::pair Vertex_pair; + typedef std::unordered_map, + boost::hash> Halfedges_after_stitching; Halfedges_after_stitching halfedges_after_stitching; typedef std::pair Pair_type; @@ -865,17 +887,21 @@ // However, even if non-manifoldness exists within a loop, it is safe choice to stitch consecutive // stitchable halfedges template + typename GT> std::size_t zip_boundary_cycle(typename boost::graph_traits::halfedge_descriptor& bh, const HalfedgeRange& cycle_halfedges, + const HalfedgeKeeper& hd_kpr, PolygonMesh& pmesh, const VPM vpm, - const HalfedgeKeeper& hd_kpr) + const GT& gt) { typedef typename boost::graph_traits::halfedge_descriptor halfedge_descriptor; + typename GT::Equal_3 equal = gt.equal_3_object(); + std::size_t stitched_boundary_cycles_n = 0; // Zipping cannot change the topology of the hole so the maintenance is trivial @@ -911,10 +937,11 @@ do { halfedge_descriptor hnn = next(hn, pmesh); - CGAL_assertion(get(vpm, target(hn, pmesh)) == get(vpm, source(hnn, pmesh))); + CGAL_assertion(equal(get(vpm, target(hn, pmesh)), get(vpm, source(hnn, pmesh)))); - if(get(vpm, source(hn, pmesh)) == get(vpm, target(hnn, pmesh)) && - !is_degenerate_edge(edge(hn, pmesh), pmesh, parameters::vertex_point_map(vpm))) + if(equal(get(vpm, source(hn, pmesh)), get(vpm, target(hnn, pmesh))) && + !is_degenerate_edge(edge(hn, pmesh), pmesh, + parameters::vertex_point_map(vpm).geom_traits(gt))) { if(unstitchable_halfedges.count(hn) == 0) { @@ -980,8 +1007,9 @@ curr_hn = next(curr_hn, pmesh); // check if the next two halfedges are not geometrically compatible - if(get(vpm, source(curr_h, pmesh)) != get(vpm, target(curr_hn, pmesh)) || - is_degenerate_edge(edge(curr_hn, pmesh), pmesh, parameters::vertex_point_map(vpm))) + if(!equal(get(vpm, source(curr_h, pmesh)), get(vpm, target(curr_hn, pmesh))) || + is_degenerate_edge(edge(curr_hn, pmesh), pmesh, + parameters::vertex_point_map(vpm).geom_traits(gt))) { bh = curr_hn; break; @@ -1026,11 +1054,11 @@ /// High-level functions -template +template std::size_t stitch_boundary_cycle(const typename boost::graph_traits::halfedge_descriptor h, PolygonMesh& pmesh, CycleRepMaintainer& cycle_reps_maintainer, - const CGAL_PMP_NP_CLASS& np) + const CGAL_NP_CLASS& np) { typedef typename boost::graph_traits::halfedge_descriptor halfedge_descriptor; typedef typename std::pair halfedges_pair; @@ -1042,12 +1070,15 @@ using parameters::choose_parameter; using parameters::get_parameter; - typedef typename GetVertexPointMap::const_type VPM; + typedef typename GetVertexPointMap::const_type VPM; VPM vpm = choose_parameter(get_parameter(np, internal_np::vertex_point), get_const_property_map(vertex_point, pmesh)); + typedef typename GetGeomTraits::type GT; + GT gt = choose_parameter(get_parameter(np, internal_np::geom_traits)); + typedef typename internal_np::Lookup_named_param_def >::type Halfedge_keeper; const Halfedge_keeper hd_kpr = choose_parameter(get_parameter(np, internal_np::halfedges_keeper), Default_halfedges_keeper()); @@ -1058,7 +1089,7 @@ for(halfedge_descriptor h : halfedges_around_face(bh, pmesh)) cycle_halfedges.push_back(h); - std::size_t res = internal::zip_boundary_cycle(bh, cycle_halfedges, pmesh, vpm, hd_kpr); + std::size_t res = internal::zip_boundary_cycle(bh, cycle_halfedges, hd_kpr, pmesh, vpm, gt); if(bh == boost::graph_traits::null_halfedge()) // stitched everything { cycle_reps_maintainer.remove_representative(bh); @@ -1090,7 +1121,8 @@ /// \ingroup PMP_repairing_grp /// -/// \brief stitches together, whenever possible, two halfedges belonging to the boundary cycle described by the halfedge `h`. +/// \brief stitches together, whenever possible, two halfedges belonging to the boundary cycle +/// described by the halfedge `h`. /// /// Two border halfedges `h1` and `h2` can be stitched /// if the points associated to the source and target vertices of `h1` are @@ -1112,6 +1144,17 @@ /// \cgalParamExtra{If this parameter is omitted, an internal property map for `CGAL::vertex_point_t` /// must be available in `PolygonMesh`.} /// \cgalParamNEnd +/// +/// \cgalParamNBegin{geom_traits} +/// \cgalParamDescription{an instance of a geometric traits class} +/// \cgalParamType{The traits class must provide the nested type `Point_3`, +/// and the nested functors: +/// - `Less_xyz_3` to compare lexicographically two points +/// - `Equal_3` to check whether two points are identical. +/// For each functor `Foo`, a function `Foo foo_object()` must be provided.} +/// \cgalParamDefault{a \cgal Kernel deduced from the point type, using `CGAL::Kernel_traits`} +/// \cgalParamExtra{The geometric traits class must be compatible with the vertex point type.} +/// \cgalParamNEnd /// \cgalNamedParamsEnd /// /// \returns the number of pairs of halfedges that were stitched. @@ -1119,30 +1162,23 @@ /// \sa `stitch_boundary_cycles()` /// \sa `stitch_borders()` /// -template +template std::size_t stitch_boundary_cycle(const typename boost::graph_traits::halfedge_descriptor h, PolygonMesh& pmesh, - const CGAL_PMP_NP_CLASS& np) + const CGAL_NP_CLASS& np = parameters::default_values()) { internal::Dummy_cycle_rep_maintainer dummy_maintainer(pmesh); return internal::stitch_boundary_cycle(h, pmesh, dummy_maintainer, np); } -template -std::size_t stitch_boundary_cycle(const typename boost::graph_traits::halfedge_descriptor h, - PolygonMesh& pmesh) -{ - return stitch_boundary_cycle(h, pmesh, parameters::all_default()); -} - namespace internal { template + typename CycleRepMaintainer, typename CGAL_NP_TEMPLATE_PARAMETERS> std::size_t stitch_boundary_cycles(const BorderHalfedgeRange& boundary_cycle_representatives, PolygonMesh& pmesh, CycleRepMaintainer& cycle_reps_maintainer, - const CGAL_PMP_NP_CLASS& np) + const CGAL_NP_CLASS& np) { typedef typename boost::graph_traits::halfedge_descriptor halfedge_descriptor; @@ -1180,6 +1216,17 @@ /// \cgalParamExtra{If this parameter is omitted, an internal property map for `CGAL::vertex_point_t` /// must be available in `PolygonMesh`.} /// \cgalParamNEnd +/// +/// \cgalParamNBegin{geom_traits} +/// \cgalParamDescription{an instance of a geometric traits class} +/// \cgalParamType{The traits class must provide the nested type `Point_3`, +/// and the nested functors: +/// - `Less_xyz_3` to compare lexicographically two points +/// - `Equal_3` to check whether two points are identical. +/// For each functor `Foo`, a function `Foo foo_object()` must be provided.} +/// \cgalParamDefault{a \cgal Kernel deduced from the point type, using `CGAL::Kernel_traits`} +/// \cgalParamExtra{The geometric traits class must be compatible with the vertex point type.} +/// \cgalParamNEnd /// \cgalNamedParamsEnd /// /// \returns the number of pairs of halfedges that were stitched. @@ -1187,10 +1234,10 @@ /// \sa `stitch_boundary_cycle()` /// \sa `stitch_borders()` /// -template +template std::size_t stitch_boundary_cycles(const BorderHalfedgeRange& boundary_cycle_representatives, PolygonMesh& pmesh, - const CGAL_PMP_NP_CLASS& np) + const CGAL_NP_CLASS& np = parameters::default_values()) { // If this API is called, we are not from stitch_borders() (otherwise there would be a maintainer) // so there is only one pass and we don't carea bout maintaining the cycle subset @@ -1201,9 +1248,9 @@ ///\cond SKIP_IN_MANUAL // convenience overloads -template +template std::size_t stitch_boundary_cycles(PolygonMesh& pmesh, - const CGAL_PMP_NP_CLASS& np) + const CGAL_NP_CLASS& np = parameters::default_values()) { typedef typename boost::graph_traits::halfedge_descriptor halfedge_descriptor; @@ -1213,44 +1260,10 @@ return stitch_boundary_cycles(boundary_cycle_representatives, pmesh, np); } -template -std::size_t stitch_boundary_cycles(const BorderHalfedgeRange& boundary_cycle_representatives, - PolygonMesh& pmesh) -{ - return stitch_boundary_cycles(boundary_cycle_representatives, pmesh, parameters::all_default()); -} - -template -std::size_t stitch_boundary_cycles(PolygonMesh& pmesh) -{ - return stitch_boundary_cycles(pmesh, parameters::all_default()); -} +/// \endcond // The VPM is only used here for debugging info purposes as in this overload, the halfedges // to stitch are already provided and all further checks are combinatorial and not geometrical. -// There is thus nothing interesting to pass via named parameters and this overload is not documented. -template -std::size_t stitch_borders(PolygonMesh& pmesh, - const HalfedgePairsRange& hedge_pairs_to_stitch, - const CGAL_PMP_NP_CLASS& np, - typename boost::enable_if< - typename boost::has_range_iterator - >::type* = 0) -{ - using parameters::choose_parameter; - using parameters::get_parameter; - - typedef typename GetVertexPointMap::const_type VPM; - VPM vpm = choose_parameter(get_parameter(np, internal_np::vertex_point), - get_const_property_map(vertex_point, pmesh)); - - return internal::stitch_halfedge_range_dispatcher(hedge_pairs_to_stitch, pmesh, vpm); -} - -///\endcond - /*! * \ingroup PMP_repairing_grp * @@ -1269,33 +1282,53 @@ * * \param pmesh the polygon mesh to be modified by stitching * \param hedge_pairs_to_stitch a range of `std::pair` of halfedges to be stitched together +* \param np an optional sequence of \ref bgl_namedparameters "Named Parameters" among the ones listed below +* +* \cgalNamedParamsBegin +* \cgalParamNBegin{vertex_point_map} +* \cgalParamDescription{a property map associating points to the vertices of `pm`} +* \cgalParamType{a class model of `ReadWritePropertyMap` with `boost::graph_traits::%vertex_descriptor` +* as key type and `%Point_3` as value type} +* \cgalParamDefault{`boost::get(CGAL::vertex_point, pmesh)`} +* \cgalParamExtra{If this parameter is omitted, an internal property map for `CGAL::vertex_point_t` +* must be available in `PolygonMesh`.} +* \cgalParamNEnd +* \cgalNamedParamsEnd * * \return the number of pairs of halfedges that were stitched. * +* \sa `stitch_boundary_cycle()` +* \sa `stitch_boundary_cycles()` */ template + typename HalfedgePairsRange, + typename CGAL_NP_TEMPLATE_PARAMETERS> std::size_t stitch_borders(PolygonMesh& pmesh, - const HalfedgePairsRange& hedge_pairs_to_stitch -#ifndef DOXYGEN_RUNNING - , typename boost::enable_if< - typename boost::has_range_iterator - >::type* = 0 -#endif - ) + const HalfedgePairsRange& hedge_pairs_to_stitch, + const CGAL_NP_CLASS& np = parameters::default_values(), + typename boost::enable_if< + typename boost::has_range_iterator + >::type* = 0) { - return stitch_borders(pmesh, hedge_pairs_to_stitch, parameters::all_default()); + using parameters::choose_parameter; + using parameters::get_parameter; + + typedef typename GetVertexPointMap::const_type VPM; + VPM vpm = choose_parameter(get_parameter(np, internal_np::vertex_point), + get_const_property_map(vertex_point, pmesh)); + + return internal::stitch_halfedge_range_dispatcher(hedge_pairs_to_stitch, pmesh, vpm); } namespace internal { template + typename CGAL_NP_TEMPLATE_PARAMETERS> std::size_t stitch_borders(const BorderHalfedgeRange& boundary_cycle_representatives, PolygonMesh& pmesh, CycleRepMaintainer& cycle_maintainer, - const CGAL_PMP_NP_CLASS& np) + const CGAL_NP_CLASS& np) { typedef typename boost::graph_traits::halfedge_descriptor halfedge_descriptor; @@ -1305,12 +1338,12 @@ if(boundary_cycle_representatives.size() == 0) return 0; - typedef typename GetVertexPointMap::const_type VPM; + typedef typename GetVertexPointMap::const_type VPM; VPM vpm = choose_parameter(get_parameter(np, internal_np::vertex_point), get_const_property_map(vertex_point, pmesh)); typedef typename internal_np::Lookup_named_param_def >::type Halfedge_keeper; const Halfedge_keeper hd_kpr = choose_parameter(get_parameter(np, internal_np::halfedges_keeper), Default_halfedges_keeper()); @@ -1369,8 +1402,6 @@ /// \tparam PolygonMesh a model of `FaceListGraph` and `MutableFaceGraph` /// \tparam NamedParameters a sequence of \ref bgl_namedparameters "Named Parameters" /// -/// \param boundary_cycle_representatives a range of border halfedges, each describing a boundary cycle whose halfedges -/// will be considered for stitching /// \param pmesh the polygon mesh to be modified by the stitching procedure /// \param np optional sequence of \ref bgl_namedparameters "Named Parameters" among the ones listed below /// @@ -1403,39 +1434,9 @@ /// \sa `stitch_boundary_cycle()` /// \sa `stitch_boundary_cycles()` /// -template -std::size_t stitch_borders(const BorderHalfedgeRange& boundary_cycle_representatives, - PolygonMesh& pmesh, - const CGAL_PMP_NP_CLASS& np -#ifndef DOXYGEN_RUNNING - , typename boost::enable_if< - typename boost::has_range_iterator - >::type* = 0 -#endif - ) -{ - // Need to keep track of the cycles since we are working on a subset of all the boundary cycles - internal::Boundary_cycle_rep_maintainer cycle_reps_maintainer(pmesh); - return stitch_borders(boundary_cycle_representatives, pmesh, cycle_reps_maintainer, np); -} - -/// \cond SKIP_IN_MANUAL - -template -std::size_t stitch_borders(const BorderHalfedgeRange& boundary_cycle_representatives, - PolygonMesh& pmesh, - typename boost::enable_if< - typename boost::has_range_iterator - >::type* = 0) -{ - // Need to keep track of the cycles since we are working on a subset of all the boundary cycles - internal::Boundary_cycle_rep_maintainer cycle_reps_maintainer(pmesh); - return stitch_borders(boundary_cycle_representatives, pmesh, cycle_reps_maintainer, parameters::all_default()); -} - -template +template std::size_t stitch_borders(PolygonMesh& pmesh, - const CGAL_PMP_NP_CLASS& np) + const CGAL_NP_CLASS& np = parameters::default_values()) { typedef typename boost::graph_traits::halfedge_descriptor halfedge_descriptor; @@ -1447,13 +1448,80 @@ return stitch_borders(boundary_cycle_representatives, pmesh, dummy_maintainer, np); } -template -std::size_t stitch_borders(PolygonMesh& pmesh) +/// \ingroup PMP_repairing_grp +/// +/// \brief Same as the other overload, but the pairs of halfedges to be stitched +/// are automatically found amongst halfedges in cycles described by `boundary_cycle_representatives`. +/// +/// Two border halfedges `h1` and `h2` are set to be stitched +/// if the points associated to the source and target vertices of `h1` are +/// the same as those of the target and source vertices of `h2`, respectively. +/// +/// \tparam BorderHalfedgeRange a model of `Range` with value type `boost::graph_traits::%halfedge_descriptor` +/// \tparam PolygonMesh a model of `FaceListGraph` and `MutableFaceGraph` +/// \tparam NamedParameters a sequence of \ref bgl_namedparameters "Named Parameters" +/// +/// \param boundary_cycle_representatives a range of border halfedges, each describing a boundary cycle whose halfedges +/// will be considered for stitching +/// \param pmesh the polygon mesh to be modified by the stitching procedure +/// \param np optional sequence of \ref bgl_namedparameters "Named Parameters" among the ones listed below +/// +/// \cgalNamedParamsBegin +/// \cgalParamNBegin{apply_per_connected_component} +/// \cgalParamDescription{specifies if the borders should only be stitched only within their own connected component.} +/// \cgalParamType{Boolean} +/// \cgalParamDefault{`false`} +/// \cgalParamNEnd +/// +/// \cgalParamNBegin{face_index_map} +/// \cgalParamDescription{a property map associating to each face of `pmesh` a unique index between `0` and `num_faces(pmesh) - 1`} +/// \cgalParamType{a class model of `ReadablePropertyMap` with `boost::graph_traits::%face_descriptor` +/// as key type and `std::size_t` as value type} +/// \cgalParamDefault{an automatically indexed internal map} +/// \cgalParamNEnd +/// +/// \cgalParamNBegin{vertex_point_map} +/// \cgalParamDescription{a property map associating points to the vertices of `pmesh`} +/// \cgalParamType{a class model of `ReadWritePropertyMap` with `boost::graph_traits::%vertex_descriptor` +/// as key type and `%Point_3` as value type} +/// \cgalParamDefault{`boost::get(CGAL::vertex_point, pmesh)`} +/// \cgalParamExtra{If this parameter is omitted, an internal property map for `CGAL::vertex_point_t` +/// must be available in `PolygonMesh`.} +/// \cgalParamNEnd +/// +/// \cgalParamNBegin{geom_traits} +/// \cgalParamDescription{an instance of a geometric traits class} +/// \cgalParamType{The traits class must provide the nested type `Point_3`, +/// and the nested functors: +/// - `Less_xyz_3` to compare lexicographically two points +/// - `Equal_3` to check whether two points are identical. +/// For each functor `Foo`, a function `Foo foo_object()` must be provided.} +/// \cgalParamDefault{a \cgal Kernel deduced from the point type, using `CGAL::Kernel_traits`} +/// \cgalParamExtra{The geometric traits class must be compatible with the vertex point type.} +/// \cgalParamNEnd +/// \cgalNamedParamsEnd +/// +/// \return the number of pairs of halfedges that were stitched. +/// +/// \sa `stitch_boundary_cycle()` +/// \sa `stitch_boundary_cycles()` +/// +template +std::size_t stitch_borders(const BorderHalfedgeRange& boundary_cycle_representatives, + PolygonMesh& pmesh, + const CGAL_NP_CLASS& np = parameters::default_values() +#ifndef DOXYGEN_RUNNING + , typename boost::enable_if< + typename boost::has_range_iterator + >::type* = 0 +#endif + ) { - return stitch_borders(pmesh, parameters::all_default()); + // Need to keep track of the cycles since we are working on a subset of all the boundary cycles + internal::Boundary_cycle_rep_maintainer cycle_reps_maintainer(pmesh); + return stitch_borders(boundary_cycle_representatives, pmesh, cycle_reps_maintainer, np); } -/// \endcond } // namespace Polygon_mesh_processing } // namespace CGAL diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/tangential_relaxation.h cgal-5.5/include/CGAL/Polygon_mesh_processing/tangential_relaxation.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/tangential_relaxation.h 1970-01-01 00:00:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/tangential_relaxation.h 2022-07-13 19:06:09.000000000 +0000 @@ -0,0 +1,326 @@ +// Copyright (c) 2015-2021 GeometryFactory (France). +// All rights reserved. +// +// This file is part of CGAL (www.cgal.org). +// +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/tangential_relaxation.h $ +// $Id: tangential_relaxation.h f6f158a 2022-03-29T15:15:54+02:00 Sébastien Loriot +// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial +// +// +// Author(s) : Jane Tournois + + +#ifndef CGAL_POLYGON_MESH_PROCESSING_TANGENTIAL_RELAXATION_H +#define CGAL_POLYGON_MESH_PROCESSING_TANGENTIAL_RELAXATION_H + +#include + +#include +#include + +#include +#include + +#include +#include +#include + +namespace CGAL { +namespace Polygon_mesh_processing { + +namespace internal { +struct Allow_all_moves{ + template + constexpr inline bool operator()(vertex_descriptor, Point_3, Point_3) const + { + return true; + } +}; +} // internal namespace + + +/*! +* \ingroup PMP_meshing_grp +* applies an iterative area-based tangential smoothing to the given range of vertices. +* Each vertex `v` is relocated to its gravity-weighted centroid, and the relocation vector +* is projected back to the tangent plane to the surface at `v`, iteratively. +* The connectivity remains unchanged. +* +* @tparam TriangleMesh model of `FaceGraph` and `VertexListGraph`. +* The descriptor types `boost::graph_traits::%face_descriptor` +* and `boost::graph_traits::%halfedge_descriptor` must be +* models of `Hashable`. +* @tparam VertexRange range of `boost::graph_traits::%vertex_descriptor`, +* model of `Range`. Its iterator type is `ForwardIterator`. +* @tparam NamedParameters a sequence of \ref bgl_namedparameters "Named Parameters" +* +* @param vertices the range of vertices which will be relocated by relaxation +* @param tm the triangle mesh to which `vertices` belong +* @param np an optional sequence of \ref bgl_namedparameters "Named Parameters" among the ones listed below +* +* \cgalNamedParamsBegin +* \cgalParamNBegin{vertex_point_map} +* \cgalParamDescription{a property map associating points to the vertices of `tm`} +* \cgalParamType{a class model of `ReadWritePropertyMap` with `boost::graph_traits::%vertex_descriptor` +* as key type and `%Point_3` as value type} +* \cgalParamDefault{`boost::get(CGAL::vertex_point, tm)`} +* \cgalParamExtra{If this parameter is omitted, an internal property map for `CGAL::vertex_point_t` +* must be available in `TriangleMesh`.} +* \cgalParamNEnd +* +* \cgalParamNBegin{geom_traits} +* \cgalParamDescription{an instance of a geometric traits class} +* \cgalParamType{a class model of `Kernel`} +* \cgalParamDefault{a \cgal Kernel deduced from the `Point_3` type, using `CGAL::Kernel_traits`} +* \cgalParamExtra{The geometric traits class must be compatible with the vertex `Point_3` type.} +* \cgalParamExtra{Exact constructions kernels are not supported by this function.} +* \cgalParamNEnd +* +* \cgalParamNBegin{number_of_iterations} +* \cgalParamDescription{the number of smoothing iterations} +* \cgalParamType{unsigned int} +* \cgalParamDefault{`1`} +* \cgalParamNEnd +* +* \cgalParamNBegin{edge_is_constrained_map} +* \cgalParamDescription{a property map containing the constrained-or-not status of each edge of `tm`. +* The endpoints of a constrained edge cannot be moved by relaxation.} +* \cgalParamType{a class model of `ReadWritePropertyMap` with `boost::graph_traits::%edge_descriptor` +* as key type and `bool` as value type. It must be default constructible.} +* \cgalParamDefault{a default property map where no edges are constrained} +* \cgalParamExtra{Boundary edges are always considered as constrained edges.} +* \cgalParamNEnd +* +* \cgalParamNBegin{vertex_is_constrained_map} +* \cgalParamDescription{a property map containing the constrained-or-not status of each vertex of `tm`. +* A constrained vertex cannot be modified during relaxation.} +* \cgalParamType{a class model of `ReadWritePropertyMap` with `boost::graph_traits::%vertex_descriptor` +* as key type and `bool` as value type. It must be default constructible.} +* \cgalParamDefault{a default property map where no vertices are constrained} +* \cgalParamNEnd +* +* \cgalParamNBegin{relax_constraints} +* \cgalParamDescription{If `true`, the end vertices of the edges set as constrained +* in `edge_is_constrained_map` and boundary edges move along the +* constrained polylines they belong to.} +* \cgalParamType{Boolean} +* \cgalParamDefault{`false`} +* \cgalParamNEnd +* +* \cgalParamNBegin{allow_move_functor} +* \cgalParamDescription{A function object used to determinate if a vertex move should be allowed or not} +* \cgalParamType{Unary functor that provides `bool operator()(vertex_descriptor v, Point_3 src, Point_3 tgt)` returning `true` +* if the vertex `v` can be moved from `src` to `tgt`; %Point_3` being the value type of the vertex point map } +* \cgalParamDefault{If not provided, all moves are allowed.} +* \cgalParamNEnd +* +* \cgalNamedParamsEnd +* +* \todo check if it should really be a triangle mesh or if a polygon mesh is fine +*/ +template +void tangential_relaxation(const VertexRange& vertices, + TriangleMesh& tm, + const NamedParameters& np = parameters::default_values()) +{ + typedef typename boost::graph_traits::vertex_descriptor vertex_descriptor; + typedef typename boost::graph_traits::halfedge_descriptor halfedge_descriptor; + typedef typename boost::graph_traits::edge_descriptor edge_descriptor; + + using parameters::get_parameter; + using parameters::choose_parameter; + + typedef typename GetGeomTraits::type GT; + + typedef typename GetVertexPointMap::type VPMap; + VPMap vpm = choose_parameter(get_parameter(np, internal_np::vertex_point), + get_property_map(vertex_point, tm)); + + typedef Static_boolean_property_map Default_ECM; + typedef typename internal_np::Lookup_named_param_def < + internal_np::edge_is_constrained_t, + NamedParameters, + Static_boolean_property_map // default (no constraint) + > ::type ECM; + ECM ecm = choose_parameter(get_parameter(np, internal_np::edge_is_constrained), + Default_ECM()); + + typedef typename internal_np::Lookup_named_param_def < + internal_np::vertex_is_constrained_t, + NamedParameters, + Static_boolean_property_map // default (no constraint) + > ::type VCM; + VCM vcm = choose_parameter(get_parameter(np, internal_np::vertex_is_constrained), + Static_boolean_property_map()); + + const bool relax_constraints = choose_parameter(get_parameter(np, internal_np::relax_constraints), false); + const unsigned int nb_iterations = choose_parameter(get_parameter(np, internal_np::number_of_iterations), 1); + + typedef typename GT::Vector_3 Vector_3; + typedef typename GT::Point_3 Point_3; + + auto check_normals = [&](vertex_descriptor v) + { + bool first_run = true; + Vector_3 prev = NULL_VECTOR, first = NULL_VECTOR; + halfedge_descriptor first_h = boost::graph_traits::null_halfedge(); + for (halfedge_descriptor hd : CGAL::halfedges_around_target(v, tm)) + { + if (is_border(hd, tm)) continue; + + Vector_3 n = compute_face_normal(face(hd, tm), tm, np); + if (n == CGAL::NULL_VECTOR) //for degenerate faces + continue; + + if (first_run) + { + first_run = false; + first = n; + first_h = hd; + } + else + { + if (!get(ecm, edge(hd, tm))) + if (to_double(n * prev) <= 0) + return false; + } + prev = n; + } + if (!get(ecm, edge(first_h, tm))) + if (to_double(first * prev) <= 0) + return false; + + return true; + }; + + typedef typename internal_np::Lookup_named_param_def < + internal_np::allow_move_functor_t, + NamedParameters, + internal::Allow_all_moves// default + > ::type Shall_move; + Shall_move shall_move = choose_parameter(get_parameter(np, internal_np::allow_move_functor), + internal::Allow_all_moves()); + + for (unsigned int nit = 0; nit < nb_iterations; ++nit) + { +#ifdef CGAL_PMP_TANGENTIAL_RELAXATION_VERBOSE + std::cout << "\r\t(Tangential relaxation iteration " << (nit + 1) << " / "; + std::cout << nb_iterations << ") "; + std::cout.flush(); +#endif + + typedef std::tuple VNP; + std::vector< VNP > barycenters; + + // at each vertex, compute vertex normal + std::unordered_map vnormals; + compute_vertex_normals(tm, boost::make_assoc_property_map(vnormals), np); + + // at each vertex, compute barycenter of neighbors + for(vertex_descriptor v : vertices) + { + if (get(vcm, v) || CGAL::internal::is_isolated(v, tm)) + continue; + + // collect hedges to detect if we have to handle boundary cases + std::vector interior_hedges, border_halfedges; + for(halfedge_descriptor h : halfedges_around_target(v, tm)) + { + if (is_border_edge(h, tm) || get(ecm, edge(h, tm))) + border_halfedges.push_back(h); + else + interior_hedges.push_back(h); + } + + if (border_halfedges.empty()) + { + const Vector_3& vn = vnormals.at(v); + Vector_3 move = CGAL::NULL_VECTOR; + unsigned int star_size = 0; + for(halfedge_descriptor h :interior_hedges) + { + move = move + Vector_3(get(vpm, v), get(vpm, source(h, tm))); + ++star_size; + } + CGAL_assertion(star_size > 0); //isolated vertices have already been discarded + move = (1. / static_cast(star_size)) * move; + + barycenters.emplace_back(v, vn, get(vpm, v) + move); + } + else + { + if (!relax_constraints) continue; + Vector_3 vn(NULL_VECTOR); + + if (border_halfedges.size() == 2)// corners are constrained + { + vertex_descriptor ph0 = source(border_halfedges[0], tm); + vertex_descriptor ph1 = source(border_halfedges[1], tm); + double dot = to_double(Vector_3(get(vpm, v), get(vpm, ph0)) + * Vector_3(get(vpm, v), get(vpm, ph1))); + // \todo shouldn't it be an input parameter? + //check squared cosine is < 0.25 (~120 degrees) + if (0.25 < dot*dot / ( squared_distance(get(vpm,ph0), get(vpm, v)) * + squared_distance(get(vpm,ph1), get(vpm, v))) ) + barycenters.emplace_back(v, vn, barycenter(get(vpm, ph0), 0.25, get(vpm, ph1), 0.25, get(vpm, v), 0.5)); + } + } + } + + // compute moves + typedef std::pair VP_pair; + std::vector< std::pair > new_locations; + new_locations.reserve(barycenters.size()); + for(const VNP& vnp : barycenters) + { + vertex_descriptor v = std::get<0>(vnp); + const Point_3& pv = get(vpm, v); + const Vector_3& nv = std::get<1>(vnp); + const Point_3& qv = std::get<2>(vnp); //barycenter at v + + new_locations.emplace_back(v, qv + (nv * Vector_3(qv, pv)) * nv); + } + + // perform moves + for(const VP_pair& vp : new_locations) + { + const Point_3 initial_pos = get(vpm, vp.first); // make a copy on purpose + const Vector_3 move(initial_pos, vp.second); + + put(vpm, vp.first, vp.second); + + //check that no inversion happened + double frac = 1.; + while (frac > 0.03 //5 attempts maximum + && ( !check_normals(vp.first) + || !shall_move(vp.first, initial_pos, get(vpm, vp.first)))) //if a face has been inverted + { + frac = 0.5 * frac; + put(vpm, vp.first, initial_pos + frac * move);//shorten the move by 2 + } + if (frac <= 0.02) + put(vpm, vp.first, initial_pos);//cancel move + } + }//end for loop (nit == nb_iterations) + +#ifdef CGAL_PMP_TANGENTIAL_RELAXATION_VERBOSE + std::cout << "\rTangential relaxation : " + << nb_iterations << " iterations done." << std::endl; +#endif +} + +/*! +* \ingroup PMP_meshing_grp +* applies `tangential_relaxation()` to all the vertices of `tm`. +*/ +template +void tangential_relaxation(TriangleMesh& tm, const CGAL_NP_CLASS& np = parameters::default_values()) +{ + tangential_relaxation(vertices(tm), tm, np); +} + +} } // CGAL::Polygon_mesh_processing + +#endif //CGAL_POLYGON_MESH_PROCESSING_TANGENTIAL_RELAXATION_H diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/transform.h cgal-5.5/include/CGAL/Polygon_mesh_processing/transform.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/transform.h 2022-06-03 19:05:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/transform.h 2022-07-13 19:06:09.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/transform.h $ -// $Id: transform.h c253679 2020-04-18T16:27:58+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/transform.h $ +// $Id: transform.h 75b03e6 2022-01-10T15:33:04+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -13,7 +13,7 @@ #define CGAL_POLYGON_MESH_PROCESSING_TRANSFORM_H #include -#include +#include #include namespace CGAL{ @@ -44,10 +44,10 @@ * \cgalNamedParamsEnd * */ -template +template void transform(const Transformation& transformation, PolygonMesh& mesh, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { typedef typename GetVertexPointMap::type VPMap; VPMap vpm = parameters::choose_parameter(parameters::get_parameter(np, internal_np::vertex_point), @@ -59,14 +59,6 @@ } } -/// \cond SKIP_IN_MANUAL -template -void transform(const Transformation& transformation, - PolygonMesh& mesh) -{ - transform(transformation, mesh, parameters::all_default()); -} -/// \endcond } } diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/triangulate_faces.h cgal-5.5/include/CGAL/Polygon_mesh_processing/triangulate_faces.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/triangulate_faces.h 2022-06-03 19:05:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/triangulate_faces.h 2022-07-13 19:06:09.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/triangulate_faces.h $ -// $Id: triangulate_faces.h 7355675 2021-03-19T12:00:08+01:00 Maxime Gimeno +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/triangulate_faces.h $ +// $Id: triangulate_faces.h bb0b9a8 2022-03-07T15:32:37+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -31,7 +31,7 @@ #include #include -#include +#include #include #include @@ -107,8 +107,8 @@ typename Traits::Vector_3 normal = Polygon_mesh_processing::compute_face_normal( - f, pmesh, CGAL::Polygon_mesh_processing::parameters::geom_traits(_traits) - .vertex_point_map(_vpmap)); + f, pmesh, CGAL::parameters::geom_traits(_traits) + .vertex_point_map(_vpmap)); if(normal == typename Traits::Vector_3(0,0,0)) return false; @@ -317,7 +317,7 @@ typedef CGAL::Triple Face_indices; std::vector patch; PMP::triangulate_hole_polyline(hole_points, std::back_inserter(patch), - PMP::parameters::geom_traits(_traits)); + parameters::geom_traits(_traits)); if(patch.empty()) return false; @@ -426,7 +426,9 @@ /** * \ingroup PMP_meshing_grp -* triangulates a single face of a polygon mesh. This function depends on the package \ref PkgTriangulation2 +* +* triangulates a single face of a polygon mesh. This function depends on the package \ref PkgTriangulation2. +* * @tparam PolygonMesh a model of `FaceListGraph` and `MutableFaceGraph` * @tparam NamedParameters a sequence of \ref bgl_namedparameters "Named Parameters" * @@ -461,11 +463,13 @@ * \cgalNamedParamsEnd * * @return `true` if the face has been triangulated. +* +* @see `triangulate_faces()` */ -template +template bool triangulate_face(typename boost::graph_traits::face_descriptor f, PolygonMesh& pmesh, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { using parameters::choose_parameter; using parameters::get_parameter; @@ -495,20 +499,13 @@ return modifier.triangulate_face(f, pmesh, use_cdt, visitor); } -template -bool triangulate_face(typename boost::graph_traits::face_descriptor f, - PolygonMesh& pmesh) -{ - return triangulate_face(f, pmesh, CGAL::Polygon_mesh_processing::parameters::all_default()); -} - /** * \ingroup PMP_meshing_grp -* triangulates given faces of a polygon mesh. This function depends on the package \ref PkgTriangulation2 * -* @tparam FaceRange range of `boost::graph_traits::%face_descriptor`, - model of `Range`. - Its iterator type is `InputIterator`. +* triangulates given faces of a polygon mesh. This function depends on the package \ref PkgTriangulation2. +* +* @tparam FaceRange range of `boost::graph_traits::%face_descriptor`, model of `Range`. +* Its iterator type is `InputIterator`. * @tparam PolygonMesh a model of `FaceListGraph` and `MutableFaceGraph` * @tparam NamedParameters a sequence of \ref bgl_namedparameters "Named Parameters" * @@ -544,12 +541,12 @@ * * @return `true` if all the faces have been triangulated. * -* @see triangulate_face() +* @see `triangulate_face()` */ -template +template bool triangulate_faces(FaceRange face_range, PolygonMesh& pmesh, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { using parameters::choose_parameter; using parameters::get_parameter; @@ -579,15 +576,11 @@ return modifier(face_range, pmesh, use_cdt, visitor); } -template -bool triangulate_faces(FaceRange face_range, PolygonMesh& pmesh) -{ - return triangulate_faces(face_range, pmesh, CGAL::Polygon_mesh_processing::parameters::all_default()); -} - /** * \ingroup PMP_meshing_grp -* triangulates all faces of a polygon mesh. This function depends on the package \ref PkgTriangulation2 +* +* triangulates all faces of a polygon mesh. This function depends on the package \ref PkgTriangulation2. +* * @tparam PolygonMesh a model of `FaceListGraph` and `MutableFaceGraph` * @tparam NamedParameters a sequence of \ref bgl_namedparameters "Named Parameters" * @@ -622,21 +615,15 @@ * * @return `true` if all the faces have been triangulated. * -* @see triangulate_face() +* @see `triangulate_face()` */ -template +template bool triangulate_faces(PolygonMesh& pmesh, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { return triangulate_faces(faces(pmesh), pmesh, np); } -template -bool triangulate_faces(PolygonMesh& pmesh) -{ - return triangulate_faces(faces(pmesh), pmesh, CGAL::Polygon_mesh_processing::parameters::all_default()); -} - } // end namespace Polygon_mesh_processing } // end namespace CGAL diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_processing/triangulate_hole.h cgal-5.5/include/CGAL/Polygon_mesh_processing/triangulate_hole.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_processing/triangulate_hole.h 2022-06-03 19:05:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_processing/triangulate_hole.h 2022-07-13 19:06:09.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/triangulate_hole.h $ -// $Id: triangulate_hole.h 39763cd 2021-12-16T15:14:52+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/triangulate_hole.h $ +// $Id: triangulate_hole.h d01fa7b 2022-05-10T07:16:14+01:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Ilker O. Yaz @@ -22,26 +22,47 @@ #include #include -#include +#include #include #include -#include +#include #include -#ifdef DOXYGEN_RUNNING -#define CGAL_PMP_NP_TEMPLATE_PARAMETERS NamedParameters -#define CGAL_PMP_NP_CLASS NamedParameters -#endif - namespace CGAL { namespace Polygon_mesh_processing { + namespace Hole_filling { + /*! \ingroup PMP_hole_filling_grp + * %Default hole filling visitor model of `PMPHolefillingVisitor`. + * All of its functions have an empty body. This class can be used as a + * base class if only some of the functions of the concept require to be + * overridden. + */ + struct Default_visitor{ + #ifndef DOXYGEN_RUNNING + void start_planar_phase() const {} + void end_planar_phase(bool) const {} + void start_quadratic_phase(std::size_t /* n */) const {} + void quadratic_step() const {} + void end_quadratic_phase(bool) const {} + void start_cubic_phase(int /* n */) const {} + void cubic_step() const {} + void end_cubic_phase() const {} + void start_refine_phase() const {} + void end_refine_phase() const {} + void start_fair_phase() const {} + void end_fair_phase() const {} + #endif + }; + } // namespace Hole_filling + /*! - \ingroup hole_filling_grp + \ingroup PMP_hole_filling_grp + triangulates a hole in a polygon mesh. Depending on the choice of the underlying algorithm different preconditions apply. @@ -106,6 +127,22 @@ \cgalParamExtra{This parameter is used only in conjunction with the parameter `use_2d_constrained_delaunay_triangulation`.} \cgalParamNEnd + + \cgalParamNBegin{do_not_use_cubic_algorithm} + \cgalParamDescription{Set this parameter to `true` if you only want to use the Delaunay based versions of the algorithm, + skipping the cubic search space one in case of failure.} + \cgalParamType{Boolean} + \cgalParamDefault{`false`} + \cgalParamExtra{If `true`, `use_2d_constrained_delaunay_triangulation` or `use_delaunay_triangulation` must be set to `true` + otherwise nothing will be done.} + \cgalParamNEnd + + \cgalParamNBegin{visitor} + \cgalParamDescription{a visitor used to track when entering a given phase of the algorithm} + \cgalParamType{A model of PMPHolefillingVisitor} + \cgalParamType{Hole_filling::Default_visitor} + \cgalParamNEnd + \cgalNamedParamsEnd @return `out` @@ -120,15 +157,16 @@ */ template + typename NamedParameters = parameters::Default_named_parameters> OutputIterator triangulate_hole(PolygonMesh& pmesh, typename boost::graph_traits::halfedge_descriptor border_halfedge, OutputIterator out, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { using parameters::choose_parameter; using parameters::get_parameter; + using parameters::get_parameter_reference; typedef typename GetGeomTraits::type GeomTraits; @@ -141,7 +179,7 @@ CGAL_precondition(face(border_halfedge, pmesh) == boost::graph_traits::null_face()); bool use_cdt = - #ifdef CGAL_HOLE_FILLING_DO_NOT_USE_CDT2 +#ifdef CGAL_HOLE_FILLING_DO_NOT_USE_CDT2 false; #else choose_parameter(get_parameter(np, internal_np::use_2d_constrained_delaunay_triangulation), false); @@ -170,6 +208,8 @@ CGAL_assertion(max_squared_distance >= typename GeomTraits::FT(0)); } + Hole_filling::Default_visitor default_visitor; + return internal::triangulate_hole_polygon_mesh( pmesh, border_halfedge, @@ -178,37 +218,13 @@ use_dt3, choose_parameter(get_parameter(np, internal_np::geom_traits)), use_cdt, + choose_parameter(get_parameter(np, internal_np::do_not_use_cubic_algorithm), false), + choose_parameter(get_parameter_reference(np, internal_np::visitor), default_visitor), max_squared_distance).first; } - template - OutputIterator - triangulate_hole(PolygonMesh& pmesh, - typename boost::graph_traits::halfedge_descriptor border_halfedge, - OutputIterator out) - { - return triangulate_hole(pmesh, border_halfedge, out, - CGAL::Polygon_mesh_processing::parameters::all_default()); - } - - template - void test_in_edges(const PM& pmesh, const VertexRange& patch) - { - for(typename boost::graph_traits::vertex_descriptor v0 : patch) - { - typename boost::graph_traits::in_edge_iterator e, e_end; - for (boost::tie(e, e_end) = in_edges(v0, pmesh); e != e_end; e++) - { - typename boost::graph_traits::halfedge_descriptor he = halfedge(*e, pmesh); - if (is_border(he, pmesh)) { continue; } - - CGAL_assertion(v0 == target(he, pmesh) || v0 == source(he, pmesh)); - } - } - } - /*! - \ingroup hole_filling_grp + \ingroup PMP_hole_filling_grp @brief triangulates and refines a hole in a polygon mesh. @tparam PolygonMesh must be model of `MutableFaceGraph` @@ -270,12 +286,27 @@ the parameter `use_2d_constrained_delaunay_triangulation`.} \cgalParamNEnd + \cgalParamNBegin{do_not_use_cubic_algorithm} + \cgalParamDescription{Set this parameter to `true` if you only want to use the Delaunay based versions of the algorithm, + skipping the cubic search space one in case of failure.} + \cgalParamType{Boolean} + \cgalParamDefault{`false`} + \cgalParamExtra{If `true`, `use_2d_constrained_delaunay_triangulation` or `use_delaunay_triangulation` must be set to `true` + otherwise nothing will be done.} + \cgalParamNEnd + \cgalParamNBegin{density_control_factor} \cgalParamDescription{factor to control density of the ouput mesh, where larger values cause denser refinements, as in `refine()`} \cgalParamType{double} \cgalParamDefault{\f$ \sqrt{2}\f$} \cgalParamNEnd + + \cgalParamNBegin{visitor} + \cgalParamDescription{a visitor used to track when entering a given phase of the algorithm} + \cgalParamType{A model of PMPHolefillingVisitor} + \cgalParamType{Hole_filling::Default_visitor} + \cgalParamNEnd \cgalNamedParamsEnd @return pair of `face_out` and `vertex_out` @@ -288,39 +319,35 @@ template + typename NamedParameters = parameters::Default_named_parameters> std::pair triangulate_and_refine_hole(PolygonMesh& pmesh, typename boost::graph_traits::halfedge_descriptor border_halfedge, FaceOutputIterator face_out, VertexOutputIterator vertex_out, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { + using parameters::choose_parameter; + using parameters::get_parameter_reference; + std::vector::face_descriptor> patch; triangulate_hole(pmesh, border_halfedge, std::back_inserter(patch), np); face_out = std::copy(patch.begin(), patch.end(), face_out); - test_in_edges(pmesh, vertices(pmesh)); - - return refine(pmesh, patch, face_out, vertex_out, np); - } - - template - std::pair - triangulate_and_refine_hole(PolygonMesh& pmesh, - typename boost::graph_traits::halfedge_descriptor border_halfedge, - FaceOutputIterator face_out, - VertexOutputIterator vertex_out) - { - return triangulate_and_refine_hole(pmesh, border_halfedge, - face_out, vertex_out, - CGAL::Polygon_mesh_processing::parameters::all_default()); + Hole_filling::Default_visitor default_visitor; + typedef typename internal_np::Lookup_named_param_def::reference Visitor; + + Visitor visitor = choose_parameter(get_parameter_reference(np, internal_np::visitor), default_visitor); + visitor.start_refine_phase(); + std::pair res = refine(pmesh, patch, face_out, vertex_out, np); + visitor.end_refine_phase(); + return res; } /*! - \ingroup hole_filling_grp + \ingroup PMP_hole_filling_grp @brief triangulates, refines and fairs a hole in a polygon mesh. @tparam PolygonMesh a model of `MutableFaceGraph` @@ -406,6 +433,12 @@ is provided as default value:\n `CGAL::Eigen_solver_traits::%EigenType, Eigen::COLAMDOrdering > >`} \cgalParamNEnd + + \cgalParamNBegin{visitor} + \cgalParamDescription{a visitor used to track when entering a given phase of the algorithm} + \cgalParamType{A model of PMPHolefillingVisitor} + \cgalParamType{Hole_filling::Default_visitor} + \cgalParamNEnd \cgalNamedParamsEnd @return tuple of @@ -422,47 +455,41 @@ template + typename NamedParameters = parameters::Default_named_parameters> std::tuple triangulate_refine_and_fair_hole(PolygonMesh& pmesh, typename boost::graph_traits::halfedge_descriptor border_halfedge, FaceOutputIterator face_out, VertexOutputIterator vertex_out, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { - std::vector::vertex_descriptor> patch; + CGAL_precondition(CGAL::is_triangle_mesh(pmesh)); - CGAL_assertion(CGAL::is_triangle_mesh(pmesh)); + using parameters::choose_parameter; + using parameters::get_parameter_reference; + std::vector::vertex_descriptor> patch; face_out = triangulate_and_refine_hole (pmesh, border_halfedge, face_out, std::back_inserter(patch), np).first; - CGAL_assertion(CGAL::is_triangle_mesh(pmesh)); + CGAL_postcondition(CGAL::is_triangle_mesh(pmesh)); - test_in_edges(pmesh, patch); + Hole_filling::Default_visitor default_visitor; + typedef typename internal_np::Lookup_named_param_def::reference Visitor; + Visitor visitor = choose_parameter(get_parameter_reference(np, internal_np::visitor), default_visitor); + visitor.start_fair_phase(); bool fair_success = fair(pmesh, patch, np); + visitor.end_fair_phase(); vertex_out = std::copy(patch.begin(), patch.end(), vertex_out); return std::make_tuple(fair_success, face_out, vertex_out); } - template - std::tuple - triangulate_refine_and_fair_hole(PolygonMesh& pmesh, - typename boost::graph_traits::halfedge_descriptor border_halfedge, - FaceOutputIterator face_out, - VertexOutputIterator vertex_out) - { - return triangulate_refine_and_fair_hole(pmesh, border_halfedge, - face_out, vertex_out, - CGAL::Polygon_mesh_processing::parameters::all_default()); - } - /*! - \ingroup hole_filling_grp + \ingroup PMP_hole_filling_grp creates triangles to fill the hole defined by points in the range `points`. Triangles are recorded into `out` using the indices of the input points in the range `points`. Note that no degenerate triangles will be produced. @@ -529,6 +556,12 @@ \cgalParamExtra{This parameter is used only in conjunction with the parameter `use_2d_constrained_delaunay_triangulation`.} \cgalParamNEnd + + \cgalParamNBegin{visitor} + \cgalParamDescription{a visitor used to track when entering a given phase of the algorithm} + \cgalParamType{A model of PMPHolefillingVisitor} + \cgalParamType{Hole_filling::Default_visitor} + \cgalParamNEnd \cgalNamedParamsEnd \todo handle islands @@ -536,17 +569,18 @@ template + typename NamedParameters = parameters::Default_named_parameters> OutputIterator triangulate_hole_polyline(const PointRange1& points, const PointRange2& third_points, OutputIterator out, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { if (points.empty()) return out; using parameters::choose_parameter; using parameters::get_parameter; + using parameters::get_parameter_reference; bool use_cdt = #ifdef CGAL_HOLE_FILLING_DO_NOT_USE_CDT2 @@ -576,12 +610,15 @@ typedef typename PointRange1::iterator InIterator; typedef typename std::iterator_traits::value_type Point; typedef typename CGAL::Kernel_traits::Kernel Kernel; + + Hole_filling::Default_visitor default_visitor; + #ifndef CGAL_HOLE_FILLING_DO_NOT_USE_CDT2 if (use_cdt) { - struct Always_valid{ - bool operator()(const std::vector&, int,int,int)const - {return true;} + struct Always_valid + { + bool operator()(const std::vector&, int,int,int) const { return true; } }; Always_valid is_valid; @@ -592,12 +629,14 @@ const typename Kernel::FT threshold_distance = choose_parameter( get_parameter(np, internal_np::threshold_distance), typename Kernel::FT(-1)); typename Kernel::FT max_squared_distance = default_squared_distance; - if (threshold_distance >= typename Kernel::FT(0)) + if(threshold_distance >= typename Kernel::FT(0)) max_squared_distance = threshold_distance * threshold_distance; + CGAL_assertion(max_squared_distance >= typename Kernel::FT(0)); if (triangulate_hole_polyline_with_cdt( points, tracer, + choose_parameter(get_parameter_reference(np, internal_np::visitor), default_visitor), is_valid, choose_parameter(get_parameter(np, internal_np::geom_traits)), max_squared_distance)) @@ -608,37 +647,27 @@ } #endif triangulate_hole_polyline(points, third_points, tracer, WC(), + choose_parameter(get_parameter_reference(np, internal_np::visitor), default_visitor), use_dt3, + choose_parameter(get_parameter(np, internal_np::do_not_use_cubic_algorithm), false), choose_parameter(get_parameter(np, internal_np::geom_traits))); CGAL_assertion(holes.empty()); return tracer.out; } - template - OutputIterator - triangulate_hole_polyline(const PointRange1& points, - const PointRange2& third_points, - OutputIterator out) - { - return triangulate_hole_polyline(points, third_points, out, - CGAL::Polygon_mesh_processing::parameters::all_default()); - } - /*! - \ingroup hole_filling_grp + \ingroup PMP_hole_filling_grp Same as above but the range of third points is omitted. They are not taken into account in the cost computation that leads the hole filling. */ template + typename CGAL_NP_TEMPLATE_PARAMETERS> OutputIterator triangulate_hole_polyline(const PointRange& points, OutputIterator out, - const CGAL_PMP_NP_CLASS& np) + const CGAL_NP_CLASS& np = parameters::default_values()) { typedef typename std::iterator_traits< typename PointRange::iterator>::value_type Point; @@ -646,16 +675,6 @@ return triangulate_hole_polyline(points, third_points, out, np); } - template - OutputIterator - triangulate_hole_polyline(const PointRange& points, - OutputIterator out) - { - return triangulate_hole_polyline(points, out, - CGAL::Polygon_mesh_processing::parameters::all_default()); - } - } //end namespace Polygon_mesh_processing } //end namespace CGAL diff -Nru cgal-5.4.1/include/CGAL/polygon_mesh_processing.h cgal-5.5/include/CGAL/polygon_mesh_processing.h --- cgal-5.4.1/include/CGAL/polygon_mesh_processing.h 2022-06-03 19:05:15.000000000 +0000 +++ cgal-5.5/include/CGAL/polygon_mesh_processing.h 2022-07-13 19:06:09.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/polygon_mesh_processing.h $ -// $Id: polygon_mesh_processing.h 489869c 2020-03-31T17:49:29+02:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/polygon_mesh_processing.h $ +// $Id: polygon_mesh_processing.h 75b03e6 2022-01-10T15:33:04+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -57,6 +57,7 @@ namespace parameters { /*! \ingroup namedparameters +\deprecated This function is deprecated and `default_values()` should be used instead. This function can be used to indicate that all optional named parameters to be used are the default ones. This is particularly useful when a function requires more than one sequence of named parameters and default values is diff -Nru cgal-5.4.1/include/CGAL/Polygon_mesh_slicer.h cgal-5.5/include/CGAL/Polygon_mesh_slicer.h --- cgal-5.4.1/include/CGAL/Polygon_mesh_slicer.h 2022-06-03 19:05:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_mesh_slicer.h 2022-07-13 19:06:09.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polygon_mesh_slicer.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polygon_mesh_slicer.h $ // $Id: Polygon_mesh_slicer.h 263ad6b 2020-08-20T18:25:01+02:00 Dmitry Anisimov // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polygon_nop_decomposition_2.h cgal-5.5/include/CGAL/Polygon_nop_decomposition_2.h --- cgal-5.4.1/include/CGAL/Polygon_nop_decomposition_2.h 2022-06-03 19:04:52.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_nop_decomposition_2.h 2022-07-13 19:05:45.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Minkowski_sum_2/include/CGAL/Polygon_nop_decomposition_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Minkowski_sum_2/include/CGAL/Polygon_nop_decomposition_2.h $ // $Id: Polygon_nop_decomposition_2.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polygon_offset_builder_2.h cgal-5.5/include/CGAL/Polygon_offset_builder_2.h --- cgal-5.4.1/include/CGAL/Polygon_offset_builder_2.h 2022-06-03 19:05:49.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_offset_builder_2.h 2022-07-13 19:06:46.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Straight_skeleton_2/include/CGAL/Polygon_offset_builder_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Straight_skeleton_2/include/CGAL/Polygon_offset_builder_2.h $ // $Id: Polygon_offset_builder_2.h 655d427 2020-09-11T15:00:12+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polygon_offset_builder_traits_2.h cgal-5.5/include/CGAL/Polygon_offset_builder_traits_2.h --- cgal-5.4.1/include/CGAL/Polygon_offset_builder_traits_2.h 2022-06-03 19:05:49.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_offset_builder_traits_2.h 2022-07-13 19:06:46.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Straight_skeleton_2/include/CGAL/Polygon_offset_builder_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Straight_skeleton_2/include/CGAL/Polygon_offset_builder_traits_2.h $ // $Id: Polygon_offset_builder_traits_2.h e9c3531 2020-10-08T22:36:36+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polygon_set_2.h cgal-5.5/include/CGAL/Polygon_set_2.h --- cgal-5.4.1/include/CGAL/Polygon_set_2.h 2022-06-03 19:03:52.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_set_2.h 2022-07-13 19:04:38.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Boolean_set_operations_2/include/CGAL/Polygon_set_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Boolean_set_operations_2/include/CGAL/Polygon_set_2.h $ // $Id: Polygon_set_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polygon_traits_2.h cgal-5.5/include/CGAL/Polygon_traits_2.h --- cgal-5.4.1/include/CGAL/Polygon_traits_2.h 2022-06-03 19:05:13.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_traits_2.h 2022-07-13 19:06:07.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon/include/CGAL/Polygon_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon/include/CGAL/Polygon_traits_2.h $ // $Id: Polygon_traits_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polygon_triangulation_decomposition_2.h cgal-5.5/include/CGAL/Polygon_triangulation_decomposition_2.h --- cgal-5.4.1/include/CGAL/Polygon_triangulation_decomposition_2.h 2022-06-03 19:04:52.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_triangulation_decomposition_2.h 2022-07-13 19:05:45.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Minkowski_sum_2/include/CGAL/Polygon_triangulation_decomposition_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Minkowski_sum_2/include/CGAL/Polygon_triangulation_decomposition_2.h $ // $Id: Polygon_triangulation_decomposition_2.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polygon_vertical_decomposition_2.h cgal-5.5/include/CGAL/Polygon_vertical_decomposition_2.h --- cgal-5.4.1/include/CGAL/Polygon_vertical_decomposition_2.h 2022-06-03 19:04:52.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_vertical_decomposition_2.h 2022-07-13 19:05:45.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Minkowski_sum_2/include/CGAL/Polygon_vertical_decomposition_2.h $ -// $Id: Polygon_vertical_decomposition_2.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Minkowski_sum_2/include/CGAL/Polygon_vertical_decomposition_2.h $ +// $Id: Polygon_vertical_decomposition_2.h 414103f 2022-02-21T17:17:34+02:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Efi Fogel @@ -100,12 +100,34 @@ Equal_2 f_equal; public: + // The pointer to the traits and the flag that indicate ownership should be + // replaced with a smart pointer. Meanwhile, the copy constructor and + // copy assignment prevent double delition. Notice that once a copy + // constructor (assignment) is present, the move constructor (assignment) + // is implicitly not generated anyway. + /*! Default constructor. */ Polygon_vertical_decomposition_2() : m_traits(nullptr), m_own_traits(false) { init(); } + /*! Copy constructor. */ + Polygon_vertical_decomposition_2 + (const Polygon_vertical_decomposition_2& other) : + m_traits((other.m_own_traits) ? new Traits_2 : other.m_traits), + m_own_traits(other.m_own_traits) + { init(); } + + /*! Copy assignment. */ + Polygon_vertical_decomposition_2& + operator=(const Polygon_vertical_decomposition_2& other) { + m_traits = (other.m_own_traits) ? new Traits_2 : other.m_traits; + m_own_traits = other.m_own_traits; + init(); + return *this; + } + /*! Constructor */ Polygon_vertical_decomposition_2(const Traits_2& traits) : m_traits(&traits), diff -Nru cgal-5.4.1/include/CGAL/Polygon_with_holes_2.h cgal-5.5/include/CGAL/Polygon_with_holes_2.h --- cgal-5.4.1/include/CGAL/Polygon_with_holes_2.h 2022-06-03 19:05:13.000000000 +0000 +++ cgal-5.5/include/CGAL/Polygon_with_holes_2.h 2022-07-13 19:06:07.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon/include/CGAL/Polygon_with_holes_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon/include/CGAL/Polygon_with_holes_2.h $ // $Id: Polygon_with_holes_2.h 78ff918 2021-06-23T23:34:14+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polyhedral_complex_mesh_domain_3.h cgal-5.5/include/CGAL/Polyhedral_complex_mesh_domain_3.h --- cgal-5.4.1/include/CGAL/Polyhedral_complex_mesh_domain_3.h 2022-06-03 19:04:49.000000000 +0000 +++ cgal-5.5/include/CGAL/Polyhedral_complex_mesh_domain_3.h 2022-07-13 19:05:41.000000000 +0000 @@ -4,8 +4,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Polyhedral_complex_mesh_domain_3.h $ -// $Id: Polyhedral_complex_mesh_domain_3.h e6bacfb 2021-11-12T10:44:41+01:00 Jane Tournois +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Polyhedral_complex_mesh_domain_3.h $ +// $Id: Polyhedral_complex_mesh_domain_3.h c169c41 2022-01-12T13:33:49+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -768,10 +768,10 @@ nb_of_patch_plus_one +=PMP::sharp_edges_segmentation(p, angle_in_degree , eif , pid_map - , PMP::parameters::first_index(nb_of_patch_plus_one) - .face_index_map(get_initialized_face_index_map(p)) - .vertex_incident_patches_map(vip_map) - .vertex_feature_degree_map(vertex_feature_degree_map)); + , CGAL::parameters::first_index(nb_of_patch_plus_one) + .face_index_map(get_initialized_face_index_map(p)) + .vertex_incident_patches_map(vip_map) + .vertex_feature_degree_map(vertex_feature_degree_map)); Mesh_3::internal::Is_featured_edge is_featured_edge(p); diff -Nru cgal-5.4.1/include/CGAL/Polyhedral_envelope.h cgal-5.5/include/CGAL/Polyhedral_envelope.h --- cgal-5.4.1/include/CGAL/Polyhedral_envelope.h 2022-06-03 19:05:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Polyhedral_envelope.h 2022-07-13 19:06:09.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Polyhedral_envelope.h $ -// $Id: Polyhedral_envelope.h 753fc4d 2021-08-04T09:04:48+02:00 Mael +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Polyhedral_envelope.h $ +// $Id: Polyhedral_envelope.h 477353d 2022-04-20T15:55:50+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: ( GPL-3.0-or-later OR LicenseRef-Commercial ) AND MIT // // Author(s) : Andreas Fabri @@ -69,6 +69,7 @@ #include #include +#include #ifdef CGAL_ENVELOPE_DEBUG // This is for computing the surface mesh of a prism @@ -88,11 +89,6 @@ #include #include -#ifdef DOXYGEN_RUNNING -#define CGAL_PMP_NP_TEMPLATE_PARAMETERS NamedParameters -#define CGAL_PMP_NP_CLASS NamedParameters -#endif - namespace CGAL { /** @@ -359,15 +355,16 @@ * \cgalParamType{a class model of `ReadablePropertyMap` with `boost::graph_traits::%face_descriptor` * as key type and `double` as value type} * \cgalParamDefault{Use `epsilon` for all faces} + * \cgalParamNEnd * \cgalNamedParamsEnd * * \note The triangle mesh gets copied internally, that is it can be modifed after having passed as argument, * while the queries are performed */ - template + template Polyhedral_envelope(const TriangleMesh& tmesh, double epsilon, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { using parameters::choose_parameter; using parameters::get_parameter; @@ -407,7 +404,7 @@ else deg_faces.insert(f); } - if (is_default_parameter(get_parameter(np, internal_np::face_epsilon_map))) + if (is_default_parameter::value) init(epsilon); else { @@ -464,11 +461,11 @@ * \note The triangle mesh gets copied internally, that is it can be modifed after having passed as argument, * while the queries are performed */ - template + template Polyhedral_envelope(const FaceRange& face_range, const TriangleMesh& tmesh, double epsilon, - const NamedParameters& np + const NamedParameters& np = parameters::default_values() #ifndef DOXYGEN_RUNNING , typename std::enable_if::value>::type* = 0 #endif @@ -516,7 +513,7 @@ deg_faces.insert(f); } - if (is_default_parameter(get_parameter(np, internal_np::face_epsilon_map))) + if (is_default_parameter::value) init(epsilon); else { @@ -560,6 +557,7 @@ * \cgalParamType{a model of `ReadablePropertyMap` whose value type is `Point_3` and whose key * is the value type of `PointRange::const_iterator`} * \cgalParamDefault{`CGAL::Identity_property_map`} + * \cgalParamNEnd * \cgalParamNBegin{face_epsilon_map} * \cgalParamDescription{a property map associating to each triangle an epsilon value} * \cgalParamType{a class model of `ReadablePropertyMap` with `std::size_t` as key type and `double` as value type} @@ -568,11 +566,11 @@ * \cgalNamedParamsEnd * */ - template + template Polyhedral_envelope(const PointRange& points, const TriangleRange& triangles, double epsilon, - const NamedParameters& np + const NamedParameters& np = parameters::default_values() #ifndef DOXYGEN_RUNNING , typename std::enable_if::value>::type* = 0 #endif @@ -599,8 +597,10 @@ env_faces.emplace_back(face); } - if (is_default_parameter(get_parameter(np, internal_np::face_epsilon_map))) + if (is_default_parameter::value) + { init(epsilon); + } else { std::vector epsilon_values; @@ -623,30 +623,6 @@ /// @} -#ifndef DOXYGEN_RUNNING - template - Polyhedral_envelope(const TriangleMesh& tmesh, - double epsilon) - : Polyhedral_envelope(tmesh, epsilon, parameters::all_default()) - {} - - template - Polyhedral_envelope(const FaceRange& face_range, - const TriangleMesh& tmesh, - double epsilon, - typename std::enable_if::value>::type* = 0) - : Polyhedral_envelope(face_range, tmesh, epsilon, parameters::all_default()) - {} - - template - Polyhedral_envelope(const PointRange& points, - const TriangleRange& triangles, - double epsilon, - typename std::enable_if::value>::type* = 0) - : Polyhedral_envelope(points, triangles, epsilon, parameters::all_default()) - {} -#endif - private: template @@ -1782,7 +1758,7 @@ inter = Implicit_Seg_Facet_interpoint_Out_Prism_return_local_id_with_face_order_jump_over(ip, filtered_intersection, intersect_face, coverlist, jump1, check_id); - assert(inter != 2);// the point must exist because it is a seg-halfplane intersection + CGAL_assertion(inter != 2);// the point must exist because it is a seg-halfplane intersection if (inter == 1) { return true; @@ -2113,7 +2089,7 @@ std::cout << p.ep << " | " << p.eq << " | " << p.er << std::endl; ePoint_3 pv(ver[faces[i][0]].x(), ver[faces[i][0]].y(),ver[faces[i][0]].z()); Orientation ori = orientation(p.ep, p.eq, p.er, pv); - assert(ori == NEGATIVE); + CGAL_assertion(ori == NEGATIVE); } #endif @@ -2249,14 +2225,19 @@ * the initial list of prisms. * \todo apply that to the soup versions */ - template + template bool - operator()(const TriangleMesh& tmesh, const CGAL_PMP_NP_CLASS& np) const + operator()(const TriangleMesh& tmesh, + const CGAL_NP_CLASS& np = parameters::default_values() +#ifndef DOXYGEN_RUNNING + , typename std::enable_if::value>::type* = 0 +#endif + ) const { using parameters::choose_parameter; using parameters::get_parameter; - typename GetVertexPointMap::const_type + typename GetVertexPointMap::const_type vpm = choose_parameter(get_parameter(np, internal_np::vertex_point), get_const_property_map(CGAL::vertex_point, tmesh)); @@ -2275,16 +2256,6 @@ return true; } -#ifndef DOXYGEN_RUNNING - template - bool - operator()(const TriangleMesh& tmesh, - typename std::enable_if::value>::type* = 0) const - { - return this->operator()(tmesh, parameters::all_default()); - } -#endif - /** * returns `true`, iff all the triangles in `triangles` are inside the polyhedral envelope. * @@ -2309,10 +2280,10 @@ * \cgalNamedParamsEnd * */ - template + template bool operator()(const PointRange& points, const TriangleRange& triangles, - const NamedParameters& np) const + const NamedParameters& np = parameters::default_values()) const { using parameters::choose_parameter; using parameters::get_parameter; @@ -2338,16 +2309,6 @@ return true; } -#ifndef DOXYGEN_RUNNING - template - bool operator()(const PointRange& points, - const TriangleRange& triangles) const - { - return this->operator()(points, triangles, parameters::all_default()); - } - -#endif - /** * returns `true`, iff all the triangles in `triangle_range` are inside the polyhedral envelope. * @tparam TriangleRange a model of `ConstRange` with `ConstRange::const_iterator` diff -Nru cgal-5.4.1/include/CGAL/Polyhedral_mesh_domain_3.h cgal-5.5/include/CGAL/Polyhedral_mesh_domain_3.h --- cgal-5.4.1/include/CGAL/Polyhedral_mesh_domain_3.h 2022-06-03 19:04:49.000000000 +0000 +++ cgal-5.5/include/CGAL/Polyhedral_mesh_domain_3.h 2022-07-13 19:05:41.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Polyhedral_mesh_domain_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Polyhedral_mesh_domain_3.h $ // $Id: Polyhedral_mesh_domain_3.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polyhedral_mesh_domain_with_features_3.h cgal-5.5/include/CGAL/Polyhedral_mesh_domain_with_features_3.h --- cgal-5.4.1/include/CGAL/Polyhedral_mesh_domain_with_features_3.h 2022-06-03 19:04:49.000000000 +0000 +++ cgal-5.5/include/CGAL/Polyhedral_mesh_domain_with_features_3.h 2022-07-13 19:05:41.000000000 +0000 @@ -4,8 +4,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Polyhedral_mesh_domain_with_features_3.h $ -// $Id: Polyhedral_mesh_domain_with_features_3.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Polyhedral_mesh_domain_with_features_3.h $ +// $Id: Polyhedral_mesh_domain_with_features_3.h 1e7785b 2022-01-04T16:00:38+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -399,9 +399,9 @@ nb_of_patch_plus_one += PMP::sharp_edges_segmentation(p, angle_in_degree , eif_map , pid_map - , PMP::parameters::first_index(nb_of_patch_plus_one) - .face_index_map(get_initialized_face_index_map(p)) - .vertex_incident_patches_map(vip_map)); + , CGAL::parameters::first_index(nb_of_patch_plus_one) + .face_index_map(get_initialized_face_index_map(p)) + .vertex_incident_patches_map(vip_map)); Mesh_3::internal::Is_featured_edge is_featured_edge(p); diff -Nru cgal-5.4.1/include/CGAL/PolyhedralSurf_neighbors.h cgal-5.5/include/CGAL/PolyhedralSurf_neighbors.h --- cgal-5.4.1/include/CGAL/PolyhedralSurf_neighbors.h 2022-06-03 19:05:30.000000000 +0000 +++ cgal-5.5/include/CGAL/PolyhedralSurf_neighbors.h 2022-07-13 19:06:25.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Ridges_3/include/CGAL/PolyhedralSurf_neighbors.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Ridges_3/include/CGAL/PolyhedralSurf_neighbors.h $ // $Id: PolyhedralSurf_neighbors.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polyhedron_3_fwd.h cgal-5.5/include/CGAL/Polyhedron_3_fwd.h --- cgal-5.4.1/include/CGAL/Polyhedron_3_fwd.h 2022-06-03 19:04:19.000000000 +0000 +++ cgal-5.5/include/CGAL/Polyhedron_3_fwd.h 2022-07-13 19:05:09.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/Polyhedron_3_fwd.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/Polyhedron_3_fwd.h $ // $Id: Polyhedron_3_fwd.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polyhedron_3.h cgal-5.5/include/CGAL/Polyhedron_3.h --- cgal-5.4.1/include/CGAL/Polyhedron_3.h 2022-06-03 19:05:22.000000000 +0000 +++ cgal-5.5/include/CGAL/Polyhedron_3.h 2022-07-13 19:06:16.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polyhedron/include/CGAL/Polyhedron_3.h $ -// $Id: Polyhedron_3.h cff3cdb 2021-08-12T10:23:57+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polyhedron/include/CGAL/Polyhedron_3.h $ +// $Id: Polyhedron_3.h 3ad94a7 2022-05-17T12:04:52+01:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -1448,10 +1448,10 @@ /// Erases the small connected components and the isolated vertices. /// - /// @commentheading Preconditions: - /// supports vertices, halfedges, and removal operation. /// - /// @commentheading Template Parameters: + /// \pre supports vertices, halfedges, and removal operation. + /// + /// *Parameters* /// @param nb_components_to_keep the number of large connected components to keep. /// /// @return the number of connected components erased (ignoring isolated vertices). diff -Nru cgal-5.4.1/include/CGAL/Polyhedron_3_to_lcc.h cgal-5.5/include/CGAL/Polyhedron_3_to_lcc.h --- cgal-5.4.1/include/CGAL/Polyhedron_3_to_lcc.h 2022-06-03 19:05:22.000000000 +0000 +++ cgal-5.5/include/CGAL/Polyhedron_3_to_lcc.h 2022-07-13 19:06:16.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polyhedron/include/CGAL/Polyhedron_3_to_lcc.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polyhedron/include/CGAL/Polyhedron_3_to_lcc.h $ // $Id: Polyhedron_3_to_lcc.h 9a50c0f 2019-11-26T13:22:03+01:00 Guillaume Damiand // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polyhedron_copy_3.h cgal-5.5/include/CGAL/Polyhedron_copy_3.h --- cgal-5.4.1/include/CGAL/Polyhedron_copy_3.h 2022-06-03 19:05:22.000000000 +0000 +++ cgal-5.5/include/CGAL/Polyhedron_copy_3.h 2022-07-13 19:06:16.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polyhedron/include/CGAL/Polyhedron_copy_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polyhedron/include/CGAL/Polyhedron_copy_3.h $ // $Id: Polyhedron_copy_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/polyhedron_cut_plane_3.h cgal-5.5/include/CGAL/polyhedron_cut_plane_3.h --- cgal-5.4.1/include/CGAL/polyhedron_cut_plane_3.h 2022-06-03 19:05:22.000000000 +0000 +++ cgal-5.5/include/CGAL/polyhedron_cut_plane_3.h 2022-07-13 19:06:17.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polyhedron/include/CGAL/polyhedron_cut_plane_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polyhedron/include/CGAL/polyhedron_cut_plane_3.h $ // $Id: polyhedron_cut_plane_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polyhedron_incremental_builder_3.h cgal-5.5/include/CGAL/Polyhedron_incremental_builder_3.h --- cgal-5.4.1/include/CGAL/Polyhedron_incremental_builder_3.h 2022-06-03 19:05:22.000000000 +0000 +++ cgal-5.5/include/CGAL/Polyhedron_incremental_builder_3.h 2022-07-13 19:06:16.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polyhedron/include/CGAL/Polyhedron_incremental_builder_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polyhedron/include/CGAL/Polyhedron_incremental_builder_3.h $ // $Id: Polyhedron_incremental_builder_3.h 2c4a5db 2021-05-18T18:14:14+02:00 Laurent Rineau // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polyhedron_items_3.h cgal-5.5/include/CGAL/Polyhedron_items_3.h --- cgal-5.4.1/include/CGAL/Polyhedron_items_3.h 2022-06-03 19:04:17.000000000 +0000 +++ cgal-5.5/include/CGAL/Polyhedron_items_3.h 2022-07-13 19:05:06.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/HalfedgeDS/include/CGAL/Polyhedron_items_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/HalfedgeDS/include/CGAL/Polyhedron_items_3.h $ // $Id: Polyhedron_items_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polyhedron_items_with_id_3.h cgal-5.5/include/CGAL/Polyhedron_items_with_id_3.h --- cgal-5.4.1/include/CGAL/Polyhedron_items_with_id_3.h 2022-06-03 19:05:22.000000000 +0000 +++ cgal-5.5/include/CGAL/Polyhedron_items_with_id_3.h 2022-07-13 19:06:16.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polyhedron/include/CGAL/Polyhedron_items_with_id_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polyhedron/include/CGAL/Polyhedron_items_with_id_3.h $ // $Id: Polyhedron_items_with_id_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polyhedron_min_items_3.h cgal-5.5/include/CGAL/Polyhedron_min_items_3.h --- cgal-5.4.1/include/CGAL/Polyhedron_min_items_3.h 2022-06-03 19:05:22.000000000 +0000 +++ cgal-5.5/include/CGAL/Polyhedron_min_items_3.h 2022-07-13 19:06:16.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polyhedron/include/CGAL/Polyhedron_min_items_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polyhedron/include/CGAL/Polyhedron_min_items_3.h $ // $Id: Polyhedron_min_items_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polyhedron_traits_3.h cgal-5.5/include/CGAL/Polyhedron_traits_3.h --- cgal-5.4.1/include/CGAL/Polyhedron_traits_3.h 2022-06-03 19:05:22.000000000 +0000 +++ cgal-5.5/include/CGAL/Polyhedron_traits_3.h 2022-07-13 19:06:16.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polyhedron/include/CGAL/Polyhedron_traits_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polyhedron/include/CGAL/Polyhedron_traits_3.h $ // $Id: Polyhedron_traits_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polyhedron_traits_with_normals_3.h cgal-5.5/include/CGAL/Polyhedron_traits_with_normals_3.h --- cgal-5.4.1/include/CGAL/Polyhedron_traits_with_normals_3.h 2022-06-03 19:05:22.000000000 +0000 +++ cgal-5.5/include/CGAL/Polyhedron_traits_with_normals_3.h 2022-07-13 19:06:16.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polyhedron/include/CGAL/Polyhedron_traits_with_normals_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polyhedron/include/CGAL/Polyhedron_traits_with_normals_3.h $ // $Id: Polyhedron_traits_with_normals_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polyline_simplification_2/Hybrid_squared_distance_cost.h cgal-5.5/include/CGAL/Polyline_simplification_2/Hybrid_squared_distance_cost.h --- cgal-5.4.1/include/CGAL/Polyline_simplification_2/Hybrid_squared_distance_cost.h 2022-06-03 19:05:23.000000000 +0000 +++ cgal-5.5/include/CGAL/Polyline_simplification_2/Hybrid_squared_distance_cost.h 2022-07-13 19:06:17.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polyline_simplification_2/include/CGAL/Polyline_simplification_2/Hybrid_squared_distance_cost.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polyline_simplification_2/include/CGAL/Polyline_simplification_2/Hybrid_squared_distance_cost.h $ // $Id: Hybrid_squared_distance_cost.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polyline_simplification_2/Scaled_squared_distance_cost.h cgal-5.5/include/CGAL/Polyline_simplification_2/Scaled_squared_distance_cost.h --- cgal-5.4.1/include/CGAL/Polyline_simplification_2/Scaled_squared_distance_cost.h 2022-06-03 19:05:23.000000000 +0000 +++ cgal-5.5/include/CGAL/Polyline_simplification_2/Scaled_squared_distance_cost.h 2022-07-13 19:06:17.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polyline_simplification_2/include/CGAL/Polyline_simplification_2/Scaled_squared_distance_cost.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polyline_simplification_2/include/CGAL/Polyline_simplification_2/Scaled_squared_distance_cost.h $ // $Id: Scaled_squared_distance_cost.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polyline_simplification_2/simplify.h cgal-5.5/include/CGAL/Polyline_simplification_2/simplify.h --- cgal-5.4.1/include/CGAL/Polyline_simplification_2/simplify.h 2022-06-03 19:05:23.000000000 +0000 +++ cgal-5.5/include/CGAL/Polyline_simplification_2/simplify.h 2022-07-13 19:06:17.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polyline_simplification_2/include/CGAL/Polyline_simplification_2/simplify.h $ -// $Id: simplify.h b7e688c 2021-10-12T09:05:42+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polyline_simplification_2/include/CGAL/Polyline_simplification_2/simplify.h $ +// $Id: simplify.h c61fdb8 2021-11-30T13:49:39+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Andreas Fabri @@ -335,7 +335,7 @@ } else { (*u)->set_cost(*dist); if(mpq->contains(*u)){ - mpq->update(*u, true); + mpq->update(*u); } else{ mpq->push(*u); @@ -353,7 +353,7 @@ } else { (*w)->set_cost(*dist); if(mpq->contains(*w)){ - mpq->update(*w, true); + mpq->update(*w); } else{ mpq->push(*w); diff -Nru cgal-5.4.1/include/CGAL/Polyline_simplification_2/Squared_distance_cost.h cgal-5.5/include/CGAL/Polyline_simplification_2/Squared_distance_cost.h --- cgal-5.4.1/include/CGAL/Polyline_simplification_2/Squared_distance_cost.h 2022-06-03 19:05:23.000000000 +0000 +++ cgal-5.5/include/CGAL/Polyline_simplification_2/Squared_distance_cost.h 2022-07-13 19:06:17.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polyline_simplification_2/include/CGAL/Polyline_simplification_2/Squared_distance_cost.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polyline_simplification_2/include/CGAL/Polyline_simplification_2/Squared_distance_cost.h $ // $Id: Squared_distance_cost.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polyline_simplification_2/Stop_above_cost_threshold.h cgal-5.5/include/CGAL/Polyline_simplification_2/Stop_above_cost_threshold.h --- cgal-5.4.1/include/CGAL/Polyline_simplification_2/Stop_above_cost_threshold.h 2022-06-03 19:05:23.000000000 +0000 +++ cgal-5.5/include/CGAL/Polyline_simplification_2/Stop_above_cost_threshold.h 2022-07-13 19:06:17.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polyline_simplification_2/include/CGAL/Polyline_simplification_2/Stop_above_cost_threshold.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polyline_simplification_2/include/CGAL/Polyline_simplification_2/Stop_above_cost_threshold.h $ // $Id: Stop_above_cost_threshold.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polyline_simplification_2/Stop_below_count_ratio_threshold.h cgal-5.5/include/CGAL/Polyline_simplification_2/Stop_below_count_ratio_threshold.h --- cgal-5.4.1/include/CGAL/Polyline_simplification_2/Stop_below_count_ratio_threshold.h 2022-06-03 19:05:23.000000000 +0000 +++ cgal-5.5/include/CGAL/Polyline_simplification_2/Stop_below_count_ratio_threshold.h 2022-07-13 19:06:17.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polyline_simplification_2/include/CGAL/Polyline_simplification_2/Stop_below_count_ratio_threshold.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polyline_simplification_2/include/CGAL/Polyline_simplification_2/Stop_below_count_ratio_threshold.h $ // $Id: Stop_below_count_ratio_threshold.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polyline_simplification_2/Stop_below_count_threshold.h cgal-5.5/include/CGAL/Polyline_simplification_2/Stop_below_count_threshold.h --- cgal-5.4.1/include/CGAL/Polyline_simplification_2/Stop_below_count_threshold.h 2022-06-03 19:05:23.000000000 +0000 +++ cgal-5.5/include/CGAL/Polyline_simplification_2/Stop_below_count_threshold.h 2022-07-13 19:06:17.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polyline_simplification_2/include/CGAL/Polyline_simplification_2/Stop_below_count_threshold.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polyline_simplification_2/include/CGAL/Polyline_simplification_2/Stop_below_count_threshold.h $ // $Id: Stop_below_count_threshold.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polyline_simplification_2/Vertex_base_2.h cgal-5.5/include/CGAL/Polyline_simplification_2/Vertex_base_2.h --- cgal-5.4.1/include/CGAL/Polyline_simplification_2/Vertex_base_2.h 2022-06-03 19:05:23.000000000 +0000 +++ cgal-5.5/include/CGAL/Polyline_simplification_2/Vertex_base_2.h 2022-07-13 19:06:17.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polyline_simplification_2/include/CGAL/Polyline_simplification_2/Vertex_base_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polyline_simplification_2/include/CGAL/Polyline_simplification_2/Vertex_base_2.h $ // $Id: Vertex_base_2.h 53cb7cd 2021-02-16T13:41:28+00:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polynomial/Algebraic_structure_traits.h cgal-5.5/include/CGAL/Polynomial/Algebraic_structure_traits.h --- cgal-5.4.1/include/CGAL/Polynomial/Algebraic_structure_traits.h 2022-06-03 19:05:25.000000000 +0000 +++ cgal-5.5/include/CGAL/Polynomial/Algebraic_structure_traits.h 2022-07-13 19:06:20.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polynomial/include/CGAL/Polynomial/Algebraic_structure_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polynomial/include/CGAL/Polynomial/Algebraic_structure_traits.h $ // $Id: Algebraic_structure_traits.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polynomial/bezout_matrix.h cgal-5.5/include/CGAL/Polynomial/bezout_matrix.h --- cgal-5.4.1/include/CGAL/Polynomial/bezout_matrix.h 2022-06-03 19:05:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Polynomial/bezout_matrix.h 2022-07-13 19:06:20.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polynomial/include/CGAL/Polynomial/bezout_matrix.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polynomial/include/CGAL/Polynomial/bezout_matrix.h $ // $Id: bezout_matrix.h e9d41d7 2020-04-21T10:03:00+02:00 Maxime Gimeno // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polynomial/Cached_extended_euclidean_algorithm.h cgal-5.5/include/CGAL/Polynomial/Cached_extended_euclidean_algorithm.h --- cgal-5.4.1/include/CGAL/Polynomial/Cached_extended_euclidean_algorithm.h 2022-06-03 19:05:25.000000000 +0000 +++ cgal-5.5/include/CGAL/Polynomial/Cached_extended_euclidean_algorithm.h 2022-07-13 19:06:20.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polynomial/include/CGAL/Polynomial/Cached_extended_euclidean_algorithm.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polynomial/include/CGAL/Polynomial/Cached_extended_euclidean_algorithm.h $ // $Id: Cached_extended_euclidean_algorithm.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polynomial/Chinese_remainder_traits.h cgal-5.5/include/CGAL/Polynomial/Chinese_remainder_traits.h --- cgal-5.4.1/include/CGAL/Polynomial/Chinese_remainder_traits.h 2022-06-03 19:05:25.000000000 +0000 +++ cgal-5.5/include/CGAL/Polynomial/Chinese_remainder_traits.h 2022-07-13 19:06:20.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polynomial/include/CGAL/Polynomial/Chinese_remainder_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polynomial/include/CGAL/Polynomial/Chinese_remainder_traits.h $ // $Id: Chinese_remainder_traits.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polynomial/Coercion_traits.h cgal-5.5/include/CGAL/Polynomial/Coercion_traits.h --- cgal-5.4.1/include/CGAL/Polynomial/Coercion_traits.h 2022-06-03 19:05:25.000000000 +0000 +++ cgal-5.5/include/CGAL/Polynomial/Coercion_traits.h 2022-07-13 19:06:20.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polynomial/include/CGAL/Polynomial/Coercion_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polynomial/include/CGAL/Polynomial/Coercion_traits.h $ // $Id: Coercion_traits.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polynomial/Degree.h cgal-5.5/include/CGAL/Polynomial/Degree.h --- cgal-5.4.1/include/CGAL/Polynomial/Degree.h 2022-06-03 19:05:25.000000000 +0000 +++ cgal-5.5/include/CGAL/Polynomial/Degree.h 2022-07-13 19:06:20.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polynomial/include/CGAL/Polynomial/Degree.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polynomial/include/CGAL/Polynomial/Degree.h $ // $Id: Degree.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polynomial/determinant.h cgal-5.5/include/CGAL/Polynomial/determinant.h --- cgal-5.4.1/include/CGAL/Polynomial/determinant.h 2022-06-03 19:05:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Polynomial/determinant.h 2022-07-13 19:06:20.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polynomial/include/CGAL/Polynomial/determinant.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polynomial/include/CGAL/Polynomial/determinant.h $ // $Id: determinant.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polynomial/Fraction_traits.h cgal-5.5/include/CGAL/Polynomial/Fraction_traits.h --- cgal-5.4.1/include/CGAL/Polynomial/Fraction_traits.h 2022-06-03 19:05:25.000000000 +0000 +++ cgal-5.5/include/CGAL/Polynomial/Fraction_traits.h 2022-07-13 19:06:20.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polynomial/include/CGAL/Polynomial/Fraction_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polynomial/include/CGAL/Polynomial/Fraction_traits.h $ // $Id: Fraction_traits.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polynomial/fwd.h cgal-5.5/include/CGAL/Polynomial/fwd.h --- cgal-5.4.1/include/CGAL/Polynomial/fwd.h 2022-06-03 19:05:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Polynomial/fwd.h 2022-07-13 19:06:20.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polynomial/include/CGAL/Polynomial/fwd.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polynomial/include/CGAL/Polynomial/fwd.h $ // $Id: fwd.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polynomial/Get_arithmetic_kernel.h cgal-5.5/include/CGAL/Polynomial/Get_arithmetic_kernel.h --- cgal-5.4.1/include/CGAL/Polynomial/Get_arithmetic_kernel.h 2022-06-03 19:05:25.000000000 +0000 +++ cgal-5.5/include/CGAL/Polynomial/Get_arithmetic_kernel.h 2022-07-13 19:06:20.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polynomial/include/CGAL/Polynomial/Get_arithmetic_kernel.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polynomial/include/CGAL/Polynomial/Get_arithmetic_kernel.h $ // $Id: Get_arithmetic_kernel.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polynomial/hgdelta_update.h cgal-5.5/include/CGAL/Polynomial/hgdelta_update.h --- cgal-5.4.1/include/CGAL/Polynomial/hgdelta_update.h 2022-06-03 19:05:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Polynomial/hgdelta_update.h 2022-07-13 19:06:20.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polynomial/include/CGAL/Polynomial/hgdelta_update.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polynomial/include/CGAL/Polynomial/hgdelta_update.h $ // $Id: hgdelta_update.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polynomial/Interpolator.h cgal-5.5/include/CGAL/Polynomial/Interpolator.h --- cgal-5.4.1/include/CGAL/Polynomial/Interpolator.h 2022-06-03 19:05:25.000000000 +0000 +++ cgal-5.5/include/CGAL/Polynomial/Interpolator.h 2022-07-13 19:06:20.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polynomial/include/CGAL/Polynomial/Interpolator.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polynomial/include/CGAL/Polynomial/Interpolator.h $ // $Id: Interpolator.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polynomial/misc.h cgal-5.5/include/CGAL/Polynomial/misc.h --- cgal-5.4.1/include/CGAL/Polynomial/misc.h 2022-06-03 19:05:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Polynomial/misc.h 2022-07-13 19:06:20.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polynomial/include/CGAL/Polynomial/misc.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polynomial/include/CGAL/Polynomial/misc.h $ // $Id: misc.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polynomial/modular_filter.h cgal-5.5/include/CGAL/Polynomial/modular_filter.h --- cgal-5.4.1/include/CGAL/Polynomial/modular_filter.h 2022-06-03 19:05:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Polynomial/modular_filter.h 2022-07-13 19:06:20.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polynomial/include/CGAL/Polynomial/modular_filter.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polynomial/include/CGAL/Polynomial/modular_filter.h $ // $Id: modular_filter.h 26355e2 2020-06-25T12:31:21+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polynomial/modular_gcd.h cgal-5.5/include/CGAL/Polynomial/modular_gcd.h --- cgal-5.4.1/include/CGAL/Polynomial/modular_gcd.h 2022-06-03 19:05:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Polynomial/modular_gcd.h 2022-07-13 19:06:20.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polynomial/include/CGAL/Polynomial/modular_gcd.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polynomial/include/CGAL/Polynomial/modular_gcd.h $ // $Id: modular_gcd.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polynomial/modular_gcd_utcf_algorithm_M.h cgal-5.5/include/CGAL/Polynomial/modular_gcd_utcf_algorithm_M.h --- cgal-5.4.1/include/CGAL/Polynomial/modular_gcd_utcf_algorithm_M.h 2022-06-03 19:05:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Polynomial/modular_gcd_utcf_algorithm_M.h 2022-07-13 19:06:21.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polynomial/include/CGAL/Polynomial/modular_gcd_utcf_algorithm_M.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polynomial/include/CGAL/Polynomial/modular_gcd_utcf_algorithm_M.h $ // $Id: modular_gcd_utcf_algorithm_M.h fdb17cb 2020-03-26T19:26:10+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polynomial/modular_gcd_utcf_dfai.h cgal-5.5/include/CGAL/Polynomial/modular_gcd_utcf_dfai.h --- cgal-5.4.1/include/CGAL/Polynomial/modular_gcd_utcf_dfai.h 2022-06-03 19:05:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Polynomial/modular_gcd_utcf_dfai.h 2022-07-13 19:06:21.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polynomial/include/CGAL/Polynomial/modular_gcd_utcf_dfai.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polynomial/include/CGAL/Polynomial/modular_gcd_utcf_dfai.h $ // $Id: modular_gcd_utcf_dfai.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polynomial/modular_gcd_utils.h cgal-5.5/include/CGAL/Polynomial/modular_gcd_utils.h --- cgal-5.4.1/include/CGAL/Polynomial/modular_gcd_utils.h 2022-06-03 19:05:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Polynomial/modular_gcd_utils.h 2022-07-13 19:06:21.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polynomial/include/CGAL/Polynomial/modular_gcd_utils.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polynomial/include/CGAL/Polynomial/modular_gcd_utils.h $ // $Id: modular_gcd_utils.h 26355e2 2020-06-25T12:31:21+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polynomial/Modular_traits.h cgal-5.5/include/CGAL/Polynomial/Modular_traits.h --- cgal-5.4.1/include/CGAL/Polynomial/Modular_traits.h 2022-06-03 19:05:25.000000000 +0000 +++ cgal-5.5/include/CGAL/Polynomial/Modular_traits.h 2022-07-13 19:06:20.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polynomial/include/CGAL/Polynomial/Modular_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polynomial/include/CGAL/Polynomial/Modular_traits.h $ // $Id: Modular_traits.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polynomial/Monomial_representation.h cgal-5.5/include/CGAL/Polynomial/Monomial_representation.h --- cgal-5.4.1/include/CGAL/Polynomial/Monomial_representation.h 2022-06-03 19:05:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Polynomial/Monomial_representation.h 2022-07-13 19:06:20.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polynomial/include/CGAL/Polynomial/Monomial_representation.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polynomial/include/CGAL/Polynomial/Monomial_representation.h $ // $Id: Monomial_representation.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polynomial/polynomial_gcd.h cgal-5.5/include/CGAL/Polynomial/polynomial_gcd.h --- cgal-5.4.1/include/CGAL/Polynomial/polynomial_gcd.h 2022-06-03 19:05:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Polynomial/polynomial_gcd.h 2022-07-13 19:06:21.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polynomial/include/CGAL/Polynomial/polynomial_gcd.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polynomial/include/CGAL/Polynomial/polynomial_gcd.h $ // $Id: polynomial_gcd.h 26355e2 2020-06-25T12:31:21+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polynomial/polynomial_gcd_implementations.h cgal-5.5/include/CGAL/Polynomial/polynomial_gcd_implementations.h --- cgal-5.4.1/include/CGAL/Polynomial/polynomial_gcd_implementations.h 2022-06-03 19:05:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Polynomial/polynomial_gcd_implementations.h 2022-07-13 19:06:21.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polynomial/include/CGAL/Polynomial/polynomial_gcd_implementations.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polynomial/include/CGAL/Polynomial/polynomial_gcd_implementations.h $ // $Id: polynomial_gcd_implementations.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polynomial/polynomial_gcd_ntl.h cgal-5.5/include/CGAL/Polynomial/polynomial_gcd_ntl.h --- cgal-5.4.1/include/CGAL/Polynomial/polynomial_gcd_ntl.h 2022-06-03 19:05:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Polynomial/polynomial_gcd_ntl.h 2022-07-13 19:06:21.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polynomial/include/CGAL/Polynomial/polynomial_gcd_ntl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polynomial/include/CGAL/Polynomial/polynomial_gcd_ntl.h $ // $Id: polynomial_gcd_ntl.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polynomial/Polynomial_type.h cgal-5.5/include/CGAL/Polynomial/Polynomial_type.h --- cgal-5.4.1/include/CGAL/Polynomial/Polynomial_type.h 2022-06-03 19:05:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Polynomial/Polynomial_type.h 2022-07-13 19:06:20.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polynomial/include/CGAL/Polynomial/Polynomial_type.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polynomial/include/CGAL/Polynomial/Polynomial_type.h $ // $Id: Polynomial_type.h 625848e 2021-10-04T13:21:47+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polynomial/prs_resultant.h cgal-5.5/include/CGAL/Polynomial/prs_resultant.h --- cgal-5.4.1/include/CGAL/Polynomial/prs_resultant.h 2022-06-03 19:05:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Polynomial/prs_resultant.h 2022-07-13 19:06:21.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polynomial/include/CGAL/Polynomial/prs_resultant.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polynomial/include/CGAL/Polynomial/prs_resultant.h $ // $Id: prs_resultant.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polynomial/Real_embeddable_traits.h cgal-5.5/include/CGAL/Polynomial/Real_embeddable_traits.h --- cgal-5.4.1/include/CGAL/Polynomial/Real_embeddable_traits.h 2022-06-03 19:05:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Polynomial/Real_embeddable_traits.h 2022-07-13 19:06:20.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polynomial/include/CGAL/Polynomial/Real_embeddable_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polynomial/include/CGAL/Polynomial/Real_embeddable_traits.h $ // $Id: Real_embeddable_traits.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polynomial/resultant.h cgal-5.5/include/CGAL/Polynomial/resultant.h --- cgal-5.4.1/include/CGAL/Polynomial/resultant.h 2022-06-03 19:05:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Polynomial/resultant.h 2022-07-13 19:06:21.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polynomial/include/CGAL/Polynomial/resultant.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polynomial/include/CGAL/Polynomial/resultant.h $ // $Id: resultant.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polynomial/Scalar_factor_traits.h cgal-5.5/include/CGAL/Polynomial/Scalar_factor_traits.h --- cgal-5.4.1/include/CGAL/Polynomial/Scalar_factor_traits.h 2022-06-03 19:05:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Polynomial/Scalar_factor_traits.h 2022-07-13 19:06:20.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polynomial/include/CGAL/Polynomial/Scalar_factor_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polynomial/include/CGAL/Polynomial/Scalar_factor_traits.h $ // $Id: Scalar_factor_traits.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polynomial/square_free_factorize.h cgal-5.5/include/CGAL/Polynomial/square_free_factorize.h --- cgal-5.4.1/include/CGAL/Polynomial/square_free_factorize.h 2022-06-03 19:05:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Polynomial/square_free_factorize.h 2022-07-13 19:06:21.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polynomial/include/CGAL/Polynomial/square_free_factorize.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polynomial/include/CGAL/Polynomial/square_free_factorize.h $ // $Id: square_free_factorize.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polynomial/sturm_habicht_sequence.h cgal-5.5/include/CGAL/Polynomial/sturm_habicht_sequence.h --- cgal-5.4.1/include/CGAL/Polynomial/sturm_habicht_sequence.h 2022-06-03 19:05:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Polynomial/sturm_habicht_sequence.h 2022-07-13 19:06:21.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polynomial/include/CGAL/Polynomial/sturm_habicht_sequence.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polynomial/include/CGAL/Polynomial/sturm_habicht_sequence.h $ // $Id: sturm_habicht_sequence.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polynomial/subresultants.h cgal-5.5/include/CGAL/Polynomial/subresultants.h --- cgal-5.4.1/include/CGAL/Polynomial/subresultants.h 2022-06-03 19:05:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Polynomial/subresultants.h 2022-07-13 19:06:21.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polynomial/include/CGAL/Polynomial/subresultants.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polynomial/include/CGAL/Polynomial/subresultants.h $ // $Id: subresultants.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polynomial.h cgal-5.5/include/CGAL/Polynomial.h --- cgal-5.4.1/include/CGAL/Polynomial.h 2022-06-03 19:05:25.000000000 +0000 +++ cgal-5.5/include/CGAL/Polynomial.h 2022-07-13 19:06:20.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polynomial/include/CGAL/Polynomial.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polynomial/include/CGAL/Polynomial.h $ // $Id: Polynomial.h 26355e2 2020-06-25T12:31:21+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polynomials_1_2.h cgal-5.5/include/CGAL/Polynomials_1_2.h --- cgal-5.4.1/include/CGAL/Polynomials_1_2.h 2022-06-03 19:03:33.000000000 +0000 +++ cgal-5.5/include/CGAL/Polynomials_1_2.h 2022-07-13 19:04:17.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_for_circles/include/CGAL/Polynomials_1_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_for_circles/include/CGAL/Polynomials_1_2.h $ // $Id: Polynomials_1_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polynomials_1_3.h cgal-5.5/include/CGAL/Polynomials_1_3.h --- cgal-5.4.1/include/CGAL/Polynomials_1_3.h 2022-06-03 19:03:34.000000000 +0000 +++ cgal-5.5/include/CGAL/Polynomials_1_3.h 2022-07-13 19:04:17.000000000 +0000 @@ -9,7 +9,7 @@ // and a STREP (FET Open) Project under Contract No IST-006413 // (ACS -- Algorithms for Complex Shapes) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_for_spheres/include/CGAL/Polynomials_1_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_for_spheres/include/CGAL/Polynomials_1_3.h $ // $Id: Polynomials_1_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polynomials_2_2.h cgal-5.5/include/CGAL/Polynomials_2_2.h --- cgal-5.4.1/include/CGAL/Polynomials_2_2.h 2022-06-03 19:03:33.000000000 +0000 +++ cgal-5.5/include/CGAL/Polynomials_2_2.h 2022-07-13 19:04:17.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_for_circles/include/CGAL/Polynomials_2_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_for_circles/include/CGAL/Polynomials_2_2.h $ // $Id: Polynomials_2_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polynomials_2_3.h cgal-5.5/include/CGAL/Polynomials_2_3.h --- cgal-5.4.1/include/CGAL/Polynomials_2_3.h 2022-06-03 19:03:34.000000000 +0000 +++ cgal-5.5/include/CGAL/Polynomials_2_3.h 2022-07-13 19:04:17.000000000 +0000 @@ -9,7 +9,7 @@ // and a STREP (FET Open) Project under Contract No IST-006413 // (ACS -- Algorithms for Complex Shapes) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_for_spheres/include/CGAL/Polynomials_2_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_for_spheres/include/CGAL/Polynomials_2_3.h $ // $Id: Polynomials_2_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polynomials_for_line_3.h cgal-5.5/include/CGAL/Polynomials_for_line_3.h --- cgal-5.4.1/include/CGAL/Polynomials_for_line_3.h 2022-06-03 19:03:34.000000000 +0000 +++ cgal-5.5/include/CGAL/Polynomials_for_line_3.h 2022-07-13 19:04:17.000000000 +0000 @@ -9,7 +9,7 @@ // and a STREP (FET Open) Project under Contract No IST-006413 // (ACS -- Algorithms for Complex Shapes) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_for_spheres/include/CGAL/Polynomials_for_line_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_for_spheres/include/CGAL/Polynomials_for_line_3.h $ // $Id: Polynomials_for_line_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polynomial_traits_d.h cgal-5.5/include/CGAL/Polynomial_traits_d.h --- cgal-5.4.1/include/CGAL/Polynomial_traits_d.h 2022-06-03 19:05:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Polynomial_traits_d.h 2022-07-13 19:06:21.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polynomial/include/CGAL/Polynomial_traits_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polynomial/include/CGAL/Polynomial_traits_d.h $ // $Id: Polynomial_traits_d.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polynomial_type_generator.h cgal-5.5/include/CGAL/Polynomial_type_generator.h --- cgal-5.4.1/include/CGAL/Polynomial_type_generator.h 2022-06-03 19:05:26.000000000 +0000 +++ cgal-5.5/include/CGAL/Polynomial_type_generator.h 2022-07-13 19:06:21.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polynomial/include/CGAL/Polynomial_type_generator.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polynomial/include/CGAL/Polynomial_type_generator.h $ // $Id: Polynomial_type_generator.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/polynomial_utils.h cgal-5.5/include/CGAL/polynomial_utils.h --- cgal-5.4.1/include/CGAL/polynomial_utils.h 2022-06-03 19:05:26.000000000 +0000 +++ cgal-5.5/include/CGAL/polynomial_utils.h 2022-07-13 19:06:21.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polynomial/include/CGAL/polynomial_utils.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polynomial/include/CGAL/polynomial_utils.h $ // $Id: polynomial_utils.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polytope_distance_d.h cgal-5.5/include/CGAL/Polytope_distance_d.h --- cgal-5.4.1/include/CGAL/Polytope_distance_d.h 2022-06-03 19:05:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Polytope_distance_d.h 2022-07-13 19:06:22.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polytope_distance_d/include/CGAL/Polytope_distance_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polytope_distance_d/include/CGAL/Polytope_distance_d.h $ // $Id: Polytope_distance_d.h 4e519a3 2021-05-05T13:15:37+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polytope_distance_d_traits_2.h cgal-5.5/include/CGAL/Polytope_distance_d_traits_2.h --- cgal-5.4.1/include/CGAL/Polytope_distance_d_traits_2.h 2022-06-03 19:05:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Polytope_distance_d_traits_2.h 2022-07-13 19:06:22.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polytope_distance_d/include/CGAL/Polytope_distance_d_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polytope_distance_d/include/CGAL/Polytope_distance_d_traits_2.h $ // $Id: Polytope_distance_d_traits_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polytope_distance_d_traits_3.h cgal-5.5/include/CGAL/Polytope_distance_d_traits_3.h --- cgal-5.4.1/include/CGAL/Polytope_distance_d_traits_3.h 2022-06-03 19:05:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Polytope_distance_d_traits_3.h 2022-07-13 19:06:22.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polytope_distance_d/include/CGAL/Polytope_distance_d_traits_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polytope_distance_d/include/CGAL/Polytope_distance_d_traits_3.h $ // $Id: Polytope_distance_d_traits_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Polytope_distance_d_traits_d.h cgal-5.5/include/CGAL/Polytope_distance_d_traits_d.h --- cgal-5.4.1/include/CGAL/Polytope_distance_d_traits_d.h 2022-06-03 19:05:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Polytope_distance_d_traits_d.h 2022-07-13 19:06:22.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polytope_distance_d/include/CGAL/Polytope_distance_d_traits_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polytope_distance_d/include/CGAL/Polytope_distance_d_traits_d.h $ // $Id: Polytope_distance_d_traits_d.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/predicates/kernel_ftC2.h cgal-5.5/include/CGAL/predicates/kernel_ftC2.h --- cgal-5.4.1/include/CGAL/predicates/kernel_ftC2.h 2022-06-03 19:03:58.000000000 +0000 +++ cgal-5.5/include/CGAL/predicates/kernel_ftC2.h 2022-07-13 19:04:45.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cartesian_kernel/include/CGAL/predicates/kernel_ftC2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cartesian_kernel/include/CGAL/predicates/kernel_ftC2.h $ // $Id: kernel_ftC2.h 65ea1e3 2021-09-29T16:55:36+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/predicates/kernel_ftC3.h cgal-5.5/include/CGAL/predicates/kernel_ftC3.h --- cgal-5.4.1/include/CGAL/predicates/kernel_ftC3.h 2022-06-03 19:03:58.000000000 +0000 +++ cgal-5.5/include/CGAL/predicates/kernel_ftC3.h 2022-07-13 19:04:45.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cartesian_kernel/include/CGAL/predicates/kernel_ftC3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cartesian_kernel/include/CGAL/predicates/kernel_ftC3.h $ // $Id: kernel_ftC3.h 68dc09b 2021-04-10T07:10:29+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/predicates/Polygon_offset_pred_ftC2.h cgal-5.5/include/CGAL/predicates/Polygon_offset_pred_ftC2.h --- cgal-5.4.1/include/CGAL/predicates/Polygon_offset_pred_ftC2.h 2022-06-03 19:05:50.000000000 +0000 +++ cgal-5.5/include/CGAL/predicates/Polygon_offset_pred_ftC2.h 2022-07-13 19:06:47.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Straight_skeleton_2/include/CGAL/predicates/Polygon_offset_pred_ftC2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Straight_skeleton_2/include/CGAL/predicates/Polygon_offset_pred_ftC2.h $ // $Id: Polygon_offset_pred_ftC2.h 13f19c4 2020-10-07T19:28:54+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/predicates/predicates_for_mixed_complex_3.h cgal-5.5/include/CGAL/predicates/predicates_for_mixed_complex_3.h --- cgal-5.4.1/include/CGAL/predicates/predicates_for_mixed_complex_3.h 2022-06-03 19:05:45.000000000 +0000 +++ cgal-5.5/include/CGAL/predicates/predicates_for_mixed_complex_3.h 2022-07-13 19:06:41.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Skin_surface_3/include/CGAL/predicates/predicates_for_mixed_complex_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Skin_surface_3/include/CGAL/predicates/predicates_for_mixed_complex_3.h $ // $Id: predicates_for_mixed_complex_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial diff -Nru cgal-5.4.1/include/CGAL/predicates/predicates_for_voronoi_intersection_cartesian_2_3.h cgal-5.5/include/CGAL/predicates/predicates_for_voronoi_intersection_cartesian_2_3.h --- cgal-5.4.1/include/CGAL/predicates/predicates_for_voronoi_intersection_cartesian_2_3.h 2022-06-03 19:04:25.000000000 +0000 +++ cgal-5.5/include/CGAL/predicates/predicates_for_voronoi_intersection_cartesian_2_3.h 2022-07-13 19:05:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Interpolation/include/CGAL/predicates/predicates_for_voronoi_intersection_cartesian_2_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Interpolation/include/CGAL/predicates/predicates_for_voronoi_intersection_cartesian_2_3.h $ // $Id: predicates_for_voronoi_intersection_cartesian_2_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/predicates/sign_of_determinant.h cgal-5.5/include/CGAL/predicates/sign_of_determinant.h --- cgal-5.4.1/include/CGAL/predicates/sign_of_determinant.h 2022-06-03 19:04:33.000000000 +0000 +++ cgal-5.5/include/CGAL/predicates/sign_of_determinant.h 2022-07-13 19:05:24.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/predicates/sign_of_determinant.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/predicates/sign_of_determinant.h $ // $Id: sign_of_determinant.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/predicates/Straight_skeleton_pred_ftC2.h cgal-5.5/include/CGAL/predicates/Straight_skeleton_pred_ftC2.h --- cgal-5.4.1/include/CGAL/predicates/Straight_skeleton_pred_ftC2.h 2022-06-03 19:05:50.000000000 +0000 +++ cgal-5.5/include/CGAL/predicates/Straight_skeleton_pred_ftC2.h 2022-07-13 19:06:47.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Straight_skeleton_2/include/CGAL/predicates/Straight_skeleton_pred_ftC2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Straight_skeleton_2/include/CGAL/predicates/Straight_skeleton_pred_ftC2.h $ // $Id: Straight_skeleton_pred_ftC2.h c502e93 2020-11-27T13:53:59+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/predicates_d.h cgal-5.5/include/CGAL/predicates_d.h --- cgal-5.4.1/include/CGAL/predicates_d.h 2022-06-03 19:04:39.000000000 +0000 +++ cgal-5.5/include/CGAL/predicates_d.h 2022-07-13 19:05:31.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_d/include/CGAL/predicates_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_d/include/CGAL/predicates_d.h $ // $Id: predicates_d.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/predicates_on_lines_2.h cgal-5.5/include/CGAL/predicates_on_lines_2.h --- cgal-5.4.1/include/CGAL/predicates_on_lines_2.h 2022-06-03 19:04:33.000000000 +0000 +++ cgal-5.5/include/CGAL/predicates_on_lines_2.h 2022-07-13 19:05:24.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/predicates_on_lines_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/predicates_on_lines_2.h $ // $Id: predicates_on_lines_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/predicates_on_points_2.h cgal-5.5/include/CGAL/predicates_on_points_2.h --- cgal-5.4.1/include/CGAL/predicates_on_points_2.h 2022-06-03 19:04:33.000000000 +0000 +++ cgal-5.5/include/CGAL/predicates_on_points_2.h 2022-07-13 19:05:24.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/predicates_on_points_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/predicates_on_points_2.h $ // $Id: predicates_on_points_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/predicates_on_points_3.h cgal-5.5/include/CGAL/predicates_on_points_3.h --- cgal-5.4.1/include/CGAL/predicates_on_points_3.h 2022-06-03 19:04:33.000000000 +0000 +++ cgal-5.5/include/CGAL/predicates_on_points_3.h 2022-07-13 19:05:24.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/predicates_on_points_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/predicates_on_points_3.h $ // $Id: predicates_on_points_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/primes.h cgal-5.5/include/CGAL/primes.h --- cgal-5.4.1/include/CGAL/primes.h 2022-06-03 19:04:53.000000000 +0000 +++ cgal-5.5/include/CGAL/primes.h 2022-07-13 19:05:46.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Modular_arithmetic/include/CGAL/primes.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Modular_arithmetic/include/CGAL/primes.h $ // $Id: primes.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Profile_counter.h cgal-5.5/include/CGAL/Profile_counter.h --- cgal-5.4.1/include/CGAL/Profile_counter.h 2022-06-03 19:05:28.000000000 +0000 +++ cgal-5.5/include/CGAL/Profile_counter.h 2022-07-13 19:06:23.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Profiling_tools/include/CGAL/Profile_counter.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Profiling_tools/include/CGAL/Profile_counter.h $ // $Id: Profile_counter.h a885f9b 2021-08-25T13:02:11+02:00 Jane Tournois // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Profile_timer.h cgal-5.5/include/CGAL/Profile_timer.h --- cgal-5.4.1/include/CGAL/Profile_timer.h 2022-06-03 19:05:28.000000000 +0000 +++ cgal-5.5/include/CGAL/Profile_timer.h 2022-07-13 19:06:23.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Profiling_tools/include/CGAL/Profile_timer.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Profiling_tools/include/CGAL/Profile_timer.h $ // $Id: Profile_timer.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Projection_on_sphere_traits_3.h cgal-5.5/include/CGAL/Projection_on_sphere_traits_3.h --- cgal-5.4.1/include/CGAL/Projection_on_sphere_traits_3.h 2022-06-03 19:06:12.000000000 +0000 +++ cgal-5.5/include/CGAL/Projection_on_sphere_traits_3.h 2022-07-13 19:07:11.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_on_sphere_2/include/CGAL/Projection_on_sphere_traits_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_on_sphere_2/include/CGAL/Projection_on_sphere_traits_3.h $ // $Id: Projection_on_sphere_traits_3.h a7f8957 2021-04-01T13:28:13+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Projection_traits_3.h cgal-5.5/include/CGAL/Projection_traits_3.h --- cgal-5.4.1/include/CGAL/Projection_traits_3.h 2022-06-03 19:04:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Projection_traits_3.h 2022-07-13 19:05:24.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Projection_traits_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Projection_traits_3.h $ // $Id: Projection_traits_3.h dacbd18 2021-08-30T12:35:34+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Projection_traits_xy_3.h cgal-5.5/include/CGAL/Projection_traits_xy_3.h --- cgal-5.4.1/include/CGAL/Projection_traits_xy_3.h 2022-06-03 19:04:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Projection_traits_xy_3.h 2022-07-13 19:05:24.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Projection_traits_xy_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Projection_traits_xy_3.h $ // $Id: Projection_traits_xy_3.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Projection_traits_xz_3.h cgal-5.5/include/CGAL/Projection_traits_xz_3.h --- cgal-5.4.1/include/CGAL/Projection_traits_xz_3.h 2022-06-03 19:04:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Projection_traits_xz_3.h 2022-07-13 19:05:24.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Projection_traits_xz_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Projection_traits_xz_3.h $ // $Id: Projection_traits_xz_3.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Projection_traits_yz_3.h cgal-5.5/include/CGAL/Projection_traits_yz_3.h --- cgal-5.4.1/include/CGAL/Projection_traits_yz_3.h 2022-06-03 19:04:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Projection_traits_yz_3.h 2022-07-13 19:05:24.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Projection_traits_yz_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Projection_traits_yz_3.h $ // $Id: Projection_traits_yz_3.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/property_map.h cgal-5.5/include/CGAL/property_map.h --- cgal-5.4.1/include/CGAL/property_map.h 2022-06-03 19:05:28.000000000 +0000 +++ cgal-5.5/include/CGAL/property_map.h 2022-07-13 19:06:23.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Property_map/include/CGAL/property_map.h $ -// $Id: property_map.h da0ba6a 2021-12-20T18:06:31+01:00 Laurent Rineau +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Property_map/include/CGAL/property_map.h $ +// $Id: property_map.h 62936f8 2022-06-13T17:01:35+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Andreas Fabri and Laurent Saboret @@ -410,7 +410,11 @@ {} template + #if defined(__INTEL_COMPILER) && defined(__INTEL_COMPILER_BUILD_DATE) && (__INTEL_COMPILER_BUILD_DATE < 20210000) + result_type + #else decltype(auto) + #endif operator()(const KeyType& a) const { return get(map,a); diff -Nru cgal-5.4.1/include/CGAL/QP_functions.h cgal-5.5/include/CGAL/QP_functions.h --- cgal-5.4.1/include/CGAL/QP_functions.h 2022-06-03 19:05:29.000000000 +0000 +++ cgal-5.5/include/CGAL/QP_functions.h 2022-07-13 19:06:24.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/QP_solver/include/CGAL/QP_functions.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/QP_solver/include/CGAL/QP_functions.h $ // $Id: QP_functions.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/QP_models.h cgal-5.5/include/CGAL/QP_models.h --- cgal-5.4.1/include/CGAL/QP_models.h 2022-06-03 19:05:29.000000000 +0000 +++ cgal-5.5/include/CGAL/QP_models.h 2022-07-13 19:06:24.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/QP_solver/include/CGAL/QP_models.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/QP_solver/include/CGAL/QP_models.h $ // $Id: QP_models.h 4e519a3 2021-05-05T13:15:37+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/QP_options.h cgal-5.5/include/CGAL/QP_options.h --- cgal-5.4.1/include/CGAL/QP_options.h 2022-06-03 19:05:29.000000000 +0000 +++ cgal-5.5/include/CGAL/QP_options.h 2022-07-13 19:06:24.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/QP_solver/include/CGAL/QP_options.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/QP_solver/include/CGAL/QP_options.h $ // $Id: QP_options.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/QP_solution.h cgal-5.5/include/CGAL/QP_solution.h --- cgal-5.4.1/include/CGAL/QP_solution.h 2022-06-03 19:05:29.000000000 +0000 +++ cgal-5.5/include/CGAL/QP_solution.h 2022-07-13 19:06:24.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/QP_solver/include/CGAL/QP_solution.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/QP_solver/include/CGAL/QP_solution.h $ // $Id: QP_solution.h 3f10219 2021-01-06T09:34:57+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/QP_solver/assertions.h cgal-5.5/include/CGAL/QP_solver/assertions.h --- cgal-5.4.1/include/CGAL/QP_solver/assertions.h 2022-06-03 19:05:29.000000000 +0000 +++ cgal-5.5/include/CGAL/QP_solver/assertions.h 2022-07-13 19:06:24.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/QP_solver/include/CGAL/QP_solver/assertions.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/QP_solver/include/CGAL/QP_solver/assertions.h $ // $Id: assertions.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/QP_solver/basic.h cgal-5.5/include/CGAL/QP_solver/basic.h --- cgal-5.4.1/include/CGAL/QP_solver/basic.h 2022-06-03 19:05:29.000000000 +0000 +++ cgal-5.5/include/CGAL/QP_solver/basic.h 2022-07-13 19:06:25.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/QP_solver/include/CGAL/QP_solver/basic.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/QP_solver/include/CGAL/QP_solver/basic.h $ // $Id: basic.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/QP_solver/debug.h cgal-5.5/include/CGAL/QP_solver/debug.h --- cgal-5.4.1/include/CGAL/QP_solver/debug.h 2022-06-03 19:05:29.000000000 +0000 +++ cgal-5.5/include/CGAL/QP_solver/debug.h 2022-07-13 19:06:25.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/QP_solver/include/CGAL/QP_solver/debug.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/QP_solver/include/CGAL/QP_solver/debug.h $ // $Id: debug.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/QP_solver/functors.h cgal-5.5/include/CGAL/QP_solver/functors.h --- cgal-5.4.1/include/CGAL/QP_solver/functors.h 2022-06-03 19:05:29.000000000 +0000 +++ cgal-5.5/include/CGAL/QP_solver/functors.h 2022-07-13 19:06:25.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/QP_solver/include/CGAL/QP_solver/functors.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/QP_solver/include/CGAL/QP_solver/functors.h $ // $Id: functors.h 1257ec0 2022-05-09T18:25:41+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/QP_solver/Initialization.h cgal-5.5/include/CGAL/QP_solver/Initialization.h --- cgal-5.4.1/include/CGAL/QP_solver/Initialization.h 2022-06-03 19:05:29.000000000 +0000 +++ cgal-5.5/include/CGAL/QP_solver/Initialization.h 2022-07-13 19:06:24.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/QP_solver/include/CGAL/QP_solver/Initialization.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/QP_solver/include/CGAL/QP_solver/Initialization.h $ // $Id: Initialization.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/QP_solver/QP_basis_inverse.h cgal-5.5/include/CGAL/QP_solver/QP_basis_inverse.h --- cgal-5.4.1/include/CGAL/QP_solver/QP_basis_inverse.h 2022-06-03 19:05:29.000000000 +0000 +++ cgal-5.5/include/CGAL/QP_solver/QP_basis_inverse.h 2022-07-13 19:06:24.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/QP_solver/include/CGAL/QP_solver/QP_basis_inverse.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/QP_solver/include/CGAL/QP_solver/QP_basis_inverse.h $ // $Id: QP_basis_inverse.h a925a64 2021-01-05T18:42:53+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/QP_solver/QP_basis_inverse_impl.h cgal-5.5/include/CGAL/QP_solver/QP_basis_inverse_impl.h --- cgal-5.4.1/include/CGAL/QP_solver/QP_basis_inverse_impl.h 2022-06-03 19:05:29.000000000 +0000 +++ cgal-5.5/include/CGAL/QP_solver/QP_basis_inverse_impl.h 2022-07-13 19:06:24.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/QP_solver/include/CGAL/QP_solver/QP_basis_inverse_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/QP_solver/include/CGAL/QP_solver/QP_basis_inverse_impl.h $ // $Id: QP_basis_inverse_impl.h a91f023 2021-01-29T10:05:48+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/QP_solver/QP_exact_bland_pricing.h cgal-5.5/include/CGAL/QP_solver/QP_exact_bland_pricing.h --- cgal-5.4.1/include/CGAL/QP_solver/QP_exact_bland_pricing.h 2022-06-03 19:05:29.000000000 +0000 +++ cgal-5.5/include/CGAL/QP_solver/QP_exact_bland_pricing.h 2022-07-13 19:06:24.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/QP_solver/include/CGAL/QP_solver/QP_exact_bland_pricing.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/QP_solver/include/CGAL/QP_solver/QP_exact_bland_pricing.h $ // $Id: QP_exact_bland_pricing.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/QP_solver/QP__filtered_base.h cgal-5.5/include/CGAL/QP_solver/QP__filtered_base.h --- cgal-5.4.1/include/CGAL/QP_solver/QP__filtered_base.h 2022-06-03 19:05:29.000000000 +0000 +++ cgal-5.5/include/CGAL/QP_solver/QP__filtered_base.h 2022-07-13 19:06:24.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/QP_solver/include/CGAL/QP_solver/QP__filtered_base.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/QP_solver/include/CGAL/QP_solver/QP__filtered_base.h $ // $Id: QP__filtered_base.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/QP_solver/QP__filtered_base_impl.h cgal-5.5/include/CGAL/QP_solver/QP__filtered_base_impl.h --- cgal-5.4.1/include/CGAL/QP_solver/QP__filtered_base_impl.h 2022-06-03 19:05:29.000000000 +0000 +++ cgal-5.5/include/CGAL/QP_solver/QP__filtered_base_impl.h 2022-07-13 19:06:24.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/QP_solver/include/CGAL/QP_solver/QP__filtered_base_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/QP_solver/include/CGAL/QP_solver/QP__filtered_base_impl.h $ // $Id: QP__filtered_base_impl.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/QP_solver/QP_full_exact_pricing.h cgal-5.5/include/CGAL/QP_solver/QP_full_exact_pricing.h --- cgal-5.4.1/include/CGAL/QP_solver/QP_full_exact_pricing.h 2022-06-03 19:05:29.000000000 +0000 +++ cgal-5.5/include/CGAL/QP_solver/QP_full_exact_pricing.h 2022-07-13 19:06:24.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/QP_solver/include/CGAL/QP_solver/QP_full_exact_pricing.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/QP_solver/include/CGAL/QP_solver/QP_full_exact_pricing.h $ // $Id: QP_full_exact_pricing.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/QP_solver/QP_full_filtered_pricing.h cgal-5.5/include/CGAL/QP_solver/QP_full_filtered_pricing.h --- cgal-5.4.1/include/CGAL/QP_solver/QP_full_filtered_pricing.h 2022-06-03 19:05:29.000000000 +0000 +++ cgal-5.5/include/CGAL/QP_solver/QP_full_filtered_pricing.h 2022-07-13 19:06:24.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/QP_solver/include/CGAL/QP_solver/QP_full_filtered_pricing.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/QP_solver/include/CGAL/QP_solver/QP_full_filtered_pricing.h $ // $Id: QP_full_filtered_pricing.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/QP_solver/QP_functions_impl.h cgal-5.5/include/CGAL/QP_solver/QP_functions_impl.h --- cgal-5.4.1/include/CGAL/QP_solver/QP_functions_impl.h 2022-06-03 19:05:29.000000000 +0000 +++ cgal-5.5/include/CGAL/QP_solver/QP_functions_impl.h 2022-07-13 19:06:24.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/QP_solver/include/CGAL/QP_solver/QP_functions_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/QP_solver/include/CGAL/QP_solver/QP_functions_impl.h $ // $Id: QP_functions_impl.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/QP_solver/QP__partial_base.h cgal-5.5/include/CGAL/QP_solver/QP__partial_base.h --- cgal-5.4.1/include/CGAL/QP_solver/QP__partial_base.h 2022-06-03 19:05:29.000000000 +0000 +++ cgal-5.5/include/CGAL/QP_solver/QP__partial_base.h 2022-07-13 19:06:24.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/QP_solver/include/CGAL/QP_solver/QP__partial_base.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/QP_solver/include/CGAL/QP_solver/QP__partial_base.h $ // $Id: QP__partial_base.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/QP_solver/QP_partial_exact_pricing.h cgal-5.5/include/CGAL/QP_solver/QP_partial_exact_pricing.h --- cgal-5.4.1/include/CGAL/QP_solver/QP_partial_exact_pricing.h 2022-06-03 19:05:29.000000000 +0000 +++ cgal-5.5/include/CGAL/QP_solver/QP_partial_exact_pricing.h 2022-07-13 19:06:24.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/QP_solver/include/CGAL/QP_solver/QP_partial_exact_pricing.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/QP_solver/include/CGAL/QP_solver/QP_partial_exact_pricing.h $ // $Id: QP_partial_exact_pricing.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/QP_solver/QP_partial_filtered_pricing.h cgal-5.5/include/CGAL/QP_solver/QP_partial_filtered_pricing.h --- cgal-5.4.1/include/CGAL/QP_solver/QP_partial_filtered_pricing.h 2022-06-03 19:05:29.000000000 +0000 +++ cgal-5.5/include/CGAL/QP_solver/QP_partial_filtered_pricing.h 2022-07-13 19:06:24.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/QP_solver/include/CGAL/QP_solver/QP_partial_filtered_pricing.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/QP_solver/include/CGAL/QP_solver/QP_partial_filtered_pricing.h $ // $Id: QP_partial_filtered_pricing.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/QP_solver/QP_pricing_strategy.h cgal-5.5/include/CGAL/QP_solver/QP_pricing_strategy.h --- cgal-5.4.1/include/CGAL/QP_solver/QP_pricing_strategy.h 2022-06-03 19:05:29.000000000 +0000 +++ cgal-5.5/include/CGAL/QP_solver/QP_pricing_strategy.h 2022-07-13 19:06:24.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/QP_solver/include/CGAL/QP_solver/QP_pricing_strategy.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/QP_solver/include/CGAL/QP_solver/QP_pricing_strategy.h $ // $Id: QP_pricing_strategy.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/QP_solver/QP_solution_impl.h cgal-5.5/include/CGAL/QP_solver/QP_solution_impl.h --- cgal-5.4.1/include/CGAL/QP_solver/QP_solution_impl.h 2022-06-03 19:05:29.000000000 +0000 +++ cgal-5.5/include/CGAL/QP_solver/QP_solution_impl.h 2022-07-13 19:06:24.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/QP_solver/include/CGAL/QP_solver/QP_solution_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/QP_solver/include/CGAL/QP_solver/QP_solution_impl.h $ // $Id: QP_solution_impl.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/QP_solver/QP_solver_bounds_impl.h cgal-5.5/include/CGAL/QP_solver/QP_solver_bounds_impl.h --- cgal-5.4.1/include/CGAL/QP_solver/QP_solver_bounds_impl.h 2022-06-03 19:05:29.000000000 +0000 +++ cgal-5.5/include/CGAL/QP_solver/QP_solver_bounds_impl.h 2022-07-13 19:06:24.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/QP_solver/include/CGAL/QP_solver/QP_solver_bounds_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/QP_solver/include/CGAL/QP_solver/QP_solver_bounds_impl.h $ // $Id: QP_solver_bounds_impl.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/QP_solver/QP_solver.h cgal-5.5/include/CGAL/QP_solver/QP_solver.h --- cgal-5.4.1/include/CGAL/QP_solver/QP_solver.h 2022-06-03 19:05:29.000000000 +0000 +++ cgal-5.5/include/CGAL/QP_solver/QP_solver.h 2022-07-13 19:06:24.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/QP_solver/include/CGAL/QP_solver/QP_solver.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/QP_solver/include/CGAL/QP_solver/QP_solver.h $ // $Id: QP_solver.h a91f023 2021-01-29T10:05:48+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/QP_solver/QP_solver_impl.h cgal-5.5/include/CGAL/QP_solver/QP_solver_impl.h --- cgal-5.4.1/include/CGAL/QP_solver/QP_solver_impl.h 2022-06-03 19:05:29.000000000 +0000 +++ cgal-5.5/include/CGAL/QP_solver/QP_solver_impl.h 2022-07-13 19:06:24.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/QP_solver/include/CGAL/QP_solver/QP_solver_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/QP_solver/include/CGAL/QP_solver/QP_solver_impl.h $ // $Id: QP_solver_impl.h 3f10219 2021-01-06T09:34:57+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/QP_solver/QP_solver_nonstandardform_impl.h cgal-5.5/include/CGAL/QP_solver/QP_solver_nonstandardform_impl.h --- cgal-5.4.1/include/CGAL/QP_solver/QP_solver_nonstandardform_impl.h 2022-06-03 19:05:29.000000000 +0000 +++ cgal-5.5/include/CGAL/QP_solver/QP_solver_nonstandardform_impl.h 2022-07-13 19:06:24.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/QP_solver/include/CGAL/QP_solver/QP_solver_nonstandardform_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/QP_solver/include/CGAL/QP_solver/QP_solver_nonstandardform_impl.h $ // $Id: QP_solver_nonstandardform_impl.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/QP_solver/Unbounded_direction.h cgal-5.5/include/CGAL/QP_solver/Unbounded_direction.h --- cgal-5.4.1/include/CGAL/QP_solver/Unbounded_direction.h 2022-06-03 19:05:29.000000000 +0000 +++ cgal-5.5/include/CGAL/QP_solver/Unbounded_direction.h 2022-07-13 19:06:24.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/QP_solver/include/CGAL/QP_solver/Unbounded_direction.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/QP_solver/include/CGAL/QP_solver/Unbounded_direction.h $ // $Id: Unbounded_direction.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Qt/AlphaShapeGraphicsItem.h cgal-5.5/include/CGAL/Qt/AlphaShapeGraphicsItem.h --- cgal-5.4.1/include/CGAL/Qt/AlphaShapeGraphicsItem.h 2022-06-03 19:04:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/AlphaShapeGraphicsItem.h 2022-07-13 19:05:03.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/AlphaShapeGraphicsItem.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/AlphaShapeGraphicsItem.h $ // $Id: AlphaShapeGraphicsItem.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Qt/ApolloniusGraphGraphicsItem.h cgal-5.5/include/CGAL/Qt/ApolloniusGraphGraphicsItem.h --- cgal-5.4.1/include/CGAL/Qt/ApolloniusGraphGraphicsItem.h 2022-06-03 19:04:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/ApolloniusGraphGraphicsItem.h 2022-07-13 19:05:03.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/ApolloniusGraphGraphicsItem.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/ApolloniusGraphGraphicsItem.h $ // $Id: ApolloniusGraphGraphicsItem.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Qt/Basic_viewer_qt.h cgal-5.5/include/CGAL/Qt/Basic_viewer_qt.h --- cgal-5.4.1/include/CGAL/Qt/Basic_viewer_qt.h 2022-06-03 19:04:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/Basic_viewer_qt.h 2022-07-13 19:05:03.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/Basic_viewer_qt.h $ -// $Id: Basic_viewer_qt.h 3640099 2021-09-28T15:36:51+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/Basic_viewer_qt.h $ +// $Id: Basic_viewer_qt.h 440a8df 2022-02-03T08:41:04+00:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -52,6 +52,7 @@ #include #include #include +#include namespace CGAL { @@ -612,7 +613,7 @@ vao[VAO_MONO_POINTS].bind(); unsigned int bufn = 0; - assert(bufn(arrays[POS_MONO_POINTS].size()*sizeof(float))); @@ -629,7 +630,7 @@ vao[VAO_COLORED_POINTS].bind(); ++bufn; - assert(bufn(arrays[POS_COLORED_POINTS].size()*sizeof(float))); @@ -638,7 +639,7 @@ buffers[bufn].release(); ++bufn; - assert(bufn(arrays[COLOR_POINTS].size()*sizeof(float))); @@ -654,7 +655,7 @@ vao[VAO_MONO_SEGMENTS].bind(); ++bufn; - assert(bufn(arrays[POS_MONO_SEGMENTS].size()*sizeof(float))); @@ -671,7 +672,7 @@ vao[VAO_COLORED_SEGMENTS].bind(); ++bufn; - assert(bufn(arrays[POS_COLORED_SEGMENTS].size()*sizeof(float))); @@ -681,7 +682,7 @@ buffers[bufn].release(); ++bufn; - assert(bufn(arrays[COLOR_SEGMENTS].size()*sizeof(float))); @@ -699,7 +700,7 @@ vao[VAO_MONO_RAYS].bind(); ++bufn; - assert(bufn(arrays[POS_MONO_RAYS].size()*sizeof(float))); @@ -717,7 +718,7 @@ vao[VAO_COLORED_RAYS].bind(); ++bufn; - assert(bufn(arrays[POS_COLORED_RAYS].size()*sizeof(float))); @@ -727,7 +728,7 @@ buffers[bufn].release(); ++bufn; - assert(bufn(arrays[COLOR_RAYS].size()*sizeof(float))); @@ -744,7 +745,7 @@ vao[VAO_MONO_LINES].bind(); ++bufn; - assert(bufn(arrays[POS_MONO_LINES].size()*sizeof(float))); @@ -762,7 +763,7 @@ vao[VAO_COLORED_LINES].bind(); ++bufn; - assert(bufn(arrays[POS_COLORED_LINES].size()*sizeof(float))); @@ -772,7 +773,7 @@ buffers[bufn].release(); ++bufn; - assert(bufn(arrays[COLOR_LINES].size()*sizeof(float))); @@ -792,7 +793,7 @@ // 5.1.1) points of the mono faces ++bufn; - assert(bufn(arrays[POS_MONO_FACES].size()*sizeof(float))); @@ -803,7 +804,7 @@ // 5.1.2) normals of the mono faces ++bufn; - assert(bufn(arrays[POS_COLORED_FACES].size()*sizeof(float))); @@ -842,7 +843,7 @@ // 5.2.2) normals of the color faces ++bufn; - assert(bufn(arrays[COLOR_FACES].size()*sizeof(float))); @@ -886,7 +887,7 @@ vao[VAO_CLIPPING_PLANE].bind(); ++bufn; - assert(bufn < NB_VBO_BUFFERS); + CGAL_assertion(bufn < NB_VBO_BUFFERS); buffers[bufn].bind(); buffers[bufn].allocate(arrays[POS_CLIPPING_PLANE].data(), static_cast(arrays[POS_CLIPPING_PLANE].size() * sizeof(float))); diff -Nru cgal-5.4.1/include/CGAL/Qt/camera.h cgal-5.5/include/CGAL/Qt/camera.h --- cgal-5.4.1/include/CGAL/Qt/camera.h 2022-06-03 19:04:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/camera.h 2022-07-13 19:05:04.000000000 +0000 @@ -6,7 +6,7 @@ This file is part of a fork of the QGLViewer library version 2.7.0. *****************************************************************************/ -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/camera.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/camera.h $ // $Id: camera.h b32619f 2022-05-16T17:12:00+02:00 Laurent Rineau // SPDX-License-Identifier: GPL-3.0-only diff -Nru cgal-5.4.1/include/CGAL/Qt/camera_impl.h cgal-5.5/include/CGAL/Qt/camera_impl.h --- cgal-5.4.1/include/CGAL/Qt/camera_impl.h 2022-06-03 19:04:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/camera_impl.h 2022-07-13 19:05:04.000000000 +0000 @@ -6,7 +6,7 @@ This file is part of a fork of the QGLViewer library version 2.7.0. *****************************************************************************/ -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/camera_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/camera_impl.h $ // $Id: camera_impl.h 225e3c2 2022-05-12T12:39:21+02:00 Laurent Rineau // SPDX-License-Identifier: GPL-3.0-only diff -Nru cgal-5.4.1/include/CGAL/Qt/CGAL_Qt_config.h cgal-5.5/include/CGAL/Qt/CGAL_Qt_config.h --- cgal-5.4.1/include/CGAL/Qt/CGAL_Qt_config.h 2022-06-03 19:04:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/CGAL_Qt_config.h 2022-07-13 19:05:03.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/CGAL_Qt_config.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/CGAL_Qt_config.h $ // $Id: CGAL_Qt_config.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Qt/CircularArcGraphicsItem.h cgal-5.5/include/CGAL/Qt/CircularArcGraphicsItem.h --- cgal-5.4.1/include/CGAL/Qt/CircularArcGraphicsItem.h 2022-06-03 19:04:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/CircularArcGraphicsItem.h 2022-07-13 19:05:03.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/CircularArcGraphicsItem.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/CircularArcGraphicsItem.h $ // $Id: CircularArcGraphicsItem.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Qt/ConstrainedTriangulationGraphicsItem.h cgal-5.5/include/CGAL/Qt/ConstrainedTriangulationGraphicsItem.h --- cgal-5.4.1/include/CGAL/Qt/ConstrainedTriangulationGraphicsItem.h 2022-06-03 19:04:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/ConstrainedTriangulationGraphicsItem.h 2022-07-13 19:05:03.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/ConstrainedTriangulationGraphicsItem.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/ConstrainedTriangulationGraphicsItem.h $ // $Id: ConstrainedTriangulationGraphicsItem.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Qt/constraint.h cgal-5.5/include/CGAL/Qt/constraint.h --- cgal-5.4.1/include/CGAL/Qt/constraint.h 2022-06-03 19:04:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/constraint.h 2022-07-13 19:05:04.000000000 +0000 @@ -6,7 +6,7 @@ This file is part of a fork of the QGLViewer library version 2.7.0. *****************************************************************************/ -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/constraint.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/constraint.h $ // $Id: constraint.h 1ef976e 2019-10-19T16:09:56+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-only #ifndef QGLVIEWER_CONSTRAINT_H diff -Nru cgal-5.4.1/include/CGAL/Qt/constraint_impl.h cgal-5.5/include/CGAL/Qt/constraint_impl.h --- cgal-5.4.1/include/CGAL/Qt/constraint_impl.h 2022-06-03 19:04:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/constraint_impl.h 2022-07-13 19:05:04.000000000 +0000 @@ -6,7 +6,7 @@ This file is part of a fork of the QGLViewer library version 2.7.0. *****************************************************************************/ -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/constraint_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/constraint_impl.h $ // $Id: constraint_impl.h 23b1024 2021-02-18T13:51:04+01:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-only diff -Nru cgal-5.4.1/include/CGAL/Qt/Converter.h cgal-5.5/include/CGAL/Qt/Converter.h --- cgal-5.4.1/include/CGAL/Qt/Converter.h 2022-06-03 19:04:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/Converter.h 2022-07-13 19:05:03.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/Converter.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/Converter.h $ // $Id: Converter.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Qt/CreateOpenGLContext.h cgal-5.5/include/CGAL/Qt/CreateOpenGLContext.h --- cgal-5.4.1/include/CGAL/Qt/CreateOpenGLContext.h 2022-06-03 19:04:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/CreateOpenGLContext.h 2022-07-13 19:05:03.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/CreateOpenGLContext.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/CreateOpenGLContext.h $ // $Id: CreateOpenGLContext.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Qt/debug.h cgal-5.5/include/CGAL/Qt/debug.h --- cgal-5.4.1/include/CGAL/Qt/debug.h 2022-06-03 19:04:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/debug.h 2022-07-13 19:05:04.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/debug.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/debug.h $ // $Id: debug.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Qt/debug_impl.h cgal-5.5/include/CGAL/Qt/debug_impl.h --- cgal-5.4.1/include/CGAL/Qt/debug_impl.h 2022-06-03 19:04:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/debug_impl.h 2022-07-13 19:05:04.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/debug_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/debug_impl.h $ // $Id: debug_impl.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Qt/DelaunayMeshTriangulationGraphicsItem.h cgal-5.5/include/CGAL/Qt/DelaunayMeshTriangulationGraphicsItem.h --- cgal-5.4.1/include/CGAL/Qt/DelaunayMeshTriangulationGraphicsItem.h 2022-06-03 19:04:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/DelaunayMeshTriangulationGraphicsItem.h 2022-07-13 19:05:03.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/DelaunayMeshTriangulationGraphicsItem.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/DelaunayMeshTriangulationGraphicsItem.h $ // $Id: DelaunayMeshTriangulationGraphicsItem.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Qt/DemosMainWindow.h cgal-5.5/include/CGAL/Qt/DemosMainWindow.h --- cgal-5.4.1/include/CGAL/Qt/DemosMainWindow.h 2022-06-03 19:04:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/DemosMainWindow.h 2022-07-13 19:05:03.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/DemosMainWindow.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/DemosMainWindow.h $ // $Id: DemosMainWindow.h b80daff 2021-02-19T11:29:38+01:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Qt/DemosMainWindow_impl.h cgal-5.5/include/CGAL/Qt/DemosMainWindow_impl.h --- cgal-5.4.1/include/CGAL/Qt/DemosMainWindow_impl.h 2022-06-03 19:04:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/DemosMainWindow_impl.h 2022-07-13 19:05:03.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/DemosMainWindow_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/DemosMainWindow_impl.h $ // $Id: DemosMainWindow_impl.h c9a020b 2021-02-09T12:12:56+01:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Qt/frame.h cgal-5.5/include/CGAL/Qt/frame.h --- cgal-5.4.1/include/CGAL/Qt/frame.h 2022-06-03 19:04:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/frame.h 2022-07-13 19:05:04.000000000 +0000 @@ -6,7 +6,7 @@ This file is part of a fork of the QGLViewer library version 2.7.0. *****************************************************************************/ -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/frame.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/frame.h $ // $Id: frame.h 9cd0d45 2021-02-09T11:31:34+01:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-only #ifndef QGLVIEWER_FRAME_H diff -Nru cgal-5.4.1/include/CGAL/Qt/frame_impl.h cgal-5.5/include/CGAL/Qt/frame_impl.h --- cgal-5.4.1/include/CGAL/Qt/frame_impl.h 2022-06-03 19:04:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/frame_impl.h 2022-07-13 19:05:04.000000000 +0000 @@ -6,7 +6,7 @@ This file is part of a fork of the QGLViewer library version 2.7.0. *****************************************************************************/ -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/frame_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/frame_impl.h $ // $Id: frame_impl.h c9a020b 2021-02-09T12:12:56+01:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-only diff -Nru cgal-5.4.1/include/CGAL/Qt/GraphicsItem.h cgal-5.5/include/CGAL/Qt/GraphicsItem.h --- cgal-5.4.1/include/CGAL/Qt/GraphicsItem.h 2022-06-03 19:04:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/GraphicsItem.h 2022-07-13 19:05:03.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/GraphicsItem.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/GraphicsItem.h $ // $Id: GraphicsItem.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Qt/GraphicsViewCircleInput.h cgal-5.5/include/CGAL/Qt/GraphicsViewCircleInput.h --- cgal-5.4.1/include/CGAL/Qt/GraphicsViewCircleInput.h 2022-06-03 19:04:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/GraphicsViewCircleInput.h 2022-07-13 19:05:03.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/GraphicsViewCircleInput.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/GraphicsViewCircleInput.h $ // $Id: GraphicsViewCircleInput.h e28a3ac 2020-06-02T12:55:25+02:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Qt/GraphicsViewCircularArcInput.h cgal-5.5/include/CGAL/Qt/GraphicsViewCircularArcInput.h --- cgal-5.4.1/include/CGAL/Qt/GraphicsViewCircularArcInput.h 2022-06-03 19:04:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/GraphicsViewCircularArcInput.h 2022-07-13 19:05:03.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/GraphicsViewCircularArcInput.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/GraphicsViewCircularArcInput.h $ // $Id: GraphicsViewCircularArcInput.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Qt/GraphicsViewInput.h cgal-5.5/include/CGAL/Qt/GraphicsViewInput.h --- cgal-5.4.1/include/CGAL/Qt/GraphicsViewInput.h 2022-06-03 19:04:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/GraphicsViewInput.h 2022-07-13 19:05:03.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/GraphicsViewInput.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/GraphicsViewInput.h $ // $Id: GraphicsViewInput.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Qt/GraphicsViewIsoRectangleInput.h cgal-5.5/include/CGAL/Qt/GraphicsViewIsoRectangleInput.h --- cgal-5.4.1/include/CGAL/Qt/GraphicsViewIsoRectangleInput.h 2022-06-03 19:04:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/GraphicsViewIsoRectangleInput.h 2022-07-13 19:05:03.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/GraphicsViewIsoRectangleInput.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/GraphicsViewIsoRectangleInput.h $ // $Id: GraphicsViewIsoRectangleInput.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Qt/GraphicsViewLineInput.h cgal-5.5/include/CGAL/Qt/GraphicsViewLineInput.h --- cgal-5.4.1/include/CGAL/Qt/GraphicsViewLineInput.h 2022-06-03 19:04:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/GraphicsViewLineInput.h 2022-07-13 19:05:04.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/GraphicsViewLineInput.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/GraphicsViewLineInput.h $ // $Id: GraphicsViewLineInput.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Qt/GraphicsViewNavigation.h cgal-5.5/include/CGAL/Qt/GraphicsViewNavigation.h --- cgal-5.4.1/include/CGAL/Qt/GraphicsViewNavigation.h 2022-06-03 19:04:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/GraphicsViewNavigation.h 2022-07-13 19:05:04.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/GraphicsViewNavigation.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/GraphicsViewNavigation.h $ // $Id: GraphicsViewNavigation.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Qt/GraphicsViewNavigation_impl.h cgal-5.5/include/CGAL/Qt/GraphicsViewNavigation_impl.h --- cgal-5.4.1/include/CGAL/Qt/GraphicsViewNavigation_impl.h 2022-06-03 19:04:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/GraphicsViewNavigation_impl.h 2022-07-13 19:05:04.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/GraphicsViewNavigation_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/GraphicsViewNavigation_impl.h $ // $Id: GraphicsViewNavigation_impl.h a9795c3 2020-06-11T13:11:36+02:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Qt/GraphicsViewPointInput.h cgal-5.5/include/CGAL/Qt/GraphicsViewPointInput.h --- cgal-5.4.1/include/CGAL/Qt/GraphicsViewPointInput.h 2022-06-03 19:03:45.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/GraphicsViewPointInput.h 2022-07-13 19:04:31.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Qt/GraphicsViewPointInput.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Qt/GraphicsViewPointInput.h $ // $Id: GraphicsViewPointInput.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial diff -Nru cgal-5.4.1/include/CGAL/Qt/GraphicsViewPolygonWithHolesInput.h cgal-5.5/include/CGAL/Qt/GraphicsViewPolygonWithHolesInput.h --- cgal-5.4.1/include/CGAL/Qt/GraphicsViewPolygonWithHolesInput.h 2022-06-03 19:04:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/GraphicsViewPolygonWithHolesInput.h 2022-07-13 19:05:04.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/GraphicsViewPolygonWithHolesInput.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/GraphicsViewPolygonWithHolesInput.h $ // $Id: GraphicsViewPolygonWithHolesInput.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Qt/GraphicsViewPolylineInput.h cgal-5.5/include/CGAL/Qt/GraphicsViewPolylineInput.h --- cgal-5.4.1/include/CGAL/Qt/GraphicsViewPolylineInput.h 2022-06-03 19:04:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/GraphicsViewPolylineInput.h 2022-07-13 19:05:04.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/GraphicsViewPolylineInput.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/GraphicsViewPolylineInput.h $ // $Id: GraphicsViewPolylineInput.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Qt/GraphicsViewPolylineInput_impl.h cgal-5.5/include/CGAL/Qt/GraphicsViewPolylineInput_impl.h --- cgal-5.4.1/include/CGAL/Qt/GraphicsViewPolylineInput_impl.h 2022-06-03 19:04:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/GraphicsViewPolylineInput_impl.h 2022-07-13 19:05:04.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/GraphicsViewPolylineInput_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/GraphicsViewPolylineInput_impl.h $ // $Id: GraphicsViewPolylineInput_impl.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Qt/image_interface.h cgal-5.5/include/CGAL/Qt/image_interface.h --- cgal-5.4.1/include/CGAL/Qt/image_interface.h 2022-06-03 19:04:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/image_interface.h 2022-07-13 19:05:04.000000000 +0000 @@ -6,7 +6,7 @@ This file is part of a fork of the QGLViewer library version 2.7.0. *****************************************************************************/ -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/image_interface.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/image_interface.h $ // $Id: image_interface.h 1ef976e 2019-10-19T16:09:56+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-only diff -Nru cgal-5.4.1/include/CGAL/Qt/init_ogl_context.h cgal-5.5/include/CGAL/Qt/init_ogl_context.h --- cgal-5.4.1/include/CGAL/Qt/init_ogl_context.h 2022-06-03 19:04:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/init_ogl_context.h 2022-07-13 19:05:05.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/init_ogl_context.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/init_ogl_context.h $ // $Id: init_ogl_context.h 9a202e2 2021-01-12T13:27:31+01:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Qt/keyFrameInterpolator.h cgal-5.5/include/CGAL/Qt/keyFrameInterpolator.h --- cgal-5.4.1/include/CGAL/Qt/keyFrameInterpolator.h 2022-06-03 19:04:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/keyFrameInterpolator.h 2022-07-13 19:05:05.000000000 +0000 @@ -6,7 +6,7 @@ This file is part of a fork of the QGLViewer library version 2.7.0. *****************************************************************************/ -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/keyFrameInterpolator.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/keyFrameInterpolator.h $ // $Id: keyFrameInterpolator.h 9cd0d45 2021-02-09T11:31:34+01:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-only #ifndef QGLVIEWER_KEY_FRAME_INTERPOLATOR_H diff -Nru cgal-5.4.1/include/CGAL/Qt/keyFrameInterpolator_impl.h cgal-5.5/include/CGAL/Qt/keyFrameInterpolator_impl.h --- cgal-5.4.1/include/CGAL/Qt/keyFrameInterpolator_impl.h 2022-06-03 19:04:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/keyFrameInterpolator_impl.h 2022-07-13 19:05:05.000000000 +0000 @@ -6,7 +6,7 @@ This file is part of a fork of the QGLViewer library version 2.7.0. *****************************************************************************/ -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/keyFrameInterpolator_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/keyFrameInterpolator_impl.h $ // $Id: keyFrameInterpolator_impl.h 5efa544 2021-02-22T17:19:40+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-only #ifdef CGAL_HEADER_ONLY diff -Nru cgal-5.4.1/include/CGAL/Qt/LineGraphicsItem.h cgal-5.5/include/CGAL/Qt/LineGraphicsItem.h --- cgal-5.4.1/include/CGAL/Qt/LineGraphicsItem.h 2022-06-03 19:04:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/LineGraphicsItem.h 2022-07-13 19:05:04.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/LineGraphicsItem.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/LineGraphicsItem.h $ // $Id: LineGraphicsItem.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Qt/manipulatedCameraFrame.h cgal-5.5/include/CGAL/Qt/manipulatedCameraFrame.h --- cgal-5.4.1/include/CGAL/Qt/manipulatedCameraFrame.h 2022-06-03 19:04:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/manipulatedCameraFrame.h 2022-07-13 19:05:05.000000000 +0000 @@ -6,7 +6,7 @@ This file is part of a fork of the QGLViewer library version 2.7.0. *****************************************************************************/ -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/manipulatedCameraFrame.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/manipulatedCameraFrame.h $ // $Id: manipulatedCameraFrame.h 9cd0d45 2021-02-09T11:31:34+01:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-only diff -Nru cgal-5.4.1/include/CGAL/Qt/manipulatedCameraFrame_impl.h cgal-5.5/include/CGAL/Qt/manipulatedCameraFrame_impl.h --- cgal-5.4.1/include/CGAL/Qt/manipulatedCameraFrame_impl.h 2022-06-03 19:04:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/manipulatedCameraFrame_impl.h 2022-07-13 19:05:05.000000000 +0000 @@ -6,7 +6,7 @@ This file is part of a fork of the QGLViewer library version 2.7.0. *****************************************************************************/ -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/manipulatedCameraFrame_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/manipulatedCameraFrame_impl.h $ // $Id: manipulatedCameraFrame_impl.h c9a020b 2021-02-09T12:12:56+01:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-only diff -Nru cgal-5.4.1/include/CGAL/Qt/manipulatedFrame.h cgal-5.5/include/CGAL/Qt/manipulatedFrame.h --- cgal-5.4.1/include/CGAL/Qt/manipulatedFrame.h 2022-06-03 19:04:16.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/manipulatedFrame.h 2022-07-13 19:05:05.000000000 +0000 @@ -6,7 +6,7 @@ This file is part of a fork of the QGLViewer library version 2.7.0. *****************************************************************************/ -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/manipulatedFrame.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/manipulatedFrame.h $ // $Id: manipulatedFrame.h 9cd0d45 2021-02-09T11:31:34+01:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-only diff -Nru cgal-5.4.1/include/CGAL/Qt/manipulatedFrame_impl.h cgal-5.5/include/CGAL/Qt/manipulatedFrame_impl.h --- cgal-5.4.1/include/CGAL/Qt/manipulatedFrame_impl.h 2022-06-03 19:04:16.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/manipulatedFrame_impl.h 2022-07-13 19:05:05.000000000 +0000 @@ -6,7 +6,7 @@ This file is part of a fork of the QGLViewer library version 2.7.0. *****************************************************************************/ -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/manipulatedFrame_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/manipulatedFrame_impl.h $ // $Id: manipulatedFrame_impl.h c9a020b 2021-02-09T12:12:56+01:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-only diff -Nru cgal-5.4.1/include/CGAL/Qt/mouseGrabber.h cgal-5.5/include/CGAL/Qt/mouseGrabber.h --- cgal-5.4.1/include/CGAL/Qt/mouseGrabber.h 2022-06-03 19:04:16.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/mouseGrabber.h 2022-07-13 19:05:05.000000000 +0000 @@ -6,7 +6,7 @@ This file is part of a fork of the QGLViewer library version 2.7.0. *****************************************************************************/ -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/mouseGrabber.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/mouseGrabber.h $ // $Id: mouseGrabber.h 1ef976e 2019-10-19T16:09:56+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-only diff -Nru cgal-5.4.1/include/CGAL/Qt/mouseGrabber_impl.h cgal-5.5/include/CGAL/Qt/mouseGrabber_impl.h --- cgal-5.4.1/include/CGAL/Qt/mouseGrabber_impl.h 2022-06-03 19:04:16.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/mouseGrabber_impl.h 2022-07-13 19:05:05.000000000 +0000 @@ -6,7 +6,7 @@ This file is part of a fork of the QGLViewer library version 2.7.0. *****************************************************************************/ -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/mouseGrabber_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/mouseGrabber_impl.h $ // $Id: mouseGrabber_impl.h 1ef976e 2019-10-19T16:09:56+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-only diff -Nru cgal-5.4.1/include/CGAL/Qt/PainterOstream.h cgal-5.5/include/CGAL/Qt/PainterOstream.h --- cgal-5.4.1/include/CGAL/Qt/PainterOstream.h 2022-06-03 19:04:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/PainterOstream.h 2022-07-13 19:05:04.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/PainterOstream.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/PainterOstream.h $ // $Id: PainterOstream.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Qt/PointsGraphicsItem.h cgal-5.5/include/CGAL/Qt/PointsGraphicsItem.h --- cgal-5.4.1/include/CGAL/Qt/PointsGraphicsItem.h 2022-06-03 19:04:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/PointsGraphicsItem.h 2022-07-13 19:05:04.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/PointsGraphicsItem.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/PointsGraphicsItem.h $ // $Id: PointsGraphicsItem.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Qt/PointsInKdTreeGraphicsItem.h cgal-5.5/include/CGAL/Qt/PointsInKdTreeGraphicsItem.h --- cgal-5.4.1/include/CGAL/Qt/PointsInKdTreeGraphicsItem.h 2022-06-03 19:04:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/PointsInKdTreeGraphicsItem.h 2022-07-13 19:05:04.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/PointsInKdTreeGraphicsItem.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/PointsInKdTreeGraphicsItem.h $ // $Id: PointsInKdTreeGraphicsItem.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Qt/PolygonGraphicsItem.h cgal-5.5/include/CGAL/Qt/PolygonGraphicsItem.h --- cgal-5.4.1/include/CGAL/Qt/PolygonGraphicsItem.h 2022-06-03 19:04:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/PolygonGraphicsItem.h 2022-07-13 19:05:04.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/PolygonGraphicsItem.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/PolygonGraphicsItem.h $ // $Id: PolygonGraphicsItem.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Qt/PolygonWithHolesGraphicsItem.h cgal-5.5/include/CGAL/Qt/PolygonWithHolesGraphicsItem.h --- cgal-5.4.1/include/CGAL/Qt/PolygonWithHolesGraphicsItem.h 2022-06-03 19:04:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/PolygonWithHolesGraphicsItem.h 2022-07-13 19:05:04.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/PolygonWithHolesGraphicsItem.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/PolygonWithHolesGraphicsItem.h $ // $Id: PolygonWithHolesGraphicsItem.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Qt/PolylinesGraphicsItem.h cgal-5.5/include/CGAL/Qt/PolylinesGraphicsItem.h --- cgal-5.4.1/include/CGAL/Qt/PolylinesGraphicsItem.h 2022-06-03 19:04:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/PolylinesGraphicsItem.h 2022-07-13 19:05:04.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/PolylinesGraphicsItem.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/PolylinesGraphicsItem.h $ // $Id: PolylinesGraphicsItem.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Qt/PowerdiagramGraphicsItem.h cgal-5.5/include/CGAL/Qt/PowerdiagramGraphicsItem.h --- cgal-5.4.1/include/CGAL/Qt/PowerdiagramGraphicsItem.h 2022-06-03 19:04:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/PowerdiagramGraphicsItem.h 2022-07-13 19:05:04.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/PowerdiagramGraphicsItem.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/PowerdiagramGraphicsItem.h $ // $Id: PowerdiagramGraphicsItem.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Qt/qglviewer.h cgal-5.5/include/CGAL/Qt/qglviewer.h --- cgal-5.4.1/include/CGAL/Qt/qglviewer.h 2022-06-03 19:04:16.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/qglviewer.h 2022-07-13 19:05:05.000000000 +0000 @@ -6,8 +6,8 @@ This file is part of a fork of the QGLViewer library version 2.7.0. *****************************************************************************/ -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/qglviewer.h $ -// $Id: qglviewer.h 3640099 2021-09-28T15:36:51+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/qglviewer.h $ +// $Id: qglviewer.h 37390bb 2022-06-08T12:03:25+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-only #ifndef QGLVIEWER_QGLVIEWER_H @@ -563,6 +563,21 @@ */ void saveSnapshot(); + /*! + * Takes a snapshot without any dialog + */ + void saveSnapshot(const QString& fileName, + const qreal finalWidth, + const qreal finalHeight, + const bool expand = false, + const double oversampling = 1., + qglviewer::SnapShotBackground background_color = qglviewer::CURRENT_BACKGROUND); + + void saveSnapshot(const QString& fileName) + { + return saveSnapshot(fileName, this->width(), this->height()); + } + public: Q_SIGNALS: /*! Signal emitted by the default init() method. diff -Nru cgal-5.4.1/include/CGAL/Qt/qglviewer_impl.h cgal-5.5/include/CGAL/Qt/qglviewer_impl.h --- cgal-5.4.1/include/CGAL/Qt/qglviewer_impl.h 2022-06-03 19:04:16.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/qglviewer_impl.h 2022-07-13 19:05:05.000000000 +0000 @@ -6,8 +6,8 @@ This file is part of a fork of the QGLViewer library version 2.7.0. *****************************************************************************/ -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/qglviewer_impl.h $ -// $Id: qglviewer_impl.h 213da31 2022-05-16T16:20:13+02:00 Laurent Rineau +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/qglviewer_impl.h $ +// $Id: qglviewer_impl.h 37390bb 2022-06-08T12:03:25+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-only #ifdef CGAL_HEADER_ONLY @@ -3761,8 +3761,29 @@ } } +CGAL_INLINE_FUNCTION +void CGAL::QGLViewer::saveSnapshot(const QString& fileName, + const qreal finalWidth, const qreal finalHeight, + const bool expand, + const double oversampling, + qglviewer::SnapShotBackground background_color) +{ + if(fileName.isEmpty()) + return; + + QSize finalSize(finalWidth, finalHeight); + + QImage* image = takeSnapshot(qglviewer::SnapShotBackground(background_color), + finalSize, oversampling, expand); + if(image) + { + image->save(fileName); + delete image; + } } +} // namespace CGAL + CGAL_INLINE_FUNCTION bool CGAL::QGLViewer::isSharing() const { diff -Nru cgal-5.4.1/include/CGAL/Qt/qglviewer_impl_list.h cgal-5.5/include/CGAL/Qt/qglviewer_impl_list.h --- cgal-5.4.1/include/CGAL/Qt/qglviewer_impl_list.h 2022-06-03 19:04:16.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/qglviewer_impl_list.h 2022-07-13 19:05:05.000000000 +0000 @@ -6,7 +6,7 @@ This file is part of a fork of the QGLViewer library version 2.7.0. *****************************************************************************/ -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/qglviewer_impl_list.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/qglviewer_impl_list.h $ // $Id: qglviewer_impl_list.h 1ef976e 2019-10-19T16:09:56+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-only diff -Nru cgal-5.4.1/include/CGAL/Qt/quaternion.h cgal-5.5/include/CGAL/Qt/quaternion.h --- cgal-5.4.1/include/CGAL/Qt/quaternion.h 2022-06-03 19:04:16.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/quaternion.h 2022-07-13 19:05:05.000000000 +0000 @@ -6,7 +6,7 @@ This file is part of a fork of the QGLViewer library version 2.7.0. *****************************************************************************/ -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/quaternion.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/quaternion.h $ // $Id: quaternion.h 9cd0d45 2021-02-09T11:31:34+01:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-only diff -Nru cgal-5.4.1/include/CGAL/Qt/quaternion_impl.h cgal-5.5/include/CGAL/Qt/quaternion_impl.h --- cgal-5.4.1/include/CGAL/Qt/quaternion_impl.h 2022-06-03 19:04:16.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/quaternion_impl.h 2022-07-13 19:05:05.000000000 +0000 @@ -6,7 +6,7 @@ This file is part of a fork of the QGLViewer library version 2.7.0. *****************************************************************************/ -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/quaternion_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/quaternion_impl.h $ // $Id: quaternion_impl.h c9a020b 2021-02-09T12:12:56+01:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-only diff -Nru cgal-5.4.1/include/CGAL/Qt/RegularGridGraphicsItem.h cgal-5.5/include/CGAL/Qt/RegularGridGraphicsItem.h --- cgal-5.4.1/include/CGAL/Qt/RegularGridGraphicsItem.h 2022-06-03 19:04:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/RegularGridGraphicsItem.h 2022-07-13 19:05:04.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/RegularGridGraphicsItem.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/RegularGridGraphicsItem.h $ // $Id: RegularGridGraphicsItem.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Qt/RegularGridVectorFieldGraphicsItem.h cgal-5.5/include/CGAL/Qt/RegularGridVectorFieldGraphicsItem.h --- cgal-5.4.1/include/CGAL/Qt/RegularGridVectorFieldGraphicsItem.h 2022-06-03 19:04:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/RegularGridVectorFieldGraphicsItem.h 2022-07-13 19:05:04.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/RegularGridVectorFieldGraphicsItem.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/RegularGridVectorFieldGraphicsItem.h $ // $Id: RegularGridVectorFieldGraphicsItem.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Qt/RegularTriangulationGraphicsItem.h cgal-5.5/include/CGAL/Qt/RegularTriangulationGraphicsItem.h --- cgal-5.4.1/include/CGAL/Qt/RegularTriangulationGraphicsItem.h 2022-06-03 19:04:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/RegularTriangulationGraphicsItem.h 2022-07-13 19:05:04.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/RegularTriangulationGraphicsItem.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/RegularTriangulationGraphicsItem.h $ // $Id: RegularTriangulationGraphicsItem.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Qt/resources.h cgal-5.5/include/CGAL/Qt/resources.h --- cgal-5.4.1/include/CGAL/Qt/resources.h 2022-06-03 19:04:16.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/resources.h 2022-07-13 19:05:05.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/resources.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/resources.h $ // $Id: resources.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Qt/resources_impl.h cgal-5.5/include/CGAL/Qt/resources_impl.h --- cgal-5.4.1/include/CGAL/Qt/resources_impl.h 2022-06-03 19:04:16.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/resources_impl.h 2022-07-13 19:05:05.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/resources_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/resources_impl.h $ // $Id: resources_impl.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Qt/SegmentDelaunayGraphGraphicsItem.h cgal-5.5/include/CGAL/Qt/SegmentDelaunayGraphGraphicsItem.h --- cgal-5.4.1/include/CGAL/Qt/SegmentDelaunayGraphGraphicsItem.h 2022-06-03 19:04:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/SegmentDelaunayGraphGraphicsItem.h 2022-07-13 19:05:04.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/SegmentDelaunayGraphGraphicsItem.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/SegmentDelaunayGraphGraphicsItem.h $ // $Id: SegmentDelaunayGraphGraphicsItem.h fb6f703 2021-05-04T14:07:49+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Qt/SegmentDelaunayGraphLinfGraphicsItem.h cgal-5.5/include/CGAL/Qt/SegmentDelaunayGraphLinfGraphicsItem.h --- cgal-5.4.1/include/CGAL/Qt/SegmentDelaunayGraphLinfGraphicsItem.h 2022-06-03 19:04:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/SegmentDelaunayGraphLinfGraphicsItem.h 2022-07-13 19:05:04.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/SegmentDelaunayGraphLinfGraphicsItem.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/SegmentDelaunayGraphLinfGraphicsItem.h $ // $Id: SegmentDelaunayGraphLinfGraphicsItem.h fb6f703 2021-05-04T14:07:49+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Qt/SegmentsGraphicsItem.h cgal-5.5/include/CGAL/Qt/SegmentsGraphicsItem.h --- cgal-5.4.1/include/CGAL/Qt/SegmentsGraphicsItem.h 2022-06-03 19:04:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/SegmentsGraphicsItem.h 2022-07-13 19:05:04.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/SegmentsGraphicsItem.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/SegmentsGraphicsItem.h $ // $Id: SegmentsGraphicsItem.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Qt/StreamLinesGraphicsItem.h cgal-5.5/include/CGAL/Qt/StreamLinesGraphicsItem.h --- cgal-5.4.1/include/CGAL/Qt/StreamLinesGraphicsItem.h 2022-06-03 19:04:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/StreamLinesGraphicsItem.h 2022-07-13 19:05:04.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/StreamLinesGraphicsItem.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/StreamLinesGraphicsItem.h $ // $Id: StreamLinesGraphicsItem.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Qt/TriangulationGraphicsItem.h cgal-5.5/include/CGAL/Qt/TriangulationGraphicsItem.h --- cgal-5.4.1/include/CGAL/Qt/TriangulationGraphicsItem.h 2022-06-03 19:04:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/TriangulationGraphicsItem.h 2022-07-13 19:05:04.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/TriangulationGraphicsItem.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/TriangulationGraphicsItem.h $ // $Id: TriangulationGraphicsItem.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Qt/utility.h cgal-5.5/include/CGAL/Qt/utility.h --- cgal-5.4.1/include/CGAL/Qt/utility.h 2022-06-03 19:04:16.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/utility.h 2022-07-13 19:05:05.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/utility.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/utility.h $ // $Id: utility.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Qt/utility_impl.h cgal-5.5/include/CGAL/Qt/utility_impl.h --- cgal-5.4.1/include/CGAL/Qt/utility_impl.h 2022-06-03 19:04:16.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/utility_impl.h 2022-07-13 19:05:05.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/utility_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/utility_impl.h $ // $Id: utility_impl.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Qt/vec.h cgal-5.5/include/CGAL/Qt/vec.h --- cgal-5.4.1/include/CGAL/Qt/vec.h 2022-06-03 19:04:16.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/vec.h 2022-07-13 19:05:05.000000000 +0000 @@ -6,7 +6,7 @@ This file is part of a fork of the QGLViewer library version 2.7.0. *****************************************************************************/ -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/vec.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/vec.h $ // $Id: vec.h 9cd0d45 2021-02-09T11:31:34+01:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-only diff -Nru cgal-5.4.1/include/CGAL/Qt/vec_impl.h cgal-5.5/include/CGAL/Qt/vec_impl.h --- cgal-5.4.1/include/CGAL/Qt/vec_impl.h 2022-06-03 19:04:16.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/vec_impl.h 2022-07-13 19:05:05.000000000 +0000 @@ -6,7 +6,7 @@ This file is part of a fork of the QGLViewer library version 2.7.0. *****************************************************************************/ -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/vec_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/vec_impl.h $ // $Id: vec_impl.h c9a020b 2021-02-09T12:12:56+01:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-only diff -Nru cgal-5.4.1/include/CGAL/Qt/viewer_actions.h cgal-5.5/include/CGAL/Qt/viewer_actions.h --- cgal-5.4.1/include/CGAL/Qt/viewer_actions.h 2022-06-03 19:04:16.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/viewer_actions.h 2022-07-13 19:05:05.000000000 +0000 @@ -6,7 +6,7 @@ This file is part of a fork of the QGLViewer library version 2.7.0. *****************************************************************************/ -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/viewer_actions.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/viewer_actions.h $ // $Id: viewer_actions.h 06995b5 2020-09-30T16:28:25+02:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-only #ifndef VIEWER_ACTIONS_H diff -Nru cgal-5.4.1/include/CGAL/Qt/VoronoiGraphicsItem.h cgal-5.5/include/CGAL/Qt/VoronoiGraphicsItem.h --- cgal-5.4.1/include/CGAL/Qt/VoronoiGraphicsItem.h 2022-06-03 19:04:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Qt/VoronoiGraphicsItem.h 2022-07-13 19:05:04.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/GraphicsView/include/CGAL/Qt/VoronoiGraphicsItem.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/GraphicsView/include/CGAL/Qt/VoronoiGraphicsItem.h $ // $Id: VoronoiGraphicsItem.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Quadtree.h cgal-5.5/include/CGAL/Quadtree.h --- cgal-5.4.1/include/CGAL/Quadtree.h 2022-06-03 19:05:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Quadtree.h 2022-07-13 19:05:58.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Orthtree/include/CGAL/Quadtree.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Orthtree/include/CGAL/Quadtree.h $ // $Id: Quadtree.h 4d761ed 2021-04-01T14:21:01+02:00 Simon Giraudot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Quotient_fwd.h cgal-5.5/include/CGAL/Quotient_fwd.h --- cgal-5.4.1/include/CGAL/Quotient_fwd.h 2022-06-03 19:05:01.000000000 +0000 +++ cgal-5.5/include/CGAL/Quotient_fwd.h 2022-07-13 19:05:54.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/Quotient_fwd.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/Quotient_fwd.h $ // $Id: Quotient_fwd.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Quotient.h cgal-5.5/include/CGAL/Quotient.h --- cgal-5.4.1/include/CGAL/Quotient.h 2022-06-03 19:05:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Quotient.h 2022-07-13 19:05:54.000000000 +0000 @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/Quotient.h $ -// $Id: Quotient.h 8d32692 2021-09-09T15:48:59+02:00 Jane Tournois +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/Quotient.h $ +// $Id: Quotient.h a037ca1 2021-10-04T17:01:41+02:00 Dmitry Anisimov // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // @@ -33,6 +33,9 @@ #include #include +#ifdef CGAL_USE_BOOST_MP +#include +#endif // CGAL_USE_BOOST_MP namespace CGAL { @@ -46,6 +49,15 @@ inline void simplify_quotient(NT &, NT &) {} +#ifdef CGAL_USE_BOOST_MP +inline void +simplify_quotient(boost::multiprecision::cpp_int & a, boost::multiprecision::cpp_int & b) { + const boost::multiprecision::cpp_int r = boost::multiprecision::gcd(a, b); + a /= r; + b /= r; +} +#endif // CGAL_USE_BOOST_MP + // This one should be replaced by some functor or tag. // Meanwhile, the class is specialized for Gmpz, mpz_class, leda_integer. template < typename NT > @@ -687,7 +699,7 @@ : public CGAL::cpp98::unary_function< Type, std::pair< double, double > > { public: std::pair operator()( const Type& x ) const { - Interval_nt<> quot = + const Interval_nt<> quot = Interval_nt<>(CGAL_NTS to_interval(x.numerator())) / Interval_nt<>(CGAL_NTS to_interval(x.denominator())); return std::make_pair(quot.inf(), quot.sup()); diff -Nru cgal-5.4.1/include/CGAL/radial_orient_normals.h cgal-5.5/include/CGAL/radial_orient_normals.h --- cgal-5.4.1/include/CGAL/radial_orient_normals.h 2022-06-03 19:05:12.000000000 +0000 +++ cgal-5.5/include/CGAL/radial_orient_normals.h 2022-07-13 19:06:06.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Point_set_processing_3/include/CGAL/radial_orient_normals.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Point_set_processing_3/include/CGAL/radial_orient_normals.h $ // $Id: radial_orient_normals.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Random_access_adaptor.h cgal-5.5/include/CGAL/Random_access_adaptor.h --- cgal-5.4.1/include/CGAL/Random_access_adaptor.h 2022-06-03 19:05:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Random_access_adaptor.h 2022-07-13 19:06:28.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/Random_access_adaptor.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/Random_access_adaptor.h $ // $Id: Random_access_adaptor.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Random_access_value_adaptor.h cgal-5.5/include/CGAL/Random_access_value_adaptor.h --- cgal-5.4.1/include/CGAL/Random_access_value_adaptor.h 2022-06-03 19:05:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Random_access_value_adaptor.h 2022-07-13 19:06:28.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/Random_access_value_adaptor.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/Random_access_value_adaptor.h $ // $Id: Random_access_value_adaptor.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/random_convex_hull_in_disc_2.h cgal-5.5/include/CGAL/random_convex_hull_in_disc_2.h --- cgal-5.4.1/include/CGAL/random_convex_hull_in_disc_2.h 2022-06-03 19:04:13.000000000 +0000 +++ cgal-5.5/include/CGAL/random_convex_hull_in_disc_2.h 2022-07-13 19:05:01.000000000 +0000 @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Generator/include/CGAL/random_convex_hull_in_disc_2.h $ -// $Id: random_convex_hull_in_disc_2.h 393ae7d 2021-05-12T15:03:53+02:00 Maxime Gimeno +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Generator/include/CGAL/random_convex_hull_in_disc_2.h $ +// $Id: random_convex_hull_in_disc_2.h bb82c70 2022-03-16T08:31:30+01:00 Andreas Fabri // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // @@ -154,7 +154,6 @@ typedef typename Traits::Point_2 P; typedef typename Traits::FT FT; std::size_t simulated_points = 0; - std::size_t generated_points = 0; P zero(0, 0); FT squared_radius = radius * radius; typedef typename Traits::Compare_y_2 Compare_y_2; @@ -170,7 +169,6 @@ gen); simulated_points += init; - generated_points += init; Graham_without_sort_2(l, traits); } while ((bounded_side_2(l.begin(), l.end(), zero, traits) != @@ -232,7 +230,6 @@ std::sqrt(to_double(squared_small_radius)), radius, m, gen); l.merge(m, compare_points_angle()); - generated_points += nb - k_disc; simulated_points += nb - k_disc; m.clear(); Graham_without_sort_2(l, traits); diff -Nru cgal-5.4.1/include/CGAL/Random_convex_hull_traits_2.h cgal-5.5/include/CGAL/Random_convex_hull_traits_2.h --- cgal-5.4.1/include/CGAL/Random_convex_hull_traits_2.h 2022-06-03 19:04:13.000000000 +0000 +++ cgal-5.5/include/CGAL/Random_convex_hull_traits_2.h 2022-07-13 19:05:01.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Generator/include/CGAL/Random_convex_hull_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Generator/include/CGAL/Random_convex_hull_traits_2.h $ // $Id: Random_convex_hull_traits_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/random_convex_set_2.h cgal-5.5/include/CGAL/random_convex_set_2.h --- cgal-5.4.1/include/CGAL/random_convex_set_2.h 2022-06-03 19:04:13.000000000 +0000 +++ cgal-5.5/include/CGAL/random_convex_set_2.h 2022-07-13 19:05:02.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Generator/include/CGAL/random_convex_set_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Generator/include/CGAL/random_convex_set_2.h $ // $Id: random_convex_set_2.h b796e6d 2021-01-08T14:52:28+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Random_convex_set_traits_2.h cgal-5.5/include/CGAL/Random_convex_set_traits_2.h --- cgal-5.4.1/include/CGAL/Random_convex_set_traits_2.h 2022-06-03 19:04:13.000000000 +0000 +++ cgal-5.5/include/CGAL/Random_convex_set_traits_2.h 2022-07-13 19:05:01.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Generator/include/CGAL/Random_convex_set_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Generator/include/CGAL/Random_convex_set_traits_2.h $ // $Id: Random_convex_set_traits_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Random.h cgal-5.5/include/CGAL/Random.h --- cgal-5.4.1/include/CGAL/Random.h 2022-06-03 19:05:30.000000000 +0000 +++ cgal-5.5/include/CGAL/Random.h 2022-07-13 19:06:25.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Random_numbers/include/CGAL/Random.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Random_numbers/include/CGAL/Random.h $ // $Id: Random.h 7e05923 2020-12-15T09:35:25+01:00 Maxime Gimeno // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Random_impl.h cgal-5.5/include/CGAL/Random_impl.h --- cgal-5.4.1/include/CGAL/Random_impl.h 2022-06-03 19:05:30.000000000 +0000 +++ cgal-5.5/include/CGAL/Random_impl.h 2022-07-13 19:06:25.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Random_numbers/include/CGAL/Random_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Random_numbers/include/CGAL/Random_impl.h $ // $Id: Random_impl.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/random_polygon_2.h cgal-5.5/include/CGAL/random_polygon_2.h --- cgal-5.4.1/include/CGAL/random_polygon_2.h 2022-06-03 19:04:13.000000000 +0000 +++ cgal-5.5/include/CGAL/random_polygon_2.h 2022-07-13 19:05:02.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Generator/include/CGAL/random_polygon_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Generator/include/CGAL/random_polygon_2.h $ // $Id: random_polygon_2.h f243467 2021-03-29T15:24:10+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Random_polygon_2_sweep.h cgal-5.5/include/CGAL/Random_polygon_2_sweep.h --- cgal-5.4.1/include/CGAL/Random_polygon_2_sweep.h 2022-06-03 19:04:13.000000000 +0000 +++ cgal-5.5/include/CGAL/Random_polygon_2_sweep.h 2022-07-13 19:05:01.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Generator/include/CGAL/Random_polygon_2_sweep.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Generator/include/CGAL/Random_polygon_2_sweep.h $ // $Id: Random_polygon_2_sweep.h 59e443d 2021-03-29T14:30:39+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Random_polygon_traits_2.h cgal-5.5/include/CGAL/Random_polygon_traits_2.h --- cgal-5.4.1/include/CGAL/Random_polygon_traits_2.h 2022-06-03 19:04:13.000000000 +0000 +++ cgal-5.5/include/CGAL/Random_polygon_traits_2.h 2022-07-13 19:05:01.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Generator/include/CGAL/Random_polygon_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Generator/include/CGAL/Random_polygon_traits_2.h $ // $Id: Random_polygon_traits_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/random_selection.h cgal-5.5/include/CGAL/random_selection.h --- cgal-5.4.1/include/CGAL/random_selection.h 2022-06-03 19:04:13.000000000 +0000 +++ cgal-5.5/include/CGAL/random_selection.h 2022-07-13 19:05:02.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Generator/include/CGAL/random_selection.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Generator/include/CGAL/random_selection.h $ // $Id: random_selection.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/random_simplify_point_set.h cgal-5.5/include/CGAL/random_simplify_point_set.h --- cgal-5.4.1/include/CGAL/random_simplify_point_set.h 2022-06-03 19:05:12.000000000 +0000 +++ cgal-5.5/include/CGAL/random_simplify_point_set.h 2022-07-13 19:06:06.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Point_set_processing_3/include/CGAL/random_simplify_point_set.h $ -// $Id: random_simplify_point_set.h 9939011 2020-06-21T15:54:21+02:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Point_set_processing_3/include/CGAL/random_simplify_point_set.h $ +// $Id: random_simplify_point_set.h 6d3176e 2022-01-07T14:42:25+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Laurent Saboret @@ -22,7 +22,7 @@ #include #include -#include +#include #include #include diff -Nru cgal-5.4.1/include/CGAL/range_search_delaunay_2.h cgal-5.5/include/CGAL/range_search_delaunay_2.h --- cgal-5.4.1/include/CGAL/range_search_delaunay_2.h 2022-06-03 19:05:12.000000000 +0000 +++ cgal-5.5/include/CGAL/range_search_delaunay_2.h 2022-07-13 19:06:06.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Point_set_2/include/CGAL/range_search_delaunay_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Point_set_2/include/CGAL/range_search_delaunay_2.h $ // $Id: range_search_delaunay_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Range_segment_tree_traits.h cgal-5.5/include/CGAL/Range_segment_tree_traits.h --- cgal-5.4.1/include/CGAL/Range_segment_tree_traits.h 2022-06-03 19:05:34.000000000 +0000 +++ cgal-5.5/include/CGAL/Range_segment_tree_traits.h 2022-07-13 19:06:30.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/SearchStructures/include/CGAL/Range_segment_tree_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/SearchStructures/include/CGAL/Range_segment_tree_traits.h $ // $Id: Range_segment_tree_traits.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Range_tree_d.h cgal-5.5/include/CGAL/Range_tree_d.h --- cgal-5.4.1/include/CGAL/Range_tree_d.h 2022-06-03 19:05:34.000000000 +0000 +++ cgal-5.5/include/CGAL/Range_tree_d.h 2022-07-13 19:06:30.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/SearchStructures/include/CGAL/Range_tree_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/SearchStructures/include/CGAL/Range_tree_d.h $ // $Id: Range_tree_d.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Range_tree_k.h cgal-5.5/include/CGAL/Range_tree_k.h --- cgal-5.4.1/include/CGAL/Range_tree_k.h 2022-06-03 19:05:34.000000000 +0000 +++ cgal-5.5/include/CGAL/Range_tree_k.h 2022-07-13 19:06:30.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/SearchStructures/include/CGAL/Range_tree_k.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/SearchStructures/include/CGAL/Range_tree_k.h $ // $Id: Range_tree_k.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/rank.h cgal-5.5/include/CGAL/rank.h --- cgal-5.4.1/include/CGAL/rank.h 2022-06-03 19:04:33.000000000 +0000 +++ cgal-5.5/include/CGAL/rank.h 2022-07-13 19:05:24.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/rank.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/rank.h $ // $Id: rank.h 7ebdd07 2021-03-30T14:28:55+01:00 Andreas Fabri // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/rational_rotation.h cgal-5.5/include/CGAL/rational_rotation.h --- cgal-5.4.1/include/CGAL/rational_rotation.h 2022-06-03 19:04:33.000000000 +0000 +++ cgal-5.5/include/CGAL/rational_rotation.h 2022-07-13 19:05:24.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/rational_rotation.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/rational_rotation.h $ // $Id: rational_rotation.h e661aca 2021-04-07T12:21:02+01:00 Andreas Fabri // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Rational_traits.h cgal-5.5/include/CGAL/Rational_traits.h --- cgal-5.4.1/include/CGAL/Rational_traits.h 2022-06-03 19:03:30.000000000 +0000 +++ cgal-5.5/include/CGAL/Rational_traits.h 2022-07-13 19:04:13.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_foundations/include/CGAL/Rational_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_foundations/include/CGAL/Rational_traits.h $ // $Id: Rational_traits.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Ray_2.h cgal-5.5/include/CGAL/Ray_2.h --- cgal-5.4.1/include/CGAL/Ray_2.h 2022-06-03 19:04:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Ray_2.h 2022-07-13 19:05:24.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Ray_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Ray_2.h $ // $Id: Ray_2.h 8fa0f55 2021-05-27T10:27:38+02:00 Laurent Rineau // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Ray_3.h cgal-5.5/include/CGAL/Ray_3.h --- cgal-5.4.1/include/CGAL/Ray_3.h 2022-06-03 19:04:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Ray_3.h 2022-07-13 19:05:24.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Ray_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Ray_3.h $ // $Id: Ray_3.h 8fa0f55 2021-05-27T10:27:38+02:00 Laurent Rineau // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/read_vtk_image_data.h cgal-5.5/include/CGAL/read_vtk_image_data.h --- cgal-5.4.1/include/CGAL/read_vtk_image_data.h 2022-06-03 19:03:56.000000000 +0000 +++ cgal-5.5/include/CGAL/read_vtk_image_data.h 2022-07-13 19:04:43.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_ImageIO/include/CGAL/read_vtk_image_data.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_ImageIO/include/CGAL/read_vtk_image_data.h $ // $Id: read_vtk_image_data.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Real_embeddable_traits.h cgal-5.5/include/CGAL/Real_embeddable_traits.h --- cgal-5.4.1/include/CGAL/Real_embeddable_traits.h 2022-06-03 19:03:30.000000000 +0000 +++ cgal-5.5/include/CGAL/Real_embeddable_traits.h 2022-07-13 19:04:13.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_foundations/include/CGAL/Real_embeddable_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_foundations/include/CGAL/Real_embeddable_traits.h $ // $Id: Real_embeddable_traits.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Real_timer.h cgal-5.5/include/CGAL/Real_timer.h --- cgal-5.4.1/include/CGAL/Real_timer.h 2022-06-03 19:05:28.000000000 +0000 +++ cgal-5.5/include/CGAL/Real_timer.h 2022-07-13 19:06:23.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Profiling_tools/include/CGAL/Real_timer.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Profiling_tools/include/CGAL/Real_timer.h $ // $Id: Real_timer.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Real_timer_impl.h cgal-5.5/include/CGAL/Real_timer_impl.h --- cgal-5.4.1/include/CGAL/Real_timer_impl.h 2022-06-03 19:05:28.000000000 +0000 +++ cgal-5.5/include/CGAL/Real_timer_impl.h 2022-07-13 19:06:23.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Profiling_tools/include/CGAL/Real_timer_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Profiling_tools/include/CGAL/Real_timer_impl.h $ // $Id: Real_timer_impl.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Reconstruction_triangulation_3.h cgal-5.5/include/CGAL/Reconstruction_triangulation_3.h --- cgal-5.4.1/include/CGAL/Reconstruction_triangulation_3.h 2022-06-03 19:05:13.000000000 +0000 +++ cgal-5.5/include/CGAL/Reconstruction_triangulation_3.h 2022-07-13 19:06:07.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Poisson_surface_reconstruction_3/include/CGAL/Reconstruction_triangulation_3.h $ -// $Id: Reconstruction_triangulation_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Poisson_surface_reconstruction_3/include/CGAL/Reconstruction_triangulation_3.h $ +// $Id: Reconstruction_triangulation_3.h 4968d21 2022-05-17T10:31:07+01:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -348,12 +348,12 @@ /// Insert the [first, beyond) range of points in the triangulation using a spatial sort. /// Default type is INPUT. /// - /// @commentheading Template Parameters: - /// @param InputIterator iterator over input points. - /// @param PointPMap is a model of `ReadablePropertyMap` with a value_type = Point_3. + /// *Template Parameters:* + /// @tparam InputIterator iterator over input points. + /// @tparam PointPMap is a model of `ReadablePropertyMap` with a value_type = Point_3. /// It can be omitted if InputIterator value_type is convertible to Point_3. - /// @param NormalPMap is a model of `ReadablePropertyMap` with a value_type = Vector_3. - /// + /// @tparam NormalPMap is a model of `ReadablePropertyMap` with a value_type = Vector_3. + /// @tparam Visitor the visitor type /// @return the number of inserted points. // This variant requires all parameters. diff -Nru cgal-5.4.1/include/CGAL/rectangular_3_center_2.h cgal-5.5/include/CGAL/rectangular_3_center_2.h --- cgal-5.4.1/include/CGAL/rectangular_3_center_2.h 2022-06-03 19:03:54.000000000 +0000 +++ cgal-5.5/include/CGAL/rectangular_3_center_2.h 2022-07-13 19:04:40.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Bounding_volumes/include/CGAL/rectangular_3_center_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Bounding_volumes/include/CGAL/rectangular_3_center_2.h $ // $Id: rectangular_3_center_2.h 27360a0 2021-02-02T13:36:45+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/rectangular_p_center_2.h cgal-5.5/include/CGAL/rectangular_p_center_2.h --- cgal-5.4.1/include/CGAL/rectangular_p_center_2.h 2022-06-03 19:03:54.000000000 +0000 +++ cgal-5.5/include/CGAL/rectangular_p_center_2.h 2022-07-13 19:04:40.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Bounding_volumes/include/CGAL/rectangular_p_center_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Bounding_volumes/include/CGAL/rectangular_p_center_2.h $ // $Id: rectangular_p_center_2.h c9a5cf70 2021-01-05T18:52:29+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Rectangular_p_center_traits_2.h cgal-5.5/include/CGAL/Rectangular_p_center_traits_2.h --- cgal-5.4.1/include/CGAL/Rectangular_p_center_traits_2.h 2022-06-03 19:03:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Rectangular_p_center_traits_2.h 2022-07-13 19:04:40.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Bounding_volumes/include/CGAL/Rectangular_p_center_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Bounding_volumes/include/CGAL/Rectangular_p_center_traits_2.h $ // $Id: Rectangular_p_center_traits_2.h 5da7e84 2021-02-02T10:58:31+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Referenced_argument.h cgal-5.5/include/CGAL/Referenced_argument.h --- cgal-5.4.1/include/CGAL/Referenced_argument.h 2022-06-03 19:04:39.000000000 +0000 +++ cgal-5.5/include/CGAL/Referenced_argument.h 2022-07-13 19:05:31.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_d/include/CGAL/Referenced_argument.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_d/include/CGAL/Referenced_argument.h $ // $Id: Referenced_argument.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/refine_mesh_3.h cgal-5.5/include/CGAL/refine_mesh_3.h --- cgal-5.4.1/include/CGAL/refine_mesh_3.h 2022-06-03 19:04:49.000000000 +0000 +++ cgal-5.5/include/CGAL/refine_mesh_3.h 2022-07-13 19:05:42.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/refine_mesh_3.h $ -// $Id: refine_mesh_3.h 3e03d50 2021-05-05T15:32:22+02:00 Maxime Gimeno +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/refine_mesh_3.h $ +// $Id: refine_mesh_3.h 1c3e09f 2022-01-10T15:32:38+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -254,7 +254,7 @@ // ----------------------------------- BOOST_PARAMETER_FUNCTION((internal::Perturb_options), perturb, tag, (optional (time_limit_, *, internal::undef_parameter ) - (sliver_bound_, *, default_values::perturb_sliver_bound ))) + (sliver_bound_, *, default_values_for_mesh_3::perturb_sliver_bound ))) { internal::Perturb_options options(true); @@ -273,7 +273,7 @@ // ----------------------------------- BOOST_PARAMETER_FUNCTION((internal::Exude_options), exude, tag, (optional (time_limit_, *, internal::undef_parameter ) - (sliver_bound_, *, default_values::exude_sliver_bound ))) + (sliver_bound_, *, default_values_for_mesh_3::exude_sliver_bound ))) { internal::Exude_options options(true); @@ -293,8 +293,8 @@ BOOST_PARAMETER_FUNCTION((internal::Odt_options), odt, tag, (optional (time_limit_, *, 0 ) (max_iteration_number_, *, 0 ) - (convergence_, *, default_values::odt_convergence_ratio ) - (freeze_bound_, *, default_values::odt_freeze_ratio ))) + (convergence_, *, default_values_for_mesh_3::odt_convergence_ratio ) + (freeze_bound_, *, default_values_for_mesh_3::odt_freeze_ratio ))) { internal::Odt_options options(true); @@ -314,8 +314,8 @@ BOOST_PARAMETER_FUNCTION((internal::Lloyd_options), lloyd, tag, (optional (time_limit_, *, 0 ) (max_iteration_number_, *, 0 ) - (convergence_, *, default_values::lloyd_convergence_ratio ) - (freeze_bound_, *, default_values::lloyd_freeze_ratio ))) + (convergence_, *, default_values_for_mesh_3::lloyd_convergence_ratio ) + (freeze_bound_, *, default_values_for_mesh_3::lloyd_freeze_ratio ))) { internal::Lloyd_options options(true); diff -Nru cgal-5.4.1/include/CGAL/refine_periodic_3_mesh_3.h cgal-5.5/include/CGAL/refine_periodic_3_mesh_3.h --- cgal-5.4.1/include/CGAL/refine_periodic_3_mesh_3.h 2022-06-03 19:05:09.000000000 +0000 +++ cgal-5.5/include/CGAL/refine_periodic_3_mesh_3.h 2022-07-13 19:06:03.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Periodic_3_mesh_3/include/CGAL/refine_periodic_3_mesh_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Periodic_3_mesh_3/include/CGAL/refine_periodic_3_mesh_3.h $ // $Id: refine_periodic_3_mesh_3.h 53d4c9b 2019-10-28T11:29:08+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Regular_complex_d.h cgal-5.5/include/CGAL/Regular_complex_d.h --- cgal-5.4.1/include/CGAL/Regular_complex_d.h 2022-06-03 19:04:09.000000000 +0000 +++ cgal-5.5/include/CGAL/Regular_complex_d.h 2022-07-13 19:04:57.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Convex_hull_d/include/CGAL/Regular_complex_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Convex_hull_d/include/CGAL/Regular_complex_d.h $ // $Id: Regular_complex_d.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Regular_grid_2.h cgal-5.5/include/CGAL/Regular_grid_2.h --- cgal-5.4.1/include/CGAL/Regular_grid_2.h 2022-06-03 19:05:51.000000000 +0000 +++ cgal-5.5/include/CGAL/Regular_grid_2.h 2022-07-13 19:06:47.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Stream_lines_2/include/CGAL/Regular_grid_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Stream_lines_2/include/CGAL/Regular_grid_2.h $ // $Id: Regular_grid_2.h 1faa0e2 2021-04-28T10:55:26+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/regular_neighbor_coordinates_2.h cgal-5.5/include/CGAL/regular_neighbor_coordinates_2.h --- cgal-5.4.1/include/CGAL/regular_neighbor_coordinates_2.h 2022-06-03 19:04:25.000000000 +0000 +++ cgal-5.5/include/CGAL/regular_neighbor_coordinates_2.h 2022-07-13 19:05:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Interpolation/include/CGAL/regular_neighbor_coordinates_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Interpolation/include/CGAL/regular_neighbor_coordinates_2.h $ // $Id: regular_neighbor_coordinates_2.h ce98cd4 2021-09-03T09:15:26+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Regular_triangulation_2.h cgal-5.5/include/CGAL/Regular_triangulation_2.h --- cgal-5.4.1/include/CGAL/Regular_triangulation_2.h 2022-06-03 19:06:07.000000000 +0000 +++ cgal-5.5/include/CGAL/Regular_triangulation_2.h 2022-07-13 19:07:05.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_2/include/CGAL/Regular_triangulation_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_2/include/CGAL/Regular_triangulation_2.h $ // $Id: Regular_triangulation_2.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Regular_triangulation_3.h cgal-5.5/include/CGAL/Regular_triangulation_3.h --- cgal-5.4.1/include/CGAL/Regular_triangulation_3.h 2022-06-03 19:06:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Regular_triangulation_3.h 2022-07-13 19:07:09.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_3/include/CGAL/Regular_triangulation_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_3/include/CGAL/Regular_triangulation_3.h $ // $Id: Regular_triangulation_3.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Regular_triangulation_adaptation_policies_2.h cgal-5.5/include/CGAL/Regular_triangulation_adaptation_policies_2.h --- cgal-5.4.1/include/CGAL/Regular_triangulation_adaptation_policies_2.h 2022-06-03 19:06:13.000000000 +0000 +++ cgal-5.5/include/CGAL/Regular_triangulation_adaptation_policies_2.h 2022-07-13 19:07:12.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Voronoi_diagram_2/include/CGAL/Regular_triangulation_adaptation_policies_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Voronoi_diagram_2/include/CGAL/Regular_triangulation_adaptation_policies_2.h $ // $Id: Regular_triangulation_adaptation_policies_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Regular_triangulation_adaptation_traits_2.h cgal-5.5/include/CGAL/Regular_triangulation_adaptation_traits_2.h --- cgal-5.4.1/include/CGAL/Regular_triangulation_adaptation_traits_2.h 2022-06-03 19:06:13.000000000 +0000 +++ cgal-5.5/include/CGAL/Regular_triangulation_adaptation_traits_2.h 2022-07-13 19:07:12.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Voronoi_diagram_2/include/CGAL/Regular_triangulation_adaptation_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Voronoi_diagram_2/include/CGAL/Regular_triangulation_adaptation_traits_2.h $ // $Id: Regular_triangulation_adaptation_traits_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Regular_triangulation_cell_base_3.h cgal-5.5/include/CGAL/Regular_triangulation_cell_base_3.h --- cgal-5.4.1/include/CGAL/Regular_triangulation_cell_base_3.h 2022-06-03 19:06:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Regular_triangulation_cell_base_3.h 2022-07-13 19:07:09.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_3/include/CGAL/Regular_triangulation_cell_base_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_3/include/CGAL/Regular_triangulation_cell_base_3.h $ // $Id: Regular_triangulation_cell_base_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Regular_triangulation_cell_base_with_weighted_circumcenter_3.h cgal-5.5/include/CGAL/Regular_triangulation_cell_base_with_weighted_circumcenter_3.h --- cgal-5.4.1/include/CGAL/Regular_triangulation_cell_base_with_weighted_circumcenter_3.h 2022-06-03 19:06:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Regular_triangulation_cell_base_with_weighted_circumcenter_3.h 2022-07-13 19:07:09.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_3/include/CGAL/Regular_triangulation_cell_base_with_weighted_circumcenter_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_3/include/CGAL/Regular_triangulation_cell_base_with_weighted_circumcenter_3.h $ // $Id: Regular_triangulation_cell_base_with_weighted_circumcenter_3.h dbbee66 2020-04-02T18:31:00+05:30 rathod-sahaab // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Regular_triangulation_euclidean_traits_3.h cgal-5.5/include/CGAL/Regular_triangulation_euclidean_traits_3.h --- cgal-5.4.1/include/CGAL/Regular_triangulation_euclidean_traits_3.h 2022-06-03 19:06:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Regular_triangulation_euclidean_traits_3.h 2022-07-13 19:07:09.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_3/include/CGAL/Regular_triangulation_euclidean_traits_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_3/include/CGAL/Regular_triangulation_euclidean_traits_3.h $ // $Id: Regular_triangulation_euclidean_traits_3.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Regular_triangulation_face_base_2.h cgal-5.5/include/CGAL/Regular_triangulation_face_base_2.h --- cgal-5.4.1/include/CGAL/Regular_triangulation_face_base_2.h 2022-06-03 19:06:07.000000000 +0000 +++ cgal-5.5/include/CGAL/Regular_triangulation_face_base_2.h 2022-07-13 19:07:05.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_2/include/CGAL/Regular_triangulation_face_base_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_2/include/CGAL/Regular_triangulation_face_base_2.h $ // $Id: Regular_triangulation_face_base_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Regular_triangulation.h cgal-5.5/include/CGAL/Regular_triangulation.h --- cgal-5.4.1/include/CGAL/Regular_triangulation.h 2022-06-03 19:06:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Regular_triangulation.h 2022-07-13 19:07:03.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation/include/CGAL/Regular_triangulation.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation/include/CGAL/Regular_triangulation.h $ // $Id: Regular_triangulation.h e511b68 2021-02-09T17:32:00+01:00 ROUVREAU Vincent // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Regular_triangulation_traits_adapter.h cgal-5.5/include/CGAL/Regular_triangulation_traits_adapter.h --- cgal-5.4.1/include/CGAL/Regular_triangulation_traits_adapter.h 2022-06-03 19:06:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Regular_triangulation_traits_adapter.h 2022-07-13 19:07:03.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation/include/CGAL/Regular_triangulation_traits_adapter.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation/include/CGAL/Regular_triangulation_traits_adapter.h $ // $Id: Regular_triangulation_traits_adapter.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Regular_triangulation_vertex_base_2.h cgal-5.5/include/CGAL/Regular_triangulation_vertex_base_2.h --- cgal-5.4.1/include/CGAL/Regular_triangulation_vertex_base_2.h 2022-06-03 19:06:07.000000000 +0000 +++ cgal-5.5/include/CGAL/Regular_triangulation_vertex_base_2.h 2022-07-13 19:07:05.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_2/include/CGAL/Regular_triangulation_vertex_base_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_2/include/CGAL/Regular_triangulation_vertex_base_2.h $ // $Id: Regular_triangulation_vertex_base_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Regular_triangulation_vertex_base_3.h cgal-5.5/include/CGAL/Regular_triangulation_vertex_base_3.h --- cgal-5.4.1/include/CGAL/Regular_triangulation_vertex_base_3.h 2022-06-03 19:06:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Regular_triangulation_vertex_base_3.h 2022-07-13 19:07:09.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_3/include/CGAL/Regular_triangulation_vertex_base_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_3/include/CGAL/Regular_triangulation_vertex_base_3.h $ // $Id: Regular_triangulation_vertex_base_3.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/remove_far_points_in_mesh_3.h cgal-5.5/include/CGAL/remove_far_points_in_mesh_3.h --- cgal-5.4.1/include/CGAL/remove_far_points_in_mesh_3.h 2022-06-03 19:04:49.000000000 +0000 +++ cgal-5.5/include/CGAL/remove_far_points_in_mesh_3.h 2022-07-13 19:05:42.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/remove_far_points_in_mesh_3.h $ -// $Id: remove_far_points_in_mesh_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/remove_far_points_in_mesh_3.h $ +// $Id: remove_far_points_in_mesh_3.h bad72db 2021-09-17T16:03:06+02:00 Jane Tournois // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -71,6 +71,21 @@ } // namespace Mesh_3 +/*! +\ingroup PkgMesh3Functions + +The concurrent version of the tetrahedral mesh generation algorithm implemented in +`CGAL::make_mesh_3()` and `CGAL::refine_mesh_3()` inserts a small set of +auxiliary vertices that belong to the triangulation but are isolated from the complex +at the end of the meshing process. + +This function removes these so called "far points" from `c3t3.triangulation()`, +without modifying the mesh complex. + +\tparam C3T3 is required to be a model of the concept `MeshComplex_3InTriangulation_3`. +The argument `c3t3` is passed by +reference as its underlying triangulation is modified by the function. +*/ template void remove_far_points_in_mesh_3(C3T3& c3t3) diff -Nru cgal-5.4.1/include/CGAL/remove_outliers.h cgal-5.5/include/CGAL/remove_outliers.h --- cgal-5.4.1/include/CGAL/remove_outliers.h 2022-06-03 19:05:13.000000000 +0000 +++ cgal-5.5/include/CGAL/remove_outliers.h 2022-07-13 19:06:06.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Point_set_processing_3/include/CGAL/remove_outliers.h $ -// $Id: remove_outliers.h 7f72142 2021-11-16T17:15:46+01:00 Clément Jamin +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Point_set_processing_3/include/CGAL/remove_outliers.h $ +// $Id: remove_outliers.h 75b03e6 2022-01-10T15:33:04+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Laurent Saboret and Nader Salman and Pierre Alliez @@ -23,7 +23,7 @@ #include #include -#include +#include #include #include @@ -170,22 +170,23 @@ */ template typename PointRange::iterator remove_outliers( PointRange& points, unsigned int k, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { using parameters::choose_parameter; using parameters::get_parameter; // geometric types - typedef typename CGAL::GetPointMap::type PointMap; - typedef typename Point_set_processing_3::GetK::Kernel Kernel; + typedef Point_set_processing_3_np_helper NP_helper; + typedef typename NP_helper::Point_map PointMap; + typedef typename NP_helper::Geom_traits Kernel; - PointMap point_map = choose_parameter(get_parameter(np, internal_np::point_map)); + PointMap point_map = NP_helper::get_point_map(points, np); typename Kernel::FT neighbor_radius = choose_parameter(get_parameter(np, internal_np::neighbor_radius), typename Kernel::FT(0)); double threshold_percent = choose_parameter(get_parameter(np, internal_np::threshold_percent), 10.); @@ -286,19 +287,6 @@ return out; } -/// \cond SKIP_IN_MANUAL -// variant with default NP -template -typename PointRange::iterator -remove_outliers( - PointRange& points, - unsigned int k) ///< number of neighbors. -{ - return remove_outliers (points, k, CGAL::Point_set_processing_3::parameters::all_default(points)); -} -/// \endcond - - } //namespace CGAL #include diff -Nru cgal-5.4.1/include/CGAL/representation_tags.h cgal-5.5/include/CGAL/representation_tags.h --- cgal-5.4.1/include/CGAL/representation_tags.h 2022-06-03 19:04:33.000000000 +0000 +++ cgal-5.5/include/CGAL/representation_tags.h 2022-07-13 19:05:25.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/representation_tags.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/representation_tags.h $ // $Id: representation_tags.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Residue.h cgal-5.5/include/CGAL/Residue.h --- cgal-5.4.1/include/CGAL/Residue.h 2022-06-03 19:04:53.000000000 +0000 +++ cgal-5.5/include/CGAL/Residue.h 2022-07-13 19:05:46.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Modular_arithmetic/include/CGAL/Residue.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Modular_arithmetic/include/CGAL/Residue.h $ // $Id: Residue.h 26355e2 2020-06-25T12:31:21+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/result_of.h cgal-5.5/include/CGAL/result_of.h --- cgal-5.4.1/include/CGAL/result_of.h 2022-06-03 19:05:33.000000000 +0000 +++ cgal-5.5/include/CGAL/result_of.h 2022-07-13 19:06:29.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/result_of.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/result_of.h $ // $Id: result_of.h 747add5 2021-05-25T13:47:18+02:00 Maxime Gimeno // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Ridges.h cgal-5.5/include/CGAL/Ridges.h --- cgal-5.4.1/include/CGAL/Ridges.h 2022-06-03 19:05:30.000000000 +0000 +++ cgal-5.5/include/CGAL/Ridges.h 2022-07-13 19:06:25.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Ridges_3/include/CGAL/Ridges.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Ridges_3/include/CGAL/Ridges.h $ // $Id: Ridges.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Rigid_triangle_mesh_collision_detection.h cgal-5.5/include/CGAL/Rigid_triangle_mesh_collision_detection.h --- cgal-5.4.1/include/CGAL/Rigid_triangle_mesh_collision_detection.h 2022-06-03 19:05:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Rigid_triangle_mesh_collision_detection.h 2022-07-13 19:06:09.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Rigid_triangle_mesh_collision_detection.h $ -// $Id: Rigid_triangle_mesh_collision_detection.h 4afc249 2021-09-09T15:58:00+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Rigid_triangle_mesh_collision_detection.h $ +// $Id: Rigid_triangle_mesh_collision_detection.h 75b03e6 2022-01-10T15:33:04+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -240,9 +240,9 @@ * \cgalParamNEnd * \cgalNamedParamsEnd */ - template + template std::size_t add_mesh(const TriangleMesh& tm, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { // handle vpm typedef typename CGAL::GetVertexPointMap::const_type Local_vpm; @@ -299,8 +299,8 @@ * \cgalParamNEnd * \cgalNamedParamsEnd */ - template - std::size_t add_mesh(const AABB_tree& tree, const TriangleMesh& tm, const NamedParameters& np) + template + std::size_t add_mesh(const AABB_tree& tree, const TriangleMesh& tm, const NamedParameters& np = parameters::default_values()) { std::size_t id = get_id_for_new_mesh(); CGAL_assertion( m_aabb_trees[id] == nullptr ); @@ -546,12 +546,12 @@ * \cgalParamNEnd * \cgalNamedParamsEnd */ - template + template static void collect_one_point_per_connected_component( const TriangleMesh& tm, std::vector& points, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { const bool maybe_several_cc = parameters::choose_parameter( @@ -625,25 +625,6 @@ return id; } - - // versions without NP - static - void collect_one_point_per_connected_component( - const TriangleMesh& tm, - std::vector& points) - { - collect_one_point_per_connected_component(tm, points, parameters::all_default()); - } - - std::size_t add_mesh(const TriangleMesh& tm) - { - return add_mesh(tm, parameters::all_default()); - } - - std::size_t add_mesh(const AABB_tree& tree, const TriangleMesh& tm) - { - return add_mesh(tree, tm, parameters::all_default()); - } #endif }; diff -Nru cgal-5.4.1/include/CGAL/Robust_circumcenter_filtered_traits_3.h cgal-5.5/include/CGAL/Robust_circumcenter_filtered_traits_3.h --- cgal-5.4.1/include/CGAL/Robust_circumcenter_filtered_traits_3.h 2022-06-03 19:05:13.000000000 +0000 +++ cgal-5.5/include/CGAL/Robust_circumcenter_filtered_traits_3.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,387 +0,0 @@ -// Copyright (c) 2009 INRIA Sophia-Antipolis (France). -// All rights reserved. -// -// This file is part of CGAL (www.cgal.org). -// -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Poisson_surface_reconstruction_3/include/CGAL/Robust_circumcenter_filtered_traits_3.h $ -// $Id: Robust_circumcenter_filtered_traits_3.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot -// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial -// -// -// Author(s) : Stéphane Tayeb -// Laurent Saboret - -#ifndef CGAL_ROBUST_CIRCUMCENTER_FILTERED_TRAITS_3_H_INCLUDED -#define CGAL_ROBUST_CIRCUMCENTER_FILTERED_TRAITS_3_H_INCLUDED - -#include - -#include -#include -#include - -namespace CGAL { - -namespace Reconstruction { - - -template < typename K > -class Robust_filtered_construct_circumcenter_3 -{ -public: - typedef typename K::Point_3 Point_3; - typedef typename K::FT FT; - typedef typename K::Sphere_3 Sphere_3; - typedef Point_3 result_type; - - typedef Exact_predicates_exact_constructions_kernel EK2; - typedef EK2 EK; - typedef Cartesian_converter To_exact; - typedef Cartesian_converter Back_from_exact; - - - Point_3 operator() ( const Point_3 & p, - const Point_3 & q, - const Point_3 & r, - const Point_3 & s ) const - { - typename K::Construct_circumcenter_3 circumcenter = - K().construct_circumcenter_3_object(); - typename K::Side_of_bounded_sphere_3 side_of_bounded_sphere = - K().side_of_bounded_sphere_3_object(); - - // Compute denominator to swith to exact if it is (close to) 0. - // TODO: replace hard coded comparison with 1E-13 by static filter. - const FT denom = compute_denom(p,q,r,s); - if (denom < -1E-13 || denom > 1E-13) - { - Point_3 point = circumcenter(p,q,r,s); - - // Fast output - if ( side_of_bounded_sphere(p,q,r,s,point) == ON_BOUNDED_SIDE ) - return point; - } - // Switch to exact - To_exact to_exact; - Back_from_exact back_from_exact; - EK::Construct_circumcenter_3 exact_circumcenter = - EK().construct_circumcenter_3_object(); - - return back_from_exact(exact_circumcenter(to_exact(p), - to_exact(q), - to_exact(r), - to_exact(s))); - } - - Point_3 operator() ( const Point_3 & p, - const Point_3 & q, - const Point_3 & r ) const - { - typename K::Construct_circumcenter_3 circumcenter = - K().construct_circumcenter_3_object(); - typename K::Side_of_bounded_sphere_3 side_of_bounded_sphere = - K().side_of_bounded_sphere_3_object(); - - // Compute denominator to swith to exact if it is (close to) 0. - // TODO: replace hard coded comparison with 1E-13 by static filter. - const FT denom = compute_denom(p,q,r); - if (denom < -1E-13 || denom > 1E-13) - { - Point_3 point = circumcenter(p,q,r); - - // Fast output - if ( side_of_bounded_sphere(p,q,r,point) == ON_BOUNDED_SIDE ) - return point; - } - - // Switch to exact - To_exact to_exact; - Back_from_exact back_from_exact; - EK::Construct_circumcenter_3 exact_circumcenter = - EK().construct_circumcenter_3_object(); - - return back_from_exact(exact_circumcenter(to_exact(p), - to_exact(q), - to_exact(r))); - } - - Point_3 operator() ( const Point_3 & p, - const Point_3 & q ) const - { - typename K::Construct_circumcenter_3 circumcenter = - K().construct_circumcenter_3_object(); - typename K::Side_of_bounded_sphere_3 side_of_bounded_sphere = - K().side_of_bounded_sphere_3_object(); - - // No division here - Point_3 point = circumcenter(p,q); - - // Fast output - if ( side_of_bounded_sphere(p,q,point) == ON_BOUNDED_SIDE ) - return point; - - // Switch to exact - To_exact to_exact; - Back_from_exact back_from_exact; - EK::Construct_circumcenter_3 exact_circumcenter = - EK().construct_circumcenter_3_object(); - - return back_from_exact(exact_circumcenter(to_exact(p), - to_exact(q))); - } - -private: - - FT compute_denom(const Point_3 & p, - const Point_3 & q, - const Point_3 & r, - const Point_3 & s) const - { - return compute_denom(p.x(),p.y(),p.z(), - q.x(),q.y(),q.z(), - r.x(),r.y(),r.z(), - s.x(),s.y(),s.z()); - } - - FT compute_denom(const Point_3 & p, - const Point_3 & q, - const Point_3 & r) const - { - return compute_denom(p.x(),p.y(),p.z(), - q.x(),q.y(),q.z(), - r.x(),r.y(),r.z()); - } - - FT compute_denom(const FT &px, const FT &py, const FT &pz, - const FT &qx, const FT &qy, const FT &qz, - const FT &rx, const FT &ry, const FT &rz, - const FT &sx, const FT &sy, const FT &sz) const - { - const FT qpx = qx-px; - const FT qpy = qy-py; - const FT qpz = qz-pz; - const FT rpx = rx-px; - const FT rpy = ry-py; - const FT rpz = rz-pz; - const FT spx = sx-px; - const FT spy = sy-py; - const FT spz = sz-pz; - - return determinant(qpx,qpy,qpz, - rpx,rpy,rpz, - spx,spy,spz); - } - - FT compute_denom(const FT &px, const FT &py, const FT &pz, - const FT &qx, const FT &qy, const FT &qz, - const FT &rx, const FT &ry, const FT &rz) const - { - const FT qpx = qx-px; - const FT qpy = qy-py; - const FT qpz = qz-pz; - const FT rpx = rx-px; - const FT rpy = ry-py; - const FT rpz = rz-pz; - const FT sx = qpy*rpz-qpz*rpy; - const FT sy = qpz*rpx-qpx*rpz; - const FT sz = qpx*rpy-qpy*rpx; - - return determinant(qpx,qpy,qpz, - rpx,rpy,rpz, - sx,sy,sz); - } - -}; // end class Robust_filtered_construct_circumcenter_3 - - -template < typename K > -class Robust_filtered_compute_squared_radius_3 -{ -public: - typedef typename K::FT FT; - typedef typename K::Point_3 Point_3; - typedef typename K::Sphere_3 Sphere_3; - typedef typename K::Circle_3 Circle_3; - typedef FT result_type; - - typedef Exact_predicates_exact_constructions_kernel EK2; - typedef EK2 EK; - typedef Cartesian_converter To_exact; - typedef Cartesian_converter Back_from_exact; - - FT operator()( const Point_3& p, - const Point_3& q, - const Point_3& r, - const Point_3& s) const - { - typename K::Compute_squared_radius_3 squared_radius = - K().compute_squared_radius_3_object(); - - // Compute denominator to swith to exact if it is (close to) 0. - // TODO: replace hard coded comparison with 1E-13 by static filter. - const FT denom = compute_denom(p,q,r,s); - if (denom < -1E-13 || denom > 1E-13) - { - // Fast output - return squared_radius(p,q,r,s); - } - - // Switch to exact - To_exact to_exact; - Back_from_exact back_from_exact; - EK::Compute_squared_radius_3 exact_squared_radius = - EK().compute_squared_radius_3_object(); - - return back_from_exact(exact_squared_radius(to_exact(p), - to_exact(q), - to_exact(r), - to_exact(s))); - } - - FT operator()( const Point_3& p, - const Point_3& q, - const Point_3& r) const - { - typename K::Compute_squared_radius_3 squared_radius = - K().compute_squared_radius_3_object(); - - // Compute denominator to swith to exact if it is (close to) 0. - // TODO: replace hard coded comparison with 1E-13 by static filter. - const FT denom = compute_denom(p,q,r); - if (denom < -1E-13 || denom > 1E-13) - { - // Fast output - return squared_radius(p,q,r); - } - - // Switch to exact - To_exact to_exact; - Back_from_exact back_from_exact; - EK::Compute_squared_radius_3 exact_squared_radius = - EK().compute_squared_radius_3_object(); - - return back_from_exact(exact_squared_radius(to_exact(p), - to_exact(q), - to_exact(r))); - } - - FT operator()( const Point_3& p, - const Point_3& q) const - { - // No division here - return squared_radiusC3(p.x(), p.y(), p.z(), - q.x(), q.y(), q.z()); - } - - result_type - operator()( const Sphere_3& s) const - { return s.rep().squared_radius(); } - - result_type - operator()( const Circle_3& c) const - { return c.rep().squared_radius(); } - - result_type - operator()( const Point_3& ) const - { return FT(0); } - -private: - - FT compute_denom(const Point_3 & p, - const Point_3 & q, - const Point_3 & r, - const Point_3 & s) const - { - return compute_denom(p.x(),p.y(),p.z(), - q.x(),q.y(),q.z(), - r.x(),r.y(),r.z(), - s.x(),s.y(),s.z()); - } - - FT compute_denom(const Point_3 & p, - const Point_3 & q, - const Point_3 & r) const - { - return compute_denom(p.x(),p.y(),p.z(), - q.x(),q.y(),q.z(), - r.x(),r.y(),r.z()); - } - - // Compute the denominator computed by squared_radiusC3() - FT compute_denom(const FT &px, const FT &py, const FT &pz, - const FT &qx, const FT &qy, const FT &qz, - const FT &rx, const FT &ry, const FT &rz, - const FT &sx, const FT &sy, const FT &sz) const - { - // Translate p to origin to simplify the expression. - FT qpx = qx-px; - FT qpy = qy-py; - FT qpz = qz-pz; - FT rpx = rx-px; - FT rpy = ry-py; - FT rpz = rz-pz; - FT spx = sx-px; - FT spy = sy-py; - FT spz = sz-pz; - - return determinant( qpx,qpy,qpz, - rpx,rpy,rpz, - spx,spy,spz); - } - - // Compute the denominator computed by squared_radiusC3() - FT compute_denom(const FT &px, const FT &py, const FT &pz, - const FT &qx, const FT &qy, const FT &qz, - const FT &sx, const FT &sy, const FT &sz) const - { - // Translate s to origin to simplify the expression. - FT psx = px-sx; - FT psy = py-sy; - FT psz = pz-sz; - FT qsx = qx-sx; - FT qsy = qy-sy; - FT qsz = qz-sz; - FT rsx = psy*qsz-psz*qsy; - FT rsy = psz*qsx-psx*qsz; - FT rsz = psx*qsy-psy*qsx; - - return determinant( psx,psy,psz, - qsx,qsy,qsz, - rsx,rsy,rsz); - } - -}; // end class Robust_filtered_compute_squared_radius_3 - -} //end namespace Reconstruction - - -/** - * \internal - * Robust_circumcenter_filtered_traits_3 - * overrides construct_circumcenter_3_object() and compute_squared_radius_3_object() - * to get robust ones when called on slivers. - */ -template -struct Robust_circumcenter_filtered_traits_3 -: public K -{ - typedef CGAL::Reconstruction::Robust_filtered_construct_circumcenter_3 - Construct_circumcenter_3; - - typedef CGAL::Reconstruction::Robust_filtered_compute_squared_radius_3 - Compute_squared_radius_3; - - Construct_circumcenter_3 - construct_circumcenter_3_object() const - { return Construct_circumcenter_3(); } - - Compute_squared_radius_3 - compute_squared_radius_3_object() const - { return Compute_squared_radius_3(); } - -}; // end class Robust_circumcenter_filtered_traits_3 - - -} // end namespace CGAL - -#endif // CGAL_ROBUST_CIRCUMCENTER_FILTERED_TRAITS_3_H_INCLUDED diff -Nru cgal-5.4.1/include/CGAL/Robust_circumcenter_traits_3.h cgal-5.5/include/CGAL/Robust_circumcenter_traits_3.h --- cgal-5.4.1/include/CGAL/Robust_circumcenter_traits_3.h 2022-06-03 19:06:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Robust_circumcenter_traits_3.h 2022-07-13 19:06:57.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesher/include/CGAL/Robust_circumcenter_traits_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesher/include/CGAL/Robust_circumcenter_traits_3.h $ // $Id: Robust_circumcenter_traits_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Robust_construction.h cgal-5.5/include/CGAL/Robust_construction.h --- cgal-5.4.1/include/CGAL/Robust_construction.h 2022-06-03 19:04:12.000000000 +0000 +++ cgal-5.5/include/CGAL/Robust_construction.h 2022-07-13 19:05:00.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Filtered_kernel/include/CGAL/Robust_construction.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Filtered_kernel/include/CGAL/Robust_construction.h $ // $Id: Robust_construction.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Robust_weighted_circumcenter_filtered_traits_3.h cgal-5.5/include/CGAL/Robust_weighted_circumcenter_filtered_traits_3.h --- cgal-5.4.1/include/CGAL/Robust_weighted_circumcenter_filtered_traits_3.h 2022-06-03 19:06:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Robust_weighted_circumcenter_filtered_traits_3.h 2022-07-13 19:07:09.000000000 +0000 @@ -3,18 +3,13 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_3/include/CGAL/Robust_weighted_circumcenter_filtered_traits_3.h $ -// $Id: Robust_weighted_circumcenter_filtered_traits_3.h 5c8df66 2020-09-25T14:25:14+02:00 Jane Tournois +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_3/include/CGAL/Robust_weighted_circumcenter_filtered_traits_3.h $ +// $Id: Robust_weighted_circumcenter_filtered_traits_3.h 1916290 2022-03-21T18:04:03+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // // Author(s) : Stéphane Tayeb // -//****************************************************************************** -// File Description : -// -//****************************************************************************** - #ifndef CGAL_ROBUST_WEIGHTED_CIRCUMCENTER_FILTERED_TRAITS_3_H #define CGAL_ROBUST_WEIGHTED_CIRCUMCENTER_FILTERED_TRAITS_3_H @@ -27,6 +22,123 @@ namespace CGAL { +template +class Robust_filtered_construct_circumcenter_3 + : public CC_Base_ +{ + typedef CC_Base_ Base; + +public: + typedef K_ Kernel; + typedef Exact_predicates_exact_constructions_kernel EKernel; + typedef Cartesian_converter To_exact; + typedef Cartesian_converter Back_from_exact; + + typedef typename Kernel::FT FT; + typedef typename Kernel::Point_3 Point_3; + + typedef Point_3 result_type; + + Robust_filtered_construct_circumcenter_3(const Kernel& k) + : Base(k.construct_circumcenter_3_object()), + traits(k) + { } + + Point_3 operator()(const Point_3& p, + const Point_3& q, + const Point_3& r, + const Point_3& s, + bool force_exact = false) const + { + CGAL_precondition(traits.orientation_3_object()(p, q, r, s) == CGAL::POSITIVE); + + if(! force_exact) + { + // Compute denominator to swith to exact if it is 0 + FT num_x, num_y, num_z, den; + determinants_for_circumcenterC3(p.x(), p.y(), p.z(), + q.x(), q.y(), q.z(), + r.x(), r.y(), r.z(), + s.x(), s.y(), s.z(), + num_x, num_y, num_z, den); + + if(! CGAL_NTS is_zero(den)) + { + FT inv = FT(1)/(FT(2) * den); + Point_3 res(p.x() + num_x*inv, p.y() - num_y*inv, p.z() + num_z*inv); + + if(side_of_oriented_sphere(p, q, r, s, res) == CGAL::ON_POSITIVE_SIDE) + return res; + } + } + + // Switch to exact + To_exact to_exact; + Back_from_exact back_from_exact; + EKernel::Construct_circumcenter_3 exact_circumcenter = EKernel().construct_circumcenter_3_object(); + + return back_from_exact(exact_circumcenter(to_exact(p), to_exact(q), to_exact(r), to_exact(s))); + } + + Point_3 operator()(const Point_3& p, + const Point_3& q, + const Point_3& r) const + { + CGAL_precondition(! traits.collinear_3_object()(p, q, r)); + + // Compute denominator to swith to exact if it is 0 + FT num_x, num_y, num_z, den; + determinants_for_circumcenterC3(p.x(), p.y(), p.z(), + q.x(), q.y(), q.z(), + r.x(), r.y(), r.z(), + num_x, num_y, num_z, den); + + if(! CGAL_NTS is_zero(den)) + { + FT inv = FT(1)/(FT(2) * den); + Point_3 res(p.x() + num_x*inv, p.y() - num_y*inv, p.z() + num_z*inv); + + typename Kernel::Side_of_bounded_sphere_3 side_of_bounded_sphere = + traits.side_of_bounded_sphere_3_object(); + + // Fast output + if(side_of_bounded_sphere(p,q,r,res) == CGAL::ON_BOUNDED_SIDE) + return res; + } + + // Switch to exact + To_exact to_exact; + Back_from_exact back_from_exact; + EKernel::Construct_circumcenter_3 exact_circumcenter = EKernel().construct_circumcenter_3_object(); + + return back_from_exact(exact_circumcenter(to_exact(p), to_exact(q), to_exact(r))); + } + + Point_3 operator()(const Point_3& p, + const Point_3& q) const + { + typename Kernel::Construct_circumcenter_3 circumcenter = traits.construct_circumcenter_3_object(); + typename Kernel::Side_of_bounded_sphere_3 side_of_bounded_sphere = traits.side_of_bounded_sphere_3_object(); + + // No division here + Point_3 point = circumcenter(p,q); + + // Fast output + if(side_of_bounded_sphere(p, q, point) == CGAL::ON_BOUNDED_SIDE) + return point; + + // Switch to exact + To_exact to_exact; + Back_from_exact back_from_exact; + EKernel::Construct_circumcenter_3 exact_circumcenter = EKernel().construct_circumcenter_3_object(); + + return back_from_exact(exact_circumcenter(to_exact(p), to_exact(q))); + } + +private: + const Kernel& traits; +}; + template class Robust_filtered_compute_squared_radius_3 : public CSR_Base_ @@ -149,16 +261,10 @@ typename Kernel::Construct_point_3 cp = traits.construct_point_3_object(); typename Kernel::Construct_weighted_point_3 cwp = traits.construct_weighted_point_3_object(); - CGAL_precondition(Kernel().orientation_3_object()( - cp(p), cp(q), cp(r), cp(s)) == CGAL::POSITIVE); + CGAL_precondition(traits.orientation_3_object()(cp(p), cp(q), cp(r), cp(s)) == CGAL::POSITIVE); if(! force_exact) { - // We use power_side_of_power_sphere_3: it is static filtered and - // we know that p,q,r,s are positive oriented - typename Kernel::Power_side_of_oriented_power_sphere_3 power_side_of_oriented_power_sphere = - traits.power_side_of_oriented_power_sphere_3_object(); - // Compute denominator to swith to exact if it is 0 FT num_x, num_y, num_z, den; bool unweighted = (p.weight() == 0) && (q.weight() == 0) && @@ -185,12 +291,19 @@ if(unweighted) { - if(side_of_oriented_sphere(cp(p), cp(q), cp(r), cp(s), res) - == CGAL::ON_POSITIVE_SIDE ) + typename Kernel::Side_of_oriented_sphere_3 side_of_oriented_sphere = + traits.side_of_oriented_sphere_3_object(); + + if(side_of_oriented_sphere(cp(p), cp(q), cp(r), cp(s), res) == CGAL::ON_POSITIVE_SIDE) return res; } else { + // We use power_side_of_power_sphere_3: it is static filtered and + // we know that p,q,r,s are positive oriented + typename Kernel::Power_side_of_oriented_power_sphere_3 power_side_of_oriented_power_sphere = + traits.power_side_of_oriented_power_sphere_3_object(); + // Fast output if(power_side_of_oriented_power_sphere(p,q,r,s,cwp(res)) == CGAL::ON_POSITIVE_SIDE) return res; @@ -259,7 +372,7 @@ traits.side_of_bounded_sphere_3_object(); // No division here - result_type point = weighted_circumcenter(p,q); + Point_3 point = weighted_circumcenter(p,q); // Fast output if(side_of_bounded_sphere(cp(p), cp(q), point) == CGAL::ON_BOUNDED_SIDE) @@ -392,40 +505,61 @@ }; template -class Robust_weighted_circumcenter_filtered_traits_3 +class Robust_circumcenter_filtered_traits_3 : public K_ { - typedef Robust_weighted_circumcenter_filtered_traits_3 Self; + typedef Robust_circumcenter_filtered_traits_3 Self; public: typedef K_ Kernel; - typedef CGAL::Robust_filtered_construct_weighted_circumcenter_3< - Kernel, typename Kernel::Construct_weighted_circumcenter_3> - Construct_weighted_circumcenter_3; + typedef CGAL::Robust_filtered_construct_circumcenter_3< + Kernel, typename Kernel::Construct_circumcenter_3> + Construct_circumcenter_3; typedef CGAL::Robust_filtered_compute_squared_radius_3< - Kernel, typename Kernel::Compute_squared_radius_3> Compute_squared_radius_3; + Kernel, typename Kernel::Compute_squared_radius_3> Compute_squared_radius_3; + + Construct_circumcenter_3 + construct_circumcenter_3_object() const + { return Construct_circumcenter_3(static_cast(*this)); } + + Compute_squared_radius_3 + compute_squared_radius_3_object() const + { return Compute_squared_radius_3(static_cast(*this)); } + + Robust_circumcenter_filtered_traits_3(const Kernel& k = Kernel()) : Kernel(k) { } +}; + +template +class Robust_weighted_circumcenter_filtered_traits_3 + : public Robust_circumcenter_filtered_traits_3 +{ + typedef Robust_circumcenter_filtered_traits_3 Base; + typedef Robust_weighted_circumcenter_filtered_traits_3 Self; + +public: + typedef K_ Kernel; + + typedef CGAL::Robust_filtered_construct_weighted_circumcenter_3< + Kernel, typename Kernel::Construct_weighted_circumcenter_3> + Construct_weighted_circumcenter_3; typedef CGAL::Robust_filtered_compute_squared_radius_smallest_orthogonal_sphere_3< Kernel, typename Kernel::Compute_squared_radius_smallest_orthogonal_sphere_3> - Compute_squared_radius_smallest_orthogonal_sphere_3; + Compute_squared_radius_smallest_orthogonal_sphere_3; Construct_weighted_circumcenter_3 construct_weighted_circumcenter_3_object() const { return Construct_weighted_circumcenter_3(static_cast(*this)); } - Compute_squared_radius_3 - compute_squared_radius_3_object() const - { return Compute_squared_radius_3(static_cast(*this)); } - Compute_squared_radius_smallest_orthogonal_sphere_3 compute_squared_radius_smallest_orthogonal_sphere_3_object() const { return Compute_squared_radius_smallest_orthogonal_sphere_3(static_cast(*this)); } - Robust_weighted_circumcenter_filtered_traits_3(const Kernel& k = Kernel()) : Kernel(k) { } + Robust_weighted_circumcenter_filtered_traits_3(const Kernel& k = Kernel()) : Base(k) { } }; -} // end namespace CGAL +} // namespace CGAL #endif // CGAL_ROBUST_WEIGHTED_CIRCUMCENTER_FILTERED_TRAITS_3_H diff -Nru cgal-5.4.1/include/CGAL/Root_for_circles_2_2.h cgal-5.5/include/CGAL/Root_for_circles_2_2.h --- cgal-5.4.1/include/CGAL/Root_for_circles_2_2.h 2022-06-03 19:03:33.000000000 +0000 +++ cgal-5.5/include/CGAL/Root_for_circles_2_2.h 2022-07-13 19:04:17.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_for_circles/include/CGAL/Root_for_circles_2_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_for_circles/include/CGAL/Root_for_circles_2_2.h $ // $Id: Root_for_circles_2_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Root_for_spheres_2_3.h cgal-5.5/include/CGAL/Root_for_spheres_2_3.h --- cgal-5.4.1/include/CGAL/Root_for_spheres_2_3.h 2022-06-03 19:03:34.000000000 +0000 +++ cgal-5.5/include/CGAL/Root_for_spheres_2_3.h 2022-07-13 19:04:17.000000000 +0000 @@ -9,7 +9,7 @@ // and a STREP (FET Open) Project under Contract No IST-006413 // (ACS -- Algorithms for Complex Shapes) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_for_spheres/include/CGAL/Root_for_spheres_2_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_for_spheres/include/CGAL/Root_for_spheres_2_3.h $ // $Id: Root_for_spheres_2_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Root_of_traits.h cgal-5.5/include/CGAL/Root_of_traits.h --- cgal-5.4.1/include/CGAL/Root_of_traits.h 2022-06-03 19:05:01.000000000 +0000 +++ cgal-5.5/include/CGAL/Root_of_traits.h 2022-07-13 19:05:54.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/Root_of_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/Root_of_traits.h $ // $Id: Root_of_traits.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Root_of_traits_specializations.h cgal-5.5/include/CGAL/Root_of_traits_specializations.h --- cgal-5.4.1/include/CGAL/Root_of_traits_specializations.h 2022-06-03 19:05:01.000000000 +0000 +++ cgal-5.5/include/CGAL/Root_of_traits_specializations.h 2022-07-13 19:05:54.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/Root_of_traits_specializations.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/Root_of_traits_specializations.h $ // $Id: Root_of_traits_specializations.h cdbd4c7 2021-02-17T23:25:52+01:00 Marc Glisse // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Rotational_sweep_visibility_2.h cgal-5.5/include/CGAL/Rotational_sweep_visibility_2.h --- cgal-5.4.1/include/CGAL/Rotational_sweep_visibility_2.h 2022-06-03 19:06:12.000000000 +0000 +++ cgal-5.5/include/CGAL/Rotational_sweep_visibility_2.h 2022-07-13 19:07:11.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Visibility_2/include/CGAL/Rotational_sweep_visibility_2.h $ -// $Id: Rotational_sweep_visibility_2.h d370326 2021-10-27T14:45:10+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Visibility_2/include/CGAL/Rotational_sweep_visibility_2.h $ +// $Id: Rotational_sweep_visibility_2.h 4ffc949 2022-02-03T17:11:20+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -22,7 +22,6 @@ #include #include #include -#include #include diff -Nru cgal-5.4.1/include/CGAL/RS/ak_1.h cgal-5.5/include/CGAL/RS/ak_1.h --- cgal-5.4.1/include/CGAL/RS/ak_1.h 2022-06-03 19:03:32.000000000 +0000 +++ cgal-5.5/include/CGAL/RS/ak_1.h 2022-07-13 19:04:16.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_d/include/CGAL/RS/ak_1.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_d/include/CGAL/RS/ak_1.h $ // $Id: ak_1.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/RS/ak_z_1.h cgal-5.5/include/CGAL/RS/ak_z_1.h --- cgal-5.4.1/include/CGAL/RS/ak_z_1.h 2022-06-03 19:03:32.000000000 +0000 +++ cgal-5.5/include/CGAL/RS/ak_z_1.h 2022-07-13 19:04:16.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_d/include/CGAL/RS/ak_z_1.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_d/include/CGAL/RS/ak_z_1.h $ // $Id: ak_z_1.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/RS/algebraic_1.h cgal-5.5/include/CGAL/RS/algebraic_1.h --- cgal-5.4.1/include/CGAL/RS/algebraic_1.h 2022-06-03 19:03:32.000000000 +0000 +++ cgal-5.5/include/CGAL/RS/algebraic_1.h 2022-07-13 19:04:16.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_d/include/CGAL/RS/algebraic_1.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_d/include/CGAL/RS/algebraic_1.h $ // $Id: algebraic_1.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/RS/algebraic_z_1.h cgal-5.5/include/CGAL/RS/algebraic_z_1.h --- cgal-5.4.1/include/CGAL/RS/algebraic_z_1.h 2022-06-03 19:03:32.000000000 +0000 +++ cgal-5.5/include/CGAL/RS/algebraic_z_1.h 2022-07-13 19:04:16.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_d/include/CGAL/RS/algebraic_z_1.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_d/include/CGAL/RS/algebraic_z_1.h $ // $Id: algebraic_z_1.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/RS/bisection_refiner_1.h cgal-5.5/include/CGAL/RS/bisection_refiner_1.h --- cgal-5.4.1/include/CGAL/RS/bisection_refiner_1.h 2022-06-03 19:03:32.000000000 +0000 +++ cgal-5.5/include/CGAL/RS/bisection_refiner_1.h 2022-07-13 19:04:16.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_d/include/CGAL/RS/bisection_refiner_1.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_d/include/CGAL/RS/bisection_refiner_1.h $ // $Id: bisection_refiner_1.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/RS/comparator_1.h cgal-5.5/include/CGAL/RS/comparator_1.h --- cgal-5.4.1/include/CGAL/RS/comparator_1.h 2022-06-03 19:03:33.000000000 +0000 +++ cgal-5.5/include/CGAL/RS/comparator_1.h 2022-07-13 19:04:16.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_d/include/CGAL/RS/comparator_1.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_d/include/CGAL/RS/comparator_1.h $ // $Id: comparator_1.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/RS/dyadic.h cgal-5.5/include/CGAL/RS/dyadic.h --- cgal-5.4.1/include/CGAL/RS/dyadic.h 2022-06-03 19:03:33.000000000 +0000 +++ cgal-5.5/include/CGAL/RS/dyadic.h 2022-07-13 19:04:16.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_d/include/CGAL/RS/dyadic.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_d/include/CGAL/RS/dyadic.h $ // $Id: dyadic.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/RS/exact_signat_1.h cgal-5.5/include/CGAL/RS/exact_signat_1.h --- cgal-5.4.1/include/CGAL/RS/exact_signat_1.h 2022-06-03 19:03:33.000000000 +0000 +++ cgal-5.5/include/CGAL/RS/exact_signat_1.h 2022-07-13 19:04:16.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_d/include/CGAL/RS/exact_signat_1.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_d/include/CGAL/RS/exact_signat_1.h $ // $Id: exact_signat_1.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/RS/functors_1.h cgal-5.5/include/CGAL/RS/functors_1.h --- cgal-5.4.1/include/CGAL/RS/functors_1.h 2022-06-03 19:03:33.000000000 +0000 +++ cgal-5.5/include/CGAL/RS/functors_1.h 2022-07-13 19:04:16.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_d/include/CGAL/RS/functors_1.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_d/include/CGAL/RS/functors_1.h $ // $Id: functors_1.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/RS/functors_z_1.h cgal-5.5/include/CGAL/RS/functors_z_1.h --- cgal-5.4.1/include/CGAL/RS/functors_z_1.h 2022-06-03 19:03:33.000000000 +0000 +++ cgal-5.5/include/CGAL/RS/functors_z_1.h 2022-07-13 19:04:16.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_d/include/CGAL/RS/functors_z_1.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_d/include/CGAL/RS/functors_z_1.h $ // $Id: functors_z_1.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/RS/Gmpfr_make_unique.h cgal-5.5/include/CGAL/RS/Gmpfr_make_unique.h --- cgal-5.4.1/include/CGAL/RS/Gmpfr_make_unique.h 2022-06-03 19:03:32.000000000 +0000 +++ cgal-5.5/include/CGAL/RS/Gmpfr_make_unique.h 2022-07-13 19:04:16.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_d/include/CGAL/RS/Gmpfr_make_unique.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_d/include/CGAL/RS/Gmpfr_make_unique.h $ // $Id: Gmpfr_make_unique.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/RS/polynomial_converter_1.h cgal-5.5/include/CGAL/RS/polynomial_converter_1.h --- cgal-5.4.1/include/CGAL/RS/polynomial_converter_1.h 2022-06-03 19:03:33.000000000 +0000 +++ cgal-5.5/include/CGAL/RS/polynomial_converter_1.h 2022-07-13 19:04:16.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_d/include/CGAL/RS/polynomial_converter_1.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_d/include/CGAL/RS/polynomial_converter_1.h $ // $Id: polynomial_converter_1.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/RS/rs23_k_isolator_1.h cgal-5.5/include/CGAL/RS/rs23_k_isolator_1.h --- cgal-5.4.1/include/CGAL/RS/rs23_k_isolator_1.h 2022-06-03 19:03:33.000000000 +0000 +++ cgal-5.5/include/CGAL/RS/rs23_k_isolator_1.h 2022-07-13 19:04:16.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_d/include/CGAL/RS/rs23_k_isolator_1.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_d/include/CGAL/RS/rs23_k_isolator_1.h $ // $Id: rs23_k_isolator_1.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/RS/rs2_calls.h cgal-5.5/include/CGAL/RS/rs2_calls.h --- cgal-5.4.1/include/CGAL/RS/rs2_calls.h 2022-06-03 19:03:33.000000000 +0000 +++ cgal-5.5/include/CGAL/RS/rs2_calls.h 2022-07-13 19:04:16.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_d/include/CGAL/RS/rs2_calls.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_d/include/CGAL/RS/rs2_calls.h $ // $Id: rs2_calls.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/RS/rs2_isolator_1.h cgal-5.5/include/CGAL/RS/rs2_isolator_1.h --- cgal-5.4.1/include/CGAL/RS/rs2_isolator_1.h 2022-06-03 19:03:33.000000000 +0000 +++ cgal-5.5/include/CGAL/RS/rs2_isolator_1.h 2022-07-13 19:04:16.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_d/include/CGAL/RS/rs2_isolator_1.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_d/include/CGAL/RS/rs2_isolator_1.h $ // $Id: rs2_isolator_1.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/RS/rs3_k_refiner_1.h cgal-5.5/include/CGAL/RS/rs3_k_refiner_1.h --- cgal-5.4.1/include/CGAL/RS/rs3_k_refiner_1.h 2022-06-03 19:03:33.000000000 +0000 +++ cgal-5.5/include/CGAL/RS/rs3_k_refiner_1.h 2022-07-13 19:04:16.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_d/include/CGAL/RS/rs3_k_refiner_1.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_d/include/CGAL/RS/rs3_k_refiner_1.h $ // $Id: rs3_k_refiner_1.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/RS/rs3_refiner_1.h cgal-5.5/include/CGAL/RS/rs3_refiner_1.h --- cgal-5.4.1/include/CGAL/RS/rs3_refiner_1.h 2022-06-03 19:03:33.000000000 +0000 +++ cgal-5.5/include/CGAL/RS/rs3_refiner_1.h 2022-07-13 19:04:16.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_d/include/CGAL/RS/rs3_refiner_1.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_d/include/CGAL/RS/rs3_refiner_1.h $ // $Id: rs3_refiner_1.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/RS/signat_1.h cgal-5.5/include/CGAL/RS/signat_1.h --- cgal-5.4.1/include/CGAL/RS/signat_1.h 2022-06-03 19:03:33.000000000 +0000 +++ cgal-5.5/include/CGAL/RS/signat_1.h 2022-07-13 19:04:16.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_kernel_d/include/CGAL/RS/signat_1.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_kernel_d/include/CGAL/RS/signat_1.h $ // $Id: signat_1.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Runge_kutta_integrator_2.h cgal-5.5/include/CGAL/Runge_kutta_integrator_2.h --- cgal-5.4.1/include/CGAL/Runge_kutta_integrator_2.h 2022-06-03 19:05:51.000000000 +0000 +++ cgal-5.5/include/CGAL/Runge_kutta_integrator_2.h 2022-07-13 19:06:48.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Stream_lines_2/include/CGAL/Runge_kutta_integrator_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Stream_lines_2/include/CGAL/Runge_kutta_integrator_2.h $ // $Id: Runge_kutta_integrator_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Scalar_factor_traits.h cgal-5.5/include/CGAL/Scalar_factor_traits.h --- cgal-5.4.1/include/CGAL/Scalar_factor_traits.h 2022-06-03 19:03:30.000000000 +0000 +++ cgal-5.5/include/CGAL/Scalar_factor_traits.h 2022-07-13 19:04:13.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Algebraic_foundations/include/CGAL/Scalar_factor_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Algebraic_foundations/include/CGAL/Scalar_factor_traits.h $ // $Id: Scalar_factor_traits.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Scale_space_reconstruction_3/Advancing_front_mesher.h cgal-5.5/include/CGAL/Scale_space_reconstruction_3/Advancing_front_mesher.h --- cgal-5.4.1/include/CGAL/Scale_space_reconstruction_3/Advancing_front_mesher.h 2022-06-03 19:05:34.000000000 +0000 +++ cgal-5.5/include/CGAL/Scale_space_reconstruction_3/Advancing_front_mesher.h 2022-07-13 19:06:29.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Scale_space_reconstruction_3/include/CGAL/Scale_space_reconstruction_3/Advancing_front_mesher.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Scale_space_reconstruction_3/include/CGAL/Scale_space_reconstruction_3/Advancing_front_mesher.h $ // $Id: Advancing_front_mesher.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Scale_space_reconstruction_3/Alpha_shape_mesher.h cgal-5.5/include/CGAL/Scale_space_reconstruction_3/Alpha_shape_mesher.h --- cgal-5.4.1/include/CGAL/Scale_space_reconstruction_3/Alpha_shape_mesher.h 2022-06-03 19:05:34.000000000 +0000 +++ cgal-5.5/include/CGAL/Scale_space_reconstruction_3/Alpha_shape_mesher.h 2022-07-13 19:06:29.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Scale_space_reconstruction_3/include/CGAL/Scale_space_reconstruction_3/Alpha_shape_mesher.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Scale_space_reconstruction_3/include/CGAL/Scale_space_reconstruction_3/Alpha_shape_mesher.h $ // $Id: Alpha_shape_mesher.h e895f42 2021-01-06T14:29:37+01:00 Simon Giraudot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Scale_space_reconstruction_3/internal/Auto_count.h cgal-5.5/include/CGAL/Scale_space_reconstruction_3/internal/Auto_count.h --- cgal-5.4.1/include/CGAL/Scale_space_reconstruction_3/internal/Auto_count.h 2022-06-03 19:05:34.000000000 +0000 +++ cgal-5.5/include/CGAL/Scale_space_reconstruction_3/internal/Auto_count.h 2022-07-13 19:06:30.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Scale_space_reconstruction_3/include/CGAL/Scale_space_reconstruction_3/internal/Auto_count.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Scale_space_reconstruction_3/include/CGAL/Scale_space_reconstruction_3/internal/Auto_count.h $ // $Id: Auto_count.h e893ac1 2020-08-18T10:06:51+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Scale_space_reconstruction_3/Jet_smoother.h cgal-5.5/include/CGAL/Scale_space_reconstruction_3/Jet_smoother.h --- cgal-5.4.1/include/CGAL/Scale_space_reconstruction_3/Jet_smoother.h 2022-06-03 19:05:34.000000000 +0000 +++ cgal-5.5/include/CGAL/Scale_space_reconstruction_3/Jet_smoother.h 2022-07-13 19:06:30.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Scale_space_reconstruction_3/include/CGAL/Scale_space_reconstruction_3/Jet_smoother.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Scale_space_reconstruction_3/include/CGAL/Scale_space_reconstruction_3/Jet_smoother.h $ // $Id: Jet_smoother.h 8bb22d5 2020-03-26T14:23:37+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Scale_space_reconstruction_3/Shape_construction_3.h cgal-5.5/include/CGAL/Scale_space_reconstruction_3/Shape_construction_3.h --- cgal-5.4.1/include/CGAL/Scale_space_reconstruction_3/Shape_construction_3.h 2022-06-03 19:05:34.000000000 +0000 +++ cgal-5.5/include/CGAL/Scale_space_reconstruction_3/Shape_construction_3.h 2022-07-13 19:06:30.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Scale_space_reconstruction_3/include/CGAL/Scale_space_reconstruction_3/Shape_construction_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Scale_space_reconstruction_3/include/CGAL/Scale_space_reconstruction_3/Shape_construction_3.h $ // $Id: Shape_construction_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Scale_space_reconstruction_3/Weighted_PCA_smoother.h cgal-5.5/include/CGAL/Scale_space_reconstruction_3/Weighted_PCA_smoother.h --- cgal-5.4.1/include/CGAL/Scale_space_reconstruction_3/Weighted_PCA_smoother.h 2022-06-03 19:05:34.000000000 +0000 +++ cgal-5.5/include/CGAL/Scale_space_reconstruction_3/Weighted_PCA_smoother.h 2022-07-13 19:06:30.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Scale_space_reconstruction_3/include/CGAL/Scale_space_reconstruction_3/Weighted_PCA_smoother.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Scale_space_reconstruction_3/include/CGAL/Scale_space_reconstruction_3/Weighted_PCA_smoother.h $ // $Id: Weighted_PCA_smoother.h efc0c52 2021-01-15T10:02:00+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Scale_space_surface_reconstruction_3.h cgal-5.5/include/CGAL/Scale_space_surface_reconstruction_3.h --- cgal-5.4.1/include/CGAL/Scale_space_surface_reconstruction_3.h 2022-06-03 19:05:34.000000000 +0000 +++ cgal-5.5/include/CGAL/Scale_space_surface_reconstruction_3.h 2022-07-13 19:06:30.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Scale_space_reconstruction_3/include/CGAL/Scale_space_surface_reconstruction_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Scale_space_reconstruction_3/include/CGAL/Scale_space_surface_reconstruction_3.h $ // $Id: Scale_space_surface_reconstruction_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/scanline_orient_normals.h cgal-5.5/include/CGAL/scanline_orient_normals.h --- cgal-5.4.1/include/CGAL/scanline_orient_normals.h 2022-06-03 19:05:13.000000000 +0000 +++ cgal-5.5/include/CGAL/scanline_orient_normals.h 2022-07-13 19:06:06.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Point_set_processing_3/include/CGAL/scanline_orient_normals.h $ -// $Id: scanline_orient_normals.h bce99e7 2020-11-09T08:36:45+01:00 Simon Giraudot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Point_set_processing_3/include/CGAL/scanline_orient_normals.h $ +// $Id: scanline_orient_normals.h 75b03e6 2022-01-10T15:33:04+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Simon Giraudot @@ -16,7 +16,7 @@ #include -#include +#include #include #include @@ -456,16 +456,17 @@ \cgalParamNEnd \cgalNamedParamsEnd */ -template -void scanline_orient_normals (PointRange& points, const NamedParameters& np) +template +void scanline_orient_normals (PointRange& points, const NamedParameters& np = parameters::default_values()) { using parameters::choose_parameter; using parameters::get_parameter; using Iterator = typename PointRange::iterator; using Value_type = typename std::iterator_traits::value_type; - using PointMap = typename CGAL::GetPointMap::type; - using NormalMap = typename Point_set_processing_3::GetNormalMap::type; + using NP_helper = Point_set_processing_3_np_helper; + using PointMap = typename NP_helper::Point_map; + using NormalMap = typename NP_helper::Normal_map; using No_map = Constant_property_map; @@ -477,13 +478,10 @@ ::type; using Fallback_scanline_ID = Boolean_tag::value>; - CGAL_static_assertion_msg(!(std::is_same::NoMap>::value), - "Error: no normal map"); + CGAL_static_assertion_msg(NP_helper::has_normal_map(), "Error: no normal map"); - PointMap point_map = choose_parameter(get_parameter(np, internal_np::point_map)); - NormalMap normal_map = choose_parameter(get_parameter(np, internal_np::normal_map)); + PointMap point_map = NP_helper::get_point_map(points, np); + NormalMap normal_map = NP_helper::get_normal_map(points, np); ScanAngleMap scan_angle_map = choose_parameter (get_parameter(np, internal_np::scan_angle_map)); ScanlineIDMap scanline_id_map = choose_parameter @@ -550,13 +548,6 @@ #endif } -template -void scanline_orient_normals (PointRange& points) -{ - return scanline_orient_normals (points, - CGAL::Point_set_processing_3::parameters::all_default(points)); -} - } // namespace CGAL #endif // CGAL_EIGEN3_ENABLED diff -Nru cgal-5.4.1/include/CGAL/SCIP_mixed_integer_program_traits.h cgal-5.5/include/CGAL/SCIP_mixed_integer_program_traits.h --- cgal-5.4.1/include/CGAL/SCIP_mixed_integer_program_traits.h 2022-06-03 19:05:45.000000000 +0000 +++ cgal-5.5/include/CGAL/SCIP_mixed_integer_program_traits.h 2022-07-13 19:06:42.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Solver_interface/include/CGAL/SCIP_mixed_integer_program_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Solver_interface/include/CGAL/SCIP_mixed_integer_program_traits.h $ // $Id: SCIP_mixed_integer_program_traits.h 267a641 2021-05-31T14:01:08+02:00 Dmitry Anisimov // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Search_traits_2.h cgal-5.5/include/CGAL/Search_traits_2.h --- cgal-5.4.1/include/CGAL/Search_traits_2.h 2022-06-03 19:05:47.000000000 +0000 +++ cgal-5.5/include/CGAL/Search_traits_2.h 2022-07-13 19:06:44.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Spatial_searching/include/CGAL/Search_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Spatial_searching/include/CGAL/Search_traits_2.h $ // $Id: Search_traits_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Search_traits_3.h cgal-5.5/include/CGAL/Search_traits_3.h --- cgal-5.4.1/include/CGAL/Search_traits_3.h 2022-06-03 19:05:47.000000000 +0000 +++ cgal-5.5/include/CGAL/Search_traits_3.h 2022-07-13 19:06:44.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Spatial_searching/include/CGAL/Search_traits_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Spatial_searching/include/CGAL/Search_traits_3.h $ // $Id: Search_traits_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Search_traits_adapter.h cgal-5.5/include/CGAL/Search_traits_adapter.h --- cgal-5.4.1/include/CGAL/Search_traits_adapter.h 2022-06-03 19:05:47.000000000 +0000 +++ cgal-5.5/include/CGAL/Search_traits_adapter.h 2022-07-13 19:06:44.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Spatial_searching/include/CGAL/Search_traits_adapter.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Spatial_searching/include/CGAL/Search_traits_adapter.h $ // $Id: Search_traits_adapter.h 8166579 2021-10-11T19:58:07+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Search_traits_d.h cgal-5.5/include/CGAL/Search_traits_d.h --- cgal-5.4.1/include/CGAL/Search_traits_d.h 2022-06-03 19:05:47.000000000 +0000 +++ cgal-5.5/include/CGAL/Search_traits_d.h 2022-07-13 19:06:44.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Spatial_searching/include/CGAL/Search_traits_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Spatial_searching/include/CGAL/Search_traits_d.h $ // $Id: Search_traits_d.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Search_traits.h cgal-5.5/include/CGAL/Search_traits.h --- cgal-5.4.1/include/CGAL/Search_traits.h 2022-06-03 19:05:47.000000000 +0000 +++ cgal-5.5/include/CGAL/Search_traits.h 2022-07-13 19:06:44.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Spatial_searching/include/CGAL/Search_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Spatial_searching/include/CGAL/Search_traits.h $ // $Id: Search_traits.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_2.h cgal-5.5/include/CGAL/Segment_2.h --- cgal-5.4.1/include/CGAL/Segment_2.h 2022-06-03 19:04:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_2.h 2022-07-13 19:05:24.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Segment_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Segment_2.h $ // $Id: Segment_2.h 8fa0f55 2021-05-27T10:27:38+02:00 Laurent Rineau // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_3.h cgal-5.5/include/CGAL/Segment_3.h --- cgal-5.4.1/include/CGAL/Segment_3.h 2022-06-03 19:04:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_3.h 2022-07-13 19:05:24.000000000 +0000 @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Segment_3.h $ -// $Id: Segment_3.h 8fa0f55 2021-05-27T10:27:38+02:00 Laurent Rineau +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Segment_3.h $ +// $Id: Segment_3.h d39c774 2022-03-17T12:14:43+01:00 Andreas Fabri // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // @@ -136,10 +136,8 @@ } bool has_on(const Point_3 &p) const - { // TODO : use one predicate. - return R_().are_ordered_along_line_3_object()(source(), - p, - target()); + { + return R().has_on_3_object()(*this, p); } Segment_3 opposite() const @@ -149,8 +147,7 @@ Direction_3 direction() const { - typename R::Construct_vector_3 construct_vector; - return Direction_3( construct_vector( source(), target())); + return R().construct_direction_3_object()(*this); } bool is_degenerate() const diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Are_parallel_C2.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Are_parallel_C2.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Are_parallel_C2.h 2022-06-03 19:05:35.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Are_parallel_C2.h 2022-07-13 19:06:31.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Are_parallel_C2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Are_parallel_C2.h $ // $Id: Are_parallel_C2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Are_same_points_C2.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Are_same_points_C2.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Are_same_points_C2.h 2022-06-03 19:05:35.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Are_same_points_C2.h 2022-07-13 19:06:31.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Are_same_points_C2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Are_same_points_C2.h $ // $Id: Are_same_points_C2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Are_same_segments_C2.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Are_same_segments_C2.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Are_same_segments_C2.h 2022-06-03 19:05:35.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Are_same_segments_C2.h 2022-07-13 19:06:31.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Are_same_segments_C2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Are_same_segments_C2.h $ // $Id: Are_same_segments_C2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Arrangement_enum.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Arrangement_enum.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Arrangement_enum.h 2022-06-03 19:05:35.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Arrangement_enum.h 2022-07-13 19:06:31.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Arrangement_enum.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Arrangement_enum.h $ // $Id: Arrangement_enum.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Arrangement_type_C2.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Arrangement_type_C2.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Arrangement_type_C2.h 2022-06-03 19:05:35.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Arrangement_type_C2.h 2022-07-13 19:06:32.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Arrangement_type_C2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Arrangement_type_C2.h $ // $Id: Arrangement_type_C2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Arrangement_type_non_intersecting_C2.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Arrangement_type_non_intersecting_C2.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Arrangement_type_non_intersecting_C2.h 2022-06-03 19:05:35.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Arrangement_type_non_intersecting_C2.h 2022-07-13 19:06:32.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Arrangement_type_non_intersecting_C2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Arrangement_type_non_intersecting_C2.h $ // $Id: Arrangement_type_non_intersecting_C2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/basic.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/basic.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/basic.h 2022-06-03 19:05:36.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/basic.h 2022-07-13 19:06:33.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/basic.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/basic.h $ // $Id: basic.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Basic_predicates_C2.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Basic_predicates_C2.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Basic_predicates_C2.h 2022-06-03 19:05:35.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Basic_predicates_C2.h 2022-07-13 19:06:32.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Basic_predicates_C2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Basic_predicates_C2.h $ // $Id: Basic_predicates_C2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Cartesian_converter.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Cartesian_converter.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Cartesian_converter.h 2022-06-03 19:05:35.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Cartesian_converter.h 2022-07-13 19:06:32.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Cartesian_converter.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Cartesian_converter.h $ // $Id: Cartesian_converter.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Compare_x_2.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Compare_x_2.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Compare_x_2.h 2022-06-03 19:05:36.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Compare_x_2.h 2022-07-13 19:06:32.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Compare_x_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Compare_x_2.h $ // $Id: Compare_x_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Compare_y_2.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Compare_y_2.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Compare_y_2.h 2022-06-03 19:05:36.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Compare_y_2.h 2022-07-13 19:06:32.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Compare_y_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Compare_y_2.h $ // $Id: Compare_y_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Constructions_C2.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Constructions_C2.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Constructions_C2.h 2022-06-03 19:05:36.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Constructions_C2.h 2022-07-13 19:06:32.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Constructions_C2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Constructions_C2.h $ // $Id: Constructions_C2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Construct_storage_site_2.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Construct_storage_site_2.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Construct_storage_site_2.h 2022-06-03 19:05:36.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Construct_storage_site_2.h 2022-07-13 19:06:32.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Construct_storage_site_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Construct_storage_site_2.h $ // $Id: Construct_storage_site_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Construct_storage_site_with_info_2.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Construct_storage_site_with_info_2.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Construct_storage_site_with_info_2.h 2022-06-03 19:05:36.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Construct_storage_site_with_info_2.h 2022-07-13 19:06:32.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Construct_storage_site_with_info_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Construct_storage_site_with_info_2.h $ // $Id: Construct_storage_site_with_info_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Filtered_traits_base_2.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Filtered_traits_base_2.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Filtered_traits_base_2.h 2022-06-03 19:05:36.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Filtered_traits_base_2.h 2022-07-13 19:06:32.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Filtered_traits_base_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Filtered_traits_base_2.h $ // $Id: Filtered_traits_base_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Filtered_traits_concept_check_tags.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Filtered_traits_concept_check_tags.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Filtered_traits_concept_check_tags.h 2022-06-03 19:05:36.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Filtered_traits_concept_check_tags.h 2022-07-13 19:06:32.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Filtered_traits_concept_check_tags.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Filtered_traits_concept_check_tags.h $ // $Id: Filtered_traits_concept_check_tags.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Finite_edge_interior_conflict_C2.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Finite_edge_interior_conflict_C2.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Finite_edge_interior_conflict_C2.h 2022-06-03 19:05:36.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Finite_edge_interior_conflict_C2.h 2022-07-13 19:06:32.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Finite_edge_interior_conflict_C2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Finite_edge_interior_conflict_C2.h $ // $Id: Finite_edge_interior_conflict_C2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Infinite_edge_interior_conflict_C2.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Infinite_edge_interior_conflict_C2.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Infinite_edge_interior_conflict_C2.h 2022-06-03 19:05:36.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Infinite_edge_interior_conflict_C2.h 2022-07-13 19:06:32.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Infinite_edge_interior_conflict_C2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Infinite_edge_interior_conflict_C2.h $ // $Id: Infinite_edge_interior_conflict_C2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/in_place_edge_list.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/in_place_edge_list.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/in_place_edge_list.h 2022-06-03 19:05:36.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/in_place_edge_list.h 2022-07-13 19:06:33.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/in_place_edge_list.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/in_place_edge_list.h $ // $Id: in_place_edge_list.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Is_degenerate_edge_C2.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Is_degenerate_edge_C2.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Is_degenerate_edge_C2.h 2022-06-03 19:05:36.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Is_degenerate_edge_C2.h 2022-07-13 19:06:32.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Is_degenerate_edge_C2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Is_degenerate_edge_C2.h $ // $Id: Is_degenerate_edge_C2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Kernel_wrapper_2.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Kernel_wrapper_2.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Kernel_wrapper_2.h 2022-06-03 19:05:36.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Kernel_wrapper_2.h 2022-07-13 19:06:32.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Kernel_wrapper_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Kernel_wrapper_2.h $ // $Id: Kernel_wrapper_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Orientation_C2.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Orientation_C2.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Orientation_C2.h 2022-06-03 19:05:36.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Orientation_C2.h 2022-07-13 19:06:32.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Orientation_C2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Orientation_C2.h $ // $Id: Orientation_C2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Oriented_side_C2.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Oriented_side_C2.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Oriented_side_C2.h 2022-06-03 19:05:36.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Oriented_side_C2.h 2022-07-13 19:06:32.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Oriented_side_C2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Oriented_side_C2.h $ // $Id: Oriented_side_C2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Oriented_side_of_bisector_C2.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Oriented_side_of_bisector_C2.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Oriented_side_of_bisector_C2.h 2022-06-03 19:05:36.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Oriented_side_of_bisector_C2.h 2022-07-13 19:06:32.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Oriented_side_of_bisector_C2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Oriented_side_of_bisector_C2.h $ // $Id: Oriented_side_of_bisector_C2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Predicates_C2.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Predicates_C2.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Predicates_C2.h 2022-06-03 19:05:36.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Predicates_C2.h 2022-07-13 19:06:32.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Predicates_C2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Predicates_C2.h $ // $Id: Predicates_C2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Segment_Delaunay_graph_2_impl.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Segment_Delaunay_graph_2_impl.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Segment_Delaunay_graph_2_impl.h 2022-06-03 19:05:36.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Segment_Delaunay_graph_2_impl.h 2022-07-13 19:06:32.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Segment_Delaunay_graph_2_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Segment_Delaunay_graph_2_impl.h $ // $Id: Segment_Delaunay_graph_2_impl.h 4e519a3 2021-05-05T13:15:37+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Segment_Delaunay_graph_hierarchy_2_impl.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Segment_Delaunay_graph_hierarchy_2_impl.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Segment_Delaunay_graph_hierarchy_2_impl.h 2022-06-03 19:05:36.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Segment_Delaunay_graph_hierarchy_2_impl.h 2022-07-13 19:06:32.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Segment_Delaunay_graph_hierarchy_2_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Segment_Delaunay_graph_hierarchy_2_impl.h $ // $Id: Segment_Delaunay_graph_hierarchy_2_impl.h 4e519a3 2021-05-05T13:15:37+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Sqrt_extension_2.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Sqrt_extension_2.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Sqrt_extension_2.h 2022-06-03 19:05:36.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Sqrt_extension_2.h 2022-07-13 19:06:32.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Sqrt_extension_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Sqrt_extension_2.h $ // $Id: Sqrt_extension_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Traits_base_2.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Traits_base_2.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Traits_base_2.h 2022-06-03 19:05:36.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Traits_base_2.h 2022-07-13 19:06:32.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Traits_base_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Traits_base_2.h $ // $Id: Traits_base_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Traits_wrapper_2.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Traits_wrapper_2.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Traits_wrapper_2.h 2022-06-03 19:05:36.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Traits_wrapper_2.h 2022-07-13 19:06:32.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Traits_wrapper_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Traits_wrapper_2.h $ // $Id: Traits_wrapper_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Triangulation_face_base_with_edges_2.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Triangulation_face_base_with_edges_2.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Triangulation_face_base_with_edges_2.h 2022-06-03 19:05:36.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Triangulation_face_base_with_edges_2.h 2022-07-13 19:06:32.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Triangulation_face_base_with_edges_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Triangulation_face_base_with_edges_2.h $ // $Id: Triangulation_face_base_with_edges_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Vertex_conflict_C2.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Vertex_conflict_C2.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Vertex_conflict_C2.h 2022-06-03 19:05:36.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Vertex_conflict_C2.h 2022-07-13 19:06:33.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Vertex_conflict_C2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Vertex_conflict_C2.h $ // $Id: Vertex_conflict_C2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Voronoi_vertex_C2.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Voronoi_vertex_C2.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Voronoi_vertex_C2.h 2022-06-03 19:05:36.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Voronoi_vertex_C2.h 2022-07-13 19:06:33.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Voronoi_vertex_C2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Voronoi_vertex_C2.h $ // $Id: Voronoi_vertex_C2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Voronoi_vertex_ring_C2.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Voronoi_vertex_ring_C2.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Voronoi_vertex_ring_C2.h 2022-06-03 19:05:36.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Voronoi_vertex_ring_C2.h 2022-07-13 19:06:33.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Voronoi_vertex_ring_C2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Voronoi_vertex_ring_C2.h $ // $Id: Voronoi_vertex_ring_C2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Voronoi_vertex_sqrt_field_C2.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Voronoi_vertex_sqrt_field_C2.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Voronoi_vertex_sqrt_field_C2.h 2022-06-03 19:05:36.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Voronoi_vertex_sqrt_field_C2.h 2022-07-13 19:06:33.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Voronoi_vertex_sqrt_field_C2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Voronoi_vertex_sqrt_field_C2.h $ // $Id: Voronoi_vertex_sqrt_field_C2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Voronoi_vertex_sqrt_field_new_C2.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Voronoi_vertex_sqrt_field_new_C2.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2/Voronoi_vertex_sqrt_field_new_C2.h 2022-06-03 19:05:36.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_2/Voronoi_vertex_sqrt_field_new_C2.h 2022-07-13 19:06:33.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Voronoi_vertex_sqrt_field_new_C2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Voronoi_vertex_sqrt_field_new_C2.h $ // $Id: Voronoi_vertex_sqrt_field_new_C2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_2.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_2.h 2022-06-03 19:05:35.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_2.h 2022-07-13 19:06:31.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2.h $ // $Id: Segment_Delaunay_graph_2.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_adaptation_policies_2.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_adaptation_policies_2.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_adaptation_policies_2.h 2022-06-03 19:06:13.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_adaptation_policies_2.h 2022-07-13 19:07:12.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Voronoi_diagram_2/include/CGAL/Segment_Delaunay_graph_adaptation_policies_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Voronoi_diagram_2/include/CGAL/Segment_Delaunay_graph_adaptation_policies_2.h $ // $Id: Segment_Delaunay_graph_adaptation_policies_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_adaptation_traits_2.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_adaptation_traits_2.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_adaptation_traits_2.h 2022-06-03 19:06:13.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_adaptation_traits_2.h 2022-07-13 19:07:12.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Voronoi_diagram_2/include/CGAL/Segment_Delaunay_graph_adaptation_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Voronoi_diagram_2/include/CGAL/Segment_Delaunay_graph_adaptation_traits_2.h $ // $Id: Segment_Delaunay_graph_adaptation_traits_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_face_base_2.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_face_base_2.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_face_base_2.h 2022-06-03 19:05:37.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_face_base_2.h 2022-07-13 19:06:33.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_face_base_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_face_base_2.h $ // $Id: Segment_Delaunay_graph_face_base_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_filtered_traits_2.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_filtered_traits_2.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_filtered_traits_2.h 2022-06-03 19:05:37.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_filtered_traits_2.h 2022-07-13 19:06:33.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_filtered_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_filtered_traits_2.h $ // $Id: Segment_Delaunay_graph_filtered_traits_2.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_hierarchy_2.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_hierarchy_2.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_hierarchy_2.h 2022-06-03 19:05:37.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_hierarchy_2.h 2022-07-13 19:06:33.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_hierarchy_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_hierarchy_2.h $ // $Id: Segment_Delaunay_graph_hierarchy_2.h cc18ed3 2020-04-06T18:33:26+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_hierarchy_vertex_base_2.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_hierarchy_vertex_base_2.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_hierarchy_vertex_base_2.h 2022-06-03 19:05:37.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_hierarchy_vertex_base_2.h 2022-07-13 19:06:33.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_hierarchy_vertex_base_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_hierarchy_vertex_base_2.h $ // $Id: Segment_Delaunay_graph_hierarchy_vertex_base_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_Linf_2/basic.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_Linf_2/basic.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_Linf_2/basic.h 2022-06-03 19:05:40.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_Linf_2/basic.h 2022-07-13 19:06:36.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_Linf_2/include/CGAL/Segment_Delaunay_graph_Linf_2/basic.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_Linf_2/include/CGAL/Segment_Delaunay_graph_Linf_2/basic.h $ // $Id: basic.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_Linf_2/Basic_predicates_C2.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_Linf_2/Basic_predicates_C2.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_Linf_2/Basic_predicates_C2.h 2022-06-03 19:05:39.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_Linf_2/Basic_predicates_C2.h 2022-07-13 19:06:36.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_Linf_2/include/CGAL/Segment_Delaunay_graph_Linf_2/Basic_predicates_C2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_Linf_2/include/CGAL/Segment_Delaunay_graph_Linf_2/Basic_predicates_C2.h $ // $Id: Basic_predicates_C2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_Linf_2/Bisector_Linf.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_Linf_2/Bisector_Linf.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_Linf_2/Bisector_Linf.h 2022-06-03 19:05:39.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_Linf_2/Bisector_Linf.h 2022-07-13 19:06:36.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_Linf_2/include/CGAL/Segment_Delaunay_graph_Linf_2/Bisector_Linf.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_Linf_2/include/CGAL/Segment_Delaunay_graph_Linf_2/Bisector_Linf.h $ // $Id: Bisector_Linf.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_Linf_2/Constructions_C2.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_Linf_2/Constructions_C2.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_Linf_2/Constructions_C2.h 2022-06-03 19:05:39.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_Linf_2/Constructions_C2.h 2022-07-13 19:06:36.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_Linf_2/include/CGAL/Segment_Delaunay_graph_Linf_2/Constructions_C2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_Linf_2/include/CGAL/Segment_Delaunay_graph_Linf_2/Constructions_C2.h $ // $Id: Constructions_C2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_Linf_2/Filtered_traits_base_2.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_Linf_2/Filtered_traits_base_2.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_Linf_2/Filtered_traits_base_2.h 2022-06-03 19:05:39.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_Linf_2/Filtered_traits_base_2.h 2022-07-13 19:06:36.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_Linf_2/include/CGAL/Segment_Delaunay_graph_Linf_2/Filtered_traits_base_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_Linf_2/include/CGAL/Segment_Delaunay_graph_Linf_2/Filtered_traits_base_2.h $ // $Id: Filtered_traits_base_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_Linf_2/Finite_edge_interior_conflict_C2.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_Linf_2/Finite_edge_interior_conflict_C2.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_Linf_2/Finite_edge_interior_conflict_C2.h 2022-06-03 19:05:39.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_Linf_2/Finite_edge_interior_conflict_C2.h 2022-07-13 19:06:36.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_Linf_2/include/CGAL/Segment_Delaunay_graph_Linf_2/Finite_edge_interior_conflict_C2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_Linf_2/include/CGAL/Segment_Delaunay_graph_Linf_2/Finite_edge_interior_conflict_C2.h $ // $Id: Finite_edge_interior_conflict_C2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_Linf_2/Infinite_edge_interior_conflict_C2.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_Linf_2/Infinite_edge_interior_conflict_C2.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_Linf_2/Infinite_edge_interior_conflict_C2.h 2022-06-03 19:05:39.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_Linf_2/Infinite_edge_interior_conflict_C2.h 2022-07-13 19:06:36.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_Linf_2/include/CGAL/Segment_Delaunay_graph_Linf_2/Infinite_edge_interior_conflict_C2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_Linf_2/include/CGAL/Segment_Delaunay_graph_Linf_2/Infinite_edge_interior_conflict_C2.h $ // $Id: Infinite_edge_interior_conflict_C2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_Linf_2/Orientation_Linf_C2.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_Linf_2/Orientation_Linf_C2.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_Linf_2/Orientation_Linf_C2.h 2022-06-03 19:05:40.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_Linf_2/Orientation_Linf_C2.h 2022-07-13 19:06:36.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_Linf_2/include/CGAL/Segment_Delaunay_graph_Linf_2/Orientation_Linf_C2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_Linf_2/include/CGAL/Segment_Delaunay_graph_Linf_2/Orientation_Linf_C2.h $ // $Id: Orientation_Linf_C2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_Linf_2/Oriented_side_C2.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_Linf_2/Oriented_side_C2.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_Linf_2/Oriented_side_C2.h 2022-06-03 19:05:40.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_Linf_2/Oriented_side_C2.h 2022-07-13 19:06:36.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_Linf_2/include/CGAL/Segment_Delaunay_graph_Linf_2/Oriented_side_C2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_Linf_2/include/CGAL/Segment_Delaunay_graph_Linf_2/Oriented_side_C2.h $ // $Id: Oriented_side_C2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_Linf_2/Oriented_side_of_bisector_C2.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_Linf_2/Oriented_side_of_bisector_C2.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_Linf_2/Oriented_side_of_bisector_C2.h 2022-06-03 19:05:40.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_Linf_2/Oriented_side_of_bisector_C2.h 2022-07-13 19:06:36.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_Linf_2/include/CGAL/Segment_Delaunay_graph_Linf_2/Oriented_side_of_bisector_C2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_Linf_2/include/CGAL/Segment_Delaunay_graph_Linf_2/Oriented_side_of_bisector_C2.h $ // $Id: Oriented_side_of_bisector_C2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_Linf_2/Predicates_C2.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_Linf_2/Predicates_C2.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_Linf_2/Predicates_C2.h 2022-06-03 19:05:40.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_Linf_2/Predicates_C2.h 2022-07-13 19:06:36.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_Linf_2/include/CGAL/Segment_Delaunay_graph_Linf_2/Predicates_C2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_Linf_2/include/CGAL/Segment_Delaunay_graph_Linf_2/Predicates_C2.h $ // $Id: Predicates_C2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_Linf_2/Segment_Delaunay_graph_Linf_2_impl.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_Linf_2/Segment_Delaunay_graph_Linf_2_impl.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_Linf_2/Segment_Delaunay_graph_Linf_2_impl.h 2022-06-03 19:05:40.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_Linf_2/Segment_Delaunay_graph_Linf_2_impl.h 2022-07-13 19:06:36.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_Linf_2/include/CGAL/Segment_Delaunay_graph_Linf_2/Segment_Delaunay_graph_Linf_2_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_Linf_2/include/CGAL/Segment_Delaunay_graph_Linf_2/Segment_Delaunay_graph_Linf_2_impl.h $ // $Id: Segment_Delaunay_graph_Linf_2_impl.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_Linf_2/Segment_Delaunay_graph_Linf_hierarchy_2_impl.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_Linf_2/Segment_Delaunay_graph_Linf_hierarchy_2_impl.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_Linf_2/Segment_Delaunay_graph_Linf_hierarchy_2_impl.h 2022-06-03 19:05:40.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_Linf_2/Segment_Delaunay_graph_Linf_hierarchy_2_impl.h 2022-07-13 19:06:36.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_Linf_2/include/CGAL/Segment_Delaunay_graph_Linf_2/Segment_Delaunay_graph_Linf_hierarchy_2_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_Linf_2/include/CGAL/Segment_Delaunay_graph_Linf_2/Segment_Delaunay_graph_Linf_hierarchy_2_impl.h $ // $Id: Segment_Delaunay_graph_Linf_hierarchy_2_impl.h 4e519a3 2021-05-05T13:15:37+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_Linf_2/Traits_base_2.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_Linf_2/Traits_base_2.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_Linf_2/Traits_base_2.h 2022-06-03 19:05:40.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_Linf_2/Traits_base_2.h 2022-07-13 19:06:36.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_Linf_2/include/CGAL/Segment_Delaunay_graph_Linf_2/Traits_base_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_Linf_2/include/CGAL/Segment_Delaunay_graph_Linf_2/Traits_base_2.h $ // $Id: Traits_base_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_Linf_2/Vertex_conflict_C2.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_Linf_2/Vertex_conflict_C2.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_Linf_2/Vertex_conflict_C2.h 2022-06-03 19:05:40.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_Linf_2/Vertex_conflict_C2.h 2022-07-13 19:06:36.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_Linf_2/include/CGAL/Segment_Delaunay_graph_Linf_2/Vertex_conflict_C2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_Linf_2/include/CGAL/Segment_Delaunay_graph_Linf_2/Vertex_conflict_C2.h $ // $Id: Vertex_conflict_C2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_Linf_2/Voronoi_vertex_C2.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_Linf_2/Voronoi_vertex_C2.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_Linf_2/Voronoi_vertex_C2.h 2022-06-03 19:05:40.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_Linf_2/Voronoi_vertex_C2.h 2022-07-13 19:06:36.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_Linf_2/include/CGAL/Segment_Delaunay_graph_Linf_2/Voronoi_vertex_C2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_Linf_2/include/CGAL/Segment_Delaunay_graph_Linf_2/Voronoi_vertex_C2.h $ // $Id: Voronoi_vertex_C2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_Linf_2/Voronoi_vertex_ring_C2.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_Linf_2/Voronoi_vertex_ring_C2.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_Linf_2/Voronoi_vertex_ring_C2.h 2022-06-03 19:05:40.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_Linf_2/Voronoi_vertex_ring_C2.h 2022-07-13 19:06:36.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_Linf_2/include/CGAL/Segment_Delaunay_graph_Linf_2/Voronoi_vertex_ring_C2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_Linf_2/include/CGAL/Segment_Delaunay_graph_Linf_2/Voronoi_vertex_ring_C2.h $ // $Id: Voronoi_vertex_ring_C2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_Linf_2/Voronoi_vertex_sqrt_field_new_C2.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_Linf_2/Voronoi_vertex_sqrt_field_new_C2.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_Linf_2/Voronoi_vertex_sqrt_field_new_C2.h 2022-06-03 19:05:40.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_Linf_2/Voronoi_vertex_sqrt_field_new_C2.h 2022-07-13 19:06:36.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_Linf_2/include/CGAL/Segment_Delaunay_graph_Linf_2/Voronoi_vertex_sqrt_field_new_C2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_Linf_2/include/CGAL/Segment_Delaunay_graph_Linf_2/Voronoi_vertex_sqrt_field_new_C2.h $ // $Id: Voronoi_vertex_sqrt_field_new_C2.h ddd4968 2021-02-03T16:05:24+00:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_Linf_2.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_Linf_2.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_Linf_2.h 2022-06-03 19:05:39.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_Linf_2.h 2022-07-13 19:06:35.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_Linf_2/include/CGAL/Segment_Delaunay_graph_Linf_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_Linf_2/include/CGAL/Segment_Delaunay_graph_Linf_2.h $ // $Id: Segment_Delaunay_graph_Linf_2.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_Linf_filtered_traits_2.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_Linf_filtered_traits_2.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_Linf_filtered_traits_2.h 2022-06-03 19:05:40.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_Linf_filtered_traits_2.h 2022-07-13 19:06:36.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_Linf_2/include/CGAL/Segment_Delaunay_graph_Linf_filtered_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_Linf_2/include/CGAL/Segment_Delaunay_graph_Linf_filtered_traits_2.h $ // $Id: Segment_Delaunay_graph_Linf_filtered_traits_2.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_Linf_hierarchy_2.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_Linf_hierarchy_2.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_Linf_hierarchy_2.h 2022-06-03 19:05:40.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_Linf_hierarchy_2.h 2022-07-13 19:06:36.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_Linf_2/include/CGAL/Segment_Delaunay_graph_Linf_hierarchy_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_Linf_2/include/CGAL/Segment_Delaunay_graph_Linf_hierarchy_2.h $ // $Id: Segment_Delaunay_graph_Linf_hierarchy_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_Linf_traits_2.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_Linf_traits_2.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_Linf_traits_2.h 2022-06-03 19:05:40.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_Linf_traits_2.h 2022-07-13 19:06:36.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_Linf_2/include/CGAL/Segment_Delaunay_graph_Linf_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_Linf_2/include/CGAL/Segment_Delaunay_graph_Linf_traits_2.h $ // $Id: Segment_Delaunay_graph_Linf_traits_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_simple_site_2.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_simple_site_2.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_simple_site_2.h 2022-06-03 19:05:37.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_simple_site_2.h 2022-07-13 19:06:33.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_simple_site_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_simple_site_2.h $ // $Id: Segment_Delaunay_graph_simple_site_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_simple_storage_site_2.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_simple_storage_site_2.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_simple_storage_site_2.h 2022-06-03 19:05:37.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_simple_storage_site_2.h 2022-07-13 19:06:33.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_simple_storage_site_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_simple_storage_site_2.h $ // $Id: Segment_Delaunay_graph_simple_storage_site_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_site_2.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_site_2.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_site_2.h 2022-06-03 19:05:37.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_site_2.h 2022-07-13 19:06:33.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_site_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_site_2.h $ // $Id: Segment_Delaunay_graph_site_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_storage_site_2.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_storage_site_2.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_storage_site_2.h 2022-06-03 19:05:37.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_storage_site_2.h 2022-07-13 19:06:33.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_storage_site_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_storage_site_2.h $ // $Id: Segment_Delaunay_graph_storage_site_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_storage_site_with_info_2.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_storage_site_with_info_2.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_storage_site_with_info_2.h 2022-06-03 19:05:37.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_storage_site_with_info_2.h 2022-07-13 19:06:33.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_storage_site_with_info_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_storage_site_with_info_2.h $ // $Id: Segment_Delaunay_graph_storage_site_with_info_2.h 980adeb 2020-04-09T13:27:13+02:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_storage_traits_2.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_storage_traits_2.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_storage_traits_2.h 2022-06-03 19:05:37.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_storage_traits_2.h 2022-07-13 19:06:33.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_storage_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_storage_traits_2.h $ // $Id: Segment_Delaunay_graph_storage_traits_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_storage_traits_with_info_2.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_storage_traits_with_info_2.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_storage_traits_with_info_2.h 2022-06-03 19:05:37.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_storage_traits_with_info_2.h 2022-07-13 19:06:33.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_storage_traits_with_info_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_storage_traits_with_info_2.h $ // $Id: Segment_Delaunay_graph_storage_traits_with_info_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_traits_2.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_traits_2.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_traits_2.h 2022-06-03 19:05:37.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_traits_2.h 2022-07-13 19:06:33.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_traits_2.h $ // $Id: Segment_Delaunay_graph_traits_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_vertex_base_2.h cgal-5.5/include/CGAL/Segment_Delaunay_graph_vertex_base_2.h --- cgal-5.4.1/include/CGAL/Segment_Delaunay_graph_vertex_base_2.h 2022-06-03 19:05:37.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_Delaunay_graph_vertex_base_2.h 2022-07-13 19:06:33.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_vertex_base_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_vertex_base_2.h $ // $Id: Segment_Delaunay_graph_vertex_base_2.h 87ecfae 2021-02-17T10:55:59+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/segment_intersection_points_2.h cgal-5.5/include/CGAL/segment_intersection_points_2.h --- cgal-5.4.1/include/CGAL/segment_intersection_points_2.h 2022-06-03 19:04:08.000000000 +0000 +++ cgal-5.5/include/CGAL/segment_intersection_points_2.h 2022-07-13 19:04:56.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Convex_hull_2/include/CGAL/segment_intersection_points_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Convex_hull_2/include/CGAL/segment_intersection_points_2.h $ // $Id: segment_intersection_points_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_tree_d.h cgal-5.5/include/CGAL/Segment_tree_d.h --- cgal-5.4.1/include/CGAL/Segment_tree_d.h 2022-06-03 19:05:35.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_tree_d.h 2022-07-13 19:06:31.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/SearchStructures/include/CGAL/Segment_tree_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/SearchStructures/include/CGAL/Segment_tree_d.h $ // $Id: Segment_tree_d.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Segment_tree_k.h cgal-5.5/include/CGAL/Segment_tree_k.h --- cgal-5.4.1/include/CGAL/Segment_tree_k.h 2022-06-03 19:05:35.000000000 +0000 +++ cgal-5.5/include/CGAL/Segment_tree_k.h 2022-07-13 19:06:31.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/SearchStructures/include/CGAL/Segment_tree_k.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/SearchStructures/include/CGAL/Segment_tree_k.h $ // $Id: Segment_tree_k.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/SEP_header.h cgal-5.5/include/CGAL/SEP_header.h --- cgal-5.4.1/include/CGAL/SEP_header.h 2022-06-03 19:03:56.000000000 +0000 +++ cgal-5.5/include/CGAL/SEP_header.h 2022-07-13 19:04:43.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_ImageIO/include/CGAL/SEP_header.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_ImageIO/include/CGAL/SEP_header.h $ // $Id: SEP_header.h ef59128 2021-12-27T11:08:34+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/SEP_to_ImageIO.h cgal-5.5/include/CGAL/SEP_to_ImageIO.h --- cgal-5.4.1/include/CGAL/SEP_to_ImageIO.h 2022-06-03 19:03:56.000000000 +0000 +++ cgal-5.5/include/CGAL/SEP_to_ImageIO.h 2022-07-13 19:04:43.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/CGAL_ImageIO/include/CGAL/SEP_to_ImageIO.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/CGAL_ImageIO/include/CGAL/SEP_to_ImageIO.h $ // $Id: SEP_to_ImageIO.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Set_movable_separability_2/internal/Circle_arrangment.h cgal-5.5/include/CGAL/Set_movable_separability_2/internal/Circle_arrangment.h --- cgal-5.4.1/include/CGAL/Set_movable_separability_2/internal/Circle_arrangment.h 2022-06-03 19:05:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Set_movable_separability_2/internal/Circle_arrangment.h 2022-07-13 19:06:38.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Set_movable_separability_2/include/CGAL/Set_movable_separability_2/internal/Circle_arrangment.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Set_movable_separability_2/include/CGAL/Set_movable_separability_2/internal/Circle_arrangment.h $ // $Id: Circle_arrangment.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Set_movable_separability_2/internal/Utils.h cgal-5.5/include/CGAL/Set_movable_separability_2/internal/Utils.h --- cgal-5.4.1/include/CGAL/Set_movable_separability_2/internal/Utils.h 2022-06-03 19:05:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Set_movable_separability_2/internal/Utils.h 2022-07-13 19:06:38.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Set_movable_separability_2/include/CGAL/Set_movable_separability_2/internal/Utils.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Set_movable_separability_2/include/CGAL/Set_movable_separability_2/internal/Utils.h $ // $Id: Utils.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Set_movable_separability_2/Single_mold_translational_casting/is_pullout_direction.h cgal-5.5/include/CGAL/Set_movable_separability_2/Single_mold_translational_casting/is_pullout_direction.h --- cgal-5.4.1/include/CGAL/Set_movable_separability_2/Single_mold_translational_casting/is_pullout_direction.h 2022-06-03 19:05:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Set_movable_separability_2/Single_mold_translational_casting/is_pullout_direction.h 2022-07-13 19:06:38.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Set_movable_separability_2/include/CGAL/Set_movable_separability_2/Single_mold_translational_casting/is_pullout_direction.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Set_movable_separability_2/include/CGAL/Set_movable_separability_2/Single_mold_translational_casting/is_pullout_direction.h $ // $Id: is_pullout_direction.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Set_movable_separability_2/Single_mold_translational_casting/pullout_directions.h cgal-5.5/include/CGAL/Set_movable_separability_2/Single_mold_translational_casting/pullout_directions.h --- cgal-5.4.1/include/CGAL/Set_movable_separability_2/Single_mold_translational_casting/pullout_directions.h 2022-06-03 19:05:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Set_movable_separability_2/Single_mold_translational_casting/pullout_directions.h 2022-07-13 19:06:38.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Set_movable_separability_2/include/CGAL/Set_movable_separability_2/Single_mold_translational_casting/pullout_directions.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Set_movable_separability_2/include/CGAL/Set_movable_separability_2/Single_mold_translational_casting/pullout_directions.h $ // $Id: pullout_directions.h 1f45360 2021-01-26T09:05:24+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Set_movable_separability_2/Single_mold_translational_casting/top_edges.h cgal-5.5/include/CGAL/Set_movable_separability_2/Single_mold_translational_casting/top_edges.h --- cgal-5.4.1/include/CGAL/Set_movable_separability_2/Single_mold_translational_casting/top_edges.h 2022-06-03 19:05:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Set_movable_separability_2/Single_mold_translational_casting/top_edges.h 2022-07-13 19:06:38.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Set_movable_separability_2/include/CGAL/Set_movable_separability_2/Single_mold_translational_casting/top_edges.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Set_movable_separability_2/include/CGAL/Set_movable_separability_2/Single_mold_translational_casting/top_edges.h $ // $Id: top_edges.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Shape_detection/deprecated/Region_growing.h cgal-5.5/include/CGAL/Shape_detection/deprecated/Region_growing.h --- cgal-5.4.1/include/CGAL/Shape_detection/deprecated/Region_growing.h 2022-06-03 19:05:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Shape_detection/deprecated/Region_growing.h 2022-07-13 19:06:39.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Shape_detection/include/CGAL/Shape_detection/deprecated/Region_growing.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Shape_detection/include/CGAL/Shape_detection/deprecated/Region_growing.h $ // $Id: Region_growing.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Shape_detection/deprecated/Shape_detection_traits.h cgal-5.5/include/CGAL/Shape_detection/deprecated/Shape_detection_traits.h --- cgal-5.4.1/include/CGAL/Shape_detection/deprecated/Shape_detection_traits.h 2022-06-03 19:05:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Shape_detection/deprecated/Shape_detection_traits.h 2022-07-13 19:06:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Shape_detection/include/CGAL/Shape_detection/deprecated/Shape_detection_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Shape_detection/include/CGAL/Shape_detection/deprecated/Shape_detection_traits.h $ // $Id: Shape_detection_traits.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Shape_detection/Efficient_RANSAC/Cone.h cgal-5.5/include/CGAL/Shape_detection/Efficient_RANSAC/Cone.h --- cgal-5.4.1/include/CGAL/Shape_detection/Efficient_RANSAC/Cone.h 2022-06-03 19:05:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Shape_detection/Efficient_RANSAC/Cone.h 2022-07-13 19:06:38.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Shape_detection/include/CGAL/Shape_detection/Efficient_RANSAC/Cone.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Shape_detection/include/CGAL/Shape_detection/Efficient_RANSAC/Cone.h $ // $Id: Cone.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Shape_detection/Efficient_RANSAC/Cylinder.h cgal-5.5/include/CGAL/Shape_detection/Efficient_RANSAC/Cylinder.h --- cgal-5.4.1/include/CGAL/Shape_detection/Efficient_RANSAC/Cylinder.h 2022-06-03 19:05:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Shape_detection/Efficient_RANSAC/Cylinder.h 2022-07-13 19:06:38.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Shape_detection/include/CGAL/Shape_detection/Efficient_RANSAC/Cylinder.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Shape_detection/include/CGAL/Shape_detection/Efficient_RANSAC/Cylinder.h $ // $Id: Cylinder.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Shape_detection/Efficient_RANSAC/Efficient_RANSAC.h cgal-5.5/include/CGAL/Shape_detection/Efficient_RANSAC/Efficient_RANSAC.h --- cgal-5.4.1/include/CGAL/Shape_detection/Efficient_RANSAC/Efficient_RANSAC.h 2022-06-03 19:05:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Shape_detection/Efficient_RANSAC/Efficient_RANSAC.h 2022-07-13 19:06:38.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Shape_detection/include/CGAL/Shape_detection/Efficient_RANSAC/Efficient_RANSAC.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Shape_detection/include/CGAL/Shape_detection/Efficient_RANSAC/Efficient_RANSAC.h $ // $Id: Efficient_RANSAC.h 5f0ed6b 2021-07-29T15:26:22+02:00 Dmitry Anisimov // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Shape_detection/Efficient_RANSAC/Efficient_RANSAC_traits.h cgal-5.5/include/CGAL/Shape_detection/Efficient_RANSAC/Efficient_RANSAC_traits.h --- cgal-5.4.1/include/CGAL/Shape_detection/Efficient_RANSAC/Efficient_RANSAC_traits.h 2022-06-03 19:05:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Shape_detection/Efficient_RANSAC/Efficient_RANSAC_traits.h 2022-07-13 19:06:38.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Shape_detection/include/CGAL/Shape_detection/Efficient_RANSAC/Efficient_RANSAC_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Shape_detection/include/CGAL/Shape_detection/Efficient_RANSAC/Efficient_RANSAC_traits.h $ // $Id: Efficient_RANSAC_traits.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Shape_detection/Efficient_RANSAC/Octree.h cgal-5.5/include/CGAL/Shape_detection/Efficient_RANSAC/Octree.h --- cgal-5.4.1/include/CGAL/Shape_detection/Efficient_RANSAC/Octree.h 2022-06-03 19:05:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Shape_detection/Efficient_RANSAC/Octree.h 2022-07-13 19:06:38.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Shape_detection/include/CGAL/Shape_detection/Efficient_RANSAC/Octree.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Shape_detection/include/CGAL/Shape_detection/Efficient_RANSAC/Octree.h $ // $Id: Octree.h 8e7ea14 2021-04-14T10:57:53+02:00 Simon Giraudot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Shape_detection/Efficient_RANSAC/Plane.h cgal-5.5/include/CGAL/Shape_detection/Efficient_RANSAC/Plane.h --- cgal-5.4.1/include/CGAL/Shape_detection/Efficient_RANSAC/Plane.h 2022-06-03 19:05:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Shape_detection/Efficient_RANSAC/Plane.h 2022-07-13 19:06:38.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Shape_detection/include/CGAL/Shape_detection/Efficient_RANSAC/Plane.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Shape_detection/include/CGAL/Shape_detection/Efficient_RANSAC/Plane.h $ // $Id: Plane.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Shape_detection/Efficient_RANSAC/property_map.h cgal-5.5/include/CGAL/Shape_detection/Efficient_RANSAC/property_map.h --- cgal-5.4.1/include/CGAL/Shape_detection/Efficient_RANSAC/property_map.h 2022-06-03 19:05:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Shape_detection/Efficient_RANSAC/property_map.h 2022-07-13 19:06:38.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Shape_detection/include/CGAL/Shape_detection/Efficient_RANSAC/property_map.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Shape_detection/include/CGAL/Shape_detection/Efficient_RANSAC/property_map.h $ // $Id: property_map.h 590ddf8 2021-10-08T15:38:47+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Shape_detection/Efficient_RANSAC/Shape_base.h cgal-5.5/include/CGAL/Shape_detection/Efficient_RANSAC/Shape_base.h --- cgal-5.4.1/include/CGAL/Shape_detection/Efficient_RANSAC/Shape_base.h 2022-06-03 19:05:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Shape_detection/Efficient_RANSAC/Shape_base.h 2022-07-13 19:06:38.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Shape_detection/include/CGAL/Shape_detection/Efficient_RANSAC/Shape_base.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Shape_detection/include/CGAL/Shape_detection/Efficient_RANSAC/Shape_base.h $ // $Id: Shape_base.h ae8ec55 2021-01-19T09:54:58+01:00 Simon Giraudot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Shape_detection/Efficient_RANSAC/Sphere.h cgal-5.5/include/CGAL/Shape_detection/Efficient_RANSAC/Sphere.h --- cgal-5.4.1/include/CGAL/Shape_detection/Efficient_RANSAC/Sphere.h 2022-06-03 19:05:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Shape_detection/Efficient_RANSAC/Sphere.h 2022-07-13 19:06:38.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Shape_detection/include/CGAL/Shape_detection/Efficient_RANSAC/Sphere.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Shape_detection/include/CGAL/Shape_detection/Efficient_RANSAC/Sphere.h $ // $Id: Sphere.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Shape_detection/Efficient_RANSAC/Torus.h cgal-5.5/include/CGAL/Shape_detection/Efficient_RANSAC/Torus.h --- cgal-5.4.1/include/CGAL/Shape_detection/Efficient_RANSAC/Torus.h 2022-06-03 19:05:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Shape_detection/Efficient_RANSAC/Torus.h 2022-07-13 19:06:38.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Shape_detection/include/CGAL/Shape_detection/Efficient_RANSAC/Torus.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Shape_detection/include/CGAL/Shape_detection/Efficient_RANSAC/Torus.h $ // $Id: Torus.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Shape_detection/Efficient_RANSAC.h cgal-5.5/include/CGAL/Shape_detection/Efficient_RANSAC.h --- cgal-5.4.1/include/CGAL/Shape_detection/Efficient_RANSAC.h 2022-06-03 19:05:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Shape_detection/Efficient_RANSAC.h 2022-07-13 19:06:38.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Shape_detection/include/CGAL/Shape_detection/Efficient_RANSAC.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Shape_detection/include/CGAL/Shape_detection/Efficient_RANSAC.h $ // $Id: Efficient_RANSAC.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Shape_detection/Region_growing/internal/fitting.h cgal-5.5/include/CGAL/Shape_detection/Region_growing/internal/fitting.h --- cgal-5.4.1/include/CGAL/Shape_detection/Region_growing/internal/fitting.h 2022-06-03 19:05:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Shape_detection/Region_growing/internal/fitting.h 2022-07-13 19:06:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Shape_detection/include/CGAL/Shape_detection/Region_growing/internal/fitting.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Shape_detection/include/CGAL/Shape_detection/Region_growing/internal/fitting.h $ // $Id: fitting.h 6d2a389 2021-08-16T10:50:58+02:00 Dmitry Anisimov // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Shape_detection/Region_growing/internal/property_map.h cgal-5.5/include/CGAL/Shape_detection/Region_growing/internal/property_map.h --- cgal-5.4.1/include/CGAL/Shape_detection/Region_growing/internal/property_map.h 2022-06-03 19:05:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Shape_detection/Region_growing/internal/property_map.h 2022-07-13 19:06:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Shape_detection/include/CGAL/Shape_detection/Region_growing/internal/property_map.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Shape_detection/include/CGAL/Shape_detection/Region_growing/internal/property_map.h $ // $Id: property_map.h 590ddf8 2021-10-08T15:38:47+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Shape_detection/Region_growing/internal/utils.h cgal-5.5/include/CGAL/Shape_detection/Region_growing/internal/utils.h --- cgal-5.4.1/include/CGAL/Shape_detection/Region_growing/internal/utils.h 2022-06-03 19:05:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Shape_detection/Region_growing/internal/utils.h 2022-07-13 19:06:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Shape_detection/include/CGAL/Shape_detection/Region_growing/internal/utils.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Shape_detection/include/CGAL/Shape_detection/Region_growing/internal/utils.h $ // $Id: utils.h f2d9066 2021-08-19T12:05:30+02:00 Dmitry Anisimov // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Shape_detection/Region_growing/Region_growing.h cgal-5.5/include/CGAL/Shape_detection/Region_growing/Region_growing.h --- cgal-5.4.1/include/CGAL/Shape_detection/Region_growing/Region_growing.h 2022-06-03 19:05:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Shape_detection/Region_growing/Region_growing.h 2022-07-13 19:06:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Shape_detection/include/CGAL/Shape_detection/Region_growing/Region_growing.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Shape_detection/include/CGAL/Shape_detection/Region_growing/Region_growing.h $ // $Id: Region_growing.h 393f547 2020-11-26T14:21:10+01:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/K_neighbor_query.h cgal-5.5/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/K_neighbor_query.h --- cgal-5.4.1/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/K_neighbor_query.h 2022-06-03 19:05:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/K_neighbor_query.h 2022-07-13 19:06:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Shape_detection/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/K_neighbor_query.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Shape_detection/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/K_neighbor_query.h $ // $Id: K_neighbor_query.h 553d3c2 2020-04-10T13:03:50+02:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_circle_fit_region.h cgal-5.5/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_circle_fit_region.h --- cgal-5.4.1/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_circle_fit_region.h 2022-06-03 19:05:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_circle_fit_region.h 2022-07-13 19:06:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Shape_detection/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_circle_fit_region.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Shape_detection/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_circle_fit_region.h $ // $Id: Least_squares_circle_fit_region.h d82ca43 2021-08-20T11:19:22+02:00 Dmitry Anisimov // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_circle_fit_sorting.h cgal-5.5/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_circle_fit_sorting.h --- cgal-5.4.1/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_circle_fit_sorting.h 2022-06-03 19:05:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_circle_fit_sorting.h 2022-07-13 19:06:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Shape_detection/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_circle_fit_sorting.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Shape_detection/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_circle_fit_sorting.h $ // $Id: Least_squares_circle_fit_sorting.h 6fbc190 2021-05-04T11:06:48+02:00 Simon Giraudot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_cylinder_fit_region.h cgal-5.5/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_cylinder_fit_region.h --- cgal-5.4.1/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_cylinder_fit_region.h 2022-06-03 19:05:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_cylinder_fit_region.h 2022-07-13 19:06:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Shape_detection/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_cylinder_fit_region.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Shape_detection/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_cylinder_fit_region.h $ // $Id: Least_squares_cylinder_fit_region.h d82ca43 2021-08-20T11:19:22+02:00 Dmitry Anisimov // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_cylinder_fit_sorting.h cgal-5.5/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_cylinder_fit_sorting.h --- cgal-5.4.1/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_cylinder_fit_sorting.h 2022-06-03 19:05:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_cylinder_fit_sorting.h 2022-07-13 19:06:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Shape_detection/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_cylinder_fit_sorting.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Shape_detection/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_cylinder_fit_sorting.h $ // $Id: Least_squares_cylinder_fit_sorting.h 6fbc190 2021-05-04T11:06:48+02:00 Simon Giraudot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_line_fit_region.h cgal-5.5/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_line_fit_region.h --- cgal-5.4.1/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_line_fit_region.h 2022-06-03 19:05:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_line_fit_region.h 2022-07-13 19:06:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Shape_detection/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_line_fit_region.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Shape_detection/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_line_fit_region.h $ // $Id: Least_squares_line_fit_region.h 9a8b48c 2020-04-10T17:13:26+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_line_fit_sorting.h cgal-5.5/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_line_fit_sorting.h --- cgal-5.4.1/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_line_fit_sorting.h 2022-06-03 19:05:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_line_fit_sorting.h 2022-07-13 19:06:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Shape_detection/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_line_fit_sorting.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Shape_detection/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_line_fit_sorting.h $ // $Id: Least_squares_line_fit_sorting.h 553d3c2 2020-04-10T13:03:50+02:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_plane_fit_region.h cgal-5.5/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_plane_fit_region.h --- cgal-5.4.1/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_plane_fit_region.h 2022-06-03 19:05:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_plane_fit_region.h 2022-07-13 19:06:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Shape_detection/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_plane_fit_region.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Shape_detection/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_plane_fit_region.h $ // $Id: Least_squares_plane_fit_region.h 553d3c2 2020-04-10T13:03:50+02:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_plane_fit_sorting.h cgal-5.5/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_plane_fit_sorting.h --- cgal-5.4.1/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_plane_fit_sorting.h 2022-06-03 19:05:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_plane_fit_sorting.h 2022-07-13 19:06:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Shape_detection/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_plane_fit_sorting.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Shape_detection/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_plane_fit_sorting.h $ // $Id: Least_squares_plane_fit_sorting.h d8789f0 2020-04-15T09:06:36+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_sphere_fit_region.h cgal-5.5/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_sphere_fit_region.h --- cgal-5.4.1/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_sphere_fit_region.h 2022-06-03 19:05:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_sphere_fit_region.h 2022-07-13 19:06:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Shape_detection/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_sphere_fit_region.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Shape_detection/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_sphere_fit_region.h $ // $Id: Least_squares_sphere_fit_region.h d82ca43 2021-08-20T11:19:22+02:00 Dmitry Anisimov // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_sphere_fit_sorting.h cgal-5.5/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_sphere_fit_sorting.h --- cgal-5.4.1/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_sphere_fit_sorting.h 2022-06-03 19:05:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_sphere_fit_sorting.h 2022-07-13 19:06:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Shape_detection/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_sphere_fit_sorting.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Shape_detection/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_sphere_fit_sorting.h $ // $Id: Least_squares_sphere_fit_sorting.h 6fbc190 2021-05-04T11:06:48+02:00 Simon Giraudot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Sphere_neighbor_query.h cgal-5.5/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Sphere_neighbor_query.h --- cgal-5.4.1/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Sphere_neighbor_query.h 2022-06-03 19:05:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Sphere_neighbor_query.h 2022-07-13 19:06:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Shape_detection/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Sphere_neighbor_query.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Shape_detection/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Sphere_neighbor_query.h $ // $Id: Sphere_neighbor_query.h 553d3c2 2020-04-10T13:03:50+02:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set.h cgal-5.5/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set.h --- cgal-5.4.1/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set.h 2022-06-03 19:05:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set.h 2022-07-13 19:06:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Shape_detection/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Shape_detection/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set.h $ // $Id: Region_growing_on_point_set.h ad17c0b 2021-05-04T08:47:08+02:00 Simon Giraudot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Shape_detection/Region_growing/Region_growing_on_polygon_mesh/Least_squares_plane_fit_region.h cgal-5.5/include/CGAL/Shape_detection/Region_growing/Region_growing_on_polygon_mesh/Least_squares_plane_fit_region.h --- cgal-5.4.1/include/CGAL/Shape_detection/Region_growing/Region_growing_on_polygon_mesh/Least_squares_plane_fit_region.h 2022-06-03 19:05:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Shape_detection/Region_growing/Region_growing_on_polygon_mesh/Least_squares_plane_fit_region.h 2022-07-13 19:06:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Shape_detection/include/CGAL/Shape_detection/Region_growing/Region_growing_on_polygon_mesh/Least_squares_plane_fit_region.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Shape_detection/include/CGAL/Shape_detection/Region_growing/Region_growing_on_polygon_mesh/Least_squares_plane_fit_region.h $ // $Id: Least_squares_plane_fit_region.h 393f547 2020-11-26T14:21:10+01:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Shape_detection/Region_growing/Region_growing_on_polygon_mesh/Least_squares_plane_fit_sorting.h cgal-5.5/include/CGAL/Shape_detection/Region_growing/Region_growing_on_polygon_mesh/Least_squares_plane_fit_sorting.h --- cgal-5.4.1/include/CGAL/Shape_detection/Region_growing/Region_growing_on_polygon_mesh/Least_squares_plane_fit_sorting.h 2022-06-03 19:05:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Shape_detection/Region_growing/Region_growing_on_polygon_mesh/Least_squares_plane_fit_sorting.h 2022-07-13 19:06:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Shape_detection/include/CGAL/Shape_detection/Region_growing/Region_growing_on_polygon_mesh/Least_squares_plane_fit_sorting.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Shape_detection/include/CGAL/Shape_detection/Region_growing/Region_growing_on_polygon_mesh/Least_squares_plane_fit_sorting.h $ // $Id: Least_squares_plane_fit_sorting.h d8789f0 2020-04-15T09:06:36+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Shape_detection/Region_growing/Region_growing_on_polygon_mesh/One_ring_neighbor_query.h cgal-5.5/include/CGAL/Shape_detection/Region_growing/Region_growing_on_polygon_mesh/One_ring_neighbor_query.h --- cgal-5.4.1/include/CGAL/Shape_detection/Region_growing/Region_growing_on_polygon_mesh/One_ring_neighbor_query.h 2022-06-03 19:05:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Shape_detection/Region_growing/Region_growing_on_polygon_mesh/One_ring_neighbor_query.h 2022-07-13 19:06:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Shape_detection/include/CGAL/Shape_detection/Region_growing/Region_growing_on_polygon_mesh/One_ring_neighbor_query.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Shape_detection/include/CGAL/Shape_detection/Region_growing/Region_growing_on_polygon_mesh/One_ring_neighbor_query.h $ // $Id: One_ring_neighbor_query.h 393f547 2020-11-26T14:21:10+01:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Shape_detection/Region_growing/Region_growing_on_polygon_mesh.h cgal-5.5/include/CGAL/Shape_detection/Region_growing/Region_growing_on_polygon_mesh.h --- cgal-5.4.1/include/CGAL/Shape_detection/Region_growing/Region_growing_on_polygon_mesh.h 2022-06-03 19:05:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Shape_detection/Region_growing/Region_growing_on_polygon_mesh.h 2022-07-13 19:06:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Shape_detection/include/CGAL/Shape_detection/Region_growing/Region_growing_on_polygon_mesh.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Shape_detection/include/CGAL/Shape_detection/Region_growing/Region_growing_on_polygon_mesh.h $ // $Id: Region_growing_on_polygon_mesh.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Shape_detection/Region_growing.h cgal-5.5/include/CGAL/Shape_detection/Region_growing.h --- cgal-5.4.1/include/CGAL/Shape_detection/Region_growing.h 2022-06-03 19:05:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Shape_detection/Region_growing.h 2022-07-13 19:06:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Shape_detection/include/CGAL/Shape_detection/Region_growing.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Shape_detection/include/CGAL/Shape_detection/Region_growing.h $ // $Id: Region_growing.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Shape_detection_3.h cgal-5.5/include/CGAL/Shape_detection_3.h --- cgal-5.4.1/include/CGAL/Shape_detection_3.h 2022-06-03 19:05:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Shape_detection_3.h 2022-07-13 19:06:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Shape_detection/include/CGAL/Shape_detection_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Shape_detection/include/CGAL/Shape_detection_3.h $ // $Id: Shape_detection_3.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Shape_detection.h cgal-5.5/include/CGAL/Shape_detection.h --- cgal-5.4.1/include/CGAL/Shape_detection.h 2022-06-03 19:05:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Shape_detection.h 2022-07-13 19:06:38.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Shape_detection/include/CGAL/Shape_detection.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Shape_detection/include/CGAL/Shape_detection.h $ // $Id: Shape_detection.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Shape_regularization/Contours/Longest_direction_2.h cgal-5.5/include/CGAL/Shape_regularization/Contours/Longest_direction_2.h --- cgal-5.4.1/include/CGAL/Shape_regularization/Contours/Longest_direction_2.h 2022-06-03 19:05:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Shape_regularization/Contours/Longest_direction_2.h 2022-07-13 19:06:39.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Shape_regularization/include/CGAL/Shape_regularization/Contours/Longest_direction_2.h $ -// $Id: Longest_direction_2.h 9acece5 2021-08-12T17:11:09+02:00 Dmitry Anisimov +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Shape_regularization/include/CGAL/Shape_regularization/Contours/Longest_direction_2.h $ +// $Id: Longest_direction_2.h 75b03e6 2022-01-10T15:33:04+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -95,11 +95,11 @@ \pre input_range.size() >= 3 for closed contours \pre input_range.size() >= 2 for open contours */ - template + template Longest_direction_2( const InputRange& input_range, const bool is_closed, - const NamedParameters& np) : + const NamedParameters& np = parameters::default_values()) : m_input_range(input_range), m_point_map(parameters::choose_parameter(parameters::get_parameter( np, internal_np::point_map), PointMap())) { @@ -121,15 +121,6 @@ } } - /// \cond SKIP_IN_MANUAL - Longest_direction_2( - const InputRange& input_range, - const bool is_closed) : - Longest_direction_2( - input_range, is_closed, CGAL::parameters::all_default()) - { } - /// \endcond - /// @} /// \name Directions diff -Nru cgal-5.4.1/include/CGAL/Shape_regularization/Contours/Multiple_directions_2.h cgal-5.5/include/CGAL/Shape_regularization/Contours/Multiple_directions_2.h --- cgal-5.4.1/include/CGAL/Shape_regularization/Contours/Multiple_directions_2.h 2022-06-03 19:05:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Shape_regularization/Contours/Multiple_directions_2.h 2022-07-13 19:06:39.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Shape_regularization/include/CGAL/Shape_regularization/Contours/Multiple_directions_2.h $ -// $Id: Multiple_directions_2.h c5bea93 2021-06-30T12:39:01+02:00 Dmitry Anisimov +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Shape_regularization/include/CGAL/Shape_regularization/Contours/Multiple_directions_2.h $ +// $Id: Multiple_directions_2.h 75b03e6 2022-01-10T15:33:04+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -18,7 +18,7 @@ // Boost includes. #include -#include +#include // Internal includes. #include @@ -120,11 +120,11 @@ \pre input_range.size() >= 3 for closed contours \pre input_range.size() >= 2 for open contours */ - template + template Multiple_directions_2( const InputRange& input_range, const bool is_closed, - const NamedParameters& np) : + const NamedParameters& np = parameters::default_values()) : m_input_range(input_range), m_point_map(parameters::choose_parameter(parameters::get_parameter( np, internal_np::point_map), PointMap())) { @@ -158,15 +158,6 @@ } } - /// \cond SKIP_IN_MANUAL - Multiple_directions_2( - const InputRange& input_range, - const bool is_closed) : - Multiple_directions_2( - input_range, is_closed, CGAL::parameters::all_default()) - { } - /// \endcond - /// @} /// \name Directions diff -Nru cgal-5.4.1/include/CGAL/Shape_regularization/Contours/User_defined_directions_2.h cgal-5.5/include/CGAL/Shape_regularization/Contours/User_defined_directions_2.h --- cgal-5.4.1/include/CGAL/Shape_regularization/Contours/User_defined_directions_2.h 2022-06-03 19:05:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Shape_regularization/Contours/User_defined_directions_2.h 2022-07-13 19:06:39.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Shape_regularization/include/CGAL/Shape_regularization/Contours/User_defined_directions_2.h $ -// $Id: User_defined_directions_2.h 9acece5 2021-08-12T17:11:09+02:00 Dmitry Anisimov +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Shape_regularization/include/CGAL/Shape_regularization/Contours/User_defined_directions_2.h $ +// $Id: User_defined_directions_2.h 75b03e6 2022-01-10T15:33:04+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -108,12 +108,12 @@ */ template< typename DirectionRange, - typename NamedParameters> + typename NamedParameters = parameters::Default_named_parameters> User_defined_directions_2( const InputRange& input_range, const bool is_closed, const DirectionRange& direction_range, - const NamedParameters& np) : + const NamedParameters& np = parameters::default_values()) : m_input_range(input_range), m_point_map(parameters::choose_parameter(parameters::get_parameter( np, internal_np::point_map), PointMap())), @@ -139,17 +139,6 @@ } } - /// \cond SKIP_IN_MANUAL - template - User_defined_directions_2( - const InputRange& input_range, - const bool is_closed, - const DirectionRange& direction_range) : - User_defined_directions_2( - input_range, is_closed, direction_range, CGAL::parameters::all_default()) - { } - /// \endcond - /// @} /// \name Directions diff -Nru cgal-5.4.1/include/CGAL/Shape_regularization/internal/Closed_contour_2.h cgal-5.5/include/CGAL/Shape_regularization/internal/Closed_contour_2.h --- cgal-5.4.1/include/CGAL/Shape_regularization/internal/Closed_contour_2.h 2022-06-03 19:05:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Shape_regularization/internal/Closed_contour_2.h 2022-07-13 19:06:40.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Shape_regularization/include/CGAL/Shape_regularization/internal/Closed_contour_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Shape_regularization/include/CGAL/Shape_regularization/internal/Closed_contour_2.h $ // $Id: Closed_contour_2.h 614f536 2021-08-06T10:50:42+02:00 Dmitry Anisimov // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Shape_regularization/internal/Collinear_groups_2.h cgal-5.5/include/CGAL/Shape_regularization/internal/Collinear_groups_2.h --- cgal-5.4.1/include/CGAL/Shape_regularization/internal/Collinear_groups_2.h 2022-06-03 19:05:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Shape_regularization/internal/Collinear_groups_2.h 2022-07-13 19:06:40.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Shape_regularization/include/CGAL/Shape_regularization/internal/Collinear_groups_2.h $ -// $Id: Collinear_groups_2.h d04c97e 2021-08-04T12:02:24+02:00 Dmitry Anisimov +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Shape_regularization/include/CGAL/Shape_regularization/internal/Collinear_groups_2.h $ +// $Id: Collinear_groups_2.h 6d3176e 2022-01-07T14:42:25+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -18,7 +18,7 @@ // Boost includes. #include -#include +#include // Internal includes. #include diff -Nru cgal-5.4.1/include/CGAL/Shape_regularization/internal/Contour_base_2.h cgal-5.5/include/CGAL/Shape_regularization/internal/Contour_base_2.h --- cgal-5.4.1/include/CGAL/Shape_regularization/internal/Contour_base_2.h 2022-06-03 19:05:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Shape_regularization/internal/Contour_base_2.h 2022-07-13 19:06:40.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Shape_regularization/include/CGAL/Shape_regularization/internal/Contour_base_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Shape_regularization/include/CGAL/Shape_regularization/internal/Contour_base_2.h $ // $Id: Contour_base_2.h fb8313a 2022-05-05T18:50:46+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Shape_regularization/internal/Contour_regularization_2.h cgal-5.5/include/CGAL/Shape_regularization/internal/Contour_regularization_2.h --- cgal-5.4.1/include/CGAL/Shape_regularization/internal/Contour_regularization_2.h 2022-06-03 19:05:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Shape_regularization/internal/Contour_regularization_2.h 2022-07-13 19:06:40.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Shape_regularization/include/CGAL/Shape_regularization/internal/Contour_regularization_2.h $ -// $Id: Contour_regularization_2.h c5bea93 2021-06-30T12:39:01+02:00 Dmitry Anisimov +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Shape_regularization/include/CGAL/Shape_regularization/internal/Contour_regularization_2.h $ +// $Id: Contour_regularization_2.h 6d3176e 2022-01-07T14:42:25+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -18,7 +18,7 @@ // Boost includes. #include -#include +#include // Internal includes. #include diff -Nru cgal-5.4.1/include/CGAL/Shape_regularization/internal/Open_contour_2.h cgal-5.5/include/CGAL/Shape_regularization/internal/Open_contour_2.h --- cgal-5.4.1/include/CGAL/Shape_regularization/internal/Open_contour_2.h 2022-06-03 19:05:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Shape_regularization/internal/Open_contour_2.h 2022-07-13 19:06:40.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Shape_regularization/include/CGAL/Shape_regularization/internal/Open_contour_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Shape_regularization/include/CGAL/Shape_regularization/internal/Open_contour_2.h $ // $Id: Open_contour_2.h 614f536 2021-08-06T10:50:42+02:00 Dmitry Anisimov // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Shape_regularization/internal/Orthogonal_groups_2.h cgal-5.5/include/CGAL/Shape_regularization/internal/Orthogonal_groups_2.h --- cgal-5.4.1/include/CGAL/Shape_regularization/internal/Orthogonal_groups_2.h 2022-06-03 19:05:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Shape_regularization/internal/Orthogonal_groups_2.h 2022-07-13 19:06:40.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Shape_regularization/include/CGAL/Shape_regularization/internal/Orthogonal_groups_2.h $ -// $Id: Orthogonal_groups_2.h d04c97e 2021-08-04T12:02:24+02:00 Dmitry Anisimov +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Shape_regularization/include/CGAL/Shape_regularization/internal/Orthogonal_groups_2.h $ +// $Id: Orthogonal_groups_2.h 6d3176e 2022-01-07T14:42:25+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -18,7 +18,7 @@ // Boost includes. #include -#include +#include // Internal includes. #include diff -Nru cgal-5.4.1/include/CGAL/Shape_regularization/internal/Parallel_groups_2.h cgal-5.5/include/CGAL/Shape_regularization/internal/Parallel_groups_2.h --- cgal-5.4.1/include/CGAL/Shape_regularization/internal/Parallel_groups_2.h 2022-06-03 19:05:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Shape_regularization/internal/Parallel_groups_2.h 2022-07-13 19:06:40.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Shape_regularization/include/CGAL/Shape_regularization/internal/Parallel_groups_2.h $ -// $Id: Parallel_groups_2.h d04c97e 2021-08-04T12:02:24+02:00 Dmitry Anisimov +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Shape_regularization/include/CGAL/Shape_regularization/internal/Parallel_groups_2.h $ +// $Id: Parallel_groups_2.h 6d3176e 2022-01-07T14:42:25+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -18,7 +18,7 @@ // Boost includes. #include -#include +#include // Internal includes. #include diff -Nru cgal-5.4.1/include/CGAL/Shape_regularization/internal/Segment_wrapper_2.h cgal-5.5/include/CGAL/Shape_regularization/internal/Segment_wrapper_2.h --- cgal-5.4.1/include/CGAL/Shape_regularization/internal/Segment_wrapper_2.h 2022-06-03 19:05:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Shape_regularization/internal/Segment_wrapper_2.h 2022-07-13 19:06:40.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Shape_regularization/include/CGAL/Shape_regularization/internal/Segment_wrapper_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Shape_regularization/include/CGAL/Shape_regularization/internal/Segment_wrapper_2.h $ // $Id: Segment_wrapper_2.h 542f67b 2021-06-11T12:59:00+02:00 Dmitry Anisimov // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Shape_regularization/internal/Unique_segments_2.h cgal-5.5/include/CGAL/Shape_regularization/internal/Unique_segments_2.h --- cgal-5.4.1/include/CGAL/Shape_regularization/internal/Unique_segments_2.h 2022-06-03 19:05:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Shape_regularization/internal/Unique_segments_2.h 2022-07-13 19:06:40.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Shape_regularization/include/CGAL/Shape_regularization/internal/Unique_segments_2.h $ -// $Id: Unique_segments_2.h d04c97e 2021-08-04T12:02:24+02:00 Dmitry Anisimov +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Shape_regularization/include/CGAL/Shape_regularization/internal/Unique_segments_2.h $ +// $Id: Unique_segments_2.h 6d3176e 2022-01-07T14:42:25+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -18,7 +18,7 @@ // Boost includes. #include -#include +#include // Internal includes. #include diff -Nru cgal-5.4.1/include/CGAL/Shape_regularization/internal/utils.h cgal-5.5/include/CGAL/Shape_regularization/internal/utils.h --- cgal-5.4.1/include/CGAL/Shape_regularization/internal/utils.h 2022-06-03 19:05:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Shape_regularization/internal/utils.h 2022-07-13 19:06:40.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Shape_regularization/include/CGAL/Shape_regularization/internal/utils.h $ -// $Id: utils.h 542f67b 2021-06-11T12:59:00+02:00 Dmitry Anisimov +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Shape_regularization/include/CGAL/Shape_regularization/internal/utils.h $ +// $Id: utils.h 6d3176e 2022-01-07T14:42:25+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -41,7 +41,7 @@ #include // Named parameters. -#include +#include #include namespace CGAL { diff -Nru cgal-5.4.1/include/CGAL/Shape_regularization/QP_regularization.h cgal-5.5/include/CGAL/Shape_regularization/QP_regularization.h --- cgal-5.4.1/include/CGAL/Shape_regularization/QP_regularization.h 2022-06-03 19:05:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Shape_regularization/QP_regularization.h 2022-07-13 19:06:39.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Shape_regularization/include/CGAL/Shape_regularization/QP_regularization.h $ -// $Id: QP_regularization.h 9acece5 2021-08-12T17:11:09+02:00 Dmitry Anisimov +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Shape_regularization/include/CGAL/Shape_regularization/QP_regularization.h $ +// $Id: QP_regularization.h 75b03e6 2022-01-10T15:33:04+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -139,13 +139,13 @@ \pre input_range.size() >= 2 */ - template + template QP_regularization( const InputRange& input_range, NeighQuery& neighbor_query, RegType& regularization_type, QPSolver& quadratic_program, - const NamedParameters& np) : + const NamedParameters& np = parameters::default_values()) : m_input_range(input_range), m_neighbor_query(neighbor_query), m_regularization_type(regularization_type), @@ -157,18 +157,6 @@ clear(); } - /// \cond SKIP_IN_MANUAL - QP_regularization( - const InputRange& input_range, - NeighQuery& neighbor_query, - RegType& regularization_type, - QPSolver& quadratic_program) : - QP_regularization( - input_range, neighbor_query, regularization_type, quadratic_program, - CGAL::parameters::all_default()) - { } - /// \endcond - /// @} /// \name Regularization diff -Nru cgal-5.4.1/include/CGAL/Shape_regularization/regularize_contours.h cgal-5.5/include/CGAL/Shape_regularization/regularize_contours.h --- cgal-5.4.1/include/CGAL/Shape_regularization/regularize_contours.h 2022-06-03 19:05:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Shape_regularization/regularize_contours.h 2022-07-13 19:06:40.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Shape_regularization/include/CGAL/Shape_regularization/regularize_contours.h $ -// $Id: regularize_contours.h 298c33f 2021-08-12T18:00:36+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Shape_regularization/include/CGAL/Shape_regularization/regularize_contours.h $ +// $Id: regularize_contours.h 75b03e6 2022-01-10T15:33:04+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -28,7 +28,7 @@ // Boost includes. /// \cond SKIP_IN_MANUAL #include -#include +#include /// \endcond // Internal includes. @@ -115,12 +115,12 @@ typename InputRange, typename ContDirections, typename OutIterator, - typename NamedParameters> + typename NamedParameters = parameters::Default_named_parameters> OutIterator regularize_closed_contour( const InputRange& input_range, const ContDirections& directions, OutIterator contour, - const NamedParameters& np) { + const NamedParameters& np = parameters::default_values()) { using PointMap = typename CGAL::GetPointMap::type; using Point_2 = typename PointMap::value_type; @@ -141,22 +141,6 @@ return regularizer.regularize(contour); } - /// \cond SKIP_IN_MANUAL - template< - typename InputRange, - typename ContDirections, - typename OutIterator> - OutIterator regularize_closed_contour( - const InputRange& input_range, - const ContDirections& directions, - OutIterator contour) { - - CGAL_precondition(input_range.size() >= 3); - return regularize_closed_contour( - input_range, directions, contour, CGAL::parameters::all_default()); - } - /// \endcond - /*! \ingroup PkgShapeRegularizationRefContours @@ -254,12 +238,12 @@ typename InputRange, typename ContDirections, typename OutIterator, - typename NamedParameters> + typename NamedParameters = parameters::Default_named_parameters> OutIterator regularize_open_contour( const InputRange& input_range, const ContDirections& directions, OutIterator contour, - const NamedParameters& np) { + const NamedParameters& np = parameters::default_values()) { using PointMap = typename CGAL::GetPointMap::type; using Point_2 = typename PointMap::value_type; @@ -280,22 +264,6 @@ return regularizer.regularize(contour); } - /// \cond SKIP_IN_MANUAL - template< - typename InputRange, - typename ContDirections, - typename OutIterator> - OutIterator regularize_open_contour( - const InputRange& input_range, - const ContDirections& directions, - OutIterator contour) { - - CGAL_precondition(input_range.size() >= 2); - return regularize_open_contour( - input_range, directions, contour, CGAL::parameters::all_default()); - } - /// \endcond - /*! \ingroup PkgShapeRegularizationRefContours diff -Nru cgal-5.4.1/include/CGAL/Shape_regularization/regularize_planes.h cgal-5.5/include/CGAL/Shape_regularization/regularize_planes.h --- cgal-5.4.1/include/CGAL/Shape_regularization/regularize_planes.h 2022-06-03 19:05:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Shape_regularization/regularize_planes.h 2022-07-13 19:06:40.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Shape_regularization/include/CGAL/Shape_regularization/regularize_planes.h $ -// $Id: regularize_planes.h 9acece5 2021-08-12T17:11:09+02:00 Dmitry Anisimov +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Shape_regularization/include/CGAL/Shape_regularization/regularize_planes.h $ +// $Id: regularize_planes.h 477353d 2022-04-20T15:55:50+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -28,7 +28,7 @@ // Boost includes. /// \cond SKIP_IN_MANUAL #include -#include +#include /// \endcond // Shape detection includes. @@ -282,23 +282,23 @@ typename PlaneMap, typename PointRange, typename PointMap, - typename NamedParameters> + typename NamedParameters = parameters::Default_named_parameters> void regularize_planes( PlaneRange& planes, const PlaneMap plane_map, const PointRange& points, const PointMap point_map, - const NamedParameters& np) { + const NamedParameters& np = parameters::default_values()) { using parameters::get_parameter; using parameters::choose_parameter; - using PlaneIndexMap = typename CGAL::Point_set_processing_3:: - GetPlaneIndexMap::type; + using parameters::is_default_parameter; + + using PlaneIndexMap = typename CGAL::Point_set_processing_3::GetPlaneIndexMap::type; + + CGAL_static_assertion_msg((!is_default_parameter::value), + "Error: no plane index map"); - CGAL_static_assertion_msg( - !(boost::is_same::NoMap>::value), - "Error: no index map found!"); const PlaneIndexMap index_map = choose_parameter(get_parameter(np, internal_np::plane_index_map), PlaneIndexMap()); @@ -337,21 +337,6 @@ reg_prll, reg_orth, reg_copl, reg_symm, tol_angle, tol_copln, sym_dir); } - - template< - typename PlaneRange, - typename PlaneMap, - typename PointRange, - typename PointMap> - void regularize_planes( - PlaneRange& planes, - const PlaneMap plane_map, - const PointRange& points, - const PointMap point_map) { - - regularize_planes( - planes, plane_map, points, point_map, CGAL::parameters::all_default()); - } /// \endcond /*! @@ -391,9 +376,7 @@ for more details \param np - an optional sequence of \ref bgl_namedparameters "Named Parameters" - among the ones listed below; this parameter can be omitted, - the default values are then used + a sequence of \ref bgl_namedparameters "Named Parameters" among the ones listed below: \cgalNamedParamsBegin \cgalParamNBegin{plane_map} @@ -411,7 +394,7 @@ in the `points` range to the index of a plane in the `planes` range (-1 if point is not assigned to a plane)} \cgalParamType{a model of `ReadablePropertyMap` with `std::size_t` as key type and `int` as value type} - \cgalParamDefault{`PlaneIndexMap()`} + \cgalParamDefault{There is no default, this parameters is mandatory} \cgalParamNEnd \cgalParamNBegin{maximum_angle} \cgalParamDescription{maximum allowed angle in degrees between plane normals used @@ -477,18 +460,6 @@ regularize_planes(planes, plane_map, points, point_map, np); } - /// \cond SKIP_IN_MANUAL - template< - typename PlaneRange, - typename PointRange> - void regularize_planes( - PlaneRange& planes, const PointRange& points) { - - regularize_planes( - planes, points, CGAL::parameters::all_default()); - } - /// \endcond - } // namespace Planes } // namespace Shape_regularization } // namespace CGAL diff -Nru cgal-5.4.1/include/CGAL/Shape_regularization/regularize_segments.h cgal-5.5/include/CGAL/Shape_regularization/regularize_segments.h --- cgal-5.4.1/include/CGAL/Shape_regularization/regularize_segments.h 2022-06-03 19:05:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Shape_regularization/regularize_segments.h 2022-07-13 19:06:40.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Shape_regularization/include/CGAL/Shape_regularization/regularize_segments.h $ -// $Id: regularize_segments.h 9acece5 2021-08-12T17:11:09+02:00 Dmitry Anisimov +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Shape_regularization/include/CGAL/Shape_regularization/regularize_segments.h $ +// $Id: regularize_segments.h 75b03e6 2022-01-10T15:33:04+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -28,7 +28,7 @@ // Boost includes. /// \cond SKIP_IN_MANUAL #include -#include +#include /// \endcond // Internal includes. @@ -129,13 +129,13 @@ typename NeighQuery, typename RegType, typename QPSolver, - typename NamedParameters> + typename NamedParameters = parameters::Default_named_parameters> void regularize_segments( InputRange& input_range, NeighQuery& neighbor_query, RegType& regularization_type, QPSolver& quadratic_program, - const NamedParameters& np) { + const NamedParameters& np = parameters::default_values()) { using SegmentMap = typename internal::GetSegmentMap::type; using Segment_2 = typename SegmentMap::value_type; @@ -150,25 +150,6 @@ regularizer.regularize(); } - /// \cond SKIP_IN_MANUAL - template< - typename InputRange, - typename NeighQuery, - typename RegType, - typename QPSolver> - void regularize_segments( - InputRange& input_range, - NeighQuery& neighbor_query, - RegType& regularization_type, - QPSolver& quadratic_program) { - - CGAL_precondition(input_range.size() >= 2); - regularize_segments( - input_range, neighbor_query, regularization_type, quadratic_program, - CGAL::parameters::all_default()); - } - /// \endcond - #if defined(CGAL_USE_OSQP) || defined(DOXYGEN_RUNNING) /// \cond SKIP_IN_MANUAL @@ -385,11 +366,11 @@ template< typename InputRange, typename OutIterator, - typename NamedParameters> + typename NamedParameters = parameters::Default_named_parameters> OutIterator parallel_groups( const InputRange& input_range, OutIterator groups, - const NamedParameters& np) { + const NamedParameters& np = parameters::default_values()) { using SegmentMap = typename internal::GetSegmentMap::type; using Segment_2 = typename SegmentMap::value_type; @@ -409,20 +390,6 @@ return grouping.groups(groups); } - /// \cond SKIP_IN_MANUAL - template< - typename InputRange, - typename OutIterator> - OutIterator parallel_groups( - const InputRange& input_range, - OutIterator groups) { - - CGAL_precondition(input_range.size() >= 1); - return parallel_groups( - input_range, groups, CGAL::parameters::all_default()); - } - /// \endcond - /*! \ingroup PkgShapeRegularizationRefSegments @@ -492,11 +459,11 @@ template< typename InputRange, typename OutIterator, - typename NamedParameters> + typename NamedParameters = parameters::Default_named_parameters> OutIterator collinear_groups( const InputRange& input_range, OutIterator groups, - const NamedParameters& np) { + const NamedParameters& np = parameters::default_values()) { using SegmentMap = typename internal::GetSegmentMap::type; using Segment_2 = typename SegmentMap::value_type; @@ -516,20 +483,6 @@ return grouping.groups(groups); } - /// \cond SKIP_IN_MANUAL - template< - typename InputRange, - typename OutIterator> - OutIterator collinear_groups( - const InputRange& input_range, - OutIterator groups) { - - CGAL_precondition(input_range.size() >= 1); - return collinear_groups( - input_range, groups, CGAL::parameters::all_default()); - } - /// \endcond - /*! \ingroup PkgShapeRegularizationRefSegments @@ -599,11 +552,11 @@ template< typename InputRange, typename OutIterator, - typename NamedParameters> + typename NamedParameters = parameters::Default_named_parameters> OutIterator orthogonal_groups( const InputRange& input_range, OutIterator groups, - const NamedParameters& np) { + const NamedParameters& np = parameters::default_values()) { using SegmentMap = typename internal::GetSegmentMap::type; using Segment_2 = typename SegmentMap::value_type; @@ -623,20 +576,6 @@ return grouping.groups(groups); } - /// \cond SKIP_IN_MANUAL - template< - typename InputRange, - typename OutIterator> - OutIterator orthogonal_groups( - const InputRange& input_range, - OutIterator groups) { - - CGAL_precondition(input_range.size() >= 1); - return orthogonal_groups( - input_range, groups, CGAL::parameters::all_default()); - } - /// \endcond - /*! \ingroup PkgShapeRegularizationRefSegments @@ -705,11 +644,11 @@ template< typename InputRange, typename OutIterator, - typename NamedParameters> + typename NamedParameters = parameters::Default_named_parameters> OutIterator unique_segments( const InputRange& input_range, OutIterator segments, - const NamedParameters& np) { + const NamedParameters& np = parameters::default_values()) { using SegmentMap = typename internal::GetSegmentMap::type; using Segment_2 = typename SegmentMap::value_type; @@ -729,20 +668,6 @@ return unique.segments(segments); } - /// \cond SKIP_IN_MANUAL - template< - typename InputRange, - typename OutIterator> - OutIterator unique_segments( - const InputRange& input_range, - OutIterator segments) { - - CGAL_precondition(input_range.size() >= 1); - return unique_segments( - input_range, segments, CGAL::parameters::all_default()); - } - /// \endcond - } // namespace Segments } // namespace Shape_regularization } // namespace CGAL diff -Nru cgal-5.4.1/include/CGAL/Shape_regularization/Segments/Angle_regularization_2.h cgal-5.5/include/CGAL/Shape_regularization/Segments/Angle_regularization_2.h --- cgal-5.4.1/include/CGAL/Shape_regularization/Segments/Angle_regularization_2.h 2022-06-03 19:05:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Shape_regularization/Segments/Angle_regularization_2.h 2022-07-13 19:06:39.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Shape_regularization/include/CGAL/Shape_regularization/Segments/Angle_regularization_2.h $ -// $Id: Angle_regularization_2.h d04c97e 2021-08-04T12:02:24+02:00 Dmitry Anisimov +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Shape_regularization/include/CGAL/Shape_regularization/Segments/Angle_regularization_2.h $ +// $Id: Angle_regularization_2.h 75b03e6 2022-01-10T15:33:04+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -18,7 +18,7 @@ // Boost includes. #include -#include +#include // Internal includes. #include @@ -115,10 +115,10 @@ \pre input_range.size() >= 2 \pre maximum_angle >= 0 && maximum_angle <= 90 */ - template + template Angle_regularization_2( InputRange& input_range, - const NamedParameters& np) : + const NamedParameters& np = parameters::default_values()) : m_input_range(input_range), m_segment_map(parameters::choose_parameter(parameters::get_parameter( np, internal_np::segment_map), SegmentMap())), @@ -138,14 +138,6 @@ create_unique_group(); } - /// \cond SKIP_IN_MANUAL - Angle_regularization_2( - InputRange& input_range) : - Angle_regularization_2( - input_range, CGAL::parameters::all_default()) - { } - /// \endcond - /*! \brief inserts a group of segments from `input_range`. diff -Nru cgal-5.4.1/include/CGAL/Shape_regularization/Segments/Delaunay_neighbor_query_2.h cgal-5.5/include/CGAL/Shape_regularization/Segments/Delaunay_neighbor_query_2.h --- cgal-5.4.1/include/CGAL/Shape_regularization/Segments/Delaunay_neighbor_query_2.h 2022-06-03 19:05:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Shape_regularization/Segments/Delaunay_neighbor_query_2.h 2022-07-13 19:06:39.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Shape_regularization/include/CGAL/Shape_regularization/Segments/Delaunay_neighbor_query_2.h $ -// $Id: Delaunay_neighbor_query_2.h 9acece5 2021-08-12T17:11:09+02:00 Dmitry Anisimov +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Shape_regularization/include/CGAL/Shape_regularization/Segments/Delaunay_neighbor_query_2.h $ +// $Id: Delaunay_neighbor_query_2.h 75b03e6 2022-01-10T15:33:04+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -105,10 +105,10 @@ \pre input_range.size() >= 2 */ - template + template Delaunay_neighbor_query_2( const InputRange& input_range, - const NamedParameters& np) : + const NamedParameters& np = parameters::default_values()) : m_input_range(input_range), m_segment_map(parameters::choose_parameter(parameters::get_parameter( np, internal_np::segment_map), SegmentMap())) { @@ -117,14 +117,6 @@ create_unique_group(); } - /// \cond SKIP_IN_MANUAL - Delaunay_neighbor_query_2( - InputRange& input_range) : - Delaunay_neighbor_query_2( - input_range, CGAL::parameters::all_default()) - { } - /// \endcond - /*! \brief inserts a group of segments from `input_range` and finds their neighbors within the group. diff -Nru cgal-5.4.1/include/CGAL/Shape_regularization/Segments/Offset_regularization_2.h cgal-5.5/include/CGAL/Shape_regularization/Segments/Offset_regularization_2.h --- cgal-5.4.1/include/CGAL/Shape_regularization/Segments/Offset_regularization_2.h 2022-06-03 19:05:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Shape_regularization/Segments/Offset_regularization_2.h 2022-07-13 19:06:39.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Shape_regularization/include/CGAL/Shape_regularization/Segments/Offset_regularization_2.h $ -// $Id: Offset_regularization_2.h d04c97e 2021-08-04T12:02:24+02:00 Dmitry Anisimov +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Shape_regularization/include/CGAL/Shape_regularization/Segments/Offset_regularization_2.h $ +// $Id: Offset_regularization_2.h 75b03e6 2022-01-10T15:33:04+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -18,7 +18,7 @@ // Boost includes. #include -#include +#include // Internal includes. #include @@ -119,10 +119,10 @@ \pre input_range.size() >= 2 \pre maximum_offset >= 0 */ - template + template Offset_regularization_2( InputRange& input_range, - const NamedParameters& np) : + const NamedParameters& np = parameters::default_values()) : m_input_range(input_range), m_segment_map(parameters::choose_parameter(parameters::get_parameter( np, internal_np::segment_map), SegmentMap())), @@ -142,14 +142,6 @@ create_unique_group(); } - /// \cond SKIP_IN_MANUAL - Offset_regularization_2( - InputRange& input_range) : - Offset_regularization_2( - input_range, CGAL::parameters::all_default()) - { } - /// \endcond - /*! \brief inserts a group of segments from `input_range`. diff -Nru cgal-5.4.1/include/CGAL/Shape_regularization.h cgal-5.5/include/CGAL/Shape_regularization.h --- cgal-5.4.1/include/CGAL/Shape_regularization.h 2022-06-03 19:05:43.000000000 +0000 +++ cgal-5.5/include/CGAL/Shape_regularization.h 2022-07-13 19:06:39.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Shape_regularization/include/CGAL/Shape_regularization.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Shape_regularization/include/CGAL/Shape_regularization.h $ // $Id: Shape_regularization.h cfd9b85 2021-06-30T11:51:19+02:00 Dmitry Anisimov // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/sibson_gradient_fitting.h cgal-5.5/include/CGAL/sibson_gradient_fitting.h --- cgal-5.4.1/include/CGAL/sibson_gradient_fitting.h 2022-06-03 19:04:25.000000000 +0000 +++ cgal-5.5/include/CGAL/sibson_gradient_fitting.h 2022-07-13 19:05:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Interpolation/include/CGAL/sibson_gradient_fitting.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Interpolation/include/CGAL/sibson_gradient_fitting.h $ // $Id: sibson_gradient_fitting.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Side_of_bounded_square_2.h cgal-5.5/include/CGAL/Side_of_bounded_square_2.h --- cgal-5.4.1/include/CGAL/Side_of_bounded_square_2.h 2022-06-03 19:05:40.000000000 +0000 +++ cgal-5.5/include/CGAL/Side_of_bounded_square_2.h 2022-07-13 19:06:36.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_Linf_2/include/CGAL/Side_of_bounded_square_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_Linf_2/include/CGAL/Side_of_bounded_square_2.h $ // $Id: Side_of_bounded_square_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Side_of_oriented_square_2.h cgal-5.5/include/CGAL/Side_of_oriented_square_2.h --- cgal-5.4.1/include/CGAL/Side_of_oriented_square_2.h 2022-06-03 19:05:40.000000000 +0000 +++ cgal-5.5/include/CGAL/Side_of_oriented_square_2.h 2022-07-13 19:06:36.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Segment_Delaunay_graph_Linf_2/include/CGAL/Side_of_oriented_square_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Segment_Delaunay_graph_Linf_2/include/CGAL/Side_of_oriented_square_2.h $ // $Id: Side_of_oriented_square_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Side_of_triangle_mesh.h cgal-5.5/include/CGAL/Side_of_triangle_mesh.h --- cgal-5.4.1/include/CGAL/Side_of_triangle_mesh.h 2022-06-03 19:05:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Side_of_triangle_mesh.h 2022-07-13 19:06:09.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Side_of_triangle_mesh.h $ -// $Id: Side_of_triangle_mesh.h c30056b 2021-02-05T13:51:21+01:00 Sebastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Side_of_triangle_mesh.h $ +// $Id: Side_of_triangle_mesh.h bb0b9a8 2022-03-07T15:32:37+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -29,7 +29,7 @@ namespace CGAL { /** - * \ingroup PkgPolygonMeshProcessingRef + * \ingroup PMP_predicates_grp * This class provides an efficient point location functionality with respect to a domain bounded * by one or several disjoint closed triangle meshes. * diff -Nru cgal-5.4.1/include/CGAL/Simple_cartesian.h cgal-5.5/include/CGAL/Simple_cartesian.h --- cgal-5.4.1/include/CGAL/Simple_cartesian.h 2022-06-03 19:03:58.000000000 +0000 +++ cgal-5.5/include/CGAL/Simple_cartesian.h 2022-07-13 19:04:45.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Cartesian_kernel/include/CGAL/Simple_cartesian.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Cartesian_kernel/include/CGAL/Simple_cartesian.h $ // $Id: Simple_cartesian.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Simple_circular_kernel_2.h cgal-5.5/include/CGAL/Simple_circular_kernel_2.h --- cgal-5.4.1/include/CGAL/Simple_circular_kernel_2.h 2022-06-03 19:04:01.000000000 +0000 +++ cgal-5.5/include/CGAL/Simple_circular_kernel_2.h 2022-07-13 19:04:48.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Circular_kernel_2/include/CGAL/Simple_circular_kernel_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Circular_kernel_2/include/CGAL/Simple_circular_kernel_2.h $ // $Id: Simple_circular_kernel_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Simple_homogeneous.h cgal-5.5/include/CGAL/Simple_homogeneous.h --- cgal-5.4.1/include/CGAL/Simple_homogeneous.h 2022-06-03 19:04:18.000000000 +0000 +++ cgal-5.5/include/CGAL/Simple_homogeneous.h 2022-07-13 19:05:08.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Homogeneous_kernel/include/CGAL/Simple_homogeneous.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Homogeneous_kernel/include/CGAL/Simple_homogeneous.h $ // $Id: Simple_homogeneous.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Simple_polygon_visibility_2.h cgal-5.5/include/CGAL/Simple_polygon_visibility_2.h --- cgal-5.4.1/include/CGAL/Simple_polygon_visibility_2.h 2022-06-03 19:06:12.000000000 +0000 +++ cgal-5.5/include/CGAL/Simple_polygon_visibility_2.h 2022-07-13 19:07:11.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Visibility_2/include/CGAL/Simple_polygon_visibility_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Visibility_2/include/CGAL/Simple_polygon_visibility_2.h $ // $Id: Simple_polygon_visibility_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Simple_spherical_kernel_3.h cgal-5.5/include/CGAL/Simple_spherical_kernel_3.h --- cgal-5.4.1/include/CGAL/Simple_spherical_kernel_3.h 2022-06-03 19:04:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Simple_spherical_kernel_3.h 2022-07-13 19:04:52.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Circular_kernel_3/include/CGAL/Simple_spherical_kernel_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Circular_kernel_3/include/CGAL/Simple_spherical_kernel_3.h $ // $Id: Simple_spherical_kernel_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/simplest_rational_in_interval.h cgal-5.5/include/CGAL/simplest_rational_in_interval.h --- cgal-5.4.1/include/CGAL/simplest_rational_in_interval.h 2022-06-03 19:05:02.000000000 +0000 +++ cgal-5.5/include/CGAL/simplest_rational_in_interval.h 2022-07-13 19:05:55.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/simplest_rational_in_interval.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/simplest_rational_in_interval.h $ // $Id: simplest_rational_in_interval.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/simple_transformations_d.h cgal-5.5/include/CGAL/simple_transformations_d.h --- cgal-5.4.1/include/CGAL/simple_transformations_d.h 2022-06-03 19:04:39.000000000 +0000 +++ cgal-5.5/include/CGAL/simple_transformations_d.h 2022-07-13 19:05:31.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_d/include/CGAL/simple_transformations_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_d/include/CGAL/simple_transformations_d.h $ // $Id: simple_transformations_d.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Single.h cgal-5.5/include/CGAL/Single.h --- cgal-5.4.1/include/CGAL/Single.h 2022-06-03 19:05:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Single.h 2022-07-13 19:06:28.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/Single.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/Single.h $ // $Id: Single.h ff845cc 2020-08-25T13:48:48+02:00 Simon Giraudot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Sixtuple.h cgal-5.5/include/CGAL/Sixtuple.h --- cgal-5.4.1/include/CGAL/Sixtuple.h 2022-06-03 19:05:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Sixtuple.h 2022-07-13 19:06:28.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/Sixtuple.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/Sixtuple.h $ // $Id: Sixtuple.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Skin_surface_3.h cgal-5.5/include/CGAL/Skin_surface_3.h --- cgal-5.4.1/include/CGAL/Skin_surface_3.h 2022-06-03 19:05:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Skin_surface_3.h 2022-07-13 19:06:40.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Skin_surface_3/include/CGAL/Skin_surface_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Skin_surface_3/include/CGAL/Skin_surface_3.h $ // $Id: Skin_surface_3.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Skin_surface_base_3.h cgal-5.5/include/CGAL/Skin_surface_base_3.h --- cgal-5.4.1/include/CGAL/Skin_surface_base_3.h 2022-06-03 19:05:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Skin_surface_base_3.h 2022-07-13 19:06:40.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Skin_surface_3/include/CGAL/Skin_surface_base_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Skin_surface_3/include/CGAL/Skin_surface_base_3.h $ // $Id: Skin_surface_base_3.h 74c029c 2021-09-09T11:44:36+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Skin_surface_filtered_traits_3.h cgal-5.5/include/CGAL/Skin_surface_filtered_traits_3.h --- cgal-5.4.1/include/CGAL/Skin_surface_filtered_traits_3.h 2022-06-03 19:05:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Skin_surface_filtered_traits_3.h 2022-07-13 19:06:40.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Skin_surface_3/include/CGAL/Skin_surface_filtered_traits_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Skin_surface_3/include/CGAL/Skin_surface_filtered_traits_3.h $ // $Id: Skin_surface_filtered_traits_3.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Skin_surface_marching_tetrahedra_observer_3.h cgal-5.5/include/CGAL/Skin_surface_marching_tetrahedra_observer_3.h --- cgal-5.4.1/include/CGAL/Skin_surface_marching_tetrahedra_observer_3.h 2022-06-03 19:05:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Skin_surface_marching_tetrahedra_observer_3.h 2022-07-13 19:06:40.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Skin_surface_3/include/CGAL/Skin_surface_marching_tetrahedra_observer_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Skin_surface_3/include/CGAL/Skin_surface_marching_tetrahedra_observer_3.h $ // $Id: Skin_surface_marching_tetrahedra_observer_3.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Skin_surface_polyhedral_items_3.h cgal-5.5/include/CGAL/Skin_surface_polyhedral_items_3.h --- cgal-5.4.1/include/CGAL/Skin_surface_polyhedral_items_3.h 2022-06-03 19:05:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Skin_surface_polyhedral_items_3.h 2022-07-13 19:06:41.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Skin_surface_3/include/CGAL/Skin_surface_polyhedral_items_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Skin_surface_3/include/CGAL/Skin_surface_polyhedral_items_3.h $ // $Id: Skin_surface_polyhedral_items_3.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Skin_surface_polyhedral_items_with_face_information.h cgal-5.5/include/CGAL/Skin_surface_polyhedral_items_with_face_information.h --- cgal-5.4.1/include/CGAL/Skin_surface_polyhedral_items_with_face_information.h 2022-06-03 19:05:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Skin_surface_polyhedral_items_with_face_information.h 2022-07-13 19:06:41.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Skin_surface_3/include/CGAL/Skin_surface_polyhedral_items_with_face_information.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Skin_surface_3/include/CGAL/Skin_surface_polyhedral_items_with_face_information.h $ // $Id: Skin_surface_polyhedral_items_with_face_information.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Skin_surface_quadratic_surface_3.h cgal-5.5/include/CGAL/Skin_surface_quadratic_surface_3.h --- cgal-5.4.1/include/CGAL/Skin_surface_quadratic_surface_3.h 2022-06-03 19:05:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Skin_surface_quadratic_surface_3.h 2022-07-13 19:06:41.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Skin_surface_3/include/CGAL/Skin_surface_quadratic_surface_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Skin_surface_3/include/CGAL/Skin_surface_quadratic_surface_3.h $ // $Id: Skin_surface_quadratic_surface_3.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Skin_surface_refinement_policy_3.h cgal-5.5/include/CGAL/Skin_surface_refinement_policy_3.h --- cgal-5.4.1/include/CGAL/Skin_surface_refinement_policy_3.h 2022-06-03 19:05:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Skin_surface_refinement_policy_3.h 2022-07-13 19:06:41.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Skin_surface_3/include/CGAL/Skin_surface_refinement_policy_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Skin_surface_3/include/CGAL/Skin_surface_refinement_policy_3.h $ // $Id: Skin_surface_refinement_policy_3.h 0d28171 2021-06-23T17:40:25+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Skin_surface_traits_3.h cgal-5.5/include/CGAL/Skin_surface_traits_3.h --- cgal-5.4.1/include/CGAL/Skin_surface_traits_3.h 2022-06-03 19:05:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Skin_surface_traits_3.h 2022-07-13 19:06:41.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Skin_surface_3/include/CGAL/Skin_surface_traits_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Skin_surface_3/include/CGAL/Skin_surface_traits_3.h $ // $Id: Skin_surface_traits_3.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Skiplist.h cgal-5.5/include/CGAL/Skiplist.h --- cgal-5.4.1/include/CGAL/Skiplist.h 2022-06-03 19:05:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Skiplist.h 2022-07-13 19:06:28.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/Skiplist.h $ -// $Id: Skiplist.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/Skiplist.h $ +// $Id: Skiplist.h 34ad804 2022-06-16T14:46:36+01:00 Andreas Fabri // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Philipp Moeller @@ -234,8 +234,8 @@ void pop_back() { - all_.pop_back(); skip_.pop_back(); + all_.pop_back_and_dispose(Node_disposer()); } /// Insert \c t before \c pos in the all_view. \t will not be inserted into the skip view. diff -Nru cgal-5.4.1/include/CGAL/Small_side_angle_bisector_decomposition_2.h cgal-5.5/include/CGAL/Small_side_angle_bisector_decomposition_2.h --- cgal-5.4.1/include/CGAL/Small_side_angle_bisector_decomposition_2.h 2022-06-03 19:04:52.000000000 +0000 +++ cgal-5.5/include/CGAL/Small_side_angle_bisector_decomposition_2.h 2022-07-13 19:05:45.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Minkowski_sum_2/include/CGAL/Small_side_angle_bisector_decomposition_2.h $ -// $Id: Small_side_angle_bisector_decomposition_2.h 0d66e19 2020-07-24T17:05:10+02:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Minkowski_sum_2/include/CGAL/Small_side_angle_bisector_decomposition_2.h $ +// $Id: Small_side_angle_bisector_decomposition_2.h 414103f 2022-02-21T17:17:34+02:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Ron Wein @@ -106,12 +106,34 @@ Ccw_in_between_2 f_ccw_in_between; public: + // The pointer to the kernel and the flag that indicate ownership should be + // replaced with a smart pointer. Meanwhile, the copy constructor and + // copy assignment prevent double delition. Notice that once a copy + // constructor (assignment) is present, the move constructor (assignment) + // is implicitly not generated anyway. + /*! Default constructor. */ Small_side_angle_bisector_decomposition_2() : m_kernel(new Kernel), m_own_kernel(true) { init(); } + /*! Copy constructor. */ + Small_side_angle_bisector_decomposition_2 + (const Small_side_angle_bisector_decomposition_2& other) : + m_kernel((other.m_own_kernel) ? new Kernel : other.m_kernel), + m_own_kernel(other.m_own_kernel) + { init(); } + + /*! Copy assignment. */ + Small_side_angle_bisector_decomposition_2& + operator=(const Small_side_angle_bisector_decomposition_2& other) { + m_kernel = (other.m_own_kernel) ? new Kernel : other.m_kernel; + m_own_kernel = other.m_own_kernel; + init(); + return *this; + } + /*! Constructor. */ Small_side_angle_bisector_decomposition_2(const Kernel& kernel) : m_kernel(&kernel), diff -Nru cgal-5.4.1/include/CGAL/Small_unordered_map.h cgal-5.5/include/CGAL/Small_unordered_map.h --- cgal-5.4.1/include/CGAL/Small_unordered_map.h 2022-06-03 19:05:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Small_unordered_map.h 2022-07-13 19:06:28.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/Small_unordered_map.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/Small_unordered_map.h $ // $Id: Small_unordered_map.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Small_unordered_set.h cgal-5.5/include/CGAL/Small_unordered_set.h --- cgal-5.4.1/include/CGAL/Small_unordered_set.h 2022-06-03 19:05:33.000000000 +0000 +++ cgal-5.5/include/CGAL/Small_unordered_set.h 2022-07-13 19:06:28.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/Small_unordered_set.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/Small_unordered_set.h $ // $Id: Small_unordered_set.h b51be55 2020-08-12T12:50:10+02:00 Simon Giraudot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Snap_rounding_2.h cgal-5.5/include/CGAL/Snap_rounding_2.h --- cgal-5.4.1/include/CGAL/Snap_rounding_2.h 2022-06-03 19:05:45.000000000 +0000 +++ cgal-5.5/include/CGAL/Snap_rounding_2.h 2022-07-13 19:06:41.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Snap_rounding_2/include/CGAL/Snap_rounding_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Snap_rounding_2/include/CGAL/Snap_rounding_2.h $ // $Id: Snap_rounding_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Snap_rounding_kd_2.h cgal-5.5/include/CGAL/Snap_rounding_kd_2.h --- cgal-5.4.1/include/CGAL/Snap_rounding_kd_2.h 2022-06-03 19:05:45.000000000 +0000 +++ cgal-5.5/include/CGAL/Snap_rounding_kd_2.h 2022-07-13 19:06:41.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Snap_rounding_2/include/CGAL/Snap_rounding_kd_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Snap_rounding_2/include/CGAL/Snap_rounding_kd_2.h $ // $Id: Snap_rounding_kd_2.h 3c7eb2c 2020-01-07T15:31:07+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Snap_rounding_traits_2.h cgal-5.5/include/CGAL/Snap_rounding_traits_2.h --- cgal-5.4.1/include/CGAL/Snap_rounding_traits_2.h 2022-06-03 19:05:45.000000000 +0000 +++ cgal-5.5/include/CGAL/Snap_rounding_traits_2.h 2022-07-13 19:06:41.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Snap_rounding_2/include/CGAL/Snap_rounding_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Snap_rounding_2/include/CGAL/Snap_rounding_traits_2.h $ // $Id: Snap_rounding_traits_2.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/sorted_matrix_search.h cgal-5.5/include/CGAL/sorted_matrix_search.h --- cgal-5.4.1/include/CGAL/sorted_matrix_search.h 2022-06-03 19:04:42.000000000 +0000 +++ cgal-5.5/include/CGAL/sorted_matrix_search.h 2022-07-13 19:05:34.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Matrix_search/include/CGAL/sorted_matrix_search.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Matrix_search/include/CGAL/sorted_matrix_search.h $ // $Id: sorted_matrix_search.h 1e249af 2020-11-10T19:21:21+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Sorted_matrix_search_traits_adaptor.h cgal-5.5/include/CGAL/Sorted_matrix_search_traits_adaptor.h --- cgal-5.4.1/include/CGAL/Sorted_matrix_search_traits_adaptor.h 2022-06-03 19:04:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Sorted_matrix_search_traits_adaptor.h 2022-07-13 19:05:34.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Matrix_search/include/CGAL/Sorted_matrix_search_traits_adaptor.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Matrix_search/include/CGAL/Sorted_matrix_search_traits_adaptor.h $ // $Id: Sorted_matrix_search_traits_adaptor.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Spatial_lock_grid_3.h cgal-5.5/include/CGAL/Spatial_lock_grid_3.h --- cgal-5.4.1/include/CGAL/Spatial_lock_grid_3.h 2022-06-03 19:05:33.000000000 +0000 +++ cgal-5.5/include/CGAL/Spatial_lock_grid_3.h 2022-07-13 19:06:28.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/Spatial_lock_grid_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/Spatial_lock_grid_3.h $ // $Id: Spatial_lock_grid_3.h 288c283 2021-08-30T19:24:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Spatial_searching/internal/bounded_priority_queue.h cgal-5.5/include/CGAL/Spatial_searching/internal/bounded_priority_queue.h --- cgal-5.4.1/include/CGAL/Spatial_searching/internal/bounded_priority_queue.h 2022-06-03 19:05:47.000000000 +0000 +++ cgal-5.5/include/CGAL/Spatial_searching/internal/bounded_priority_queue.h 2022-07-13 19:06:44.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Spatial_searching/include/CGAL/Spatial_searching/internal/bounded_priority_queue.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Spatial_searching/include/CGAL/Spatial_searching/internal/bounded_priority_queue.h $ // $Id: bounded_priority_queue.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Spatial_searching/internal/Get_dimension_tag.h cgal-5.5/include/CGAL/Spatial_searching/internal/Get_dimension_tag.h --- cgal-5.4.1/include/CGAL/Spatial_searching/internal/Get_dimension_tag.h 2022-06-03 19:05:47.000000000 +0000 +++ cgal-5.5/include/CGAL/Spatial_searching/internal/Get_dimension_tag.h 2022-07-13 19:06:44.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Spatial_searching/include/CGAL/Spatial_searching/internal/Get_dimension_tag.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Spatial_searching/include/CGAL/Spatial_searching/internal/Get_dimension_tag.h $ // $Id: Get_dimension_tag.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Spatial_searching/internal/K_neighbor_search.h cgal-5.5/include/CGAL/Spatial_searching/internal/K_neighbor_search.h --- cgal-5.4.1/include/CGAL/Spatial_searching/internal/K_neighbor_search.h 2022-06-03 19:05:47.000000000 +0000 +++ cgal-5.5/include/CGAL/Spatial_searching/internal/K_neighbor_search.h 2022-07-13 19:06:44.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Spatial_searching/include/CGAL/Spatial_searching/internal/K_neighbor_search.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Spatial_searching/include/CGAL/Spatial_searching/internal/K_neighbor_search.h $ // $Id: K_neighbor_search.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Spatial_searching/internal/Search_helpers.h cgal-5.5/include/CGAL/Spatial_searching/internal/Search_helpers.h --- cgal-5.4.1/include/CGAL/Spatial_searching/internal/Search_helpers.h 2022-06-03 19:05:47.000000000 +0000 +++ cgal-5.5/include/CGAL/Spatial_searching/internal/Search_helpers.h 2022-07-13 19:06:44.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Spatial_searching/include/CGAL/Spatial_searching/internal/Search_helpers.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Spatial_searching/include/CGAL/Spatial_searching/internal/Search_helpers.h $ // $Id: Search_helpers.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/spatial_sort.h cgal-5.5/include/CGAL/spatial_sort.h --- cgal-5.4.1/include/CGAL/spatial_sort.h 2022-06-03 19:05:49.000000000 +0000 +++ cgal-5.5/include/CGAL/spatial_sort.h 2022-07-13 19:06:45.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Spatial_sorting/include/CGAL/spatial_sort.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Spatial_sorting/include/CGAL/spatial_sort.h $ // $Id: spatial_sort.h 7508a6f 2020-02-12T17:05:49+01:00 Laurent Rineau // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Spatial_sorting/internal/Transform_coordinates_traits_3.h cgal-5.5/include/CGAL/Spatial_sorting/internal/Transform_coordinates_traits_3.h --- cgal-5.4.1/include/CGAL/Spatial_sorting/internal/Transform_coordinates_traits_3.h 2022-06-03 19:05:48.000000000 +0000 +++ cgal-5.5/include/CGAL/Spatial_sorting/internal/Transform_coordinates_traits_3.h 2022-07-13 19:06:45.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Spatial_sorting/include/CGAL/Spatial_sorting/internal/Transform_coordinates_traits_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Spatial_sorting/include/CGAL/Spatial_sorting/internal/Transform_coordinates_traits_3.h $ // $Id: Transform_coordinates_traits_3.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/spatial_sort_on_sphere.h cgal-5.5/include/CGAL/spatial_sort_on_sphere.h --- cgal-5.4.1/include/CGAL/spatial_sort_on_sphere.h 2022-06-03 19:05:49.000000000 +0000 +++ cgal-5.5/include/CGAL/spatial_sort_on_sphere.h 2022-07-13 19:06:45.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Spatial_sorting/include/CGAL/spatial_sort_on_sphere.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Spatial_sorting/include/CGAL/spatial_sort_on_sphere.h $ // $Id: spatial_sort_on_sphere.h 20c4f3a 2021-03-19T17:28:55+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Spatial_sort_traits_adapter_2.h cgal-5.5/include/CGAL/Spatial_sort_traits_adapter_2.h --- cgal-5.4.1/include/CGAL/Spatial_sort_traits_adapter_2.h 2022-06-03 19:05:48.000000000 +0000 +++ cgal-5.5/include/CGAL/Spatial_sort_traits_adapter_2.h 2022-07-13 19:06:45.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Spatial_sorting/include/CGAL/Spatial_sort_traits_adapter_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Spatial_sorting/include/CGAL/Spatial_sort_traits_adapter_2.h $ // $Id: Spatial_sort_traits_adapter_2.h 8a252f1 2022-03-31T07:07:01+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Spatial_sort_traits_adapter_3.h cgal-5.5/include/CGAL/Spatial_sort_traits_adapter_3.h --- cgal-5.4.1/include/CGAL/Spatial_sort_traits_adapter_3.h 2022-06-03 19:05:48.000000000 +0000 +++ cgal-5.5/include/CGAL/Spatial_sort_traits_adapter_3.h 2022-07-13 19:06:45.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Spatial_sorting/include/CGAL/Spatial_sort_traits_adapter_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Spatial_sorting/include/CGAL/Spatial_sort_traits_adapter_3.h $ // $Id: Spatial_sort_traits_adapter_3.h 8a252f1 2022-03-31T07:07:01+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Spatial_sort_traits_adapter_d.h cgal-5.5/include/CGAL/Spatial_sort_traits_adapter_d.h --- cgal-5.4.1/include/CGAL/Spatial_sort_traits_adapter_d.h 2022-06-03 19:05:48.000000000 +0000 +++ cgal-5.5/include/CGAL/Spatial_sort_traits_adapter_d.h 2022-07-13 19:06:45.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Spatial_sorting/include/CGAL/Spatial_sort_traits_adapter_d.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Spatial_sorting/include/CGAL/Spatial_sort_traits_adapter_d.h $ // $Id: Spatial_sort_traits_adapter_d.h 8a252f1 2022-03-31T07:07:01+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Sphere_3.h cgal-5.5/include/CGAL/Sphere_3.h --- cgal-5.4.1/include/CGAL/Sphere_3.h 2022-06-03 19:04:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Sphere_3.h 2022-07-13 19:05:24.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Sphere_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Sphere_3.h $ // $Id: Sphere_3.h e7357ac 2021-07-19T14:53:27+02:00 Marc Glisse // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Spherical_kernel_3.h cgal-5.5/include/CGAL/Spherical_kernel_3.h --- cgal-5.4.1/include/CGAL/Spherical_kernel_3.h 2022-06-03 19:04:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Spherical_kernel_3.h 2022-07-13 19:04:52.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Circular_kernel_3/include/CGAL/Spherical_kernel_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Circular_kernel_3/include/CGAL/Spherical_kernel_3.h $ // $Id: Spherical_kernel_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Spherical_kernel_intersections.h cgal-5.5/include/CGAL/Spherical_kernel_intersections.h --- cgal-5.4.1/include/CGAL/Spherical_kernel_intersections.h 2022-06-03 19:04:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Spherical_kernel_intersections.h 2022-07-13 19:04:52.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Circular_kernel_3/include/CGAL/Spherical_kernel_intersections.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Circular_kernel_3/include/CGAL/Spherical_kernel_intersections.h $ // $Id: Spherical_kernel_intersections.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Spherical_kernel_type_equality_wrapper.h cgal-5.5/include/CGAL/Spherical_kernel_type_equality_wrapper.h --- cgal-5.4.1/include/CGAL/Spherical_kernel_type_equality_wrapper.h 2022-06-03 19:04:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Spherical_kernel_type_equality_wrapper.h 2022-07-13 19:04:52.000000000 +0000 @@ -9,7 +9,7 @@ // and a STREP (FET Open) Project under Contract No IST-006413 // (ACS -- Algorithms for Complex Shapes) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Circular_kernel_3/include/CGAL/Spherical_kernel_type_equality_wrapper.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Circular_kernel_3/include/CGAL/Spherical_kernel_type_equality_wrapper.h $ // $Id: Spherical_kernel_type_equality_wrapper.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Splitters.h cgal-5.5/include/CGAL/Splitters.h --- cgal-5.4.1/include/CGAL/Splitters.h 2022-06-03 19:05:47.000000000 +0000 +++ cgal-5.5/include/CGAL/Splitters.h 2022-07-13 19:06:44.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Spatial_searching/include/CGAL/Splitters.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Spatial_searching/include/CGAL/Splitters.h $ // $Id: Splitters.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Sqrt_extension/Algebraic_extension_traits.h cgal-5.5/include/CGAL/Sqrt_extension/Algebraic_extension_traits.h --- cgal-5.4.1/include/CGAL/Sqrt_extension/Algebraic_extension_traits.h 2022-06-03 19:05:01.000000000 +0000 +++ cgal-5.5/include/CGAL/Sqrt_extension/Algebraic_extension_traits.h 2022-07-13 19:05:54.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/Sqrt_extension/Algebraic_extension_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/Sqrt_extension/Algebraic_extension_traits.h $ // $Id: Algebraic_extension_traits.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Sqrt_extension/Algebraic_structure_traits.h cgal-5.5/include/CGAL/Sqrt_extension/Algebraic_structure_traits.h --- cgal-5.4.1/include/CGAL/Sqrt_extension/Algebraic_structure_traits.h 2022-06-03 19:05:01.000000000 +0000 +++ cgal-5.5/include/CGAL/Sqrt_extension/Algebraic_structure_traits.h 2022-07-13 19:05:54.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/Sqrt_extension/Algebraic_structure_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/Sqrt_extension/Algebraic_structure_traits.h $ // $Id: Algebraic_structure_traits.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Sqrt_extension/Chinese_remainder_traits.h cgal-5.5/include/CGAL/Sqrt_extension/Chinese_remainder_traits.h --- cgal-5.4.1/include/CGAL/Sqrt_extension/Chinese_remainder_traits.h 2022-06-03 19:05:01.000000000 +0000 +++ cgal-5.5/include/CGAL/Sqrt_extension/Chinese_remainder_traits.h 2022-07-13 19:05:54.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/Sqrt_extension/Chinese_remainder_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/Sqrt_extension/Chinese_remainder_traits.h $ // $Id: Chinese_remainder_traits.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Sqrt_extension/Coercion_traits.h cgal-5.5/include/CGAL/Sqrt_extension/Coercion_traits.h --- cgal-5.4.1/include/CGAL/Sqrt_extension/Coercion_traits.h 2022-06-03 19:05:01.000000000 +0000 +++ cgal-5.5/include/CGAL/Sqrt_extension/Coercion_traits.h 2022-07-13 19:05:54.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/Sqrt_extension/Coercion_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/Sqrt_extension/Coercion_traits.h $ // $Id: Coercion_traits.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Sqrt_extension/convert_to_bfi.h cgal-5.5/include/CGAL/Sqrt_extension/convert_to_bfi.h --- cgal-5.4.1/include/CGAL/Sqrt_extension/convert_to_bfi.h 2022-06-03 19:05:01.000000000 +0000 +++ cgal-5.5/include/CGAL/Sqrt_extension/convert_to_bfi.h 2022-07-13 19:05:55.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/Sqrt_extension/convert_to_bfi.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/Sqrt_extension/convert_to_bfi.h $ // $Id: convert_to_bfi.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Sqrt_extension/Eigen_NumTraits.h cgal-5.5/include/CGAL/Sqrt_extension/Eigen_NumTraits.h --- cgal-5.4.1/include/CGAL/Sqrt_extension/Eigen_NumTraits.h 2022-06-03 19:05:01.000000000 +0000 +++ cgal-5.5/include/CGAL/Sqrt_extension/Eigen_NumTraits.h 2022-07-13 19:05:54.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/Sqrt_extension/Eigen_NumTraits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/Sqrt_extension/Eigen_NumTraits.h $ // $Id: Eigen_NumTraits.h 8bb22d5 2020-03-26T14:23:37+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Sqrt_extension/Fraction_traits.h cgal-5.5/include/CGAL/Sqrt_extension/Fraction_traits.h --- cgal-5.4.1/include/CGAL/Sqrt_extension/Fraction_traits.h 2022-06-03 19:05:01.000000000 +0000 +++ cgal-5.5/include/CGAL/Sqrt_extension/Fraction_traits.h 2022-07-13 19:05:54.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/Sqrt_extension/Fraction_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/Sqrt_extension/Fraction_traits.h $ // $Id: Fraction_traits.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Sqrt_extension/Get_arithmetic_kernel.h cgal-5.5/include/CGAL/Sqrt_extension/Get_arithmetic_kernel.h --- cgal-5.4.1/include/CGAL/Sqrt_extension/Get_arithmetic_kernel.h 2022-06-03 19:05:01.000000000 +0000 +++ cgal-5.5/include/CGAL/Sqrt_extension/Get_arithmetic_kernel.h 2022-07-13 19:05:54.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/Sqrt_extension/Get_arithmetic_kernel.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/Sqrt_extension/Get_arithmetic_kernel.h $ // $Id: Get_arithmetic_kernel.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Sqrt_extension/io.h cgal-5.5/include/CGAL/Sqrt_extension/io.h --- cgal-5.4.1/include/CGAL/Sqrt_extension/io.h 2022-06-03 19:05:01.000000000 +0000 +++ cgal-5.5/include/CGAL/Sqrt_extension/io.h 2022-07-13 19:05:55.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/Sqrt_extension/io.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/Sqrt_extension/io.h $ // $Id: io.h 4e519a3 2021-05-05T13:15:37+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Sqrt_extension/Modular_traits.h cgal-5.5/include/CGAL/Sqrt_extension/Modular_traits.h --- cgal-5.4.1/include/CGAL/Sqrt_extension/Modular_traits.h 2022-06-03 19:05:01.000000000 +0000 +++ cgal-5.5/include/CGAL/Sqrt_extension/Modular_traits.h 2022-07-13 19:05:54.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/Sqrt_extension/Modular_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/Sqrt_extension/Modular_traits.h $ // $Id: Modular_traits.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Sqrt_extension/Real_embeddable_traits.h cgal-5.5/include/CGAL/Sqrt_extension/Real_embeddable_traits.h --- cgal-5.4.1/include/CGAL/Sqrt_extension/Real_embeddable_traits.h 2022-06-03 19:05:01.000000000 +0000 +++ cgal-5.5/include/CGAL/Sqrt_extension/Real_embeddable_traits.h 2022-07-13 19:05:54.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/Sqrt_extension/Real_embeddable_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/Sqrt_extension/Real_embeddable_traits.h $ // $Id: Real_embeddable_traits.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Sqrt_extension/Scalar_factor_traits.h cgal-5.5/include/CGAL/Sqrt_extension/Scalar_factor_traits.h --- cgal-5.4.1/include/CGAL/Sqrt_extension/Scalar_factor_traits.h 2022-06-03 19:05:01.000000000 +0000 +++ cgal-5.5/include/CGAL/Sqrt_extension/Scalar_factor_traits.h 2022-07-13 19:05:54.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/Sqrt_extension/Scalar_factor_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/Sqrt_extension/Scalar_factor_traits.h $ // $Id: Scalar_factor_traits.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Sqrt_extension/Sqrt_extension_type.h cgal-5.5/include/CGAL/Sqrt_extension/Sqrt_extension_type.h --- cgal-5.4.1/include/CGAL/Sqrt_extension/Sqrt_extension_type.h 2022-06-03 19:05:01.000000000 +0000 +++ cgal-5.5/include/CGAL/Sqrt_extension/Sqrt_extension_type.h 2022-07-13 19:05:55.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/Sqrt_extension/Sqrt_extension_type.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/Sqrt_extension/Sqrt_extension_type.h $ // $Id: Sqrt_extension_type.h 0d66e19 2020-07-24T17:05:10+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Sqrt_extension/Wang_traits.h cgal-5.5/include/CGAL/Sqrt_extension/Wang_traits.h --- cgal-5.4.1/include/CGAL/Sqrt_extension/Wang_traits.h 2022-06-03 19:05:01.000000000 +0000 +++ cgal-5.5/include/CGAL/Sqrt_extension/Wang_traits.h 2022-07-13 19:05:55.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/Sqrt_extension/Wang_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/Sqrt_extension/Wang_traits.h $ // $Id: Wang_traits.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Sqrt_extension_fwd.h cgal-5.5/include/CGAL/Sqrt_extension_fwd.h --- cgal-5.4.1/include/CGAL/Sqrt_extension_fwd.h 2022-06-03 19:05:01.000000000 +0000 +++ cgal-5.5/include/CGAL/Sqrt_extension_fwd.h 2022-07-13 19:05:55.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/Sqrt_extension_fwd.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/Sqrt_extension_fwd.h $ // $Id: Sqrt_extension_fwd.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Sqrt_extension.h cgal-5.5/include/CGAL/Sqrt_extension.h --- cgal-5.4.1/include/CGAL/Sqrt_extension.h 2022-06-03 19:05:01.000000000 +0000 +++ cgal-5.5/include/CGAL/Sqrt_extension.h 2022-07-13 19:05:54.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/Sqrt_extension.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/Sqrt_extension.h $ // $Id: Sqrt_extension.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/squared_distance_2.h cgal-5.5/include/CGAL/squared_distance_2.h --- cgal-5.4.1/include/CGAL/squared_distance_2.h 2022-06-03 19:04:10.000000000 +0000 +++ cgal-5.5/include/CGAL/squared_distance_2.h 2022-07-13 19:04:58.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Distance_2/include/CGAL/squared_distance_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Distance_2/include/CGAL/squared_distance_2.h $ // $Id: squared_distance_2.h 7e62c02 2021-04-12T14:02:37+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/squared_distance_3.h cgal-5.5/include/CGAL/squared_distance_3.h --- cgal-5.4.1/include/CGAL/squared_distance_3.h 2022-06-03 19:04:10.000000000 +0000 +++ cgal-5.5/include/CGAL/squared_distance_3.h 2022-07-13 19:04:58.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Distance_3/include/CGAL/squared_distance_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Distance_3/include/CGAL/squared_distance_3.h $ // $Id: squared_distance_3.h 5deb509 2021-04-12T14:42:44+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/sse2.h cgal-5.5/include/CGAL/sse2.h --- cgal-5.4.1/include/CGAL/sse2.h 2022-06-03 19:05:02.000000000 +0000 +++ cgal-5.5/include/CGAL/sse2.h 2022-07-13 19:05:55.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/sse2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/sse2.h $ // $Id: sse2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Static_filtered_predicate.h cgal-5.5/include/CGAL/Static_filtered_predicate.h --- cgal-5.4.1/include/CGAL/Static_filtered_predicate.h 2022-06-03 19:04:12.000000000 +0000 +++ cgal-5.5/include/CGAL/Static_filtered_predicate.h 2022-07-13 19:05:00.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Filtered_kernel/include/CGAL/Static_filtered_predicate.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Filtered_kernel/include/CGAL/Static_filtered_predicate.h $ // $Id: Static_filtered_predicate.h c4b8c37 2022-03-11T10:21:51+00:00 Andreas Fabri // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/stddef.h cgal-5.5/include/CGAL/stddef.h --- cgal-5.4.1/include/CGAL/stddef.h 2022-06-03 19:04:24.000000000 +0000 +++ cgal-5.5/include/CGAL/stddef.h 2022-07-13 19:05:14.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/stddef.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/stddef.h $ // $Id: stddef.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial diff -Nru cgal-5.4.1/include/CGAL/STL_Extension/internal/boost/array_binary_tree.hpp cgal-5.5/include/CGAL/STL_Extension/internal/boost/array_binary_tree.hpp --- cgal-5.4.1/include/CGAL/STL_Extension/internal/boost/array_binary_tree.hpp 2022-06-03 19:05:32.000000000 +0000 +++ cgal-5.5/include/CGAL/STL_Extension/internal/boost/array_binary_tree.hpp 2022-07-13 19:06:28.000000000 +0000 @@ -8,7 +8,7 @@ // https://www.boost.org/LICENSE_1_0.txt) //======================================================================= // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/STL_Extension/internal/boost/array_binary_tree.hpp $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/STL_Extension/internal/boost/array_binary_tree.hpp $ // $Id: array_binary_tree.hpp a93dda8 2021-09-10T17:43:47+02:00 Sébastien Loriot // SPDX-License-Identifier: BSL-1.0 // diff -Nru cgal-5.4.1/include/CGAL/STL_Extension/internal/boost/mutable_heap.hpp cgal-5.5/include/CGAL/STL_Extension/internal/boost/mutable_heap.hpp --- cgal-5.4.1/include/CGAL/STL_Extension/internal/boost/mutable_heap.hpp 2022-06-03 19:05:32.000000000 +0000 +++ cgal-5.5/include/CGAL/STL_Extension/internal/boost/mutable_heap.hpp 2022-07-13 19:06:28.000000000 +0000 @@ -8,7 +8,7 @@ // https://www.boost.org/LICENSE_1_0.txt) //======================================================================= // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/STL_Extension/internal/boost/mutable_heap.hpp $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/STL_Extension/internal/boost/mutable_heap.hpp $ // $Id: mutable_heap.hpp 4ea7b65 2021-08-26T11:42:01+02:00 Sébastien Loriot // SPDX-License-Identifier: BSL-1.0 // diff -Nru cgal-5.4.1/include/CGAL/STL_Extension/internal/boost/mutable_queue.hpp cgal-5.5/include/CGAL/STL_Extension/internal/boost/mutable_queue.hpp --- cgal-5.4.1/include/CGAL/STL_Extension/internal/boost/mutable_queue.hpp 2022-06-03 19:05:32.000000000 +0000 +++ cgal-5.5/include/CGAL/STL_Extension/internal/boost/mutable_queue.hpp 2022-07-13 19:06:28.000000000 +0000 @@ -8,8 +8,8 @@ // https://www.boost.org/LICENSE_1_0.txt) //======================================================================= // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/STL_Extension/internal/boost/mutable_queue.hpp $ -// $Id: mutable_queue.hpp 4ea7b65 2021-08-26T11:42:01+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/STL_Extension/internal/boost/mutable_queue.hpp $ +// $Id: mutable_queue.hpp e674e5f 2021-11-30T14:16:30+01:00 Sébastien Loriot // SPDX-License-Identifier: BSL-1.0 // // NOTE: this file have been taken from boost 1.46.1 for using @@ -65,14 +65,10 @@ typedef Compare value_compare; typedef ID id_generator; - mutable_queue(size_type n, const Comp& x, const ID& _id) - : index_array(n), comp(x), id(_id) { - c.reserve(n); - } -//SL: added this constructor so that index_array is filled with +//SL: updated this constructor so that index_array is filled with // indices equals to n. Maintaining this property in pop allows // to have a method to detect if an element is in the queue - mutable_queue(size_type n, const Comp& x, const ID& _id,bool) + mutable_queue(size_type n, const Comp& x, const ID& _id) : index_array(n,n), comp(x), id(_id) { c.reserve(n); } @@ -134,6 +130,24 @@ void clear() { c.clear(); } +//SL: added remove and contains functions +// (historically in CGAL::internal::mutable_queue_with_remove with no good +// reason now that the present file is shipped with CGAL) + void remove(const IndexedType& x){ + //first place element at the top + size_type current_pos = index_array[ get(id, x) ]; + c[current_pos] = x; + + Node node(c.begin(), c.end(), c.begin()+current_pos, id); + while (node.has_parent()) + node.swap(node.parent(), index_array); + //then pop it + pop(); + } + + bool contains(const IndexedType& x) const { + return index_array[ get(id, x) ] != index_array.size(); + } #if 0 // dwa 2003/7/11 - I don't know what compiler is supposed to // be able to compile this, but is_heap is not standard!! diff -Nru cgal-5.4.1/include/CGAL/STL_Extension/internal/boost/relaxed_heap.hpp cgal-5.5/include/CGAL/STL_Extension/internal/boost/relaxed_heap.hpp --- cgal-5.4.1/include/CGAL/STL_Extension/internal/boost/relaxed_heap.hpp 1970-01-01 00:00:00.000000000 +0000 +++ cgal-5.5/include/CGAL/STL_Extension/internal/boost/relaxed_heap.hpp 2022-07-13 19:06:28.000000000 +0000 @@ -0,0 +1,754 @@ +// +//======================================================================= +// Copyright 2004 The Trustees of Indiana University. +// Use, modification and distribution is subject to the Boost Software +// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// Authors: Douglas Gregor +// Andrew Lumsdaine +//======================================================================= +// +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/STL_Extension/internal/boost/relaxed_heap.hpp $ +// $Id: relaxed_heap.hpp 440a8df 2022-02-03T08:41:04+00:00 Andreas Fabri +// SPDX-License-Identifier: BSL-1.0 +// +// NOTE: this file has been taken from boost 1.77 to use +// with Modificable_priority_queue. +// The original file is +// + +#ifndef BOOST_RELAXED_HEAP_HEADER +#define BOOST_RELAXED_HEAP_HEADER + + +#include + +#include +#include +#include +#include +#include // for CHAR_BIT +#include + +#ifdef BOOST_RELAXED_HEAP_DEBUG +#include +#endif // BOOST_RELAXED_HEAP_DEBUG + +#if defined(BOOST_MSVC) +#pragma warning(push) +#pragma warning(disable : 4355) // complaint about using 'this' to +#endif // initialize a member + +namespace CGAL { namespace internal { +namespace boost_ { + +template < typename IndexedType, typename Compare = std::less< IndexedType >, + typename ID = boost::identity_property_map > +class relaxed_heap +{ + struct group; + + typedef relaxed_heap self_type; + typedef std::size_t rank_type; + +public: + typedef IndexedType value_type; + typedef rank_type size_type; + +private: + /** + * The kind of key that a group has. The actual values are discussed + * in-depth in the documentation of the @c kind field of the @c group + * structure. Note that the order of the enumerators *IS* important + * and must not be changed. + */ + enum group_key_kind + { + smallest_key, + stored_key, + largest_key + }; + + struct group + { + explicit group(group_key_kind kind = largest_key) + : kind(kind), parent(this), rank(0) + { + } + + /** The value associated with this group. This value is only valid + * when @c kind!=largest_key (which indicates a deleted + * element). Note that the use of boost::optional increases the + * memory requirements slightly but does not result in extraneous + * memory allocations or deallocations. The optional could be + * eliminated when @c value_type is a model of + * DefaultConstructible. + */ + ::boost::optional< value_type > value; + + /** + * The kind of key stored at this group. This may be @c + * smallest_key, which indicates that the key is infinitely small; + * @c largest_key, which indicates that the key is infinitely + * large; or @c stored_key, which means that the key is unknown, + * but its relationship to other keys can be determined via the + * comparison function object. + */ + group_key_kind kind; + + /// The parent of this group. Will only be NULL for the dummy root group + group* parent; + + /// The rank of this group. Equivalent to the number of children in + /// the group. + rank_type rank; + + /** The children of this group. For the dummy root group, these are + * the roots. This is an array of length log n containing pointers + * to the child groups. + */ + group** children; + }; + + size_type log_base_2(size_type n) // log2 is a macro on some platforms + { + size_type leading_zeroes = 0; + do + { + size_type next = n << 1; + if (n == (next >> 1)) + { + ++leading_zeroes; + n = next; + } + else + { + break; + } + } while (true); + return sizeof(size_type) * CHAR_BIT - leading_zeroes - 1; + } + +public: + relaxed_heap( + size_type n, const Compare& compare = Compare(), const ID& id = ID()) + : compare(compare), id(id), root(smallest_key), groups(n), smallest_value(0) + { + if (n == 0) + { + root.children = new group*[1]; + return; + } + + log_n = log_base_2(n); + if (log_n == 0) + log_n = 1; + size_type g = n / log_n; + if (n % log_n > 0) + ++g; + size_type log_g = log_base_2(g); + size_type r = log_g; + + // Reserve an appropriate amount of space for data structures, so + // that we do not need to expand them. + index_to_group.resize(g); + A.resize(r + 1, 0); + root.rank = r + 1; + root.children = new group*[(log_g + 1) * (g + 1)]; + for (rank_type i = 0; i < r + 1; ++i) + root.children[i] = 0; + + // Build initial heap + size_type idx = 0; + while (idx < g) + { + root.children[r] = &index_to_group[idx]; + idx = build_tree(root, idx, r, log_g + 1); + if (idx != g) + r = static_cast< size_type >(log_base_2(g - idx)); + } + } + + ~relaxed_heap() { delete[] root.children; } + + void push(const value_type& x) + { + groups[get(id, x)] = x; + update(x); + } + + void update(const value_type& x) + { + group* a = &index_to_group[get(id, x) / log_n]; + if (!a->value || *a->value == x || compare(x, *a->value)) + { + if (a != smallest_value) + smallest_value = 0; + a->kind = stored_key; + a->value = x; + promote(a); + } + } + + void remove(const value_type& x) + { + group* a = &index_to_group[get(id, x) / log_n]; + CGAL_assertion(groups[get(id, x)]); + a->value = x; + a->kind = smallest_key; + promote(a); + smallest_value = a; + pop(); + } + + value_type& top() + { + find_smallest(); + CGAL_assertion(smallest_value->value != boost::none); + return *smallest_value->value; + } + + const value_type& top() const + { + find_smallest(); + CGAL_assertion(smallest_value->value != boost::none); + return *smallest_value->value; + } + + bool empty() const + { + find_smallest(); + return !smallest_value || (smallest_value->kind == largest_key); + } + + bool contains(const value_type& x) const + { + return static_cast< bool >(groups[get(id, x)]); + } + + void pop() + { + // Fill in smallest_value. This is the group x. + find_smallest(); + group* x = smallest_value; + smallest_value = 0; + + // Make x a leaf, giving it the smallest value within its group + rank_type r = x->rank; + group* p = x->parent; + { + CGAL_assertion(x->value != boost::none); + + // Find x's group + size_type start = get(id, *x->value) - get(id, *x->value) % log_n; + size_type end = start + log_n; + if (end > groups.size()) + end = groups.size(); + + // Remove the smallest value from the group, and find the new + // smallest value. + groups[get(id, *x->value)].reset(); + x->value.reset(); + x->kind = largest_key; + for (size_type i = start; i < end; ++i) + { + if (groups[i] && (!x->value || compare(*groups[i], *x->value))) + { + x->kind = stored_key; + x->value = groups[i]; + } + } + } + x->rank = 0; + + // Combine prior children of x with x + group* y = x; + for (size_type c = 0; c < r; ++c) + { + group* child = x->children[c]; + if (A[c] == child) + A[c] = 0; + y = combine(y, child); + } + + // If we got back something other than x, let y take x's place + if (y != x) + { + y->parent = p; + p->children[r] = y; + + CGAL_assertion(r == y->rank); + if (A[y->rank] == x) + A[y->rank] = do_compare(y, p) ? y : 0; + } + } + +#ifdef BOOST_RELAXED_HEAP_DEBUG + /************************************************************************* + * Debugging support * + *************************************************************************/ + void dump_tree() { dump_tree(std::cout); } + void dump_tree(std::ostream& out) { dump_tree(out, &root); } + + void dump_tree(std::ostream& out, group* p, bool in_progress = false) + { + if (!in_progress) + { + out << "digraph heap {\n" + << " edge[dir=\"back\"];\n"; + } + + size_type p_index = 0; + if (p != &root) + while (&index_to_group[p_index] != p) + ++p_index; + + for (size_type i = 0; i < p->rank; ++i) + { + group* c = p->children[i]; + if (c) + { + size_type c_index = 0; + if (c != &root) + while (&index_to_group[c_index] != c) + ++c_index; + + out << " "; + if (p == &root) + out << 'p'; + else + out << p_index; + out << " -> "; + if (c == &root) + out << 'p'; + else + out << c_index; + if (A[c->rank] == c) + out << " [style=\"dotted\"]"; + out << ";\n"; + dump_tree(out, c, true); + + // Emit node information + out << " "; + if (c == &root) + out << 'p'; + else + out << c_index; + out << " [label=\""; + if (c == &root) + out << 'p'; + else + out << c_index; + out << ":"; + size_type start = c_index * log_n; + size_type end = start + log_n; + if (end > groups.size()) + end = groups.size(); + while (start != end) + { + if (groups[start]) + { + out << " " << get(id, *groups[start]); + if (*groups[start] == *c->value) + out << "(*)"; + } + ++start; + } + out << '"'; + + if (do_compare(c, p)) + { + out << " "; + if (c == &root) + out << 'p'; + else + out << c_index; + out << ", style=\"filled\", fillcolor=\"gray\""; + } + out << "];\n"; + } + else + { + CGAL_assertion(p->parent == p); + } + } + if (!in_progress) + out << "}\n"; + } + + bool valid() + { + // Check that the ranks in the A array match the ranks of the + // groups stored there. Also, the active groups must be the last + // child of their parent. + for (size_type r = 0; r < A.size(); ++r) + { + if (A[r] && A[r]->rank != r) + return false; + + if (A[r] && A[r]->parent->children[A[r]->parent->rank - 1] != A[r]) + return false; + } + + // The root must have no value and a key of -Infinity + if (root.kind != smallest_key) + return false; + + return valid(&root); + } + + bool valid(group* p) + { + for (size_type i = 0; i < p->rank; ++i) + { + group* c = p->children[i]; + if (c) + { + // Check link structure + if (c->parent != p) + return false; + if (c->rank != i) + return false; + + // A bad group must be active + if (do_compare(c, p) && A[i] != c) + return false; + + // Check recursively + if (!valid(c)) + return false; + } + else + { + // Only the root may + if (p != &root) + return false; + } + } + return true; + } + +#endif // BOOST_RELAXED_HEAP_DEBUG + +private: + size_type build_tree( + group& parent, size_type idx, size_type r, size_type max_rank) + { + group& this_group = index_to_group[idx]; + this_group.parent = &parent; + ++idx; + + this_group.children = root.children + (idx * max_rank); + this_group.rank = r; + for (size_type i = 0; i < r; ++i) + { + this_group.children[i] = &index_to_group[idx]; + idx = build_tree(this_group, idx, i, max_rank); + } + return idx; + } + + void find_smallest() const + { + group** roots = root.children; + + if (!smallest_value) + { + std::size_t i; + for (i = 0; i < root.rank; ++i) + { + if (roots[i] + && (!smallest_value + || do_compare(roots[i], smallest_value))) + { + smallest_value = roots[i]; + } + } + for (i = 0; i < A.size(); ++i) + { + if (A[i] + && (!smallest_value || do_compare(A[i], smallest_value))) + smallest_value = A[i]; + } + } + } + + bool do_compare(group* x, group* y) const + { + return (x->kind < y->kind + || (x->kind == y->kind && x->kind == stored_key + && compare(*x->value, *y->value))); + } + + void promote(group* a) + { + CGAL_assertion(a != 0); + rank_type r = a->rank; + group* p = a->parent; + CGAL_assertion(p != 0); + if (do_compare(a, p)) + { + // s is the rank + 1 sibling + group* s = p->rank > r + 1 ? p->children[r + 1] : 0; + + // If a is the last child of p + if (r == p->rank - 1) + { + if (!A[r]) + A[r] = a; + else if (A[r] != a) + pair_transform(a); + } + else + { + CGAL_assertion(s != 0); + if (A[r + 1] == s) + active_sibling_transform(a, s); + else + good_sibling_transform(a, s); + } + } + } + + group* combine(group* a1, group* a2) + { + CGAL_assertion(a1->rank == a2->rank); + if (do_compare(a2, a1)) + do_swap(a1, a2); + a1->children[a1->rank++] = a2; + a2->parent = a1; + clean(a1); + return a1; + } + + void clean(group* q) + { + if (2 > q->rank) + return; + group* qp = q->children[q->rank - 1]; + rank_type s = q->rank - 2; + group* x = q->children[s]; + group* xp = qp->children[s]; + CGAL_assertion(s == x->rank); + + // If x is active, swap x and xp + if (A[s] == x) + { + q->children[s] = xp; + xp->parent = q; + qp->children[s] = x; + x->parent = qp; + } + } + + void pair_transform(group* a) + { +#if defined(BOOST_RELAXED_HEAP_DEBUG) && BOOST_RELAXED_HEAP_DEBUG > 1 + std::cerr << "- pair transform\n"; +#endif + rank_type r = a->rank; + + // p is a's parent + group* p = a->parent; + CGAL_assertion(p != 0); + + // g is p's parent (a's grandparent) + group* g = p->parent; + CGAL_assertion(g != 0); + + // a' <- A(r) + CGAL_assertion(A[r] != 0); + group* ap = A[r]; + CGAL_assertion(ap != 0); + + // A(r) <- nil + A[r] = 0; + + // let a' have parent p' + group* pp = ap->parent; + CGAL_assertion(pp != 0); + + // let a' have grandparent g' + group* gp = pp->parent; + CGAL_assertion(gp != 0); + + // Remove a and a' from their parents + CGAL_assertion(ap + == pp->children[pp->rank - 1]); // Guaranteed because ap is active + --pp->rank; + + // Guaranteed by caller + CGAL_assertion(a == p->children[p->rank - 1]); + --p->rank; + + // Note: a, ap, p, pp all have rank r + if (do_compare(pp, p)) + { + do_swap(a, ap); + do_swap(p, pp); + do_swap(g, gp); + } + + // Assuming k(p) <= k(p') + // make p' the rank r child of p + CGAL_assertion(r == p->rank); + p->children[p->rank++] = pp; + pp->parent = p; + + // Combine a, ap into a rank r+1 group c + group* c = combine(a, ap); + + // make c the rank r+1 child of g' + CGAL_assertion(gp->rank > r + 1); + gp->children[r + 1] = c; + c->parent = gp; + +#if defined(BOOST_RELAXED_HEAP_DEBUG) && BOOST_RELAXED_HEAP_DEBUG > 1 + std::cerr << "After pair transform...\n"; + dump_tree(); +#endif + + if (A[r + 1] == pp) + A[r + 1] = c; + else + promote(c); + } + + void active_sibling_transform(group* a, group* s) + { +#if defined(BOOST_RELAXED_HEAP_DEBUG) && BOOST_RELAXED_HEAP_DEBUG > 1 + std::cerr << "- active sibling transform\n"; +#endif + group* p = a->parent; + group* g = p->parent; + + // remove a, s from their parents + CGAL_assertion(s->parent == p); + CGAL_assertion(p->children[p->rank - 1] == s); + --p->rank; + CGAL_assertion(p->children[p->rank - 1] == a); + --p->rank; + + rank_type r = a->rank; + A[r + 1] = 0; + a = combine(p, a); + group* c = combine(a, s); + + // make c the rank r+2 child of g + CGAL_assertion(g->children[r + 2] == p); + g->children[r + 2] = c; + c->parent = g; + if (A[r + 2] == p) + A[r + 2] = c; + else + promote(c); + } + + void good_sibling_transform(group* a, group* s) + { +#if defined(BOOST_RELAXED_HEAP_DEBUG) && BOOST_RELAXED_HEAP_DEBUG > 1 + std::cerr << "- good sibling transform\n"; +#endif + rank_type r = a->rank; + group* c = s->children[s->rank - 1]; + CGAL_assertion(c->rank == r); + if (A[r] == c) + { +#if defined(BOOST_RELAXED_HEAP_DEBUG) && BOOST_RELAXED_HEAP_DEBUG > 1 + std::cerr << "- good sibling pair transform\n"; +#endif + A[r] = 0; + group* p = a->parent; + + // Remove c from its parent + --s->rank; + + // Make s the rank r child of p + s->parent = p; + p->children[r] = s; + + // combine a, c and let the result by the rank r+1 child of p + CGAL_assertion(p->rank > r + 1); + group* x = combine(a, c); + x->parent = p; + p->children[r + 1] = x; + + if (A[r + 1] == s) + A[r + 1] = x; + else + promote(x); + +#if defined(BOOST_RELAXED_HEAP_DEBUG) && BOOST_RELAXED_HEAP_DEBUG > 1 + dump_tree(std::cerr); +#endif + // pair_transform(a); + } + else + { + // Clean operation + group* p = a->parent; + s->children[r] = a; + a->parent = s; + p->children[r] = c; + c->parent = p; + + promote(a); + } + } + + static void do_swap(group*& x, group*& y) + { + group* tmp = x; + x = y; + y = tmp; + } + + /// Function object that compares two values in the heap + Compare compare; + + /// Mapping from values to indices in the range [0, n). + ID id; + + /** The root group of the queue. This group is special because it will + * never store a value, but it acts as a parent to all of the + * roots. Thus, its list of children is the list of roots. + */ + group root; + + /** Mapping from the group index of a value to the group associated + * with that value. If a value is not in the queue, then the "value" + * field will be empty. + */ + std::vector< group > index_to_group; + + /** Flat data structure containing the values in each of the + * groups. It will be indexed via the id of the values. The groups + * are each log_n long, with the last group potentially being + * smaller. + */ + std::vector< ::boost::optional< value_type > > groups; + + /** The list of active groups, indexed by rank. When A[r] is null, + * there is no active group of rank r. Otherwise, A[r] is the active + * group of rank r. + */ + std::vector< group* > A; + + /** The group containing the smallest value in the queue, which must + * be either a root or an active group. If this group is null, then we + * will need to search for this group when it is needed. + */ + mutable group* smallest_value; + + /// Cached value log_base_2(n) + size_type log_n; +}; + +} } } // end namespace CGAL::internal::boost_ + +#if defined(BOOST_MSVC) +#pragma warning(pop) +#endif + +#endif // BOOST_RELAXED_HEAP_HEADER diff -Nru cgal-5.4.1/include/CGAL/STL_Extension/internal/Has_member_visited.h cgal-5.5/include/CGAL/STL_Extension/internal/Has_member_visited.h --- cgal-5.4.1/include/CGAL/STL_Extension/internal/Has_member_visited.h 2022-06-03 19:05:32.000000000 +0000 +++ cgal-5.5/include/CGAL/STL_Extension/internal/Has_member_visited.h 2022-07-13 19:06:28.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/STL_Extension/internal/Has_member_visited.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/STL_Extension/internal/Has_member_visited.h $ // $Id: Has_member_visited.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/STL_Extension/internal/Has_nested_type_Bare_point.h cgal-5.5/include/CGAL/STL_Extension/internal/Has_nested_type_Bare_point.h --- cgal-5.4.1/include/CGAL/STL_Extension/internal/Has_nested_type_Bare_point.h 2022-06-03 19:05:32.000000000 +0000 +++ cgal-5.5/include/CGAL/STL_Extension/internal/Has_nested_type_Bare_point.h 2022-07-13 19:06:28.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/STL_Extension/internal/Has_nested_type_Bare_point.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/STL_Extension/internal/Has_nested_type_Bare_point.h $ // $Id: Has_nested_type_Bare_point.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/STL_Extension/internal/info_check.h cgal-5.5/include/CGAL/STL_Extension/internal/info_check.h --- cgal-5.4.1/include/CGAL/STL_Extension/internal/info_check.h 2022-06-03 19:05:32.000000000 +0000 +++ cgal-5.5/include/CGAL/STL_Extension/internal/info_check.h 2022-07-13 19:06:28.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/STL_Extension/internal/info_check.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/STL_Extension/internal/info_check.h $ // $Id: info_check.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/STL_Extension/internal/parameters_interface.h cgal-5.5/include/CGAL/STL_Extension/internal/parameters_interface.h --- cgal-5.4.1/include/CGAL/STL_Extension/internal/parameters_interface.h 1970-01-01 00:00:00.000000000 +0000 +++ cgal-5.5/include/CGAL/STL_Extension/internal/parameters_interface.h 2022-07-13 19:06:28.000000000 +0000 @@ -0,0 +1,240 @@ +// Copyright (c) 2017 GeometryFactory (France). All rights reserved. +// +// This file is part of CGAL (www.cgal.org) +// +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/STL_Extension/internal/parameters_interface.h $ +// $Id: parameters_interface.h 6869bdd 2022-06-07T16:15:53+02:00 Sébastien Loriot +// SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial +// +// +// Author(s) : Maxime Gimeno + +// List of named parameters that we use in CGAL +CGAL_add_named_parameter(vertex_point_t, vertex_point, vertex_point_map) +CGAL_add_named_parameter(halfedge_index_t, halfedge_index, halfedge_index_map) +CGAL_add_named_parameter(edge_index_t, edge_index, edge_index_map) +CGAL_add_named_parameter(face_index_t, face_index, face_index_map) +CGAL_add_named_parameter(vertex_index_t, vertex_index, vertex_index_map) +CGAL_add_named_parameter(visitor_t, visitor, visitor) + +CGAL_add_named_parameter(point_t, point_map, point_map) + +CGAL_add_named_parameter(edge_is_constrained_t, edge_is_constrained, edge_is_constrained_map) +CGAL_add_named_parameter(first_index_t, first_index, first_index) +CGAL_add_named_parameter(number_of_iterations_t, number_of_iterations, number_of_iterations) +CGAL_add_named_parameter(verbosity_level_t, verbosity_level, verbosity_level) +CGAL_add_named_parameter(use_binary_mode_t, use_binary_mode, use_binary_mode) + +CGAL_add_named_parameter(metis_options_t, METIS_options, METIS_options) +CGAL_add_named_parameter(vertex_partition_id_t, vertex_partition_id, vertex_partition_id_map) +CGAL_add_named_parameter(face_partition_id_t, face_partition_id, face_partition_id_map) + +CGAL_add_named_parameter(vertex_to_vertex_output_iterator_t, vertex_to_vertex_output_iterator, vertex_to_vertex_output_iterator) +CGAL_add_named_parameter(halfedge_to_halfedge_output_iterator_t, halfedge_to_halfedge_output_iterator, halfedge_to_halfedge_output_iterator) +CGAL_add_named_parameter(face_to_face_output_iterator_t, face_to_face_output_iterator, face_to_face_output_iterator) + +CGAL_add_named_parameter(vertex_to_vertex_map_t, vertex_to_vertex_map, vertex_to_vertex_map) +CGAL_add_named_parameter(halfedge_to_halfedge_map_t, halfedge_to_halfedge_map, halfedge_to_halfedge_map) +CGAL_add_named_parameter(face_to_face_map_t, face_to_face_map, face_to_face_map) +CGAL_add_named_parameter(implementation_tag_t, implementation_tag, implementation_tag) +CGAL_add_named_parameter(prevent_unselection_t, prevent_unselection, prevent_unselection) + +CGAL_add_named_parameter(verbose_t, verbose, verbose) + +// List of named parameters used for IO +CGAL_add_named_parameter(vertex_normal_output_iterator_t, vertex_normal_output_iterator, vertex_normal_output_iterator) +CGAL_add_named_parameter(vertex_color_output_iterator_t, vertex_color_output_iterator, vertex_color_output_iterator) +CGAL_add_named_parameter(vertex_texture_output_iterator_t, vertex_texture_output_iterator, vertex_texture_output_iterator) +CGAL_add_named_parameter(face_color_output_iterator_t, face_color_output_iterator, face_color_output_iterator) +CGAL_add_named_parameter(vertex_normal_map_t, vertex_normal_map, vertex_normal_map) +CGAL_add_named_parameter(vertex_color_map_t, vertex_color_map, vertex_color_map) +CGAL_add_named_parameter(vertex_texture_map_t, vertex_texture_map, vertex_texture_map) +CGAL_add_named_parameter(face_color_map_t, face_color_map, face_color_map) +CGAL_add_named_parameter(repair_polygon_soup_t, repair_polygon_soup, repair_polygon_soup) +CGAL_add_named_parameter(output_color_t, output_color, output_color) +CGAL_add_named_parameter(stream_precision_t, stream_precision, stream_precision) + +// List of named parameters that we use in the package 'Mesh_3' +CGAL_add_named_parameter(vertex_feature_degree_t, vertex_feature_degree, vertex_feature_degree_map) + +// List of named parameters used in the package 'Polygon Mesh Processing' +CGAL_add_named_parameter(geom_traits_t, geom_traits, geom_traits) +CGAL_add_named_parameter(vertex_incident_patches_t, vertex_incident_patches, vertex_incident_patches_map) +CGAL_add_named_parameter(density_control_factor_t, density_control_factor, density_control_factor) +CGAL_add_named_parameter(use_delaunay_triangulation_t, use_delaunay_triangulation, use_delaunay_triangulation) +CGAL_add_named_parameter(do_not_use_cubic_algorithm_t, do_not_use_cubic_algorithm, do_not_use_cubic_algorithm) +CGAL_add_named_parameter(use_2d_constrained_delaunay_triangulation_t, use_2d_constrained_delaunay_triangulation, use_2d_constrained_delaunay_triangulation) +CGAL_add_named_parameter(fairing_continuity_t, fairing_continuity, fairing_continuity) +CGAL_add_named_parameter(sparse_linear_solver_t, sparse_linear_solver, sparse_linear_solver) +CGAL_add_named_parameter(number_of_relaxation_steps_t, number_of_relaxation_steps, number_of_relaxation_steps) +CGAL_add_named_parameter(protect_constraints_t, protect_constraints, protect_constraints) +CGAL_add_named_parameter(relax_constraints_t, relax_constraints, relax_constraints) +CGAL_add_named_parameter(collapse_constraints_t, collapse_constraints, collapse_constraints) +CGAL_add_named_parameter(vertex_is_constrained_t, vertex_is_constrained, vertex_is_constrained_map) +CGAL_add_named_parameter(face_patch_t, face_patch, face_patch_map) +CGAL_add_named_parameter(random_uniform_sampling_t, random_uniform_sampling, use_random_uniform_sampling) +CGAL_add_named_parameter(grid_sampling_t, grid_sampling, use_grid_sampling) +CGAL_add_named_parameter(monte_carlo_sampling_t, monte_carlo_sampling, use_monte_carlo_sampling) +CGAL_add_named_parameter(do_sample_edges_t, do_sample_edges, do_sample_edges) +CGAL_add_named_parameter(do_sample_vertices_t, do_sample_vertices, do_sample_vertices) +CGAL_add_named_parameter(do_sample_faces_t, do_sample_faces, do_sample_faces) +CGAL_add_named_parameter(number_of_points_on_faces_t, number_of_points_on_faces, number_of_points_on_faces) +CGAL_add_named_parameter(number_of_points_per_face_t, number_of_points_per_face, number_of_points_per_face) +CGAL_add_named_parameter(grid_spacing_t, grid_spacing, grid_spacing) +CGAL_add_named_parameter(number_of_points_per_edge_t, number_of_points_per_edge, number_of_points_per_edge) +CGAL_add_named_parameter(number_of_points_on_edges_t, number_of_points_on_edges, number_of_points_on_edges) +CGAL_add_named_parameter(nb_points_per_area_unit_t, nb_points_per_area_unit, number_of_points_per_area_unit) +CGAL_add_named_parameter(nb_points_per_distance_unit_t, nb_points_per_distance_unit, number_of_points_per_distance_unit) +CGAL_add_named_parameter(outward_orientation_t, outward_orientation, outward_orientation) +CGAL_add_named_parameter(overlap_test_t, overlap_test, do_overlap_test_of_bounded_sides) +CGAL_add_named_parameter(preserve_genus_t, preserve_genus, preserve_genus) +CGAL_add_named_parameter(apply_per_connected_component_t, apply_per_connected_component, apply_per_connected_component) +CGAL_add_named_parameter(projection_functor_t, projection_functor, projection_functor) +CGAL_add_named_parameter(allow_move_functor_t, allow_move_functor, allow_move_functor) +CGAL_add_named_parameter(throw_on_self_intersection_t, throw_on_self_intersection, throw_on_self_intersection) +CGAL_add_named_parameter(clip_volume_t, clip_volume, clip_volume) +CGAL_add_named_parameter(use_compact_clipper_t, use_compact_clipper, use_compact_clipper) +CGAL_add_named_parameter(output_iterator_t, output_iterator, output_iterator) +CGAL_add_named_parameter(erase_all_duplicates_t, erase_all_duplicates, erase_all_duplicates) +CGAL_add_named_parameter(require_same_orientation_t, require_same_orientation, require_same_orientation) +CGAL_add_named_parameter(face_size_map_t, face_size_map, face_size_map) +CGAL_add_named_parameter(snapping_tolerance_t, snapping_tolerance, snapping_tolerance) +CGAL_add_named_parameter(use_safety_constraints_t, use_safety_constraints, use_safety_constraints) +CGAL_add_named_parameter(use_angle_smoothing_t, use_angle_smoothing, use_angle_smoothing) +CGAL_add_named_parameter(use_area_smoothing_t, use_area_smoothing, use_area_smoothing) +CGAL_add_named_parameter(use_Delaunay_flips_t, use_Delaunay_flips, use_Delaunay_flips) +CGAL_add_named_parameter(do_project_t, do_project, do_project) +CGAL_add_named_parameter(do_split_t, do_split, do_split) +CGAL_add_named_parameter(do_collapse_t, do_collapse, do_collapse) +CGAL_add_named_parameter(do_flip_t, do_flip, do_flip) +CGAL_add_named_parameter(do_orientation_tests_t, do_orientation_tests, do_orientation_tests) +CGAL_add_named_parameter(do_self_intersection_tests_t, do_self_intersection_tests, do_self_intersection_tests) +CGAL_add_named_parameter(error_codes_t, error_codes, error_codes) +CGAL_add_named_parameter(volume_inclusions_t, volume_inclusions, volume_inclusions) +CGAL_add_named_parameter(face_cc_map_t, face_connected_component_map, face_connected_component_map) +CGAL_add_named_parameter(ccid_to_vid_vector_t, connected_component_id_to_volume_id, connected_component_id_to_volume_id) +CGAL_add_named_parameter(is_cc_outward_oriented_bs_t, is_cc_outward_oriented, is_cc_outward_oriented) +CGAL_add_named_parameter(intersecting_volume_pairs_t, intersecting_volume_pairs_output_iterator, intersecting_volume_pairs_output_iterator) +CGAL_add_named_parameter(i_used_as_a_predicate_t, i_used_as_a_predicate, i_used_as_a_predicate) +CGAL_add_named_parameter(nesting_levels_t, nesting_levels, nesting_levels) +CGAL_add_named_parameter(i_used_for_volume_orientation_t, i_used_for_volume_orientation, i_used_for_volume_orientation) +CGAL_add_named_parameter(area_threshold_t, area_threshold, area_threshold) +CGAL_add_named_parameter(halfedges_keeper_t, halfedges_keeper, halfedges_keeper) +CGAL_add_named_parameter(volume_threshold_t, volume_threshold, volume_threshold) +CGAL_add_named_parameter(dry_run_t, dry_run, dry_run) +CGAL_add_named_parameter(do_not_modify_t, do_not_modify, do_not_modify) +CGAL_add_named_parameter(allow_self_intersections_t, allow_self_intersections, allow_self_intersections) +CGAL_add_named_parameter(non_manifold_feature_map_t, non_manifold_feature_map, non_manifold_feature_map) +CGAL_add_named_parameter(polyhedral_envelope_epsilon_t, polyhedral_envelope_epsilon, polyhedral_envelope_epsilon) +CGAL_add_named_parameter(match_faces_t, match_faces, match_faces) +CGAL_add_named_parameter(face_epsilon_map_t, face_epsilon_map, face_epsilon_map) +CGAL_add_named_parameter(maximum_number_t, maximum_number, maximum_number) +CGAL_add_named_parameter(use_one_sided_hausdorff_t, use_one_sided_hausdorff, use_one_sided_hausdorff) +CGAL_add_named_parameter(flip_triangle_height_threshold_t, flip_triangle_height_threshold, flip_triangle_height_threshold) + +// List of named parameters that we use in the package 'Surface Mesh Simplification' +CGAL_add_named_parameter(get_cost_policy_t, get_cost_policy, get_cost) +CGAL_add_named_parameter(get_placement_policy_t, get_placement_policy, get_placement) +CGAL_add_named_parameter(filter_t, filter, filter) +CGAL_add_named_parameter(use_relaxed_order_t, use_relaxed_order, use_relaxed_order) + +//to be documented +CGAL_add_named_parameter(face_normal_t, face_normal, face_normal_map) +CGAL_add_named_parameter(random_seed_t, random_seed, random_seed) +CGAL_add_named_parameter(do_lock_mesh_t, do_lock_mesh, do_lock_mesh) +CGAL_add_named_parameter(do_simplify_border_t, do_simplify_border, do_simplify_border) +CGAL_add_named_parameter(algorithm_t, algorithm, algorithm) + +//internal +CGAL_add_named_parameter(weight_calculator_t, weight_calculator, weight_calculator) +CGAL_add_named_parameter(use_bool_op_to_clip_surface_t, use_bool_op_to_clip_surface, use_bool_op_to_clip_surface) + +// List of named parameters used in the Point Set Processing package +CGAL_add_named_parameter(query_point_t, query_point_map, query_point_map) +CGAL_add_named_parameter(normal_t, normal_map, normal_map) +CGAL_add_named_parameter(diagonalize_traits_t, diagonalize_traits, diagonalize_traits) +CGAL_add_named_parameter(svd_traits_t, svd_traits, svd_traits) +CGAL_add_named_parameter(callback_t, callback, callback) +CGAL_add_named_parameter(sharpness_angle_t, sharpness_angle, sharpness_angle) +CGAL_add_named_parameter(edge_sensitivity_t, edge_sensitivity, edge_sensitivity) +CGAL_add_named_parameter(neighbor_radius_t, neighbor_radius, neighbor_radius) +CGAL_add_named_parameter(number_of_output_points_t, number_of_output_points, number_of_output_points) +CGAL_add_named_parameter(size_t, size, size) +CGAL_add_named_parameter(maximum_variation_t, maximum_variation, maximum_variation) +CGAL_add_named_parameter(degree_fitting_t, degree_fitting, degree_fitting) +CGAL_add_named_parameter(degree_monge_t, degree_monge, degree_monge) +CGAL_add_named_parameter(threshold_percent_t, threshold_percent, threshold_percent) +CGAL_add_named_parameter(threshold_distance_t, threshold_distance, threshold_distance) +CGAL_add_named_parameter(attraction_factor_t, attraction_factor, attraction_factor) +CGAL_add_named_parameter(plane_t, plane_map, plane_map) +CGAL_add_named_parameter(plane_index_t, plane_index_map, plane_index_map) +CGAL_add_named_parameter(select_percentage_t, select_percentage, select_percentage) +CGAL_add_named_parameter(require_uniform_sampling_t, require_uniform_sampling, require_uniform_sampling) +CGAL_add_named_parameter(point_is_constrained_t, point_is_constrained, point_is_constrained_map) +CGAL_add_named_parameter(maximum_number_of_faces_t, maximum_number_of_faces, maximum_number_of_faces) +CGAL_add_named_parameter(transformation_t, transformation, transformation) +CGAL_add_named_parameter(point_set_filters_t, point_set_filters, point_set_filters) +CGAL_add_named_parameter(matcher_t, matcher, matcher) +CGAL_add_named_parameter(outlier_filters_t, outlier_filters, outlier_filters) +CGAL_add_named_parameter(error_minimizer_t, error_minimizer, error_minimizer) +CGAL_add_named_parameter(transformation_checkers_t, transformation_checkers, transformation_checkers) +CGAL_add_named_parameter(inspector_t, inspector, inspector) +CGAL_add_named_parameter(logger_t, logger, logger) +CGAL_add_named_parameter(pointmatcher_config_t, pointmatcher_config, pointmatcher_config) +CGAL_add_named_parameter(adjacencies_t, adjacencies, adjacencies) +CGAL_add_named_parameter(scan_angle_t, scan_angle_map, scan_angle_map) +CGAL_add_named_parameter(scanline_id_t, scanline_id_map, scanline_id_map) +CGAL_add_named_parameter(min_points_per_cell_t, min_points_per_cell, min_points_per_cell) +CGAL_add_named_parameter(scalar_t, scalar_map, scalar_map) + +// List of named parameters used in Surface_mesh_approximation package +CGAL_add_named_parameter(verbose_level_t, verbose_level, verbose_level) +CGAL_add_named_parameter(seeding_method_t, seeding_method, seeding_method) +CGAL_add_named_parameter(max_number_of_proxies_t, max_number_of_proxies, max_number_of_proxies) +CGAL_add_named_parameter(min_error_drop_t, min_error_drop, min_error_drop) +CGAL_add_named_parameter(number_of_relaxations_t, number_of_relaxations, number_of_relaxations) + +// List of named parameters used in Optimal_bounding_box package +CGAL_add_named_parameter(use_convex_hull_t, use_convex_hull, use_convex_hull) + +// meshing parameters +CGAL_add_named_parameter(subdivision_ratio_t, subdivision_ratio, subdivision_ratio) +CGAL_add_named_parameter(relative_to_chord_t, relative_to_chord, relative_to_chord) +CGAL_add_named_parameter(with_dihedral_angle_t, with_dihedral_angle, with_dihedral_angle) +CGAL_add_named_parameter(optimize_anchor_location_t, optimize_anchor_location, optimize_anchor_location) +CGAL_add_named_parameter(pca_plane_t, pca_plane, pca_plane) + +// tetrahedral remeshing parameters +CGAL_add_named_parameter(remesh_boundaries_t, remesh_boundaries, remesh_boundaries) +CGAL_add_named_parameter(cell_selector_t, cell_selector, cell_is_selected_map) +CGAL_add_named_parameter(facet_is_constrained_t, facet_is_constrained, facet_is_constrained_map) +CGAL_add_named_parameter(smooth_constrained_edges_t, smooth_constrained_edges, smooth_constrained_edges) + +// List of named parameters used in Alpha_wrap_3 +CGAL_add_named_parameter(do_enforce_manifoldness_t, do_enforce_manifoldness, do_enforce_manifoldness) +CGAL_add_named_parameter(seed_points_t, seed_points, seed_points) + +// output parameters +CGAL_add_named_parameter(face_proxy_map_t, face_proxy_map, face_proxy_map) +CGAL_add_named_parameter(proxies_t, proxies, proxies) +CGAL_add_named_parameter(anchors_t, anchors, anchors) +CGAL_add_named_parameter(triangles_t, triangles, triangles) + +CGAL_add_named_parameter(number_of_samples_t, number_of_samples, number_of_samples) +CGAL_add_named_parameter(accuracy_t, accuracy, accuracy) +CGAL_add_named_parameter(maximum_running_time_t, maximum_running_time, maximum_running_time) +CGAL_add_named_parameter(overlap_t, overlap, overlap) +CGAL_add_named_parameter(maximum_normal_deviation_t, maximum_normal_deviation, maximum_normal_deviation) + +// List of named parameters used in Shape_regularization package +CGAL_add_named_parameter(minimum_length_t, minimum_length, minimum_length) +CGAL_add_named_parameter(maximum_angle_t, maximum_angle, maximum_angle) +CGAL_add_named_parameter(maximum_offset_t, maximum_offset, maximum_offset) +CGAL_add_named_parameter(regularize_parallelism_t, regularize_parallelism, regularize_parallelism) +CGAL_add_named_parameter(regularize_orthogonality_t, regularize_orthogonality, regularize_orthogonality) +CGAL_add_named_parameter(regularize_coplanarity_t, regularize_coplanarity, regularize_coplanarity) +CGAL_add_named_parameter(regularize_axis_symmetry_t, regularize_axis_symmetry, regularize_axis_symmetry) +CGAL_add_named_parameter(symmetry_direction_t, symmetry_direction, symmetry_direction) +CGAL_add_named_parameter(preserve_order_t, preserve_order, preserve_order) +CGAL_add_named_parameter(adjust_directions_t, adjust_directions, adjust_directions) +CGAL_add_named_parameter(segment_t, segment_map, segment_map) diff -Nru cgal-5.4.1/include/CGAL/Straight_skeleton_2/assertions.h cgal-5.5/include/CGAL/Straight_skeleton_2/assertions.h --- cgal-5.4.1/include/CGAL/Straight_skeleton_2/assertions.h 2022-06-03 19:05:50.000000000 +0000 +++ cgal-5.5/include/CGAL/Straight_skeleton_2/assertions.h 2022-07-13 19:06:46.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Straight_skeleton_2/include/CGAL/Straight_skeleton_2/assertions.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Straight_skeleton_2/include/CGAL/Straight_skeleton_2/assertions.h $ // $Id: assertions.h 07120b8 2020-12-04T17:43:14+00:00 Giles Bathgate // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Straight_skeleton_2/debug.h cgal-5.5/include/CGAL/Straight_skeleton_2/debug.h --- cgal-5.4.1/include/CGAL/Straight_skeleton_2/debug.h 2022-06-03 19:05:50.000000000 +0000 +++ cgal-5.5/include/CGAL/Straight_skeleton_2/debug.h 2022-07-13 19:06:46.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Straight_skeleton_2/include/CGAL/Straight_skeleton_2/debug.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Straight_skeleton_2/include/CGAL/Straight_skeleton_2/debug.h $ // $Id: debug.h 7513752 2020-10-05T18:35:08+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Straight_skeleton_2/Polygon_iterators.h cgal-5.5/include/CGAL/Straight_skeleton_2/Polygon_iterators.h --- cgal-5.4.1/include/CGAL/Straight_skeleton_2/Polygon_iterators.h 2022-06-03 19:05:50.000000000 +0000 +++ cgal-5.5/include/CGAL/Straight_skeleton_2/Polygon_iterators.h 2022-07-13 19:06:46.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Straight_skeleton_2/include/CGAL/Straight_skeleton_2/Polygon_iterators.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Straight_skeleton_2/include/CGAL/Straight_skeleton_2/Polygon_iterators.h $ // $Id: Polygon_iterators.h 9051fc1 2020-10-08T22:54:11+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Straight_skeleton_2/Polygon_offset_builder_2_impl.h cgal-5.5/include/CGAL/Straight_skeleton_2/Polygon_offset_builder_2_impl.h --- cgal-5.4.1/include/CGAL/Straight_skeleton_2/Polygon_offset_builder_2_impl.h 2022-06-03 19:05:50.000000000 +0000 +++ cgal-5.5/include/CGAL/Straight_skeleton_2/Polygon_offset_builder_2_impl.h 2022-07-13 19:06:46.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Straight_skeleton_2/include/CGAL/Straight_skeleton_2/Polygon_offset_builder_2_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Straight_skeleton_2/include/CGAL/Straight_skeleton_2/Polygon_offset_builder_2_impl.h $ // $Id: Polygon_offset_builder_2_impl.h 14644c4 2020-10-07T19:33:36+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Straight_skeleton_2/Straight_skeleton_aux.h cgal-5.5/include/CGAL/Straight_skeleton_2/Straight_skeleton_aux.h --- cgal-5.4.1/include/CGAL/Straight_skeleton_2/Straight_skeleton_aux.h 2022-06-03 19:05:50.000000000 +0000 +++ cgal-5.5/include/CGAL/Straight_skeleton_2/Straight_skeleton_aux.h 2022-07-13 19:06:46.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Straight_skeleton_2/include/CGAL/Straight_skeleton_2/Straight_skeleton_aux.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Straight_skeleton_2/include/CGAL/Straight_skeleton_2/Straight_skeleton_aux.h $ // $Id: Straight_skeleton_aux.h 5ecd852 2021-04-26T21:37:02+01:00 Giles Bathgate // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Straight_skeleton_2/Straight_skeleton_builder_2_impl.h cgal-5.5/include/CGAL/Straight_skeleton_2/Straight_skeleton_builder_2_impl.h --- cgal-5.4.1/include/CGAL/Straight_skeleton_2/Straight_skeleton_builder_2_impl.h 2022-06-03 19:05:50.000000000 +0000 +++ cgal-5.5/include/CGAL/Straight_skeleton_2/Straight_skeleton_builder_2_impl.h 2022-07-13 19:06:46.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Straight_skeleton_2/include/CGAL/Straight_skeleton_2/Straight_skeleton_builder_2_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Straight_skeleton_2/include/CGAL/Straight_skeleton_2/Straight_skeleton_builder_2_impl.h $ // $Id: Straight_skeleton_builder_2_impl.h 2a513a0 2022-03-09T13:23:07+00:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Straight_skeleton_2/Straight_skeleton_builder_events_2.h cgal-5.5/include/CGAL/Straight_skeleton_2/Straight_skeleton_builder_events_2.h --- cgal-5.4.1/include/CGAL/Straight_skeleton_2/Straight_skeleton_builder_events_2.h 2022-06-03 19:05:50.000000000 +0000 +++ cgal-5.5/include/CGAL/Straight_skeleton_2/Straight_skeleton_builder_events_2.h 2022-07-13 19:06:46.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Straight_skeleton_2/include/CGAL/Straight_skeleton_2/Straight_skeleton_builder_events_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Straight_skeleton_2/include/CGAL/Straight_skeleton_2/Straight_skeleton_builder_events_2.h $ // $Id: Straight_skeleton_builder_events_2.h 4d85f84 2020-09-29T20:00:27+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Straight_skeleton_2/Straight_skeleton_builder_traits_2_aux.h cgal-5.5/include/CGAL/Straight_skeleton_2/Straight_skeleton_builder_traits_2_aux.h --- cgal-5.4.1/include/CGAL/Straight_skeleton_2/Straight_skeleton_builder_traits_2_aux.h 2022-06-03 19:05:50.000000000 +0000 +++ cgal-5.5/include/CGAL/Straight_skeleton_2/Straight_skeleton_builder_traits_2_aux.h 2022-07-13 19:06:46.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Straight_skeleton_2/include/CGAL/Straight_skeleton_2/Straight_skeleton_builder_traits_2_aux.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Straight_skeleton_2/include/CGAL/Straight_skeleton_2/Straight_skeleton_builder_traits_2_aux.h $ // $Id: Straight_skeleton_builder_traits_2_aux.h c8624ee 2021-09-09T11:01:03+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Straight_skeleton_2/test.h cgal-5.5/include/CGAL/Straight_skeleton_2/test.h --- cgal-5.4.1/include/CGAL/Straight_skeleton_2/test.h 2022-06-03 19:05:50.000000000 +0000 +++ cgal-5.5/include/CGAL/Straight_skeleton_2/test.h 2022-07-13 19:06:46.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Straight_skeleton_2/include/CGAL/Straight_skeleton_2/test.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Straight_skeleton_2/include/CGAL/Straight_skeleton_2/test.h $ // $Id: test.h 655d427 2020-09-11T15:00:12+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Straight_skeleton_2.h cgal-5.5/include/CGAL/Straight_skeleton_2.h --- cgal-5.4.1/include/CGAL/Straight_skeleton_2.h 2022-06-03 19:05:49.000000000 +0000 +++ cgal-5.5/include/CGAL/Straight_skeleton_2.h 2022-07-13 19:06:46.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Straight_skeleton_2/include/CGAL/Straight_skeleton_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Straight_skeleton_2/include/CGAL/Straight_skeleton_2.h $ // $Id: Straight_skeleton_2.h 7513752 2020-10-05T18:35:08+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Straight_skeleton_builder_2.h cgal-5.5/include/CGAL/Straight_skeleton_builder_2.h --- cgal-5.4.1/include/CGAL/Straight_skeleton_builder_2.h 2022-06-03 19:05:50.000000000 +0000 +++ cgal-5.5/include/CGAL/Straight_skeleton_builder_2.h 2022-07-13 19:06:46.000000000 +0000 @@ -3,7 +3,7 @@ // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Straight_skeleton_2/include/CGAL/Straight_skeleton_builder_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Straight_skeleton_2/include/CGAL/Straight_skeleton_builder_2.h $ // $Id: Straight_skeleton_builder_2.h 1f45360 2021-01-26T09:05:24+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Straight_skeleton_builder_traits_2.h cgal-5.5/include/CGAL/Straight_skeleton_builder_traits_2.h --- cgal-5.4.1/include/CGAL/Straight_skeleton_builder_traits_2.h 2022-06-03 19:05:50.000000000 +0000 +++ cgal-5.5/include/CGAL/Straight_skeleton_builder_traits_2.h 2022-07-13 19:06:46.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Straight_skeleton_2/include/CGAL/Straight_skeleton_builder_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Straight_skeleton_2/include/CGAL/Straight_skeleton_builder_traits_2.h $ // $Id: Straight_skeleton_builder_traits_2.h 29b6963 2020-11-06T12:28:30+01:00 Jane Tournois // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Straight_skeleton_converter_2.h cgal-5.5/include/CGAL/Straight_skeleton_converter_2.h --- cgal-5.4.1/include/CGAL/Straight_skeleton_converter_2.h 2022-06-03 19:05:50.000000000 +0000 +++ cgal-5.5/include/CGAL/Straight_skeleton_converter_2.h 2022-07-13 19:06:46.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Straight_skeleton_2/include/CGAL/Straight_skeleton_converter_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Straight_skeleton_2/include/CGAL/Straight_skeleton_converter_2.h $ // $Id: Straight_skeleton_converter_2.h 655d427 2020-09-11T15:00:12+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Straight_skeleton_face_base_2.h cgal-5.5/include/CGAL/Straight_skeleton_face_base_2.h --- cgal-5.4.1/include/CGAL/Straight_skeleton_face_base_2.h 2022-06-03 19:05:50.000000000 +0000 +++ cgal-5.5/include/CGAL/Straight_skeleton_face_base_2.h 2022-07-13 19:06:46.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Straight_skeleton_2/include/CGAL/Straight_skeleton_face_base_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Straight_skeleton_2/include/CGAL/Straight_skeleton_face_base_2.h $ // $Id: Straight_skeleton_face_base_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Straight_skeleton_halfedge_base_2.h cgal-5.5/include/CGAL/Straight_skeleton_halfedge_base_2.h --- cgal-5.4.1/include/CGAL/Straight_skeleton_halfedge_base_2.h 2022-06-03 19:05:50.000000000 +0000 +++ cgal-5.5/include/CGAL/Straight_skeleton_halfedge_base_2.h 2022-07-13 19:06:46.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Straight_skeleton_2/include/CGAL/Straight_skeleton_halfedge_base_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Straight_skeleton_2/include/CGAL/Straight_skeleton_halfedge_base_2.h $ // $Id: Straight_skeleton_halfedge_base_2.h b6333ed 2020-10-05T18:29:34+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Straight_skeleton_items_2.h cgal-5.5/include/CGAL/Straight_skeleton_items_2.h --- cgal-5.4.1/include/CGAL/Straight_skeleton_items_2.h 2022-06-03 19:05:50.000000000 +0000 +++ cgal-5.5/include/CGAL/Straight_skeleton_items_2.h 2022-07-13 19:06:46.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Straight_skeleton_2/include/CGAL/Straight_skeleton_items_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Straight_skeleton_2/include/CGAL/Straight_skeleton_items_2.h $ // $Id: Straight_skeleton_items_2.h b6333ed 2020-10-05T18:29:34+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Straight_skeleton_vertex_base_2.h cgal-5.5/include/CGAL/Straight_skeleton_vertex_base_2.h --- cgal-5.4.1/include/CGAL/Straight_skeleton_vertex_base_2.h 2022-06-03 19:05:50.000000000 +0000 +++ cgal-5.5/include/CGAL/Straight_skeleton_vertex_base_2.h 2022-07-13 19:06:46.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Straight_skeleton_2/include/CGAL/Straight_skeleton_vertex_base_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Straight_skeleton_2/include/CGAL/Straight_skeleton_vertex_base_2.h $ // $Id: Straight_skeleton_vertex_base_2.h 655d427 2020-09-11T15:00:12+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Stream_lines_2.h cgal-5.5/include/CGAL/Stream_lines_2.h --- cgal-5.4.1/include/CGAL/Stream_lines_2.h 2022-06-03 19:05:51.000000000 +0000 +++ cgal-5.5/include/CGAL/Stream_lines_2.h 2022-07-13 19:06:48.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Stream_lines_2/include/CGAL/Stream_lines_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Stream_lines_2/include/CGAL/Stream_lines_2.h $ // $Id: Stream_lines_2.h 1faa0e2 2021-04-28T10:55:26+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/streamlines_assertions.h cgal-5.5/include/CGAL/streamlines_assertions.h --- cgal-5.4.1/include/CGAL/streamlines_assertions.h 2022-06-03 19:05:51.000000000 +0000 +++ cgal-5.5/include/CGAL/streamlines_assertions.h 2022-07-13 19:06:48.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Stream_lines_2/include/CGAL/streamlines_assertions.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Stream_lines_2/include/CGAL/streamlines_assertions.h $ // $Id: streamlines_assertions.h 5a36ff8 2020-12-04T08:02:26+00:00 Giles Bathgate // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Stream_support/internal/Geometry_container.h cgal-5.5/include/CGAL/Stream_support/internal/Geometry_container.h --- cgal-5.4.1/include/CGAL/Stream_support/internal/Geometry_container.h 2022-06-03 19:05:52.000000000 +0000 +++ cgal-5.5/include/CGAL/Stream_support/internal/Geometry_container.h 2022-07-13 19:06:49.000000000 +0000 @@ -6,7 +6,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Stream_support/include/CGAL/Stream_support/internal/Geometry_container.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Stream_support/include/CGAL/Stream_support/internal/Geometry_container.h $ // $Id: Geometry_container.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/structure_point_set.h cgal-5.5/include/CGAL/structure_point_set.h --- cgal-5.4.1/include/CGAL/structure_point_set.h 2022-06-03 19:05:13.000000000 +0000 +++ cgal-5.5/include/CGAL/structure_point_set.h 2022-07-13 19:06:06.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Point_set_processing_3/include/CGAL/structure_point_set.h $ -// $Id: structure_point_set.h 8166579 2021-10-11T19:58:07+02:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Point_set_processing_3/include/CGAL/structure_point_set.h $ +// $Id: structure_point_set.h 477353d 2022-04-20T15:55:50+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -33,7 +33,7 @@ #include #include -#include +#include #include #include @@ -165,7 +165,7 @@ \param points input point range \param planes input plane range. \param epsilon size parameter. - \param np an optional sequence of \ref bgl_namedparameters "Named Parameters" among the ones listed below + \param np a sequence of \ref bgl_namedparameters "Named Parameters" among the ones listed below: \cgalNamedParamsBegin \cgalParamNBegin{point_map} @@ -185,7 +185,7 @@ \cgalParamDescription{a property map associating the index of a point in the input range to the index of plane (`-1` if the point is not assigned to a plane)} \cgalParamType{a class model of `ReadablePropertyMap` with `std::size_t` as key type and `int` as value type} - \cgalParamDefault{unused} + \cgalParamDefault{There is no default, this parameters is mandatory.} \cgalParamNEnd \cgalParamNBegin{plane_map} @@ -225,22 +225,21 @@ { using parameters::choose_parameter; using parameters::get_parameter; + using parameters::is_default_parameter; // basic geometric types - typedef typename CGAL::GetPointMap::type PointMap; - typedef typename Point_set_processing_3::GetNormalMap::type NormalMap; + typedef Point_set_processing_3_np_helper NP_helper; + typedef typename NP_helper::Const_point_map PointMap; + typedef typename NP_helper::Normal_map NormalMap; typedef typename Point_set_processing_3::GetPlaneMap::type PlaneMap; typedef typename Point_set_processing_3::GetPlaneIndexMap::type PlaneIndexMap; - CGAL_static_assertion_msg(!(boost::is_same::NoMap>::value), - "Error: no normal map"); - CGAL_static_assertion_msg(!(boost::is_same::NoMap>::value), + CGAL_static_assertion_msg(NP_helper::has_normal_map(), "Error: no normal map"); + CGAL_static_assertion_msg((!is_default_parameter::value), "Error: no plane index map"); - PointMap point_map = choose_parameter(get_parameter(np, internal_np::point_map)); - NormalMap normal_map = choose_parameter(get_parameter(np, internal_np::normal_map)); + PointMap point_map = NP_helper::get_const_point_map(points, np); + NormalMap normal_map = NP_helper::get_normal_map(points, np); PlaneMap plane_map = choose_parameter(get_parameter(np, internal_np::plane_map)); PlaneIndexMap index_map = choose_parameter(get_parameter(np, internal_np::plane_index_map)); double attraction_factor = choose_parameter(get_parameter(np, internal_np::attraction_factor), 3.); @@ -1505,7 +1504,7 @@ \param planes input plane range. \param output output iterator where output points are written \param epsilon size parameter. - \param np an optional sequence of \ref bgl_namedparameters "Named Parameters" among the ones listed below + \param np a sequence of \ref bgl_namedparameters "Named Parameters" among the ones listed below \cgalNamedParamsBegin \cgalParamNBegin{point_map} @@ -1525,7 +1524,7 @@ \cgalParamDescription{a property map associating the index of a point in the input range to the index of plane (`-1` if the point is not assigned to a plane)} \cgalParamType{a class model of `ReadablePropertyMap` with `std::size_t` as key type and `int` as value type} - \cgalParamDefault{unused} + \cgalParamDefault{There is no default, this parameters is mandatory.} \cgalParamNEnd \cgalParamNBegin{plane_map} @@ -1564,7 +1563,8 @@ using parameters::choose_parameter; using parameters::get_parameter; - typedef typename Point_set_processing_3::GetK::Kernel Kernel; + typedef Point_set_processing_3_np_helper NP_helper; + typedef typename NP_helper::Geom_traits Kernel; Point_set_with_structure pss (points, planes, epsilon, np); @@ -1574,24 +1574,6 @@ return output; } -/// \cond SKIP_IN_MANUAL -// variant with default NP -template -OutputIterator -structure_point_set (const PointRange& points, ///< range of points. - const PlaneRange& planes, ///< range of planes. - OutputIterator output, ///< output iterator where output points are written. - double epsilon) ///< size parameter. -{ - return structure_point_set - (points, planes, output, epsilon, - CGAL::Point_set_processing_3::parameters::all_default(points)); -} -/// \endcond - - } //namespace CGAL #include diff -Nru cgal-5.4.1/include/CGAL/subdivide_skin_surface_mesh_3.h cgal-5.5/include/CGAL/subdivide_skin_surface_mesh_3.h --- cgal-5.4.1/include/CGAL/subdivide_skin_surface_mesh_3.h 2022-06-03 19:05:45.000000000 +0000 +++ cgal-5.5/include/CGAL/subdivide_skin_surface_mesh_3.h 2022-07-13 19:06:41.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Skin_surface_3/include/CGAL/subdivide_skin_surface_mesh_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Skin_surface_3/include/CGAL/subdivide_skin_surface_mesh_3.h $ // $Id: subdivide_skin_surface_mesh_3.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/subdivide_union_of_balls_mesh_3.h cgal-5.5/include/CGAL/subdivide_union_of_balls_mesh_3.h --- cgal-5.4.1/include/CGAL/subdivide_union_of_balls_mesh_3.h 2022-06-03 19:05:45.000000000 +0000 +++ cgal-5.5/include/CGAL/subdivide_union_of_balls_mesh_3.h 2022-07-13 19:06:41.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Skin_surface_3/include/CGAL/subdivide_union_of_balls_mesh_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Skin_surface_3/include/CGAL/subdivide_union_of_balls_mesh_3.h $ // $Id: subdivide_union_of_balls_mesh_3.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Subdivision_method_3/internal/Euler_extensions.h cgal-5.5/include/CGAL/Subdivision_method_3/internal/Euler_extensions.h --- cgal-5.4.1/include/CGAL/Subdivision_method_3/internal/Euler_extensions.h 2022-06-03 19:05:52.000000000 +0000 +++ cgal-5.5/include/CGAL/Subdivision_method_3/internal/Euler_extensions.h 2022-07-13 19:06:49.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Subdivision_method_3/include/CGAL/Subdivision_method_3/internal/Euler_extensions.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Subdivision_method_3/include/CGAL/Subdivision_method_3/internal/Euler_extensions.h $ // $Id: Euler_extensions.h e893ac1 2020-08-18T10:06:51+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Subdivision_method_3/internal/subdivision_hosts_impl_3.h cgal-5.5/include/CGAL/Subdivision_method_3/internal/subdivision_hosts_impl_3.h --- cgal-5.4.1/include/CGAL/Subdivision_method_3/internal/subdivision_hosts_impl_3.h 2022-06-03 19:05:52.000000000 +0000 +++ cgal-5.5/include/CGAL/Subdivision_method_3/internal/subdivision_hosts_impl_3.h 2022-07-13 19:06:49.000000000 +0000 @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Subdivision_method_3/include/CGAL/Subdivision_method_3/internal/subdivision_hosts_impl_3.h $ -// $Id: subdivision_hosts_impl_3.h e893ac1 2020-08-18T10:06:51+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Subdivision_method_3/include/CGAL/Subdivision_method_3/internal/subdivision_hosts_impl_3.h $ +// $Id: subdivision_hosts_impl_3.h 4ffc949 2022-02-03T17:11:20+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // @@ -21,8 +21,7 @@ #include #include -#include - +#include #include #include #include @@ -80,7 +79,7 @@ Point* face_point_buffer = edge_point_buffer + num_e; int i=0; - boost::unordered_map v_index; + std::unordered_map v_index; for(vertex_descriptor vh : p_vertices){ v_index[vh]= i++; } @@ -200,7 +199,7 @@ Point* edge_point_buffer = vertex_point_buffer + num_v; int i=0; - boost::unordered_map v_index; + std::unordered_map v_index; for(vertex_descriptor vh : p_vertices){ v_index[vh]= i++; } diff -Nru cgal-5.4.1/include/CGAL/Subdivision_method_3/subdivision_hosts_3.h cgal-5.5/include/CGAL/Subdivision_method_3/subdivision_hosts_3.h --- cgal-5.4.1/include/CGAL/Subdivision_method_3/subdivision_hosts_3.h 2022-06-03 19:05:52.000000000 +0000 +++ cgal-5.5/include/CGAL/Subdivision_method_3/subdivision_hosts_3.h 2022-07-13 19:06:49.000000000 +0000 @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Subdivision_method_3/include/CGAL/Subdivision_method_3/subdivision_hosts_3.h $ -// $Id: subdivision_hosts_3.h e893ac1 2020-08-18T10:06:51+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Subdivision_method_3/include/CGAL/Subdivision_method_3/subdivision_hosts_3.h $ +// $Id: subdivision_hosts_3.h 6d3176e 2022-01-07T14:42:25+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // @@ -19,7 +19,7 @@ #include -#include +#include #include #include diff -Nru cgal-5.4.1/include/CGAL/Subdivision_method_3/subdivision_masks_3.h cgal-5.5/include/CGAL/Subdivision_method_3/subdivision_masks_3.h --- cgal-5.4.1/include/CGAL/Subdivision_method_3/subdivision_masks_3.h 2022-06-03 19:05:52.000000000 +0000 +++ cgal-5.5/include/CGAL/Subdivision_method_3/subdivision_masks_3.h 2022-07-13 19:06:49.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Subdivision_method_3/include/CGAL/Subdivision_method_3/subdivision_masks_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Subdivision_method_3/include/CGAL/Subdivision_method_3/subdivision_masks_3.h $ // $Id: subdivision_masks_3.h 45696cd 2021-10-30T13:35:17+03:00 Dimitris Papavasiliou // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Subdivision_method_3/subdivision_methods_3.h cgal-5.5/include/CGAL/Subdivision_method_3/subdivision_methods_3.h --- cgal-5.4.1/include/CGAL/Subdivision_method_3/subdivision_methods_3.h 2022-06-03 19:05:53.000000000 +0000 +++ cgal-5.5/include/CGAL/Subdivision_method_3/subdivision_methods_3.h 2022-07-13 19:06:49.000000000 +0000 @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Subdivision_method_3/include/CGAL/Subdivision_method_3/subdivision_methods_3.h $ -// $Id: subdivision_methods_3.h e893ac1 2020-08-18T10:06:51+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Subdivision_method_3/include/CGAL/Subdivision_method_3/subdivision_methods_3.h $ +// $Id: subdivision_methods_3.h 75b03e6 2022-01-10T15:33:04+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // @@ -17,7 +17,7 @@ #include -#include +#include #include #include @@ -123,8 +123,8 @@ * * \pre `pmesh` must be a triangle mesh. **/ -template -void CatmullClark_subdivision(PolygonMesh& pmesh, const NamedParameters& np) { +template +void CatmullClark_subdivision(PolygonMesh& pmesh, const NamedParameters& np = parameters::default_values()) { using parameters::choose_parameter; using parameters::get_parameter; @@ -138,12 +138,6 @@ for(unsigned int i = 0; i < step; i++) internal::PQQ_1step(pmesh, vpm, mask); } - -template -void CatmullClark_subdivision(PolygonMesh& pmesh) -{ - CatmullClark_subdivision(pmesh, CGAL::parameters::all_default()); -} // ----------------------------------------------------------------------------- #ifndef DOXYGEN_RUNNING @@ -186,8 +180,8 @@ * \cgalParamNEnd * \cgalNamedParamsEnd **/ -template -void Loop_subdivision(PolygonMesh& pmesh, const NamedParameters& np) { +template +void Loop_subdivision(PolygonMesh& pmesh, const NamedParameters& np = parameters::default_values()) { using parameters::choose_parameter; using parameters::get_parameter; @@ -201,12 +195,6 @@ for(unsigned int i = 0; i < step; i++) internal::PTQ_1step(pmesh, vpm, mask); } - -template -void Loop_subdivision(PolygonMesh& pmesh) -{ - Loop_subdivision(pmesh, CGAL::parameters::all_default()); -} // ----------------------------------------------------------------------------- #ifndef DOXYGEN_RUNNING @@ -249,8 +237,8 @@ * \cgalParamNEnd * \cgalNamedParamsEnd **/ -template -void DooSabin_subdivision(PolygonMesh& pmesh, const NamedParameters& np) { +template +void DooSabin_subdivision(PolygonMesh& pmesh, const NamedParameters& np = parameters::default_values()) { using parameters::choose_parameter; using parameters::get_parameter; @@ -264,12 +252,6 @@ for(unsigned int i = 0; i < step; i++) internal::DQQ_1step(pmesh, vpm, mask); } - -template -void DooSabin_subdivision(PolygonMesh& pmesh) -{ - DooSabin_subdivision(pmesh, CGAL::parameters::all_default()); -} // ----------------------------------------------------------------------------- #ifndef DOXYGEN_RUNNING @@ -317,8 +299,8 @@ * * \pre `pmesh` must be a triangle mesh. **/ -template -void Sqrt3_subdivision(PolygonMesh& pmesh, const NamedParameters& np) { +template +void Sqrt3_subdivision(PolygonMesh& pmesh, const NamedParameters& np = parameters::default_values()) { using parameters::choose_parameter; using parameters::get_parameter; @@ -332,12 +314,6 @@ for(unsigned int i = 0; i < step; i++) internal::Sqrt3_1step(pmesh, vpm, mask, (i%2==1)); } - -template -void Sqrt3_subdivision(PolygonMesh& pmesh) -{ - Sqrt3_subdivision(pmesh, CGAL::parameters::all_default()); -} /// @} } // namespace Subdivision_method_3 diff -Nru cgal-5.4.1/include/CGAL/subdivision_method_3.h cgal-5.5/include/CGAL/subdivision_method_3.h --- cgal-5.4.1/include/CGAL/subdivision_method_3.h 2022-06-03 19:05:53.000000000 +0000 +++ cgal-5.5/include/CGAL/subdivision_method_3.h 2022-07-13 19:06:49.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Subdivision_method_3/include/CGAL/subdivision_method_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Subdivision_method_3/include/CGAL/subdivision_method_3.h $ // $Id: subdivision_method_3.h e893ac1 2020-08-18T10:06:51+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Subiterator.h cgal-5.5/include/CGAL/Subiterator.h --- cgal-5.4.1/include/CGAL/Subiterator.h 2022-06-03 19:05:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Subiterator.h 2022-07-13 19:06:22.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Principal_component_analysis/include/CGAL/Subiterator.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Principal_component_analysis/include/CGAL/Subiterator.h $ // $Id: Subiterator.h 3efe2ec 2021-03-31T09:40:19+02:00 Simon Giraudot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh/IO/3MF.h cgal-5.5/include/CGAL/Surface_mesh/IO/3MF.h --- cgal-5.4.1/include/CGAL/Surface_mesh/IO/3MF.h 2022-06-03 19:05:53.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh/IO/3MF.h 2022-07-13 19:06:50.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh/include/CGAL/Surface_mesh/IO/3MF.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh/include/CGAL/Surface_mesh/IO/3MF.h $ // $Id: 3MF.h 56025fb 2021-05-04T14:38:47+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh/IO/OFF.h cgal-5.5/include/CGAL/Surface_mesh/IO/OFF.h --- cgal-5.4.1/include/CGAL/Surface_mesh/IO/OFF.h 2022-06-03 19:05:53.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh/IO/OFF.h 2022-07-13 19:06:50.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh/include/CGAL/Surface_mesh/IO/OFF.h $ -// $Id: OFF.h a34debc 2021-06-23T22:56:35+02:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh/include/CGAL/Surface_mesh/IO/OFF.h $ +// $Id: OFF.h 477353d 2022-04-20T15:55:50+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -18,19 +18,13 @@ #include #include -#include +#include #include #include #include #include -#ifdef DOXYGEN_RUNNING -#define CGAL_BGL_NP_TEMPLATE_PARAMETERS NamedParameters -#define CGAL_BGL_NP_CLASS NamedParameters -#define CGAL_DEPRECATED -#endif - namespace CGAL { //////////////////////////////////////////////////////////////////////////////////////////////////// @@ -40,7 +34,7 @@ namespace internal { template > + typename NamedParameters = parameters::Default_named_parameters > class GetVertexNormalMap { typedef typename PolygonMesh::template Property_map > + typename NamedParameters = parameters::Default_named_parameters > class GetVertexColorMap { typedef typename PolygonMesh::template Property_map DefaultMap; + CGAL::IO::Color> DefaultMap; typedef DefaultMap DefaultMap_const; public: typedef typename internal_np::Lookup_named_param_def::type type; + NamedParameters, DefaultMap>::type type; typedef typename internal_np::Lookup_named_param_def::type const_type; + NamedParameters, DefaultMap_const>::type const_type; }; template > + typename NamedParameters = parameters::Default_named_parameters > class GetVertexTextureMap { typedef typename PolygonMesh::template Property_map DefaultMap; - typedef DefaultMap DefaultMap_const; + typename K::Point_2> DefaultMap; + typedef DefaultMap DefaultMap_const; public: typedef typename internal_np::Lookup_named_param_def > + typename NamedParameters = parameters::Default_named_parameters > class GetFaceColorMap { typedef typename PolygonMesh::template Property_map DefaultMap; + CGAL::IO::Color> DefaultMap; typedef DefaultMap DefaultMap_const; public: @@ -98,17 +92,17 @@ NamedParameters, DefaultMap_const>::type const_type; }; -template +template bool read_OFF_with_or_without_fcolors(std::istream& is, Surface_mesh& sm, const CGAL::File_scanner_OFF& scanner, - const CGAL_BGL_NP_CLASS& np) + const CGAL_NP_CLASS& np) { typedef Surface_mesh Mesh; typedef typename Mesh::Face_index Face_index; - typedef CGAL::IO::Color Color; + typedef CGAL::IO::Color Color; - typedef typename GetFaceColorMap::type FCM; + typedef typename GetFaceColorMap::type FCM; using parameters::choose_parameter; using parameters::is_default_parameter; @@ -116,7 +110,7 @@ typename Mesh::template Property_map fcm; - bool is_fcm_requested = !(is_default_parameter(get_parameter(np, internal_np::face_color_map))); + bool is_fcm_requested = !(is_default_parameter::value); if(!is_fcm_requested && scanner.has_colors()) { bool created; @@ -136,18 +130,18 @@ } } -template +template bool read_OFF_with_or_without_vtextures(std::istream& is, Surface_mesh& sm, const CGAL::File_scanner_OFF& scanner, - const CGAL_BGL_NP_CLASS& np) + const CGAL_NP_CLASS& np) { typedef Surface_mesh Mesh; typedef typename Mesh::Vertex_index Vertex_index; - typedef typename GetK, CGAL_BGL_NP_CLASS>::Kernel K; + typedef typename GetK, CGAL_NP_CLASS>::Kernel K; typedef typename K::Point_2 Texture; - typedef typename GetVertexTextureMap::type VTM; + typedef typename GetVertexTextureMap::type VTM; using parameters::choose_parameter; using parameters::is_default_parameter; @@ -155,7 +149,7 @@ typename Mesh::template Property_map vtm; - bool is_vtm_requested = !(is_default_parameter(get_parameter(np, internal_np::vertex_texture_map))); + bool is_vtm_requested = !(is_default_parameter::value); if(!is_vtm_requested && scanner.has_textures()) { bool created; @@ -175,17 +169,17 @@ } } -template +template bool read_OFF_with_or_without_vcolors(std::istream& is, Surface_mesh& sm, const CGAL::File_scanner_OFF& scanner, - const CGAL_BGL_NP_CLASS& np) + const CGAL_NP_CLASS& np) { typedef Surface_mesh Mesh; typedef typename Mesh::Vertex_index Vertex_index; typedef CGAL::IO::Color Color; - typedef typename GetVertexColorMap::type VCM; + typedef typename GetVertexColorMap::type VCM; using parameters::choose_parameter; using parameters::is_default_parameter; @@ -193,7 +187,7 @@ typename Mesh::template Property_map vcm; - bool is_vcm_requested = !(is_default_parameter(get_parameter(np, internal_np::vertex_color_map))); + bool is_vcm_requested = !(is_default_parameter::value); if(!is_vcm_requested && scanner.has_colors()) { bool created; @@ -213,18 +207,18 @@ } } -template +template bool read_OFF_with_or_without_vnormals(std::istream& is, Surface_mesh& sm, const CGAL::File_scanner_OFF& scanner, - const CGAL_BGL_NP_CLASS& np) + const CGAL_NP_CLASS& np) { typedef Surface_mesh Mesh; typedef typename Mesh::Vertex_index Vertex_index; - typedef typename GetK, CGAL_BGL_NP_CLASS>::Kernel K; + typedef typename GetK, CGAL_NP_CLASS>::Kernel K; typedef typename K::Vector_3 Normal; - typedef typename GetVertexNormalMap::type VNM; + typedef typename GetVertexNormalMap::type VNM; using parameters::choose_parameter; using parameters::is_default_parameter; @@ -232,7 +226,7 @@ typename Mesh::template Property_map vnm; - bool is_vnm_requested = !(is_default_parameter(get_parameter(np, internal_np::vertex_normal_map))); + bool is_vnm_requested = !(is_default_parameter::value); if(!is_vnm_requested && scanner.has_normals()) { bool created; @@ -325,15 +319,11 @@ /// the `failbit` of `is` is set and the mesh cleared. /// template + typename CGAL_NP_TEMPLATE_PARAMETERS> bool read_OFF(std::istream& is, Surface_mesh& sm, - const CGAL_BGL_NP_CLASS& np) + const CGAL_NP_CLASS& np = parameters::default_values()) { - using parameters::choose_parameter; - using parameters::get_parameter; - using parameters::is_default_parameter; - std::streampos pos = is.tellg(); CGAL::File_scanner_OFF scanner(is, false); is.seekg(pos); @@ -345,31 +335,16 @@ return res; } -template -bool read_OFF(std::istream& is, - Surface_mesh& sm) -{ - return read_OFF(is, sm, parameters::all_default()); -} - template + typename CGAL_NP_TEMPLATE_PARAMETERS> bool read_OFF(const std::string& fname, Surface_mesh& sm, - const CGAL_BGL_NP_CLASS& np) + const CGAL_NP_CLASS& np = parameters::default_values()) { std::ifstream in(fname.c_str()); return read_OFF(in, sm, np); } -template -bool read_OFF(const std::string& fname, - Surface_mesh& sm) -{ - return read_OFF(fname, sm, parameters::all_default()); -} - } // namespace IO #ifndef CGAL_NO_DEPRECATED_CODE @@ -378,8 +353,8 @@ \ingroup PkgSurfaceMeshIOFuncDeprecated \deprecated This function is deprecated since \cgal 5.3, `CGAL::IO::read_OFF(std::istream&, const Surface_mesh&)` should be used instead. */ -template -CGAL_DEPRECATED bool read_off(std::istream& is, Surface_mesh& sm, const CGAL_BGL_NP_CLASS& np) +template +CGAL_DEPRECATED bool read_off(std::istream& is, Surface_mesh& sm, const CGAL_NP_CLASS& np = parameters::default_values()) { return IO::read_OFF(is, sm, np); } @@ -389,21 +364,10 @@ \deprecated This function is deprecated since \cgal 5.3, `CGAL::IO::read_OFF(std::istream&, const Surface_mesh&)` should be used instead. */ template -CGAL_DEPRECATED bool read_off(std::istream& is, Surface_mesh& sm) -{ - return IO::read_OFF(is, sm, parameters::all_default()); -} - -/*! - \ingroup PkgSurfaceMeshIOFuncDeprecated - \deprecated This function is deprecated since \cgal 5.3, `CGAL::IO::read_OFF(std::istream&, const Surface_mesh&)` should be used instead. -*/ -template CGAL_DEPRECATED bool read_off(Surface_mesh& sm, const std::string& filename) { - return IO::read_OFF(filename, sm, parameters::all_default()); + return IO::read_OFF(filename, sm, parameters::default_values()); } - #endif // CGAL_NO_DEPRECATED_CODE //////////////////////////////////////////////////////////////////////////////////////////////////// @@ -413,20 +377,18 @@ namespace IO { namespace internal { -template +template bool write_OFF_with_or_without_fcolors(std::ostream& os, const Surface_mesh& sm, - const CGAL_BGL_NP_CLASS& np) + const CGAL_NP_CLASS& np) { typedef Surface_mesh Mesh; typedef typename Mesh::Face_index Face_index; - typedef CGAL::IO::Color Color; + typedef CGAL::IO::Color Color; - using parameters::choose_parameter; using parameters::is_default_parameter; - using parameters::get_parameter; - const bool has_fcolors = !(is_default_parameter(get_parameter(np, internal_np::face_color_map))); + const bool has_fcolors = !(is_default_parameter::value); typename Mesh::template Property_map fcolors; bool has_internal_fcolors; @@ -438,22 +400,20 @@ return write_OFF_BGL(os, sm, np); } -template +template bool write_OFF_with_or_without_vtextures(std::ostream& os, const Surface_mesh& sm, - const CGAL_BGL_NP_CLASS& np) + const CGAL_NP_CLASS& np) { typedef Surface_mesh Mesh; typedef typename Mesh::Vertex_index Vertex_index; - typedef typename GetK, CGAL_BGL_NP_CLASS>::Kernel K; + typedef typename GetK, CGAL_NP_CLASS>::Kernel K; typedef typename K::Point_2 Texture; - using parameters::choose_parameter; using parameters::is_default_parameter; - using parameters::get_parameter; - const bool has_vtextures = !(is_default_parameter(get_parameter(np, internal_np::vertex_texture_map))); + const bool has_vtextures = !(is_default_parameter::value); typename Mesh::template Property_map vtextures; bool has_internal_vtextures; @@ -465,20 +425,18 @@ return write_OFF_with_or_without_fcolors(os, sm, np); } -template +template bool write_OFF_with_or_without_vcolors(std::ostream& os, const Surface_mesh& sm, - const CGAL_BGL_NP_CLASS& np) + const CGAL_NP_CLASS& np) { typedef Surface_mesh Mesh; typedef typename Mesh::Vertex_index Vertex_index; - typedef CGAL::IO::Color Color; + typedef CGAL::IO::Color Color; - using parameters::choose_parameter; using parameters::is_default_parameter; - using parameters::get_parameter; - const bool has_vcolors = !(is_default_parameter(get_parameter(np, internal_np::vertex_color_map))); + const bool has_vcolors = !(is_default_parameter::value); typename Mesh::template Property_map vcolors; bool has_internal_vcolors; @@ -490,22 +448,20 @@ return write_OFF_with_or_without_vtextures(os, sm, np); } -template +template bool write_OFF_with_or_without_vnormals(std::ostream& os, const Surface_mesh& sm, - const CGAL_BGL_NP_CLASS& np) + const CGAL_NP_CLASS& np) { typedef Surface_mesh Mesh; typedef typename Mesh::Vertex_index Vertex_index; - typedef typename GetK, CGAL_BGL_NP_CLASS>::Kernel K; + typedef typename GetK, CGAL_NP_CLASS>::Kernel K; typedef typename K::Vector_3 Normal; - using parameters::choose_parameter; using parameters::is_default_parameter; - using parameters::get_parameter; - const bool has_vnormals = !(is_default_parameter(get_parameter(np, internal_np::vertex_normal_map))); + const bool has_vnormals = !(is_default_parameter::value); typename Mesh::template Property_map vnormals; bool has_internal_vnormals; @@ -586,16 +542,14 @@ /// /// \returns `true` if writing was successful, `false` otherwise. /// -template +template bool write_OFF(std::ostream& os, const Surface_mesh& sm, - const CGAL_BGL_NP_CLASS& np) + const CGAL_NP_CLASS& np = parameters::default_values()) { - using parameters::choose_parameter; using parameters::is_default_parameter; - using parameters::get_parameter; - const bool has_vpoints = !(is_default_parameter(get_parameter(np, internal_np::vertex_point))); + const bool has_vpoints = !(is_default_parameter::value); if(has_vpoints) return internal::write_OFF_with_or_without_vnormals(os, sm, np); @@ -610,8 +564,8 @@ \ingroup PkgSurfaceMeshIOFuncDeprecated \deprecated This function is deprecated since \cgal 5.3, `CGAL::IO::write_OFF(std::ostream&, const Surface_mesh&)` should be used instead. */ -template -CGAL_DEPRECATED bool write_off(std::ostream& os, const Surface_mesh& sm, const CGAL_BGL_NP_CLASS& np) +template +CGAL_DEPRECATED bool write_off(std::ostream& os, const Surface_mesh& sm, const CGAL_NP_CLASS& np = parameters::default_values()) { return IO::write_OFF(os, sm, np); } @@ -621,19 +575,9 @@ \deprecated This function is deprecated since \cgal 5.3, `CGAL::IO::write_OFF(std::ostream&, const Surface_mesh&)` should be used instead. */ template -CGAL_DEPRECATED bool write_off(std::ostream& os, const Surface_mesh& sm) -{ - return IO::write_OFF(os, sm, parameters::all_default()); -} - -/*! - \ingroup PkgSurfaceMeshIOFuncDeprecated - \deprecated This function is deprecated since \cgal 5.3, `CGAL::IO::write_OFF(std::ostream&, const Surface_mesh&)` should be used instead. -*/ -template CGAL_DEPRECATED bool write_off(const Surface_mesh& sm, const std::string& filename) { - return IO::write_OFF(filename, sm, parameters::all_default()); + return IO::write_OFF(filename, sm, parameters::default_values()); } #endif // CGAL_NO_DEPRECATED_CODE diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh/IO/PLY.h cgal-5.5/include/CGAL/Surface_mesh/IO/PLY.h --- cgal-5.4.1/include/CGAL/Surface_mesh/IO/PLY.h 2022-06-03 19:05:53.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh/IO/PLY.h 2022-07-13 19:06:50.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh/include/CGAL/Surface_mesh/IO/PLY.h $ -// $Id: PLY.h ad79d37 2021-09-29T11:46:30+02:00 Laurent Rineau +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh/include/CGAL/Surface_mesh/IO/PLY.h $ +// $Id: PLY.h 10b0af3 2022-01-13T14:43:34+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -18,17 +18,11 @@ #include #include -#include +#include #include #include -#ifdef DOXYGEN_RUNNING -#define CGAL_BGL_NP_TEMPLATE_PARAMETERS NamedParameters -#define CGAL_BGL_NP_CLASS NamedParameters -#define CGAL_DEPRECATED -#endif - namespace CGAL { namespace IO { namespace internal { @@ -913,11 +907,11 @@ /// /// \returns `true` if writing was successful, `false` otherwise. template + typename CGAL_NP_TEMPLATE_PARAMETERS> bool write_PLY(std::ostream& os, const Surface_mesh

& sm, const std::string& comments, - const CGAL_BGL_NP_CLASS& np) + const CGAL_NP_CLASS& np = parameters::default_values()) { typedef Surface_mesh

SMesh; typedef typename SMesh::Vertex_index VIndex; @@ -1112,26 +1106,13 @@ /// \cond SKIP_IN_MANUAL -template -bool write_PLY(std::ostream& os, const Surface_mesh

& sm, const std::string& comments) -{ - return write_PLY(os, sm, comments, parameters::all_default()); -} - -template -bool write_PLY(std::ostream& os, const Surface_mesh

& sm, const CGAL_BGL_NP_CLASS& np) +template +bool write_PLY(std::ostream& os, const Surface_mesh

& sm, const CGAL_NP_CLASS& np = parameters::default_values()) { std::string unused_comment; return write_PLY(os, sm, unused_comment, np); } -template -bool write_PLY(std::ostream& os, const Surface_mesh

& sm) -{ - std::string unused_comment; - return write_PLY(os, sm, unused_comment, parameters::all_default()); -} - /// \endcond } // namespace IO diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh/IO.h cgal-5.5/include/CGAL/Surface_mesh/IO.h --- cgal-5.4.1/include/CGAL/Surface_mesh/IO.h 2022-06-03 19:05:53.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh/IO.h 2022-07-13 19:06:50.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh/include/CGAL/Surface_mesh/IO.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh/include/CGAL/Surface_mesh/IO.h $ // $Id: IO.h 56025fb 2021-05-04T14:38:47+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh/Properties.h cgal-5.5/include/CGAL/Surface_mesh/Properties.h --- cgal-5.4.1/include/CGAL/Surface_mesh/Properties.h 2022-06-03 19:05:53.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh/Properties.h 2022-07-13 19:06:50.000000000 +0000 @@ -4,8 +4,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh/include/CGAL/Surface_mesh/Properties.h $ -// $Id: Properties.h 3b70343 2020-11-16T16:19:43+01:00 Maxime Gimeno +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh/include/CGAL/Surface_mesh/Properties.h $ +// $Id: Properties.h 090c61c 2022-04-20T17:08:05+02:00 Laurent Rineau // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // @@ -234,7 +234,7 @@ public: // default constructor - Property_container() : size_(0), capacity_(0) {} + Property_container() = default; // destructor (deletes all property arrays) virtual ~Property_container() { clear(); } @@ -242,6 +242,11 @@ // copy constructor: performs deep copy of property arrays Property_container(const Property_container& _rhs) { operator=(_rhs); } + Property_container(Property_container&& c) noexcept + { + c.swap(*this); + } + // assignment: performs deep copy of property arrays Property_container& operator=(const Property_container& _rhs) { @@ -257,6 +262,14 @@ return *this; } + Property_container& operator=(Property_container&& c) noexcept + { + Property_container tmp(std::move(c)); + tmp.swap(*this); + return *this; + } + + void transfer(const Property_container& _rhs) { for(std::size_t i=0; iparrays_.swap (other.parrays_); std::swap(this->size_, other.size_); + std::swap(this->capacity_, other.capacity_); } private: std::vector parrays_; - size_t size_; - size_t capacity_; + size_t size_ = 0; + size_t capacity_ = 0; }; /// @endcond @@ -554,6 +568,20 @@ /// @cond CGAL_DOCUMENT_INTERNALS Property_map_base(Property_array* p=nullptr) : parray_(p) {} + Property_map_base(Property_map_base&& pm) noexcept + : parray_(std::exchange(pm.parray_, nullptr)) + {} + + Property_map_base(const Property_map_base& pm) + : parray_(pm.parray_) + {} + + Property_map_base& operator=(const Property_map_base& pm) + { + parray_ = pm.parray_; + return *this; + } + void reset() { parray_ = nullptr; diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh/Surface_mesh_fwd.h cgal-5.5/include/CGAL/Surface_mesh/Surface_mesh_fwd.h --- cgal-5.4.1/include/CGAL/Surface_mesh/Surface_mesh_fwd.h 2022-06-03 19:04:19.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh/Surface_mesh_fwd.h 2022-07-13 19:05:09.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/Surface_mesh/Surface_mesh_fwd.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/Surface_mesh/Surface_mesh_fwd.h $ // $Id: Surface_mesh_fwd.h 65c1a4f 2020-01-28T11:28:02+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh/Surface_mesh.h cgal-5.5/include/CGAL/Surface_mesh/Surface_mesh.h --- cgal-5.4.1/include/CGAL/Surface_mesh/Surface_mesh.h 2022-06-03 19:05:53.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh/Surface_mesh.h 2022-07-13 19:06:50.000000000 +0000 @@ -4,8 +4,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh/include/CGAL/Surface_mesh/Surface_mesh.h $ -// $Id: Surface_mesh.h 625848e 2021-10-04T13:21:47+02:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh/include/CGAL/Surface_mesh/Surface_mesh.h $ +// $Id: Surface_mesh.h 3072b93 2022-04-23T16:11:18+02:00 Laurent Rineau // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // @@ -26,7 +26,7 @@ #include #include #include -#include +#include #include #include #include @@ -341,7 +341,7 @@ { typedef Properties::Property_map_base > Base; typedef typename Base::reference reference; - Property_map() : Base() {} + Property_map() = default; Property_map(const Base& pm): Base(pm) {} }; @@ -914,9 +914,58 @@ /// Copy constructor: copies `rhs` to `*this`. Performs a deep copy of all properties. Surface_mesh(const Surface_mesh& rhs) { *this = rhs; } + Surface_mesh(Surface_mesh&& sm) + : vprops_(std::move(sm.vprops_)) + , hprops_(std::move(sm.hprops_)) + , eprops_(std::move(sm.eprops_)) + , fprops_(std::move(sm.fprops_)) + , vconn_(std::move(sm.vconn_)) + , hconn_(std::move(sm.hconn_)) + , fconn_(std::move(sm.fconn_)) + , vremoved_(std::move(sm.vremoved_)) + , eremoved_(std::move(sm.eremoved_)) + , fremoved_(std::move(sm.fremoved_)) + , vpoint_(std::move(sm.vpoint_)) + , removed_vertices_(std::exchange(sm.removed_vertices_, 0)) + , removed_edges_(std::exchange(sm.removed_edges_, 0)) + , removed_faces_(std::exchange(sm.removed_faces_, 0)) + , vertices_freelist_(std::exchange(sm.vertices_freelist_,(std::numeric_limits::max)())) + , edges_freelist_(std::exchange(sm.edges_freelist_,(std::numeric_limits::max)())) + , faces_freelist_(std::exchange(sm.faces_freelist_,(std::numeric_limits::max)())) + , garbage_(std::exchange(sm.garbage_, false)) + , recycle_(std::exchange(sm.recycle_, true)) + , anonymous_property_(std::exchange(sm.anonymous_property_, 0)) + {} + /// assigns `rhs` to `*this`. Performs a deep copy of all properties. Surface_mesh& operator=(const Surface_mesh& rhs); + + Surface_mesh& operator=(Surface_mesh&& sm) + { + vprops_ = std::move(sm.vprops_); + hprops_ = std::move(sm.hprops_); + eprops_ = std::move(sm.eprops_); + fprops_ = std::move(sm.fprops_); + vconn_ = std::move(sm.vconn_); + hconn_ = std::move(sm.hconn_); + fconn_ = std::move(sm.fconn_); + vremoved_ = std::move(sm.vremoved_); + eremoved_ = std::move(sm.eremoved_); + fremoved_ = std::move(sm.fremoved_); + vpoint_ = std::move(sm.vpoint_); + removed_vertices_ = std::exchange(sm.removed_vertices_, 0); + removed_edges_ = std::exchange(sm.removed_edges_, 0); + removed_faces_ = std::exchange(sm.removed_faces_, 0); + vertices_freelist_ = std::exchange(sm.vertices_freelist_, (std::numeric_limits::max)()); + edges_freelist_ = std::exchange(sm.edges_freelist_,(std::numeric_limits::max)()); + faces_freelist_ = std::exchange(sm.faces_freelist_,(std::numeric_limits::max)()); + garbage_ = std::exchange(sm.garbage_, false); + recycle_ = std::exchange(sm.recycle_, true); + anonymous_property_ = std::exchange(sm.anonymous_property_, 0); + return *this; + } + /// assigns `rhs` to `*this`. Does not copy custom properties. Surface_mesh& assign(const Surface_mesh& rhs); @@ -1529,6 +1578,9 @@ /// performs a validity check on a single vertex. bool is_valid(Vertex_index v) const { + if(!has_valid_index(v)) + return false; + Halfedge_index h = vconn_[v].halfedge_; if(h!= null_halfedge() && (!has_valid_index(h) || is_removed(h))) { std::cerr << "Vertex connectivity halfedge error in " << (size_type)v @@ -1540,6 +1592,9 @@ /// performs a validity check on a single halfedge. bool is_valid(Halfedge_index h) const { + if(!has_valid_index(h)) + return false; + Face_index f = hconn_[h].face_; Vertex_index v = hconn_[h].vertex_; Halfedge_index hn = hconn_[h].next_halfedge_; @@ -1581,6 +1636,9 @@ /// performs a validity check on a single edge. bool is_valid(Edge_index e) const { + if(!has_valid_index(e)) + return false; + Halfedge_index h = halfedge(e); return is_valid(h) && is_valid(opposite(h)); } @@ -1588,6 +1646,9 @@ /// performs a validity check on a single face. bool is_valid(Face_index f) const { + if(!has_valid_index(f)) + return false; + Halfedge_index h = fconn_[f].halfedge_; if(!has_valid_index(h) || is_removed(h)) { std::cerr << "Face connectivity halfedge error in " << (size_type)f diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_approximation/approximate_triangle_mesh.h cgal-5.5/include/CGAL/Surface_mesh_approximation/approximate_triangle_mesh.h --- cgal-5.4.1/include/CGAL/Surface_mesh_approximation/approximate_triangle_mesh.h 2022-06-03 19:05:53.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_approximation/approximate_triangle_mesh.h 2022-07-13 19:06:50.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_approximation/include/CGAL/Surface_mesh_approximation/approximate_triangle_mesh.h $ -// $Id: approximate_triangle_mesh.h c253679 2020-04-18T16:27:58+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_approximation/include/CGAL/Surface_mesh_approximation/approximate_triangle_mesh.h $ +// $Id: approximate_triangle_mesh.h 477353d 2022-04-20T15:55:50+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -18,7 +18,7 @@ #include -#include +#include #include #include @@ -43,18 +43,6 @@ VERBOSE }; -// the named parameter header being not documented the doc is put here for now -#ifdef DOXYGEN_RUNNING -namespace parameters { - -/*! \ingroup bgl_namedparameters - * This function is used when default parameters are just fine for approximation or meshing. - */ -unspecified_type all_default(); - -} // namespace parameters -#endif - /*! * \ingroup PkgTSMARef * @brief approximates the input mesh with plane proxies. @@ -259,21 +247,21 @@ // get proxy map approx.proxy_map( get_parameter(np, internal_np::face_proxy_map) ); - if (!parameters::is_default_parameter(get_parameter(np, internal_np::face_proxy_map)) - && (vl == MAIN_STEPS || vl == VERBOSE)) + if (!parameters::is_default_parameter::value && + (vl == MAIN_STEPS || vl == VERBOSE)) std::cout << "Filling face proxy map done." << std::endl; // get proxies approx.proxies( get_parameter(np, internal_np::proxies) ); - if (!is_default_parameter( get_parameter(np, internal_np::proxies) ) - && (vl == MAIN_STEPS || vl == VERBOSE)) + if (!is_default_parameter::value && + (vl == MAIN_STEPS || vl == VERBOSE)) std::cout << "Get proxies done." << std::endl; // meshing bool is_manifold = false; - if (!is_default_parameter( get_parameter(np, internal_np::anchors)) - || !is_default_parameter( get_parameter(np, internal_np::triangles) )) + if (!is_default_parameter::value || + !is_default_parameter::value) { if (vl == VERBOSE) { const FT subdivision_ratio = choose_parameter(get_parameter(np, internal_np::subdivision_ratio), FT(5.0)); @@ -299,15 +287,15 @@ // get anchor points approx.anchor_points( get_parameter(np, internal_np::anchors) ); - if (!is_default_parameter( get_parameter(np, internal_np::anchors) ) - && (vl == MAIN_STEPS || vl == VERBOSE)) + if (!is_default_parameter::value && + (vl == MAIN_STEPS || vl == VERBOSE)) std::cout << "Get anchors done." << std::endl; // get indexed triangles approx.indexed_triangles( get_parameter(np, internal_np::triangles) ); - if (!is_default_parameter( get_parameter(np, internal_np::triangles) ) - && (vl == MAIN_STEPS || vl == VERBOSE)) + if (!is_default_parameter::value && + (vl == MAIN_STEPS || vl == VERBOSE)) std::cout << "Get indexed triangles done." << std::endl; return is_manifold; diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_approximation/L21_metric_plane_proxy.h cgal-5.5/include/CGAL/Surface_mesh_approximation/L21_metric_plane_proxy.h --- cgal-5.4.1/include/CGAL/Surface_mesh_approximation/L21_metric_plane_proxy.h 2022-06-03 19:05:53.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_approximation/L21_metric_plane_proxy.h 2022-07-13 19:06:50.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_approximation/include/CGAL/Surface_mesh_approximation/L21_metric_plane_proxy.h $ -// $Id: L21_metric_plane_proxy.h fbbff67 2021-01-08T10:15:12+01:00 Dmitry Anisimov +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_approximation/include/CGAL/Surface_mesh_approximation/L21_metric_plane_proxy.h $ +// $Id: L21_metric_plane_proxy.h 4ffc949 2022-02-03T17:11:20+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -22,7 +22,8 @@ #include #include -#include + +#include namespace CGAL { namespace Surface_mesh_approximation { diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_approximation/L2_metric_plane_proxy.h cgal-5.5/include/CGAL/Surface_mesh_approximation/L2_metric_plane_proxy.h --- cgal-5.4.1/include/CGAL/Surface_mesh_approximation/L2_metric_plane_proxy.h 2022-06-03 19:05:53.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_approximation/L2_metric_plane_proxy.h 2022-07-13 19:06:50.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_approximation/include/CGAL/Surface_mesh_approximation/L2_metric_plane_proxy.h $ -// $Id: L2_metric_plane_proxy.h fbbff67 2021-01-08T10:15:12+01:00 Dmitry Anisimov +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_approximation/include/CGAL/Surface_mesh_approximation/L2_metric_plane_proxy.h $ +// $Id: L2_metric_plane_proxy.h 4ffc949 2022-02-03T17:11:20+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -22,7 +22,7 @@ #include #include -#include +#include #include diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_cell_base_3.h cgal-5.5/include/CGAL/Surface_mesh_cell_base_3.h --- cgal-5.4.1/include/CGAL/Surface_mesh_cell_base_3.h 2022-06-03 19:06:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_cell_base_3.h 2022-07-13 19:06:57.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesher/include/CGAL/Surface_mesh_cell_base_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesher/include/CGAL/Surface_mesh_cell_base_3.h $ // $Id: Surface_mesh_cell_base_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_complex_2_in_triangulation_3.h cgal-5.5/include/CGAL/Surface_mesh_complex_2_in_triangulation_3.h --- cgal-5.4.1/include/CGAL/Surface_mesh_complex_2_in_triangulation_3.h 2022-06-03 19:06:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_complex_2_in_triangulation_3.h 2022-07-13 19:06:57.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesher/include/CGAL/Surface_mesh_complex_2_in_triangulation_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesher/include/CGAL/Surface_mesh_complex_2_in_triangulation_3.h $ // $Id: Surface_mesh_complex_2_in_triangulation_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_default_criteria_3.h cgal-5.5/include/CGAL/Surface_mesh_default_criteria_3.h --- cgal-5.4.1/include/CGAL/Surface_mesh_default_criteria_3.h 2022-06-03 19:06:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_default_criteria_3.h 2022-07-13 19:06:57.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesher/include/CGAL/Surface_mesh_default_criteria_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesher/include/CGAL/Surface_mesh_default_criteria_3.h $ // $Id: Surface_mesh_default_criteria_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_default_edges_criteria_3.h cgal-5.5/include/CGAL/Surface_mesh_default_edges_criteria_3.h --- cgal-5.4.1/include/CGAL/Surface_mesh_default_edges_criteria_3.h 2022-06-03 19:06:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_default_edges_criteria_3.h 2022-07-13 19:06:57.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesher/include/CGAL/Surface_mesh_default_edges_criteria_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesher/include/CGAL/Surface_mesh_default_edges_criteria_3.h $ // $Id: Surface_mesh_default_edges_criteria_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_default_triangulation_3.h cgal-5.5/include/CGAL/Surface_mesh_default_triangulation_3.h --- cgal-5.4.1/include/CGAL/Surface_mesh_default_triangulation_3.h 2022-06-03 19:06:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_default_triangulation_3.h 2022-07-13 19:06:57.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesher/include/CGAL/Surface_mesh_default_triangulation_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesher/include/CGAL/Surface_mesh_default_triangulation_3.h $ // $Id: Surface_mesh_default_triangulation_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_deformation.h cgal-5.5/include/CGAL/Surface_mesh_deformation.h --- cgal-5.4.1/include/CGAL/Surface_mesh_deformation.h 2022-06-03 19:05:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_deformation.h 2022-07-13 19:06:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_deformation/include/CGAL/Surface_mesh_deformation.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_deformation/include/CGAL/Surface_mesh_deformation.h $ // $Id: Surface_mesh_deformation.h 8166579 2021-10-11T19:58:07+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesher/Combining_oracle.h cgal-5.5/include/CGAL/Surface_mesher/Combining_oracle.h --- cgal-5.4.1/include/CGAL/Surface_mesher/Combining_oracle.h 2022-06-03 19:06:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesher/Combining_oracle.h 2022-07-13 19:06:57.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesher/include/CGAL/Surface_mesher/Combining_oracle.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesher/include/CGAL/Surface_mesher/Combining_oracle.h $ // $Id: Combining_oracle.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesher/Has_edges.h cgal-5.5/include/CGAL/Surface_mesher/Has_edges.h --- cgal-5.4.1/include/CGAL/Surface_mesher/Has_edges.h 2022-06-03 19:06:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesher/Has_edges.h 2022-07-13 19:06:57.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesher/include/CGAL/Surface_mesher/Has_edges.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesher/include/CGAL/Surface_mesher/Has_edges.h $ // $Id: Has_edges.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesher/Implicit_surface_oracle_3.h cgal-5.5/include/CGAL/Surface_mesher/Implicit_surface_oracle_3.h --- cgal-5.4.1/include/CGAL/Surface_mesher/Implicit_surface_oracle_3.h 2022-06-03 19:06:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesher/Implicit_surface_oracle_3.h 2022-07-13 19:06:57.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesher/include/CGAL/Surface_mesher/Implicit_surface_oracle_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesher/include/CGAL/Surface_mesher/Implicit_surface_oracle_3.h $ // $Id: Implicit_surface_oracle_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesher/Intersection_data_structure_3.h cgal-5.5/include/CGAL/Surface_mesher/Intersection_data_structure_3.h --- cgal-5.4.1/include/CGAL/Surface_mesher/Intersection_data_structure_3.h 2022-06-03 19:06:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesher/Intersection_data_structure_3.h 2022-07-13 19:06:57.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesher/include/CGAL/Surface_mesher/Intersection_data_structure_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesher/include/CGAL/Surface_mesher/Intersection_data_structure_3.h $ // $Id: Intersection_data_structure_3.h 24a5fdb 2021-01-05T18:37:28+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesher/Null_oracle_visitor.h cgal-5.5/include/CGAL/Surface_mesher/Null_oracle_visitor.h --- cgal-5.4.1/include/CGAL/Surface_mesher/Null_oracle_visitor.h 2022-06-03 19:06:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesher/Null_oracle_visitor.h 2022-07-13 19:06:57.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesher/include/CGAL/Surface_mesher/Null_oracle_visitor.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesher/include/CGAL/Surface_mesher/Null_oracle_visitor.h $ // $Id: Null_oracle_visitor.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesher/Point_surface_indices_oracle_visitor.h cgal-5.5/include/CGAL/Surface_mesher/Point_surface_indices_oracle_visitor.h --- cgal-5.4.1/include/CGAL/Surface_mesher/Point_surface_indices_oracle_visitor.h 2022-06-03 19:06:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesher/Point_surface_indices_oracle_visitor.h 2022-07-13 19:06:57.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesher/include/CGAL/Surface_mesher/Point_surface_indices_oracle_visitor.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesher/include/CGAL/Surface_mesher/Point_surface_indices_oracle_visitor.h $ // $Id: Point_surface_indices_oracle_visitor.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesher/Poisson_implicit_surface_oracle_3.h cgal-5.5/include/CGAL/Surface_mesher/Poisson_implicit_surface_oracle_3.h --- cgal-5.4.1/include/CGAL/Surface_mesher/Poisson_implicit_surface_oracle_3.h 2022-06-03 19:05:13.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesher/Poisson_implicit_surface_oracle_3.h 2022-07-13 19:06:07.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Poisson_surface_reconstruction_3/include/CGAL/Surface_mesher/Poisson_implicit_surface_oracle_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Poisson_surface_reconstruction_3/include/CGAL/Surface_mesher/Poisson_implicit_surface_oracle_3.h $ // $Id: Poisson_implicit_surface_oracle_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesher/Polyhedral_oracle.h cgal-5.5/include/CGAL/Surface_mesher/Polyhedral_oracle.h --- cgal-5.4.1/include/CGAL/Surface_mesher/Polyhedral_oracle.h 2022-06-03 19:06:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesher/Polyhedral_oracle.h 2022-07-13 19:06:57.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesher/include/CGAL/Surface_mesher/Polyhedral_oracle.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesher/include/CGAL/Surface_mesher/Polyhedral_oracle.h $ // $Id: Polyhedral_oracle.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesher/Profile_counter.h cgal-5.5/include/CGAL/Surface_mesher/Profile_counter.h --- cgal-5.4.1/include/CGAL/Surface_mesher/Profile_counter.h 2022-06-03 19:06:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesher/Profile_counter.h 2022-07-13 19:06:57.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesher/include/CGAL/Surface_mesher/Profile_counter.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesher/include/CGAL/Surface_mesher/Profile_counter.h $ // $Id: Profile_counter.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesher/Profile_timer.h cgal-5.5/include/CGAL/Surface_mesher/Profile_timer.h --- cgal-5.4.1/include/CGAL/Surface_mesher/Profile_timer.h 2022-06-03 19:06:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesher/Profile_timer.h 2022-07-13 19:06:57.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesher/include/CGAL/Surface_mesher/Profile_timer.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesher/include/CGAL/Surface_mesher/Profile_timer.h $ // $Id: Profile_timer.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesher/Sphere_oracle_3.h cgal-5.5/include/CGAL/Surface_mesher/Sphere_oracle_3.h --- cgal-5.4.1/include/CGAL/Surface_mesher/Sphere_oracle_3.h 2022-06-03 19:06:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesher/Sphere_oracle_3.h 2022-07-13 19:06:58.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesher/include/CGAL/Surface_mesher/Sphere_oracle_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesher/include/CGAL/Surface_mesher/Sphere_oracle_3.h $ // $Id: Sphere_oracle_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesher/Standard_criteria.h cgal-5.5/include/CGAL/Surface_mesher/Standard_criteria.h --- cgal-5.4.1/include/CGAL/Surface_mesher/Standard_criteria.h 2022-06-03 19:06:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesher/Standard_criteria.h 2022-07-13 19:06:58.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesher/include/CGAL/Surface_mesher/Standard_criteria.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesher/include/CGAL/Surface_mesher/Standard_criteria.h $ // $Id: Standard_criteria.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesher/Surface_mesher_edges_level.h cgal-5.5/include/CGAL/Surface_mesher/Surface_mesher_edges_level.h --- cgal-5.4.1/include/CGAL/Surface_mesher/Surface_mesher_edges_level.h 2022-06-03 19:06:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesher/Surface_mesher_edges_level.h 2022-07-13 19:06:58.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesher/include/CGAL/Surface_mesher/Surface_mesher_edges_level.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesher/include/CGAL/Surface_mesher/Surface_mesher_edges_level.h $ // $Id: Surface_mesher_edges_level.h 6ac74ca 2022-01-07T09:26:10+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesher/Surface_mesher_edges_level_visitor.h cgal-5.5/include/CGAL/Surface_mesher/Surface_mesher_edges_level_visitor.h --- cgal-5.4.1/include/CGAL/Surface_mesher/Surface_mesher_edges_level_visitor.h 2022-06-03 19:06:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesher/Surface_mesher_edges_level_visitor.h 2022-07-13 19:06:58.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesher/include/CGAL/Surface_mesher/Surface_mesher_edges_level_visitor.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesher/include/CGAL/Surface_mesher/Surface_mesher_edges_level_visitor.h $ // $Id: Surface_mesher_edges_level_visitor.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesher/Surface_mesher.h cgal-5.5/include/CGAL/Surface_mesher/Surface_mesher.h --- cgal-5.4.1/include/CGAL/Surface_mesher/Surface_mesher.h 2022-06-03 19:06:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesher/Surface_mesher.h 2022-07-13 19:06:58.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesher/include/CGAL/Surface_mesher/Surface_mesher.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesher/include/CGAL/Surface_mesher/Surface_mesher.h $ // $Id: Surface_mesher.h 0b4f136 2022-01-10T10:41:44+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesher/Surface_mesher_manifold.h cgal-5.5/include/CGAL/Surface_mesher/Surface_mesher_manifold.h --- cgal-5.4.1/include/CGAL/Surface_mesher/Surface_mesher_manifold.h 2022-06-03 19:06:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesher/Surface_mesher_manifold.h 2022-07-13 19:06:58.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesher/include/CGAL/Surface_mesher/Surface_mesher_manifold.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesher/include/CGAL/Surface_mesher/Surface_mesher_manifold.h $ // $Id: Surface_mesher_manifold.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesher/Surface_mesher_regular_edges.h cgal-5.5/include/CGAL/Surface_mesher/Surface_mesher_regular_edges.h --- cgal-5.4.1/include/CGAL/Surface_mesher/Surface_mesher_regular_edges.h 2022-06-03 19:06:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesher/Surface_mesher_regular_edges.h 2022-07-13 19:06:58.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesher/include/CGAL/Surface_mesher/Surface_mesher_regular_edges.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesher/include/CGAL/Surface_mesher/Surface_mesher_regular_edges.h $ // $Id: Surface_mesher_regular_edges.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesher/Surface_mesher_visitor.h cgal-5.5/include/CGAL/Surface_mesher/Surface_mesher_visitor.h --- cgal-5.4.1/include/CGAL/Surface_mesher/Surface_mesher_visitor.h 2022-06-03 19:06:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesher/Surface_mesher_visitor.h 2022-07-13 19:06:58.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesher/include/CGAL/Surface_mesher/Surface_mesher_visitor.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesher/include/CGAL/Surface_mesher/Surface_mesher_visitor.h $ // $Id: Surface_mesher_visitor.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesher/Types_generators.h cgal-5.5/include/CGAL/Surface_mesher/Types_generators.h --- cgal-5.4.1/include/CGAL/Surface_mesher/Types_generators.h 2022-06-03 19:06:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesher/Types_generators.h 2022-07-13 19:06:58.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesher/include/CGAL/Surface_mesher/Types_generators.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesher/include/CGAL/Surface_mesher/Types_generators.h $ // $Id: Types_generators.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesher/Verbose_flag.h cgal-5.5/include/CGAL/Surface_mesher/Verbose_flag.h --- cgal-5.4.1/include/CGAL/Surface_mesher/Verbose_flag.h 2022-06-03 19:06:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesher/Verbose_flag.h 2022-07-13 19:06:58.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesher/include/CGAL/Surface_mesher/Verbose_flag.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesher/include/CGAL/Surface_mesher/Verbose_flag.h $ // $Id: Verbose_flag.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesher/Vertices_on_the_same_psc_element_criterion.h cgal-5.5/include/CGAL/Surface_mesher/Vertices_on_the_same_psc_element_criterion.h --- cgal-5.4.1/include/CGAL/Surface_mesher/Vertices_on_the_same_psc_element_criterion.h 2022-06-03 19:06:01.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesher/Vertices_on_the_same_psc_element_criterion.h 2022-07-13 19:06:58.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesher/include/CGAL/Surface_mesher/Vertices_on_the_same_psc_element_criterion.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesher/include/CGAL/Surface_mesher/Vertices_on_the_same_psc_element_criterion.h $ // $Id: Vertices_on_the_same_psc_element_criterion.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesher/Vertices_on_the_same_surface_criterion.h cgal-5.5/include/CGAL/Surface_mesher/Vertices_on_the_same_surface_criterion.h --- cgal-5.4.1/include/CGAL/Surface_mesher/Vertices_on_the_same_surface_criterion.h 2022-06-03 19:06:01.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesher/Vertices_on_the_same_surface_criterion.h 2022-07-13 19:06:58.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesher/include/CGAL/Surface_mesher/Vertices_on_the_same_surface_criterion.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesher/include/CGAL/Surface_mesher/Vertices_on_the_same_surface_criterion.h $ // $Id: Vertices_on_the_same_surface_criterion.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesher_generator.h cgal-5.5/include/CGAL/Surface_mesher_generator.h --- cgal-5.4.1/include/CGAL/Surface_mesher_generator.h 2022-06-03 19:06:01.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesher_generator.h 2022-07-13 19:06:58.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesher/include/CGAL/Surface_mesher_generator.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesher/include/CGAL/Surface_mesher_generator.h $ // $Id: Surface_mesher_generator.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh.h cgal-5.5/include/CGAL/Surface_mesh.h --- cgal-5.4.1/include/CGAL/Surface_mesh.h 2022-06-03 19:05:53.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh.h 2022-07-13 19:06:50.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh/include/CGAL/Surface_mesh.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh/include/CGAL/Surface_mesh.h $ // $Id: Surface_mesh.h 2f4e49b 2020-03-23T09:47:01+01:00 Laurent Rineau // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_parameterization/ARAP_parameterizer_3.h cgal-5.5/include/CGAL/Surface_mesh_parameterization/ARAP_parameterizer_3.h --- cgal-5.4.1/include/CGAL/Surface_mesh_parameterization/ARAP_parameterizer_3.h 2022-06-03 19:05:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_parameterization/ARAP_parameterizer_3.h 2022-07-13 19:06:51.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_parameterization/include/CGAL/Surface_mesh_parameterization/ARAP_parameterizer_3.h $ -// $Id: ARAP_parameterizer_3.h cac04ed 2021-06-08T13:36:09+02:00 Dmitry Anisimov +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_parameterization/include/CGAL/Surface_mesh_parameterization/ARAP_parameterizer_3.h $ +// $Id: ARAP_parameterizer_3.h 4ffc949 2022-02-03T17:11:20+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Mael Rouxel-Labbé @@ -84,8 +84,8 @@ #include #include #include -#include +#include #include #include #include @@ -223,7 +223,7 @@ typedef CGAL::Halfedge_around_target_circulator halfedge_around_target_circulator; typedef CGAL::Halfedge_around_face_circulator halfedge_around_face_circulator; - typedef boost::unordered_set Vertex_set; + typedef std::unordered_set Vertex_set; typedef std::vector Faces_vector; // Traits subtypes: @@ -378,8 +378,8 @@ } // temporary vpmap since we do not need it in the future - boost::unordered_set vs; - internal::Bool_property_map > vpmap(vs); + std::unordered_set vs; + internal::Bool_property_map > vpmap(vs); // According to the paper, MVC is better for single border and LSCM is better // when there are multiple borders @@ -420,7 +420,7 @@ // A local uvmap (that is then discarded) is passed to avoid changing // the values of the real uvmap. Since we can't get VertexUVMap::C, // we build a map with the same key and value types - typedef boost::unordered_map Useless_map; typedef boost::associative_property_map Useless_pmap; diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_parameterization/Barycentric_mapping_parameterizer_3.h cgal-5.5/include/CGAL/Surface_mesh_parameterization/Barycentric_mapping_parameterizer_3.h --- cgal-5.4.1/include/CGAL/Surface_mesh_parameterization/Barycentric_mapping_parameterizer_3.h 2022-06-03 19:05:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_parameterization/Barycentric_mapping_parameterizer_3.h 2022-07-13 19:06:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_parameterization/include/CGAL/Surface_mesh_parameterization/Barycentric_mapping_parameterizer_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_parameterization/include/CGAL/Surface_mesh_parameterization/Barycentric_mapping_parameterizer_3.h $ // $Id: Barycentric_mapping_parameterizer_3.h a4b645a 2021-06-08T12:48:15+02:00 Dmitry Anisimov // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_parameterization/Circular_border_parameterizer_3.h cgal-5.5/include/CGAL/Surface_mesh_parameterization/Circular_border_parameterizer_3.h --- cgal-5.4.1/include/CGAL/Surface_mesh_parameterization/Circular_border_parameterizer_3.h 2022-06-03 19:05:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_parameterization/Circular_border_parameterizer_3.h 2022-07-13 19:06:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_parameterization/include/CGAL/Surface_mesh_parameterization/Circular_border_parameterizer_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_parameterization/include/CGAL/Surface_mesh_parameterization/Circular_border_parameterizer_3.h $ // $Id: Circular_border_parameterizer_3.h 93a70d3 2020-07-21T16:46:50+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_parameterization/Discrete_authalic_parameterizer_3.h cgal-5.5/include/CGAL/Surface_mesh_parameterization/Discrete_authalic_parameterizer_3.h --- cgal-5.4.1/include/CGAL/Surface_mesh_parameterization/Discrete_authalic_parameterizer_3.h 2022-06-03 19:05:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_parameterization/Discrete_authalic_parameterizer_3.h 2022-07-13 19:06:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_parameterization/include/CGAL/Surface_mesh_parameterization/Discrete_authalic_parameterizer_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_parameterization/include/CGAL/Surface_mesh_parameterization/Discrete_authalic_parameterizer_3.h $ // $Id: Discrete_authalic_parameterizer_3.h cac04ed 2021-06-08T13:36:09+02:00 Dmitry Anisimov // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_parameterization/Discrete_conformal_map_parameterizer_3.h cgal-5.5/include/CGAL/Surface_mesh_parameterization/Discrete_conformal_map_parameterizer_3.h --- cgal-5.4.1/include/CGAL/Surface_mesh_parameterization/Discrete_conformal_map_parameterizer_3.h 2022-06-03 19:05:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_parameterization/Discrete_conformal_map_parameterizer_3.h 2022-07-13 19:06:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_parameterization/include/CGAL/Surface_mesh_parameterization/Discrete_conformal_map_parameterizer_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_parameterization/include/CGAL/Surface_mesh_parameterization/Discrete_conformal_map_parameterizer_3.h $ // $Id: Discrete_conformal_map_parameterizer_3.h cac04ed 2021-06-08T13:36:09+02:00 Dmitry Anisimov // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_parameterization/Error_code.h cgal-5.5/include/CGAL/Surface_mesh_parameterization/Error_code.h --- cgal-5.4.1/include/CGAL/Surface_mesh_parameterization/Error_code.h 2022-06-03 19:05:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_parameterization/Error_code.h 2022-07-13 19:06:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_parameterization/include/CGAL/Surface_mesh_parameterization/Error_code.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_parameterization/include/CGAL/Surface_mesh_parameterization/Error_code.h $ // $Id: Error_code.h 26355e2 2020-06-25T12:31:21+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_parameterization/Fixed_border_parameterizer_3.h cgal-5.5/include/CGAL/Surface_mesh_parameterization/Fixed_border_parameterizer_3.h --- cgal-5.4.1/include/CGAL/Surface_mesh_parameterization/Fixed_border_parameterizer_3.h 2022-06-03 19:05:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_parameterization/Fixed_border_parameterizer_3.h 2022-07-13 19:06:51.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_parameterization/include/CGAL/Surface_mesh_parameterization/Fixed_border_parameterizer_3.h $ -// $Id: Fixed_border_parameterizer_3.h 752c07e 2021-06-04T11:23:16+02:00 Dmitry Anisimov +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_parameterization/include/CGAL/Surface_mesh_parameterization/Fixed_border_parameterizer_3.h $ +// $Id: Fixed_border_parameterizer_3.h 4ffc949 2022-02-03T17:11:20+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Laurent Saboret, Pierre Alliez, Bruno Levy @@ -33,7 +33,8 @@ #include #include -#include + +#include /// \file Fixed_border_parameterizer_3.h @@ -212,7 +213,7 @@ Error_code status = OK; - typedef boost::unordered_set Vertex_set; + typedef std::unordered_set Vertex_set; Vertex_set vertices; internal::Containers_filler fc(mesh, vertices); @@ -248,7 +249,7 @@ // Fill the matrix for the inner vertices v_i: compute A's coefficient // w_ij for each neighbor j; then w_ii = - sum of w_ijs - boost::unordered_set main_border; + std::unordered_set main_border; for(vertex_descriptor v : vertices_around_face(bhd,mesh)){ main_border.insert(v); diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_parameterization/internal/Bool_property_map.h cgal-5.5/include/CGAL/Surface_mesh_parameterization/internal/Bool_property_map.h --- cgal-5.4.1/include/CGAL/Surface_mesh_parameterization/internal/Bool_property_map.h 2022-06-03 19:05:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_parameterization/internal/Bool_property_map.h 2022-07-13 19:06:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_parameterization/include/CGAL/Surface_mesh_parameterization/internal/Bool_property_map.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_parameterization/include/CGAL/Surface_mesh_parameterization/internal/Bool_property_map.h $ // $Id: Bool_property_map.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_parameterization/internal/Containers_filler.h cgal-5.5/include/CGAL/Surface_mesh_parameterization/internal/Containers_filler.h --- cgal-5.4.1/include/CGAL/Surface_mesh_parameterization/internal/Containers_filler.h 2022-06-03 19:05:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_parameterization/internal/Containers_filler.h 2022-07-13 19:06:51.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_parameterization/include/CGAL/Surface_mesh_parameterization/internal/Containers_filler.h $ -// $Id: Containers_filler.h c9279b6 2020-07-07T16:04:47+02:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_parameterization/include/CGAL/Surface_mesh_parameterization/internal/Containers_filler.h $ +// $Id: Containers_filler.h 4ffc949 2022-02-03T17:11:20+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Mael Rouxel-Labbé @@ -18,9 +18,9 @@ #include #include -#include #include +#include #include namespace CGAL { @@ -32,7 +32,7 @@ // Custom output iterator that fills 'faces' and 'vertices' containers from a mesh template::vertex_descriptor>, + std::unordered_set::vertex_descriptor>, typename Face_vector = std::vector::face_descriptor> > class Containers_filler diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_parameterization/internal/kernel_traits.h cgal-5.5/include/CGAL/Surface_mesh_parameterization/internal/kernel_traits.h --- cgal-5.4.1/include/CGAL/Surface_mesh_parameterization/internal/kernel_traits.h 2022-06-03 19:05:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_parameterization/internal/kernel_traits.h 2022-07-13 19:06:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_parameterization/include/CGAL/Surface_mesh_parameterization/internal/kernel_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_parameterization/include/CGAL/Surface_mesh_parameterization/internal/kernel_traits.h $ // $Id: kernel_traits.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_parameterization/internal/orbifold_cone_helper.h cgal-5.5/include/CGAL/Surface_mesh_parameterization/internal/orbifold_cone_helper.h --- cgal-5.4.1/include/CGAL/Surface_mesh_parameterization/internal/orbifold_cone_helper.h 2022-06-03 19:05:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_parameterization/internal/orbifold_cone_helper.h 2022-07-13 19:06:51.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_parameterization/include/CGAL/Surface_mesh_parameterization/internal/orbifold_cone_helper.h $ -// $Id: orbifold_cone_helper.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_parameterization/include/CGAL/Surface_mesh_parameterization/internal/orbifold_cone_helper.h $ +// $Id: orbifold_cone_helper.h 4ffc949 2022-02-03T17:11:20+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Mael Rouxel-Labbé @@ -21,8 +21,8 @@ #include #include -#include +#include #include #include #include @@ -93,7 +93,7 @@ } typedef typename Cone_container::value_type Cone; - boost::unordered_set unique_cones; + std::unordered_set unique_cones; unique_cones.insert(cones.begin(), cones.end()); @@ -221,7 +221,7 @@ CGAL_precondition(is_border(bhd, mesh)); // count how many times vertices on a seam appear - boost::unordered_map seam_vertices_counter; + std::unordered_map seam_vertices_counter; for(halfedge_descriptor hdaf : halfedges_around_face(bhd, mesh)) { CGAL_precondition(mesh.has_on_seam(hdaf)); @@ -229,7 +229,7 @@ TM_vertex_descriptor tm_vdt = target(hdaf, mesh.mesh()); // insert vds - std::pair::iterator, + std::pair::iterator, bool> is_insert_successful = seam_vertices_counter.insert(std::make_pair(tm_vds, 1)); if(!is_insert_successful.second) @@ -248,8 +248,8 @@ } // check for self intersections in the seam - typename boost::unordered_map::iterator sit = seam_vertices_counter.begin(), - send = seam_vertices_counter.end(); + typename std::unordered_map::iterator sit = seam_vertices_counter.begin(), + send = seam_vertices_counter.end(); for(; sit!=send; ++sit) { if(sit->second != 2 && sit->second != 4) { std::cerr << sit->second << std::endl; diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_parameterization/internal/validity.h cgal-5.5/include/CGAL/Surface_mesh_parameterization/internal/validity.h --- cgal-5.4.1/include/CGAL/Surface_mesh_parameterization/internal/validity.h 2022-06-03 19:05:55.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_parameterization/internal/validity.h 2022-07-13 19:06:51.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_parameterization/include/CGAL/Surface_mesh_parameterization/internal/validity.h $ -// $Id: validity.h c47ba58 2021-11-19T13:42:11+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_parameterization/include/CGAL/Surface_mesh_parameterization/internal/validity.h $ +// $Id: validity.h 4ffc949 2022-02-03T17:11:20+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Mael Rouxel-Labbé @@ -52,7 +52,7 @@ typedef typename Kernel::Vector_3 Vector_3; // Fill containers - boost::unordered_set vertices; + std::unordered_set vertices; std::vector faces; internal::Containers_filler fc(mesh, vertices, &faces); @@ -302,7 +302,7 @@ typedef typename boost::graph_traits::vertex_descriptor vertex_descriptor; typedef typename boost::graph_traits::face_descriptor face_descriptor; - boost::unordered_set vertices; + std::unordered_set vertices; std::vector faces; internal::Containers_filler fc(mesh, vertices, &faces); diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_parameterization/IO/File_off.h cgal-5.5/include/CGAL/Surface_mesh_parameterization/IO/File_off.h --- cgal-5.4.1/include/CGAL/Surface_mesh_parameterization/IO/File_off.h 2022-06-03 19:05:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_parameterization/IO/File_off.h 2022-07-13 19:06:51.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_parameterization/include/CGAL/Surface_mesh_parameterization/IO/File_off.h $ -// $Id: File_off.h efc0c52 2021-01-15T10:02:00+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_parameterization/include/CGAL/Surface_mesh_parameterization/IO/File_off.h $ +// $Id: File_off.h 4ffc949 2022-02-03T17:11:20+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -25,9 +25,9 @@ #include #include -#include -#include +#include +#include #include #include #include @@ -96,11 +96,11 @@ typedef typename boost::graph_traits::halfedge_descriptor halfedge_descriptor; typedef typename boost::graph_traits::face_descriptor face_descriptor; - typedef boost::unordered_map Vertex_index_map; + typedef std::unordered_map Vertex_index_map; Vertex_index_map vium; boost::associative_property_map vimap(vium); - boost::unordered_set vertices; + std::unordered_set vertices; std::vector faces; internal::Containers_filler fc(mesh, vertices, &faces); diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_parameterization/Iterative_authalic_parameterizer_3.h cgal-5.5/include/CGAL/Surface_mesh_parameterization/Iterative_authalic_parameterizer_3.h --- cgal-5.4.1/include/CGAL/Surface_mesh_parameterization/Iterative_authalic_parameterizer_3.h 2022-06-03 19:05:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_parameterization/Iterative_authalic_parameterizer_3.h 2022-07-13 19:06:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_parameterization/include/CGAL/Surface_mesh_parameterization/Iterative_authalic_parameterizer_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_parameterization/include/CGAL/Surface_mesh_parameterization/Iterative_authalic_parameterizer_3.h $ // $Id: Iterative_authalic_parameterizer_3.h 9e89439 2021-08-04T13:57:30+02:00 Dmitry Anisimov // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_parameterization/LSCM_parameterizer_3.h cgal-5.5/include/CGAL/Surface_mesh_parameterization/LSCM_parameterizer_3.h --- cgal-5.4.1/include/CGAL/Surface_mesh_parameterization/LSCM_parameterizer_3.h 2022-06-03 19:05:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_parameterization/LSCM_parameterizer_3.h 2022-07-13 19:06:51.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_parameterization/include/CGAL/Surface_mesh_parameterization/LSCM_parameterizer_3.h $ -// $Id: LSCM_parameterizer_3.h bdd4efe 2021-01-15T10:06:56+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_parameterization/include/CGAL/Surface_mesh_parameterization/LSCM_parameterizer_3.h $ +// $Id: LSCM_parameterizer_3.h 4ffc949 2022-02-03T17:11:20+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Laurent Saboret, Pierre Alliez, Bruno Levy @@ -32,8 +32,8 @@ #include #include -#include +#include #include /// \file LSCM_parameterizer_3.h @@ -201,7 +201,7 @@ CGAL_precondition(bhd != boost::graph_traits::null_halfedge() && is_border(bhd, mesh)); // Fill containers - boost::unordered_set ccvertices; + std::unordered_set ccvertices; std::vector ccfaces; internal::Containers_filler fc(mesh, ccvertices, &ccfaces); @@ -274,7 +274,7 @@ // \pre At least 2 border vertices must be parameterized. template void initialize_system_from_mesh_border(LeastSquaresSolver& solver, - const boost::unordered_set& ccvertices, + const std::unordered_set& ccvertices, UVmap uvmap, VertexIndexMap vimap, VertexParameterizedMap vpmap) const diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_parameterization/Mean_value_coordinates_parameterizer_3.h cgal-5.5/include/CGAL/Surface_mesh_parameterization/Mean_value_coordinates_parameterizer_3.h --- cgal-5.4.1/include/CGAL/Surface_mesh_parameterization/Mean_value_coordinates_parameterizer_3.h 2022-06-03 19:05:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_parameterization/Mean_value_coordinates_parameterizer_3.h 2022-07-13 19:06:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_parameterization/include/CGAL/Surface_mesh_parameterization/Mean_value_coordinates_parameterizer_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_parameterization/include/CGAL/Surface_mesh_parameterization/Mean_value_coordinates_parameterizer_3.h $ // $Id: Mean_value_coordinates_parameterizer_3.h cac04ed 2021-06-08T13:36:09+02:00 Dmitry Anisimov // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_parameterization/measure_distortion.h cgal-5.5/include/CGAL/Surface_mesh_parameterization/measure_distortion.h --- cgal-5.4.1/include/CGAL/Surface_mesh_parameterization/measure_distortion.h 2022-06-03 19:05:55.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_parameterization/measure_distortion.h 2022-07-13 19:06:51.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_parameterization/include/CGAL/Surface_mesh_parameterization/measure_distortion.h $ -// $Id: measure_distortion.h 1bdcd6f 2020-07-28T16:25:09+02:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_parameterization/include/CGAL/Surface_mesh_parameterization/measure_distortion.h $ +// $Id: measure_distortion.h 6d3176e 2022-01-07T14:42:25+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Mael Rouxel-Labbé @@ -16,7 +16,7 @@ #include #include -#include +#include #include #include #include diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_parameterization/MVC_post_processor_3.h cgal-5.5/include/CGAL/Surface_mesh_parameterization/MVC_post_processor_3.h --- cgal-5.4.1/include/CGAL/Surface_mesh_parameterization/MVC_post_processor_3.h 2022-06-03 19:05:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_parameterization/MVC_post_processor_3.h 2022-07-13 19:06:51.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_parameterization/include/CGAL/Surface_mesh_parameterization/MVC_post_processor_3.h $ -// $Id: MVC_post_processor_3.h 373d21e 2021-12-20T18:06:26+01:00 Laurent Rineau +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_parameterization/include/CGAL/Surface_mesh_parameterization/MVC_post_processor_3.h $ +// $Id: MVC_post_processor_3.h 4ffc949 2022-02-03T17:11:20+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Mael Rouxel-Labbé @@ -34,8 +34,7 @@ #include -#include - +#include #include #include #include @@ -117,7 +116,7 @@ typedef typename boost::graph_traits::face_iterator face_iterator; typedef typename boost::graph_traits::vertex_iterator vertex_iterator; - typedef boost::unordered_set Vertex_set; + typedef std::unordered_set Vertex_set; typedef std::vector Faces_vector; // Traits subtypes: @@ -704,8 +703,8 @@ // Prepare the constrained triangulation: collect exterior faces (faces in // the convex hull but not -- geometrically -- in 'mesh'). - boost::unordered_set vs; - internal::Bool_property_map > vpmap(vs); + std::unordered_set vs; + internal::Bool_property_map > vpmap(vs); prepare_CT_for_parameterization(ct, vpmap); // Run the MVC diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_parameterization/orbifold_enums.h cgal-5.5/include/CGAL/Surface_mesh_parameterization/orbifold_enums.h --- cgal-5.4.1/include/CGAL/Surface_mesh_parameterization/orbifold_enums.h 2022-06-03 19:05:55.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_parameterization/orbifold_enums.h 2022-07-13 19:06:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_parameterization/include/CGAL/Surface_mesh_parameterization/orbifold_enums.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_parameterization/include/CGAL/Surface_mesh_parameterization/orbifold_enums.h $ // $Id: orbifold_enums.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_parameterization/orbifold_shortest_path.h cgal-5.5/include/CGAL/Surface_mesh_parameterization/orbifold_shortest_path.h --- cgal-5.4.1/include/CGAL/Surface_mesh_parameterization/orbifold_shortest_path.h 2022-06-03 19:05:55.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_parameterization/orbifold_shortest_path.h 2022-07-13 19:06:51.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_parameterization/include/CGAL/Surface_mesh_parameterization/orbifold_shortest_path.h $ -// $Id: orbifold_shortest_path.h 752c07e 2021-06-04T11:23:16+02:00 Dmitry Anisimov +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_parameterization/include/CGAL/Surface_mesh_parameterization/orbifold_shortest_path.h $ +// $Id: orbifold_shortest_path.h 7c20752 2022-05-04T17:38:32+01:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Mael Rouxel-Labbé @@ -18,10 +18,10 @@ #include -#include +#include #include -#include +#include #include #include #include @@ -54,7 +54,7 @@ typedef typename boost::graph_traits::vertex_descriptor vertex_descriptor; typedef typename boost::graph_traits::edge_descriptor edge_descriptor; - boost::unordered_map index_map; + std::unordered_map index_map; int counter = 0; for(vertex_descriptor vd : vertices(mesh)) { @@ -133,7 +133,7 @@ typedef internal::Stop_at_target_Dijkstra_visitor Stop_visitor; - typedef boost::unordered_map Pred_umap; + typedef std::unordered_map Pred_umap; typedef boost::associative_property_map Pred_pmap; Pred_umap predecessor; diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_parameterization/Orbifold_Tutte_parameterizer_3.h cgal-5.5/include/CGAL/Surface_mesh_parameterization/Orbifold_Tutte_parameterizer_3.h --- cgal-5.4.1/include/CGAL/Surface_mesh_parameterization/Orbifold_Tutte_parameterizer_3.h 2022-06-03 19:05:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_parameterization/Orbifold_Tutte_parameterizer_3.h 2022-07-13 19:06:51.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_parameterization/include/CGAL/Surface_mesh_parameterization/Orbifold_Tutte_parameterizer_3.h $ -// $Id: Orbifold_Tutte_parameterizer_3.h 6fe0b06 2021-06-09T13:35:34+02:00 Dmitry Anisimov +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_parameterization/include/CGAL/Surface_mesh_parameterization/Orbifold_Tutte_parameterizer_3.h $ +// $Id: Orbifold_Tutte_parameterizer_3.h 4ffc949 2022-02-03T17:11:20+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Mael Rouxel-Labbé @@ -42,9 +42,9 @@ #include #include #include -#include -#include +#include +#include #include #include #include @@ -152,7 +152,7 @@ typedef typename boost::graph_traits::vertex_descriptor TM_vertex_descriptor; typedef typename boost::graph_traits::vertex_iterator TM_vertex_iterator; - boost::unordered_map m; + std::unordered_map m; int counter = 0; TM_vertex_iterator vit, end; diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_parameterization/parameterize.h cgal-5.5/include/CGAL/Surface_mesh_parameterization/parameterize.h --- cgal-5.4.1/include/CGAL/Surface_mesh_parameterization/parameterize.h 2022-06-03 19:05:55.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_parameterization/parameterize.h 2022-07-13 19:06:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_parameterization/include/CGAL/Surface_mesh_parameterization/parameterize.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_parameterization/include/CGAL/Surface_mesh_parameterization/parameterize.h $ // $Id: parameterize.h d5185e6 2020-07-21T13:38:47+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_parameterization/Square_border_parameterizer_3.h cgal-5.5/include/CGAL/Surface_mesh_parameterization/Square_border_parameterizer_3.h --- cgal-5.4.1/include/CGAL/Surface_mesh_parameterization/Square_border_parameterizer_3.h 2022-06-03 19:05:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_parameterization/Square_border_parameterizer_3.h 2022-07-13 19:06:51.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_parameterization/include/CGAL/Surface_mesh_parameterization/Square_border_parameterizer_3.h $ -// $Id: Square_border_parameterizer_3.h 50c870e 2020-07-21T17:12:19+02:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_parameterization/include/CGAL/Surface_mesh_parameterization/Square_border_parameterizer_3.h $ +// $Id: Square_border_parameterizer_3.h 440a8df 2022-02-03T08:41:04+00:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Laurent Saboret, Pierre Alliez, Bruno Levy @@ -15,6 +15,7 @@ #include #include +#include #include #include @@ -23,6 +24,7 @@ #include + #include #include #include @@ -200,7 +202,7 @@ VertexParameterizedMap vpmap, Offset_map& offset) { - assert(offset.empty()); + CGAL_assertion(offset.empty()); put(vpmap, v0, true); put(vpmap, v1, true); @@ -234,7 +236,7 @@ if(get(vpmap, vt)) { // If both extremeties of a segment are corners, offsets are already correct if(!get(vpmap, vs)) { - assert(len != 0.0); + CGAL_assertion(len != 0.0); double ld = 1.0 / len; for(std::size_t i=index_of_previous_corner+1; i<=current_index; ++i) { // ld * offset[i] is in [0;1[ @@ -333,7 +335,7 @@ for(halfedge_descriptor hd : halfedges_around_face(start_hd, mesh)) { vertex_descriptor vd = source(hd, mesh); Point_2 uv; - assert(counter < offset.size()); + CGAL_assertion(counter < offset.size()); if(corners_encountered == 0) uv = Point_2(offset[counter++], 0.0); diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_parameterization/Two_vertices_parameterizer_3.h cgal-5.5/include/CGAL/Surface_mesh_parameterization/Two_vertices_parameterizer_3.h --- cgal-5.4.1/include/CGAL/Surface_mesh_parameterization/Two_vertices_parameterizer_3.h 2022-06-03 19:05:54.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_parameterization/Two_vertices_parameterizer_3.h 2022-07-13 19:06:51.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_parameterization/include/CGAL/Surface_mesh_parameterization/Two_vertices_parameterizer_3.h $ -// $Id: Two_vertices_parameterizer_3.h bdd4efe 2021-01-15T10:06:56+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_parameterization/include/CGAL/Surface_mesh_parameterization/Two_vertices_parameterizer_3.h $ +// $Id: Two_vertices_parameterizer_3.h 4ffc949 2022-02-03T17:11:20+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Laurent Saboret, Pierre Alliez, Bruno Levy @@ -305,7 +305,7 @@ VertexParameterizedMap vpmap) { // Fill containers - boost::unordered_set vertices; + std::unordered_set vertices; internal::Containers_filler fc(mesh, vertices); Polygon_mesh_processing::connected_component( face(opposite(bhd, mesh), mesh), diff -Nru cgal-5.4.1/include/CGAL/surface_mesh_parameterization.h cgal-5.5/include/CGAL/surface_mesh_parameterization.h --- cgal-5.4.1/include/CGAL/surface_mesh_parameterization.h 2022-06-03 19:05:55.000000000 +0000 +++ cgal-5.5/include/CGAL/surface_mesh_parameterization.h 2022-07-13 19:06:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_parameterization/include/CGAL/surface_mesh_parameterization.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_parameterization/include/CGAL/surface_mesh_parameterization.h $ // $Id: surface_mesh_parameterization.h d2cd147 2020-07-10T10:54:07+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_segmentation/internal/AABB_traits.h cgal-5.5/include/CGAL/Surface_mesh_segmentation/internal/AABB_traits.h --- cgal-5.4.1/include/CGAL/Surface_mesh_segmentation/internal/AABB_traits.h 2022-06-03 19:05:55.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_segmentation/internal/AABB_traits.h 2022-07-13 19:06:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_segmentation/include/CGAL/Surface_mesh_segmentation/internal/AABB_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_segmentation/include/CGAL/Surface_mesh_segmentation/internal/AABB_traits.h $ // $Id: AABB_traits.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_segmentation/internal/AABB_traversal_traits.h cgal-5.5/include/CGAL/Surface_mesh_segmentation/internal/AABB_traversal_traits.h --- cgal-5.4.1/include/CGAL/Surface_mesh_segmentation/internal/AABB_traversal_traits.h 2022-06-03 19:05:55.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_segmentation/internal/AABB_traversal_traits.h 2022-07-13 19:06:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_segmentation/include/CGAL/Surface_mesh_segmentation/internal/AABB_traversal_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_segmentation/include/CGAL/Surface_mesh_segmentation/internal/AABB_traversal_traits.h $ // $Id: AABB_traversal_traits.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_segmentation/internal/auxiliary/graph.h cgal-5.5/include/CGAL/Surface_mesh_segmentation/internal/auxiliary/graph.h --- cgal-5.4.1/include/CGAL/Surface_mesh_segmentation/internal/auxiliary/graph.h 2022-06-03 19:05:55.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_segmentation/internal/auxiliary/graph.h 2022-07-13 19:06:52.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_segmentation/include/CGAL/Surface_mesh_segmentation/internal/auxiliary/graph.h $ -// $Id: graph.h 444f347 2021-09-20T19:49:56+01:00 Andreas Fabri +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_segmentation/include/CGAL/Surface_mesh_segmentation/internal/auxiliary/graph.h $ +// $Id: graph.h b45e788 2022-06-23T16:25:21+01:00 Andreas Fabri // Re-licensed for CGAL distribution to: // SPDX-License-Identifier: GPL-3.0-or-later // Original license is: @@ -520,6 +520,8 @@ /* Destructor */ ~Graph(); + void clear(); + /* Adds a node to the graph */ node_id add_node(); @@ -701,7 +703,7 @@ flow = 0; } -inline Graph::~Graph() +inline void Graph::clear() { while (node_block_first) { node_block *next = node_block_first -> next; @@ -722,6 +724,11 @@ } } +inline Graph::~Graph() +{ + clear(); +} + inline Graph::node_id Graph::add_node() { node *i; diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_segmentation/internal/Disk_samplers.h cgal-5.5/include/CGAL/Surface_mesh_segmentation/internal/Disk_samplers.h --- cgal-5.4.1/include/CGAL/Surface_mesh_segmentation/internal/Disk_samplers.h 2022-06-03 19:05:55.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_segmentation/internal/Disk_samplers.h 2022-07-13 19:06:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_segmentation/include/CGAL/Surface_mesh_segmentation/internal/Disk_samplers.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_segmentation/include/CGAL/Surface_mesh_segmentation/internal/Disk_samplers.h $ // $Id: Disk_samplers.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_segmentation/internal/Expectation_maximization.h cgal-5.5/include/CGAL/Surface_mesh_segmentation/internal/Expectation_maximization.h --- cgal-5.4.1/include/CGAL/Surface_mesh_segmentation/internal/Expectation_maximization.h 2022-06-03 19:05:55.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_segmentation/internal/Expectation_maximization.h 2022-07-13 19:06:51.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_segmentation/include/CGAL/Surface_mesh_segmentation/internal/Expectation_maximization.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_segmentation/include/CGAL/Surface_mesh_segmentation/internal/Expectation_maximization.h $ // $Id: Expectation_maximization.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_segmentation/internal/Filters.h cgal-5.5/include/CGAL/Surface_mesh_segmentation/internal/Filters.h --- cgal-5.4.1/include/CGAL/Surface_mesh_segmentation/internal/Filters.h 2022-06-03 19:05:55.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_segmentation/internal/Filters.h 2022-07-13 19:06:52.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_segmentation/include/CGAL/Surface_mesh_segmentation/internal/Filters.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_segmentation/include/CGAL/Surface_mesh_segmentation/internal/Filters.h $ // $Id: Filters.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_segmentation/internal/K_means_clustering.h cgal-5.5/include/CGAL/Surface_mesh_segmentation/internal/K_means_clustering.h --- cgal-5.4.1/include/CGAL/Surface_mesh_segmentation/internal/K_means_clustering.h 2022-06-03 19:05:55.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_segmentation/internal/K_means_clustering.h 2022-07-13 19:06:52.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_segmentation/include/CGAL/Surface_mesh_segmentation/internal/K_means_clustering.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_segmentation/include/CGAL/Surface_mesh_segmentation/internal/K_means_clustering.h $ // $Id: K_means_clustering.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_segmentation/internal/SDF_calculation.h cgal-5.5/include/CGAL/Surface_mesh_segmentation/internal/SDF_calculation.h --- cgal-5.4.1/include/CGAL/Surface_mesh_segmentation/internal/SDF_calculation.h 2022-06-03 19:05:55.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_segmentation/internal/SDF_calculation.h 2022-07-13 19:06:52.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_segmentation/include/CGAL/Surface_mesh_segmentation/internal/SDF_calculation.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_segmentation/include/CGAL/Surface_mesh_segmentation/internal/SDF_calculation.h $ // $Id: SDF_calculation.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_segmentation/internal/Surface_mesh_segmentation.h cgal-5.5/include/CGAL/Surface_mesh_segmentation/internal/Surface_mesh_segmentation.h --- cgal-5.4.1/include/CGAL/Surface_mesh_segmentation/internal/Surface_mesh_segmentation.h 2022-06-03 19:05:55.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_segmentation/internal/Surface_mesh_segmentation.h 2022-07-13 19:06:52.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_segmentation/include/CGAL/Surface_mesh_segmentation/internal/Surface_mesh_segmentation.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_segmentation/include/CGAL/Surface_mesh_segmentation/internal/Surface_mesh_segmentation.h $ // $Id: Surface_mesh_segmentation.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_shortest_path/barycentric.h cgal-5.5/include/CGAL/Surface_mesh_shortest_path/barycentric.h --- cgal-5.4.1/include/CGAL/Surface_mesh_shortest_path/barycentric.h 2022-06-03 19:05:55.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_shortest_path/barycentric.h 2022-07-13 19:06:52.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_shortest_path/include/CGAL/Surface_mesh_shortest_path/barycentric.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_shortest_path/include/CGAL/Surface_mesh_shortest_path/barycentric.h $ // $Id: barycentric.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_shortest_path/function_objects.h cgal-5.5/include/CGAL/Surface_mesh_shortest_path/function_objects.h --- cgal-5.4.1/include/CGAL/Surface_mesh_shortest_path/function_objects.h 2022-06-03 19:05:55.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_shortest_path/function_objects.h 2022-07-13 19:06:52.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_shortest_path/include/CGAL/Surface_mesh_shortest_path/function_objects.h $ -// $Id: function_objects.h 263ad6b 2020-08-20T18:25:01+02:00 Dmitry Anisimov +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_shortest_path/include/CGAL/Surface_mesh_shortest_path/function_objects.h $ +// $Id: function_objects.h 64b9bbd 2022-06-28T15:48:56+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Stephen Kiazyk @@ -493,7 +493,7 @@ // In the case of multiple rays reaching the same target, we want to know their respective position // so that pruning of branches can be done according to the "one angle one split" idiom. // However, the orientation predicate is evaluated in the unfolded 2D plane, which is obtained - // via square roots; inconsisnties will exist. We don't want to prune in case it might be wrong, + // via square roots; inconsistencies will exist. We don't want to prune in case it might be wrong, // so we add a little bit of tolerance on the evaluation of the predicate. If it's almost collinear, // return 'collinear' (EQUAL). const FT eps = (FT(100) * std::numeric_limits::epsilon()); diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_shortest_path/internal/Cone_expansion_event.h cgal-5.5/include/CGAL/Surface_mesh_shortest_path/internal/Cone_expansion_event.h --- cgal-5.4.1/include/CGAL/Surface_mesh_shortest_path/internal/Cone_expansion_event.h 2022-06-03 19:05:55.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_shortest_path/internal/Cone_expansion_event.h 2022-07-13 19:06:52.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_shortest_path/include/CGAL/Surface_mesh_shortest_path/internal/Cone_expansion_event.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_shortest_path/include/CGAL/Surface_mesh_shortest_path/internal/Cone_expansion_event.h $ // $Id: Cone_expansion_event.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_shortest_path/internal/Cone_tree.h cgal-5.5/include/CGAL/Surface_mesh_shortest_path/internal/Cone_tree.h --- cgal-5.4.1/include/CGAL/Surface_mesh_shortest_path/internal/Cone_tree.h 2022-06-03 19:05:55.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_shortest_path/internal/Cone_tree.h 2022-07-13 19:06:52.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_shortest_path/include/CGAL/Surface_mesh_shortest_path/internal/Cone_tree.h $ -// $Id: Cone_tree.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_shortest_path/include/CGAL/Surface_mesh_shortest_path/internal/Cone_tree.h $ +// $Id: Cone_tree.h 89b7bb1 2022-07-05T15:39:29+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Stephen Kiazyk @@ -95,15 +95,22 @@ public: Cone_tree_node(const Traits& traits, const Triangle_mesh& g, - const std::size_t treeId) + const halfedge_descriptor entryEdge, + const Triangle_2& layoutFace, + const Point_2& sourceImage, + const FT& pseudoSourceDistance, + const Point_2& windowLeft, + const Point_2& windowRight, + const Node_type nodeType = INTERVAL) : m_traits(traits) , m_graph(g) - , m_sourceImage(Point_2(CGAL::ORIGIN)) - , m_layoutFace(Point_2(CGAL::ORIGIN),Point_2(CGAL::ORIGIN),Point_2(CGAL::ORIGIN)) - , m_pseudoSourceDistance(0.0) - , m_level(0) - , m_treeId(treeId) - , m_nodeType(ROOT) + , m_entryEdge(entryEdge) + , m_sourceImage(sourceImage) + , m_layoutFace(layoutFace) + , m_pseudoSourceDistance(pseudoSourceDistance) + , m_windowLeft(windowLeft) + , m_windowRight(windowRight) + , m_nodeType(nodeType) , m_leftChild(nullptr) , m_rightChild(nullptr) , m_pendingLeftSubtree(nullptr) @@ -135,27 +142,8 @@ Cone_tree_node(const Traits& traits, const Triangle_mesh& g, - const halfedge_descriptor entryEdge, - const Triangle_2& layoutFace, - const Point_2& sourceImage, - const FT& pseudoSourceDistance, - const Point_2& windowLeft, - const Point_2& windowRight, - const Node_type nodeType = INTERVAL) - : m_traits(traits) - , m_graph(g) - , m_entryEdge(entryEdge) - , m_sourceImage(sourceImage) - , m_layoutFace(layoutFace) - , m_pseudoSourceDistance(pseudoSourceDistance) - , m_windowLeft(windowLeft) - , m_windowRight(windowRight) - , m_nodeType(nodeType) - , m_leftChild(nullptr) - , m_rightChild(nullptr) - , m_pendingLeftSubtree(nullptr) - , m_pendingRightSubtree(nullptr) - , m_pendingMiddleSubtree(nullptr) + const std::size_t treeId) + : Cone_tree_node(traits, g, treeId, Graph_traits::null_halfedge()) { } diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_shortest_path/internal/misc_functions.h cgal-5.5/include/CGAL/Surface_mesh_shortest_path/internal/misc_functions.h --- cgal-5.4.1/include/CGAL/Surface_mesh_shortest_path/internal/misc_functions.h 2022-06-03 19:05:55.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_shortest_path/internal/misc_functions.h 2022-07-13 19:06:52.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_shortest_path/include/CGAL/Surface_mesh_shortest_path/internal/misc_functions.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_shortest_path/include/CGAL/Surface_mesh_shortest_path/internal/misc_functions.h $ // $Id: misc_functions.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_shortest_path/Surface_mesh_shortest_path.h cgal-5.5/include/CGAL/Surface_mesh_shortest_path/Surface_mesh_shortest_path.h --- cgal-5.4.1/include/CGAL/Surface_mesh_shortest_path/Surface_mesh_shortest_path.h 2022-06-03 19:05:55.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_shortest_path/Surface_mesh_shortest_path.h 2022-07-13 19:06:52.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_shortest_path/include/CGAL/Surface_mesh_shortest_path/Surface_mesh_shortest_path.h $ -// $Id: Surface_mesh_shortest_path.h a35555b 2022-02-22T15:19:17+00:00 Andreas Fabri +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_shortest_path/include/CGAL/Surface_mesh_shortest_path/Surface_mesh_shortest_path.h $ +// $Id: Surface_mesh_shortest_path.h c519bde 2022-07-08T20:21:02+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Stephen Kiazyk @@ -14,36 +14,29 @@ #include -#include - -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include +#include +#include +#include #include #include +#include +#include #include #include #include -#include -#include -#include - -#include -#include +#include #include +#include +#include +#include +#include +#include +#include +#include + namespace CGAL { /*! @@ -276,8 +269,6 @@ /// @} private: - typedef typename Graph_traits::vertex_iterator vertex_iterator; - typedef typename Graph_traits::halfedge_iterator halfedge_iterator; typedef typename Graph_traits::face_iterator face_iterator; typedef typename Traits::Triangle_3 Triangle_3; @@ -354,13 +345,11 @@ Expansion_priqueue m_expansionPriqueue; #if !defined(NDEBUG) - std::size_t m_currentNodeCount; std::size_t m_peakNodeCount; std::size_t m_queueAtPeakNodes; std::size_t m_peakQueueSize; std::size_t m_nodesAtPeakQueue; - #endif #if !defined(NDEBUG) @@ -420,7 +409,6 @@ #endif - public: /// \cond @@ -533,7 +521,8 @@ } /* - Filtering algorithm described in Xin and Wang (2009) "Improving chen and han's algorithm on the discrete geodesic problem." + Filtering algorithm described in Xin and Wang (2009) + "Improving chen and han's algorithm on the discrete geodesic problem." https://dl.acm.org/citation.cfm?doid=1559755.1559761 */ bool window_distance_filter(Cone_tree_node* cone, @@ -659,7 +648,6 @@ } CGAL_assertion(cone->m_pendingLeftSubtree != nullptr); - cone->m_pendingLeftSubtree = nullptr; if (window_distance_filter(cone, windowSegment, false)) @@ -689,14 +677,13 @@ typename Traits::Construct_vertex_2 cv2(m_traits.construct_vertex_2_object()); typename Traits::Construct_triangle_3_along_segment_2_flattening ft3as2(m_traits.construct_triangle_3_along_segment_2_flattening_object()); - CGAL_assertion(cone->m_pendingRightSubtree != nullptr); - cone->m_pendingRightSubtree = nullptr; - if (m_debugOutput) { std::cout << std::endl << " >>>>>>>>>>>>>>>>>>> Expanding RIGHT CHILD <<<<<<<<<<<<<<<<<<<" <m_pendingRightSubtree != nullptr); + cone->m_pendingRightSubtree = nullptr; if (window_distance_filter(cone, windowSegment, true)) { @@ -729,7 +716,7 @@ std::size_t associatedEdge; CGAL::Surface_mesh_shortest_paths_3::Barycentric_coordinates_type type; - boost::tie(type, associatedEdge) = classify_barycentric_coordinates(location); + std::tie(type, associatedEdge) = classify_barycentric_coordinates(location); switch (type) { @@ -777,11 +764,13 @@ Cone_tree_node* faceRoot = new Cone_tree_node(m_traits, m_graph, m_rootNodes.size()); node_created(); - m_rootNodes.push_back(std::make_pair(faceRoot, sourcePointIt)); + m_rootNodes.emplace_back(faceRoot, sourcePointIt); if (m_debugOutput) { typename Traits::Construct_barycentric_coordinates_weight cbcw(m_traits.construct_barycentric_coordinates_weight_object()); + + std::cout << std::endl << " ~~~~~~~~~~~~~~~~~~~~~~~~~~~" << std::endl; std::cout << "\tFace Root Expansion: id = " << get(m_faceIndexMap, f) << " , Location = " << cbcw(faceLocation, 0) << " " << cbcw(faceLocation, 1) << " " << cbcw(faceLocation, 2) << " " << std::endl; @@ -794,8 +783,12 @@ const Barycentric_coordinates rotatedFaceLocation(shifted_coordinates(faceLocation, currentVertex)); const Point_2 sourcePoint(construct_barycenter_in_triangle_2(layoutFace, rotatedFaceLocation)); - Cone_tree_node* child = new Cone_tree_node(m_traits, m_graph, current, layoutFace, sourcePoint, - FT(0), cv2(layoutFace, 0), cv2(layoutFace, 2), + Cone_tree_node* child = new Cone_tree_node(m_traits, m_graph, + current /*entryEdge*/, + layoutFace, sourcePoint, + FT(0) /*pseudoSourceDistance*/, + cv2(layoutFace, 0) /*windowLeft*/, + cv2(layoutFace, 2) /*windowRight*/, Cone_tree_node::FACE_SOURCE); node_created(); faceRoot->push_middle_child(child); @@ -803,7 +796,8 @@ if (m_debugOutput) { std::cout << "\tExpanding face root #" << currentVertex << " : " << std::endl;; - std::cout << "\t\tFace = " << layoutFace << std::endl; + std::cout << "\t\t3D Face = " << face3d << std::endl; + std::cout << "\t\t2D Face = " << layoutFace << std::endl; std::cout << "\t\tLocation = " << sourcePoint << std::endl; } @@ -820,53 +814,127 @@ const FT t0, const FT t1, Source_point_iterator sourcePointIt) { - typename Traits::Construct_barycenter_2 cb2(m_traits.construct_barycenter_2_object()); + CGAL_precondition(!is_border(baseEdge, m_graph)); + CGAL_precondition(t0 + t1 == FT(1)); + typename Traits::Construct_vertex_2 cv2(m_traits.construct_vertex_2_object()); typename Traits::Construct_triangle_3_to_triangle_2_projection pt3t2(m_traits.construct_triangle_3_to_triangle_2_projection_object()); if (m_debugOutput) { + std::cout << std::endl << " ~~~~~~~~~~~~~~~~~~~~~~~~~~~" << std::endl; std::cout << "\tEdge Root Expansion: faceA = " << get(m_faceIndexMap, face(baseEdge, m_graph)) << " , faceB = " << get(m_faceIndexMap, face(opposite(baseEdge, m_graph), m_graph)) << " , t0 = " << t0 << " , t1 = " << t1 << std::endl; + std::cout << "\t\tBoundary: " << is_border_edge(baseEdge, m_graph) << std::endl; } - halfedge_descriptor baseEdges[2]; - baseEdges[0] = baseEdge; - baseEdges[1] = opposite(baseEdge, m_graph); + Cone_tree_node* edgeRoot = new Cone_tree_node(m_traits, m_graph, m_rootNodes.size()); + node_created(); + m_rootNodes.emplace_back(edgeRoot, sourcePointIt); - Triangle_3 faces3d[2]; - Triangle_2 layoutFaces[2]; + /* If v0v1 is not a border edge: + * + * v2 + * / \ + * / \ + * / \ + * v0 - S - v1 + * \ / + * \ / + * \ / + * v3 + * The source S must reach all Vi, so for each side of the edge, there are two windwows being spawned: + * - v0v1 targetting v2 propagating only on the left (v0v2) + * - v2v0 targetting v1 propagating only on the left (v2v1) + * - v1v0 targetting v3 propagating only on the left (v1v3) + * - v3v1 targetting v0 propagating only on the left (v3v0) + * + * If v0v1 is a border edge, spawn 3 children in the face, and none on the other side + */ - for (std::size_t i = 0; i < 2; ++i) + if(is_border_edge(baseEdge, m_graph)) { - faces3d[i] = triangle_from_halfedge(baseEdges[i]); - layoutFaces[i] = pt3t2(faces3d[i]); + const Face_location edgeSourceLocation = face_location(baseEdge, t0); + return expand_face_root(face(baseEdge, m_graph), edgeSourceLocation.second, sourcePointIt); } - Point_2 sourcePoints[2]; - sourcePoints[0] = cb2(cv2(layoutFaces[0], 0), t0, cv2(layoutFaces[0], 1), t1); - sourcePoints[1] = cb2(cv2(layoutFaces[1], 0), t1, cv2(layoutFaces[1], 1), t0); + // From here on, it is not a border edge --> spawn 2 children on each side - Cone_tree_node* edgeRoot = new Cone_tree_node(m_traits, m_graph, m_rootNodes.size()); - node_created(); - m_rootNodes.push_back(std::make_pair(edgeRoot, sourcePointIt)); + halfedge_descriptor baseEdges[2]; + baseEdges[0] = baseEdge; + baseEdges[1] = opposite(baseEdge, m_graph); + + // shift is because the entry halfedge is not necessarily equal to halfedge(face(entry_h, g), g) + Barycentric_coordinates edgeSourceLocations[2]; + edgeSourceLocations[0] = shifted_coordinates(face_location(baseEdges[0], t0).second, + Surface_mesh_shortest_paths_3::internal::edge_index(baseEdges[0], m_graph)); + edgeSourceLocations[1] = shifted_coordinates(face_location(baseEdges[1], t1).second, + Surface_mesh_shortest_paths_3::internal::edge_index(baseEdges[1], m_graph)); for (std::size_t side = 0; side < 2; ++side) { + Triangle_3 face3d(triangle_from_halfedge(baseEdges[side])); + Triangle_2 layoutFace(pt3t2(face3d)); + Point_2 sourcePoint(construct_barycenter_in_triangle_2(layoutFace, edgeSourceLocations[side])); + + // v0v1 targetting v2 if (m_debugOutput) { - std::cout << "\tExpanding edge root #" << side << " : " << std::endl;; - std::cout << "\t\tFace = " << layoutFaces[side] << std::endl; - std::cout << "\t\tLocation = " << sourcePoints[side] << std::endl; + std::cout << std::endl << " ~~~~~~~~~~~~~~~~~~~~~~~~~~~" << std::endl; + std::cout << "\tExpanding edge root, side #" << side << ", targetting LOCAL 'v2'" << std::endl; + std::cout << "\t\t3D Face = " << face3d << std::endl; + std::cout << "\t\t2D Face = " << layoutFace << std::endl; + std::cout << "\t\tBarycentric coordinates: " << edgeSourceLocations[side][0] + << " " << edgeSourceLocations[side][1] + << " " << edgeSourceLocations[side][2] << std::endl; + std::cout << "\t\tLocation = " << sourcePoint << std::endl; } - Cone_tree_node* mainChild = new Cone_tree_node(m_traits, m_graph, baseEdges[side], layoutFaces[side], - sourcePoints[side], FT(0), cv2(layoutFaces[side], 0), - cv2(layoutFaces[side], 1), Cone_tree_node::EDGE_SOURCE); + Cone_tree_node* v2_Child = new Cone_tree_node(m_traits, m_graph, + baseEdges[side] /*entryEdge*/, + layoutFace, + sourcePoint /*sourceImage*/, + FT(0) /*pseudoSourceDistance*/, + cv2(layoutFace, 0) /*windowLeft*/, + cv2(layoutFace, 2) /*windowRight*/, + Cone_tree_node::EDGE_SOURCE); node_created(); - edgeRoot->push_middle_child(mainChild); - process_node(mainChild); + edgeRoot->push_middle_child(v2_Child); + process_node(v2_Child); + + // v2v0 targetting v1 + face3d = triangle_from_halfedge(prev(baseEdges[side], m_graph)); + layoutFace = pt3t2(face3d); + + // shift the barycentric coordinates to correspond to the new layout + std::swap(edgeSourceLocations[side][1], edgeSourceLocations[side][2]); + std::swap(edgeSourceLocations[side][0], edgeSourceLocations[side][1]); + sourcePoint = Point_2(construct_barycenter_in_triangle_2(layoutFace, edgeSourceLocations[side])); + + if (m_debugOutput) + { + std::cout << std::endl << " ~~~~~~~~~~~~~~~~~~~~~~~~~~~" << std::endl; + std::cout << "\tExpanding edge root, side #" << side << ", targetting LOCAL 'v1'" << std::endl; + std::cout << "\t\t3D Face = " << face3d << std::endl; + std::cout << "\t\t2D Face = " << layoutFace << std::endl; + std::cout << "\t\tBarycentric coordinates: " << edgeSourceLocations[side][0] + << " " << edgeSourceLocations[side][1] + << " " << edgeSourceLocations[side][2] << std::endl; + std::cout << "\t\tLocation = " << sourcePoint << std::endl; + } + + Cone_tree_node* v1_Child = new Cone_tree_node(m_traits, m_graph, + prev(baseEdges[side], m_graph) /*entryEdge*/, + layoutFace, + sourcePoint /*sourceImage*/, + FT(0) /*pseudoSourceDistance*/, + cv2(layoutFace, 0) /*windowLeft*/, + cv2(layoutFace, 2) /*windowRight*/, + Cone_tree_node::EDGE_SOURCE); + node_created(); + edgeRoot->push_middle_child(v1_Child); + process_node(v1_Child); } } @@ -878,6 +946,7 @@ { if (m_debugOutput) { + std::cout << std::endl << " ~~~~~~~~~~~~~~~~~~~~~~~~~~~" << std::endl; std::cout << "\tVertex Root Expansion: Vertex = " << get(m_vertexIndexMap, vertex) << std::endl; } @@ -885,7 +954,7 @@ prev(halfedge(vertex, m_graph), m_graph)); node_created(); - m_rootNodes.push_back(std::make_pair(vertexRoot, sourcePointIt)); + m_rootNodes.emplace_back(vertexRoot, sourcePointIt); m_closestToVertices[get(m_vertexIndexMap, vertex)] = Node_distance_pair(vertexRoot, FT(0)); @@ -894,6 +963,13 @@ /* Create child nodes for each face surrounding the vertex occupied by `parent`, and push them to the queue + + By convention, source windows are left & middle (no right) as to not create overlaps. + A child is also created for the border halfedge (if any) as to propagate distance + to the next vertex on the border (aka `target(next(border_h, g), g)`). + This creates a nonsensical triangle made of `source(border_h, g)`, `target(border_h, g)`, + and `target(next(border_h, g), g)` but propagation is only done to the vertex (vertex source: + no propagation on the right by convention, and left is a border halfedge so no propagation either). */ void expand_pseudo_source(Cone_tree_node* parent) { @@ -911,8 +987,8 @@ if (m_debugOutput) { - std::cout << "expansionVertex: " << get(m_vertexIndexMap, expansionVertex) << std::endl; - std::cout << "Distance from target to root: " << distanceFromTargetToRoot << std::endl; + std::cout << "Pseudo source: V" << get(m_vertexIndexMap, expansionVertex) << std::endl; + std::cout << "Distance from pseudo source to root: " << distanceFromTargetToRoot << std::endl; } // A potential optimization could be made by only expanding in the 'necessary' range (i.e. the range outside of geodesic visibility), but the @@ -931,7 +1007,7 @@ << get(m_vertexIndexMap, source(currentEdge, m_graph)) << " " << get(m_vertexIndexMap, target(currentEdge, m_graph)) << std::endl; std::cout << "face id = "; - if (face(currentEdge, m_graph) != Graph_traits::null_face()) + if (!is_border(currentEdge, m_graph)) { std::cout << get(m_faceIndexMap, face(currentEdge, m_graph)) << std::endl; @@ -945,9 +1021,11 @@ } } - Cone_tree_node* child = new Cone_tree_node(m_traits, m_graph, currentEdge, layoutFace, - cv2(layoutFace, 1), distanceFromTargetToRoot, - cv2(layoutFace, 0), cv2(layoutFace, 2), + Cone_tree_node* child = new Cone_tree_node(m_traits, m_graph, currentEdge /*entryEdge*/, + layoutFace, cv2(layoutFace, 1) /*sourceImage*/, + distanceFromTargetToRoot, + cv2(layoutFace, 0) /*windowLeft*/, + cv2(layoutFace, 2) /*windowRight*/, Cone_tree_node::VERTEX_SOURCE); node_created(); @@ -1131,18 +1209,18 @@ std::cout << "\tParent node: " << node->parent() << std::endl; std::cout << "\tParent node type: " << node->parent()->node_type() << std::endl; std::cout << "\tFace = " << node->layout_face() << std::endl; - std::cout << "\tVertices = "; + std::cout << "\tVertices ="; halfedge_descriptor current = node->entry_edge(); for (std::size_t i = 0; i<3; ++i) { - std::cout << get(m_vertexIndexMap, source(current, m_graph)) << " "; + std::cout << " " << get(m_vertexIndexMap, source(current, m_graph)); current = next(current, m_graph); } std::cout << std::endl; std::cout << "\tSource Image = " << node->source_image() << std::endl; - std::cout << "\tEntry Halfedge = (" << get(m_vertexIndexMap, source(node->entry_edge(), m_graph)) << " " + std::cout << "\tEntry Halfedge = (V" << get(m_vertexIndexMap, source(node->entry_edge(), m_graph)) << " V" << get(m_vertexIndexMap, target(node->entry_edge(), m_graph)) << ")" << std::endl; - std::cout << "\tTarget vertex = " << get(m_vertexIndexMap, node->target_vertex()) << std::endl; + std::cout << "\tTarget vertex = V" << get(m_vertexIndexMap, node->target_vertex()) << std::endl; std::cout << "\tWindow Left = " << node->window_left() << std::endl; std::cout << "\tWindow Right = " << node->window_right() << std::endl; @@ -1156,18 +1234,10 @@ leftSide = node->has_left_side(); rightSide = node->has_right_side(); } - else // node corresponds to a source + else // source nodes only have left sides { - if (node->node_type() == Cone_tree_node::EDGE_SOURCE) - { - leftSide = true; - rightSide = true; - } - else - { - leftSide = true; - rightSide = false; - } + leftSide = true; + rightSide = false; } if (m_debugOutput) @@ -1189,7 +1259,7 @@ std::size_t entryHalfEdgeIndex = get(m_halfedgeIndexMap, node->entry_edge()); - Node_distance_pair currentOccupier = m_vertexOccupiers[entryHalfEdgeIndex]; + const Node_distance_pair& currentOccupier = m_vertexOccupiers[entryHalfEdgeIndex]; FT currentNodeDistance = node->distance_from_target_to_root(); if (m_debugOutput) @@ -1231,11 +1301,11 @@ if (m_debugOutput) { - std::cout << "\t Current occupier, EH (" - << get(m_vertexIndexMap, source(currentOccupier.first->entry_edge(), m_graph)) << " " + std::cout << "\t Current occupier, EH (V" + << get(m_vertexIndexMap, source(currentOccupier.first->entry_edge(), m_graph)) << " V" << get(m_vertexIndexMap, target(currentOccupier.first->entry_edge(), m_graph)) << ")" << std::endl; std::cout << "\t Current occupier, Source = " << currentOccupier.first->source_image() << std::endl; - std::cout << "\t Current Occupier Distance = " << currentOccupier.second << std::endl; + std::cout << "\t Current occupier Distance = " << currentOccupier.second << std::endl; std::cout << "\t smaller (-1)/equal (0)/larger (1) comparison? " << c << std::endl; } } @@ -1271,7 +1341,7 @@ // This is a consequence of using the same basic node type for source and interval nodes // If this is a source node, it is only pointing to one of the two opposite edges (the left one by convention) - if (node->node_type() != Cone_tree_node::INTERVAL && node->node_type() != Cone_tree_node::EDGE_SOURCE) + if (node->is_source_node()) { propagateRight = false; @@ -1313,9 +1383,9 @@ } } - // Check if node is now the absolute closest node, and replace the current closest as appropriate + // Check if `node` is now the absolute closest node, and replace the current closest as appropriate std::size_t targetVertexIndex = get(m_vertexIndexMap, node->target_vertex()); - Node_distance_pair currentClosest = m_closestToVertices[targetVertexIndex]; + const Node_distance_pair& currentClosest = m_closestToVertices[targetVertexIndex]; if (m_debugOutput && currentClosest.first != nullptr) { @@ -1324,12 +1394,13 @@ // If equal times, give priority to vertex sources since it's cleaner and simpler to handle than interval windows if (currentClosest.first == nullptr || - currentClosest.second > currentNodeDistance || - (currentClosest.second == currentNodeDistance && node->node_type() == Cone_tree_node::VERTEX_SOURCE)) + currentClosest.second > currentNodeDistance || + (currentClosest.second == currentNodeDistance && + node->node_type() == Cone_tree_node::VERTEX_SOURCE)) { if (m_debugOutput) { - std::cout << "\t Current node is now the closest at target vertex " + std::cout << "\t Current node is now the closest at target vertex V" << get(m_vertexIndexMap, node->target_vertex()) << std::endl; } @@ -1338,7 +1409,7 @@ { if (m_debugOutput) { - std::cout << "\t Vertex " << targetVertexIndex << " is a pseudo-source" << std::endl; + std::cout << "\t Vertex V" << targetVertexIndex << " is a pseudo-source" << std::endl; } if (currentClosest.first != nullptr) @@ -1399,11 +1470,13 @@ { if (propagateLeft) { + CGAL_assertion(!node->is_null_face()); push_left_child(node); } - if (propagateRight && (!node->is_source_node() || node->node_type() == Cone_tree_node::EDGE_SOURCE)) + if (propagateRight) { + CGAL_assertion(!node->is_source_node()); push_right_child(node); } @@ -1421,9 +1494,17 @@ void push_left_child(Cone_tree_node* parent) { + if (m_debugOutput) + { + std::cout << "Tentative push of left child edge " + << " (V" << get(m_vertexIndexMap, source(parent->left_child_edge(), m_graph)) + << " V" << get(m_vertexIndexMap, target(parent->left_child_edge(), m_graph)) << ")" << std::endl; + std::cout << "Boundary? " << is_border(parent->left_child_edge(), m_graph) << std::endl; + } + typename Traits::Compute_squared_distance_2 csd2(m_traits.compute_squared_distance_2_object()); - if (face(parent->left_child_edge(), m_graph) != Graph_traits::null_face()) + if (!is_border(parent->left_child_edge(), m_graph)) { Segment_2 leftWindow; @@ -1467,12 +1548,15 @@ { if (m_debugOutput) { - std::cout << "Tentative push of right child..." << std::endl; + std::cout << "Tentative push of right child edge" + << " (V" << get(m_vertexIndexMap, source(parent->right_child_edge(), m_graph)) + << " V" << get(m_vertexIndexMap, target(parent->right_child_edge(), m_graph)) << ")" << std::endl; + std::cout << "Boundary? " << is_border(parent->right_child_edge(), m_graph) << std::endl; } typename Traits::Compute_squared_distance_2 csd2(m_traits.compute_squared_distance_2_object()); - if (face(parent->right_child_edge(), m_graph) != Graph_traits::null_face()) + if (!is_border(parent->right_child_edge(), m_graph)) { Segment_2 rightWindow; bool result = clip_to_bounds(parent->right_child_base_segment(), parent->left_boundary(), @@ -1605,14 +1689,11 @@ void set_vertex_types() { - vertex_iterator current, end; - - for (boost::tie(current, end) = vertices(m_graph); current != end; ++current) + for(vertex_descriptor v : vertices(m_graph)) { - if (halfedge(*current, m_graph)==Graph_traits::null_halfedge()) - continue; - std::size_t vertexIndex = get(m_vertexIndexMap, *current); - m_vertexIsPseudoSource[vertexIndex] = (is_saddle_vertex(*current) || is_boundary_vertex(*current)); + std::size_t vertexIndex = get(m_vertexIndexMap, v); + m_vertexIsPseudoSource[vertexIndex] = !internal::is_isolated(v, m_graph) && + (is_saddle_vertex(v) || is_boundary_vertex(v)); } } @@ -1623,21 +1704,7 @@ bool is_boundary_vertex(const vertex_descriptor v) const { - halfedge_descriptor h = halfedge(v, m_graph); - halfedge_descriptor first = h; - - do - { - if (face(h, m_graph) == Graph_traits::null_face() || face(opposite(h, m_graph), m_graph) == Graph_traits::null_face()) - { - return true; - } - - h = opposite(next(h, m_graph), m_graph); - } - while(h != first); - - return false; + return bool(is_border(v, m_graph)); } void delete_all_nodes() @@ -1650,11 +1717,8 @@ void reset_algorithm(const bool clearFaceLocations = true) { - Cone_tree_node* null_value=nullptr; - m_closestToVertices.resize(num_vertices(m_graph)); - std::fill(m_closestToVertices.begin(), m_closestToVertices.end(), Node_distance_pair(null_value, FT(0))); - m_vertexOccupiers.resize(num_halfedges(m_graph)); - std::fill(m_vertexOccupiers.begin(), m_vertexOccupiers.end(), Node_distance_pair(null_value, FT(0))); + m_closestToVertices.assign(num_vertices(m_graph), Node_distance_pair(nullptr, FT(-1))); + m_vertexOccupiers.assign(num_halfedges(m_graph), Node_distance_pair(nullptr, FT(-1))); while (!m_expansionPriqueue.empty()) { @@ -1671,7 +1735,7 @@ delete_all_nodes(); m_rootNodes.clear(); - m_vertexIsPseudoSource.resize(num_vertices(m_graph)); + m_vertexIsPseudoSource.assign(num_vertices(m_graph), false); #if !defined(NDEBUG) m_currentNodeCount = 0; @@ -1684,7 +1748,7 @@ } template - void visit_shortest_path(Cone_tree_node* startNode, + void visit_shortest_path(const Cone_tree_node* startNode, const Point_2& startLocation, Visitor& visitor) { @@ -1695,7 +1759,7 @@ typename Traits::Construct_target_2 construct_target_2(m_traits.construct_target_2_object()); typename Traits::Intersect_2 intersect_2(m_traits.intersect_2_object()); - Cone_tree_node* current = startNode; + const Cone_tree_node* current = startNode; Point_2 currentLocation(startLocation); while (!current->is_root_node()) @@ -1703,21 +1767,22 @@ switch (current->node_type()) { case Cone_tree_node::INTERVAL: - case Cone_tree_node::EDGE_SOURCE: { - Segment_2 entrySegment = current->entry_segment(); + const Segment_2& entrySegment = current->entry_segment(); const Point_2& currentSourceImage = current->source_image(); Ray_2 rayToLocation(construct_ray_2(currentSourceImage, currentLocation)); - const auto cgalIntersection = intersect_2(construct_line_2(entrySegment), construct_line_2(rayToLocation)); + const auto cgalIntersection = intersect_2(construct_line_2(entrySegment), + construct_line_2(rayToLocation)); CGAL_assertion(bool(cgalIntersection)); const Point_2* result = boost::get(&*cgalIntersection); + if (!result) + result = ¤tSourceImage; - if (!result) result = ¤tSourceImage; - - FT t0 = parametric_distance_along_segment_2(construct_source_2(entrySegment), construct_target_2(entrySegment), *result); + FT t0 = parametric_distance_along_segment_2(construct_source_2(entrySegment), + construct_target_2(entrySegment), *result); if (m_debugOutput) { @@ -1740,8 +1805,8 @@ std::cout << "Current Right Window: " << current->window_right() << " , " << m_traits.compute_parametric_distance_along_segment_2_object()(entrySegment.start(), entrySegment.end(), current->window_right()) << std::endl; std::cout << "Current Segment Intersection: " << *result << std::endl; - std::cout << "Edge: (" << get(m_vertexIndexMap, source(current->entry_edge(), m_graph)) - << "," << get(m_vertexIndexMap, target(current->entry_edge(), m_graph)) << ") : " << t0 << std::endl; + std::cout << "Edge: (V" << get(m_vertexIndexMap, source(current->entry_edge(), m_graph)) + << ", V" << get(m_vertexIndexMap, target(current->entry_edge(), m_graph)) << ") : " << t0 << std::endl; } visitor(current->entry_edge(), t0); @@ -1753,13 +1818,16 @@ } break; case Cone_tree_node::VERTEX_SOURCE: + // This might be a pseudo source visitor(target(current->entry_edge(), m_graph)); currentLocation = current->parent()->target_point(); current = current->parent(); break; + case Cone_tree_node::EDGE_SOURCE: case Cone_tree_node::FACE_SOURCE: // This is guaranteed to be the final node in any sequence - visitor(m_rootNodes[current->tree_id()].second->first, m_rootNodes[current->tree_id()].second->second); + visitor(m_rootNodes[current->tree_id()].second->first, + m_rootNodes[current->tree_id()].second->second); current = current->parent(); break; default: @@ -1866,7 +1934,7 @@ std::size_t associatedEdge; CGAL::Surface_mesh_shortest_paths_3::Barycentric_coordinates_type type; - boost::tie(type, associatedEdge) = classify_barycentric_coordinates(location); + std::tie(type, associatedEdge) = classify_barycentric_coordinates(location); switch (type) { @@ -1979,42 +2047,35 @@ reset_algorithm(false); set_vertex_types(); - m_vertexOccupiers.resize(num_halfedges(m_graph)); - m_closestToVertices.resize(num_vertices(m_graph)); + m_vertexOccupiers.assign(num_halfedges(m_graph), Node_distance_pair(nullptr, FT(-1))); + m_closestToVertices.assign(num_vertices(m_graph), Node_distance_pair(nullptr, FT(-1))); if (m_debugOutput) { - vertex_iterator current, end; - std::size_t numVertices = 0; - - for (boost::tie(current,end) = vertices(m_graph); current != end; ++current) + for (vertex_descriptor v : vertices(m_graph)) { std::cout << "Vertex#" << numVertices - << ": p = " << get(m_vertexPointMap,*current) - << " , Saddle Vertex: " << (is_saddle_vertex(*current) ? "yes" : "no") - << " , Boundary Vertex: " << (is_boundary_vertex(*current) ? "yes" : "no") << std::endl; + << ": p = " << get(m_vertexPointMap, v) + << " , Saddle Vertex: " << (is_saddle_vertex(v) ? "yes" : "no") + << " , Boundary Vertex: " << (is_boundary_vertex(v) ? "yes" : "no") << std::endl; ++numVertices; } } - face_iterator facesCurrent; - face_iterator facesEnd; - if (m_debugOutput) { std::size_t numFaces = 0; - - for (boost::tie(facesCurrent, facesEnd) = faces(m_graph); facesCurrent != facesEnd; ++facesCurrent) + for (face_descriptor f : faces(m_graph)) { std::cout << "Face#" << numFaces << ": Vertices = ("; ++numFaces; - halfedge_descriptor faceEdgesStart = halfedge(*facesCurrent, m_graph); + halfedge_descriptor faceEdgesStart = halfedge(f, m_graph); halfedge_descriptor faceEdgesCurrent = faceEdgesStart; do { - std::cout << get(m_vertexIndexMap, source(faceEdgesCurrent, m_graph)); + std::cout << "V" << get(m_vertexIndexMap, source(faceEdgesCurrent, m_graph)); faceEdgesCurrent = next(faceEdgesCurrent, m_graph); @@ -2031,15 +2092,15 @@ std::cout << std::endl; } - } for (typename Source_point_list::iterator it = m_faceLocations.begin(); it != m_faceLocations.end(); ++it) { if (m_debugOutput) { - std::cout << "Root: " << get(m_faceIndexMap, it->first) - << " , " << it->second[0] << " " << it->second[1] << " " << it->second[2] << " " << std::endl; + std::cout << "Root: F" << get(m_faceIndexMap, it->first) + << " , bar " << it->second[0] << " " << it->second[1] << " " << it->second[2] << " " + << ", pos " << point(it->first, it->second) << std::endl; } expand_root(it->first, it->second, Source_point_iterator(it)); @@ -2054,7 +2115,7 @@ } - while (m_expansionPriqueue.size() > 0) + while (!m_expansionPriqueue.empty()) { if (m_debugOutput) { @@ -2077,10 +2138,10 @@ if (!event->m_cancelled) { std::cout << " ------ Parent (" << event->m_parent << ") INFO: "; - std::cout << "EH = (" << get(m_vertexIndexMap, source(event->m_parent->entry_edge(), m_graph)) << " " - << get(m_vertexIndexMap, target(event->m_parent->entry_edge(), m_graph)) << ") "; - std::cout << "S = (" << event->m_parent->source_image() << ") "; - std::cout << "T = " << get(m_vertexIndexMap, target(next(event->m_parent->entry_edge(), m_graph), m_graph)); + std::cout << "EH = (V" << get(m_vertexIndexMap, source(event->m_parent->entry_edge(), m_graph)) << " V" + << get(m_vertexIndexMap, target(event->m_parent->entry_edge(), m_graph)) << ") "; + std::cout << "Src = (" << event->m_parent->source_image() << ") "; + std::cout << "Tar = V" << get(m_vertexIndexMap, target(next(event->m_parent->entry_edge(), m_graph), m_graph)); } std::cout << std::endl; @@ -2114,8 +2175,8 @@ if (m_debugOutput) { std::cout << "Left Expansion: Parent = " << parent - << " Edge = (" << get(m_vertexIndexMap, source(event->m_parent->left_child_edge(), m_graph)) - << "," << get(m_vertexIndexMap, target(event->m_parent->left_child_edge(), m_graph)) + << " Edge = (V" << get(m_vertexIndexMap, source(event->m_parent->left_child_edge(), m_graph)) + << ", V" << get(m_vertexIndexMap, target(event->m_parent->left_child_edge(), m_graph)) << ") , Distance = " << event->m_distanceEstimate << " , Level = " << event->m_parent->level() + 1 << std::endl; } @@ -2126,8 +2187,8 @@ if (m_debugOutput) { std::cout << "Right Expansion: Parent = " << parent - << " , Edge = (" << get(m_vertexIndexMap, source(event->m_parent->right_child_edge(), m_graph)) - << "," << get(m_vertexIndexMap, target(event->m_parent->right_child_edge(), m_graph)) + << " , Edge = (V" << get(m_vertexIndexMap, source(event->m_parent->right_child_edge(), m_graph)) + << ", V" << get(m_vertexIndexMap, target(event->m_parent->right_child_edge(), m_graph)) << ") , Distance = " << event->m_distanceEstimate << " , Level = " << event->m_parent->level() + 1 << std::endl; } @@ -2165,7 +2226,7 @@ for (std::size_t i = 0; i < m_closestToVertices.size(); ++i) { std::cout << "\tVertex = " << i << std::endl; - std::cout << "\tDistance = " << m_closestToVertices[i].second << std::endl; + std::cout << "\tDistance = " << m_closestToVertices[i].second << " to " << m_closestToVertices[i].first << std::endl; } std::cout << std::endl; @@ -2280,6 +2341,13 @@ Source_point_iterator add_source_point(vertex_descriptor v) { Face_location location = face_location(v); + + if (m_debugOutput) + { + std::cout << "Face location from V" << get(m_vertexIndexMap, v) << " is F" << get(m_faceIndexMap, location.first) << " " + << location.second[0] << " " << location.second[1] << " " << location.second[2] << std::endl; + } + return add_source_point(location); } @@ -2306,6 +2374,11 @@ */ Source_point_iterator add_source_point(const Face_location& location) { + if (m_debugOutput) + { + std::cout << "Add source point at position " << point(location.first, location.second) << std::endl; + } + Source_point_underlying_iterator added = m_faceLocations.insert(m_faceLocations.end(), location); if (m_firstNewSourcePoint == m_faceLocations.end()) @@ -2471,9 +2544,8 @@ { build_sequence_tree(); - Node_distance_pair result = m_closestToVertices[get(m_vertexIndexMap, v)]; - - Cone_tree_node* current = result.first; + const Node_distance_pair& result = m_closestToVertices[get(m_vertexIndexMap, v)]; + const Cone_tree_node* current = result.first; if (current) { @@ -2500,9 +2572,8 @@ { build_sequence_tree(); - std::pair result = nearest_to_location(f, location); - - Cone_tree_node* current = result.first.first; + const std::pair& result = nearest_to_location(f, location); + const Cone_tree_node* current = result.first.first; if (current) { @@ -2542,8 +2613,8 @@ { build_sequence_tree(); - Node_distance_pair result = m_closestToVertices[get(m_vertexIndexMap, v)]; - Cone_tree_node* current = result.first; + const Node_distance_pair& result = m_closestToVertices[get(m_vertexIndexMap, v)]; + const Cone_tree_node* current = result.first; if (current) { @@ -2737,13 +2808,23 @@ /*! \brief returns the 3-dimensional coordinates of the given vertex. - \param vertex A vertex of the input face graph + \param v A vertex of the input face graph */ - Point_3 point(const vertex_descriptor vertex) const + decltype(auto) point(const vertex_descriptor v) const + { + return get(m_vertexPointMap, v); + } + + /// \cond + + static decltype(auto) point(const vertex_descriptor v, + const Triangle_mesh& tm) { - return get(m_vertexPointMap, vertex); + return get(CGAL::vertex_point, tm, v); } + /// \endcond + /// @} /// \name Surface Face Location Constructions @@ -2770,7 +2851,7 @@ { typename Traits::Construct_barycentric_coordinates construct_barycentric_coordinates(traits.construct_barycentric_coordinates_object()); halfedge_descriptor hinit=halfedge(vertex, tm); - while (face(hinit, tm) == Graph_traits::null_face()) + while (is_border(hinit, tm)) hinit = opposite(next(hinit, tm), tm); halfedge_descriptor he = next(hinit, tm); @@ -3043,7 +3124,7 @@ Vertex_point_map vertexPointMap) { face_iterator facesStart, facesEnd; - boost::tie(facesStart, facesEnd) = faces(tm); + std::tie(facesStart, facesEnd) = faces(tm); outTree.rebuild(facesStart, facesEnd, tm, vertexPointMap); outTree.build(); } @@ -3054,6 +3135,4 @@ } // namespace CGAL -#include - #endif // CGAL_SURFACE_MESH_SHORTEST_PATH_SURFACE_MESH_SHORTEST_PATH_H diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_shortest_path/Surface_mesh_shortest_path_traits.h cgal-5.5/include/CGAL/Surface_mesh_shortest_path/Surface_mesh_shortest_path_traits.h --- cgal-5.4.1/include/CGAL/Surface_mesh_shortest_path/Surface_mesh_shortest_path_traits.h 2022-06-03 19:05:55.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_shortest_path/Surface_mesh_shortest_path_traits.h 2022-07-13 19:06:52.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_shortest_path/include/CGAL/Surface_mesh_shortest_path/Surface_mesh_shortest_path_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_shortest_path/include/CGAL/Surface_mesh_shortest_path/Surface_mesh_shortest_path_traits.h $ // $Id: Surface_mesh_shortest_path_traits.h 26355e2 2020-06-25T12:31:21+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_shortest_path.h cgal-5.5/include/CGAL/Surface_mesh_shortest_path.h --- cgal-5.4.1/include/CGAL/Surface_mesh_shortest_path.h 2022-06-03 19:05:55.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_shortest_path.h 2022-07-13 19:06:52.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_shortest_path/include/CGAL/Surface_mesh_shortest_path.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_shortest_path/include/CGAL/Surface_mesh_shortest_path.h $ // $Id: Surface_mesh_shortest_path.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_simplification/edge_collapse.h cgal-5.5/include/CGAL/Surface_mesh_simplification/edge_collapse.h --- cgal-5.4.1/include/CGAL/Surface_mesh_simplification/edge_collapse.h 2022-06-03 19:05:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_simplification/edge_collapse.h 2022-07-13 19:06:54.000000000 +0000 @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification/edge_collapse.h $ -// $Id: edge_collapse.h ac1200f 2020-11-10T10:52:53+00:00 Andreas Fabri +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification/edge_collapse.h $ +// $Id: edge_collapse.h c169c41 2022-01-12T13:33:49+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Fernando Cacciola @@ -14,7 +14,7 @@ #include #include -#include +#include #include #include @@ -25,7 +25,8 @@ namespace Surface_mesh_simplification { namespace internal { -template Algorithm; + GetCost, GetPlacement, ShouldIgnore, Visitor,use_relaxed_order> Algorithm; Algorithm algorithm(tmesh, traits, should_stop, vim, vpm, him, ecm, get_cost, get_placement, should_ignore, visitor); @@ -81,17 +82,20 @@ } // namespace internal -template +template int edge_collapse(TM& tmesh, const ShouldStop& should_stop, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { using parameters::choose_parameter; using parameters::get_parameter; typedef typename GetGeomTraits::type Geom_traits; + typedef typename internal_np::Lookup_named_param_def < + internal_np::use_relaxed_order_t, NamedParameters, Tag_false> ::type Use_relaxed_order; - return internal::edge_collapse(tmesh, should_stop, + return internal::edge_collapse + (tmesh, should_stop, choose_parameter(get_parameter(np, internal_np::geom_traits)), CGAL::get_initialized_vertex_index_map(tmesh, np), choose_parameter(get_parameter(np, internal_np::vertex_point), @@ -105,12 +109,6 @@ } -template -int edge_collapse(TM& tmesh, const ShouldStop& should_stop) -{ - return edge_collapse(tmesh, should_stop, CGAL::parameters::all_default()); -} - } // namespace Surface_mesh_simplification } // namespace CGAL diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_simplification/Edge_collapse_visitor_base.h cgal-5.5/include/CGAL/Surface_mesh_simplification/Edge_collapse_visitor_base.h --- cgal-5.4.1/include/CGAL/Surface_mesh_simplification/Edge_collapse_visitor_base.h 2022-06-03 19:05:56.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_simplification/Edge_collapse_visitor_base.h 2022-07-13 19:06:53.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification/Edge_collapse_visitor_base.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification/Edge_collapse_visitor_base.h $ // $Id: Edge_collapse_visitor_base.h ff09c5d 2019-10-25T16:35:53+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_simplification/internal/Common.h cgal-5.5/include/CGAL/Surface_mesh_simplification/internal/Common.h --- cgal-5.4.1/include/CGAL/Surface_mesh_simplification/internal/Common.h 2022-06-03 19:05:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_simplification/internal/Common.h 2022-07-13 19:06:54.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification/internal/Common.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification/internal/Common.h $ // $Id: Common.h 8166579 2021-10-11T19:58:07+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_simplification/internal/Edge_collapse.h cgal-5.5/include/CGAL/Surface_mesh_simplification/internal/Edge_collapse.h --- cgal-5.4.1/include/CGAL/Surface_mesh_simplification/internal/Edge_collapse.h 2022-06-03 19:05:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_simplification/internal/Edge_collapse.h 2022-07-13 19:06:54.000000000 +0000 @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification/internal/Edge_collapse.h $ -// $Id: Edge_collapse.h 9543deb 2021-10-29T17:40:15+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification/internal/Edge_collapse.h $ +// $Id: Edge_collapse.h 45193b1 2022-03-10T10:50:06+05:30 G Yuvan Shankar // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Fernando Cacciola @@ -12,13 +12,14 @@ #define CGAL_SURFACE_MESH_SIMPLIFICATION_DETAIL_EDGE_COLLAPSE_H #include - +#include #include #include #include #include #include +#include #include @@ -89,7 +90,8 @@ class GetCost_, class GetPlacement_, class ShouldIgnore_, - class VisitorT_> + class VisitorT_, + bool use_relaxed_heap> class EdgeCollapse { typedef EdgeCollapse Self; @@ -173,28 +175,25 @@ const Self* m_algorithm; }; - typedef Modifiable_priority_queue PQ; - typedef typename PQ::handle PQ_handle; + static const Heap_type hp = use_relaxed_heap ? CGAL_BOOST_PENDING_RELAXED_HEAP + : CGAL_BOOST_PENDING_MUTABLE_QUEUE; + typedef Modifiable_priority_queue PQ; // An Edge_data is associated with EVERY _ edge in the mesh (collapsable or not). - // It relates the edge with the PQ-handle needed to update the priority queue + // It contains the edge status wrt the priority queue // It also relates the edge with a policy-based cache - class Edge_data + struct Edge_data { - public : - Edge_data() : m_PQ_h() {} - const Cost_type& cost() const { return m_cost; } Cost_type& cost() { return m_cost; } - PQ_handle queue_handle() const { return m_PQ_h;} - bool is_in_PQ() const { return m_PQ_h != PQ::null_handle(); } - void set_PQ_handle(PQ_handle h) { m_PQ_h = h; } - void reset_queue_handle() { m_PQ_h = PQ::null_handle(); } + bool is_in_PQ() const { return m_is_in_PQ; } + void set_is_in_PQ() { m_is_in_PQ=true; } + void reset_in_queue_status() { m_is_in_PQ = false; } private: Cost_type m_cost; - PQ_handle m_PQ_h; + bool m_is_in_PQ = false; }; typedef Edge_data* Edge_data_ptr; @@ -266,12 +265,12 @@ typename boost::property_traits::reference get_point(const vertex_descriptor v) const { return get(m_vpm, v); } - boost::tuple get_vertices(const halfedge_descriptor h) const + std::tuple get_vertices(const halfedge_descriptor h) const { vertex_descriptor p, q; p = source(h, m_tm); q = target(h, m_tm); - return boost::make_tuple(p, q); + return std::make_tuple(p, q); } std::string vertex_to_string(const vertex_descriptor v) const @@ -283,7 +282,7 @@ std::string edge_to_string(const halfedge_descriptor h) const { vertex_descriptor p, q; - boost::tie(p,q) = get_vertices(h); + std::tie(p,q) = get_vertices(h); return boost::str(boost::format("{E%1% %2%->%3%}%4%") % get_edge_id(h) % vertex_to_string(p) % vertex_to_string(q) % (is_border(h, m_tm) ? " (BORDER)" : (is_border(opposite(h, m_tm), m_tm) ? " (~BORDER)": ""))); } @@ -301,7 +300,8 @@ CGAL_expensive_assertion(!data.is_in_PQ()); CGAL_expensive_assertion(!mPQ->contains(h)); - data.set_PQ_handle(mPQ->push(h)); + mPQ->push(h); + data.set_is_in_PQ(); CGAL_expensive_assertion(data.is_in_PQ()); CGAL_expensive_assertion(mPQ->contains(h)); @@ -312,8 +312,9 @@ CGAL_assertion(is_primary_edge(h)); CGAL_expensive_assertion(data.is_in_PQ()); CGAL_expensive_assertion(mPQ->contains(h)); + CGAL_USE(data); - data.set_PQ_handle(mPQ->update(h, data.queue_handle())); + mPQ->update(h); CGAL_assertion(data.is_in_PQ()); CGAL_expensive_assertion(mPQ->contains(h)); @@ -325,7 +326,8 @@ CGAL_expensive_assertion(data.is_in_PQ()); CGAL_expensive_assertion(mPQ->contains(h)); - data.set_PQ_handle(mPQ->erase(h, data.queue_handle())); + mPQ->erase(h); + data.reset_in_queue_status(); CGAL_expensive_assertion(!data.is_in_PQ()); CGAL_expensive_assertion(!mPQ->contains(h)); @@ -339,7 +341,7 @@ CGAL_assertion(is_primary_edge(*opt_h)); CGAL_expensive_assertion(get_data(*opt_h).is_in_PQ()); - get_data(*opt_h).reset_queue_handle(); + get_data(*opt_h).reset_in_queue_status(); CGAL_expensive_assertion(!get_data(*opt_h).is_in_PQ()); CGAL_expensive_assertion(!mPQ->contains(*opt_h)); @@ -401,8 +403,8 @@ CGAL_SMS_DEBUG_CODE(unsigned m_step;) }; - template - EdgeCollapse:: +template +EdgeCollapse:: EdgeCollapse(Triangle_mesh& tmesh, const Geom_traits& traits, const Should_stop& should_stop, @@ -443,9 +445,9 @@ #endif } -template +template int -EdgeCollapse:: +EdgeCollapse:: run() { CGAL_expensive_precondition(is_valid_polygon_mesh(m_tm) && CGAL::is_triangle_mesh(m_tm)); @@ -470,9 +472,9 @@ return r; } -template +template void -EdgeCollapse:: +EdgeCollapse:: collect() { CGAL_SMS_TRACE(0, "collecting edges..."); @@ -579,9 +581,9 @@ CGAL_SMS_TRACE(0, "Initial edge count: " << m_initial_edge_count); } -template +template void -EdgeCollapse:: +EdgeCollapse:: loop() { CGAL_SMS_TRACE(0, "Collapsing edges..."); @@ -668,9 +670,9 @@ } } -template +template bool -EdgeCollapse:: +EdgeCollapse:: is_border_or_constrained(const vertex_descriptor v) const { for(halfedge_descriptor h : halfedges_around_target(v, m_tm)) @@ -682,9 +684,9 @@ return false; } -template +template bool -EdgeCollapse:: +EdgeCollapse:: is_constrained(const vertex_descriptor v) const { for(halfedge_descriptor h : halfedges_around_target(v, m_tm)) @@ -703,9 +705,9 @@ // The link condition is as follows: for every vertex 'k' adjacent to both 'p and 'q', // "p,k,q" is a facet of the mesh. // - template +template bool - EdgeCollapse:: + EdgeCollapse:: is_collapse_topologically_valid(const Profile& profile) { bool res = true; @@ -871,17 +873,17 @@ return res; } -template +template bool -EdgeCollapse:: +EdgeCollapse:: is_tetrahedron(const halfedge_descriptor h) { return CGAL::is_tetrahedron(h, m_tm); } -template +template bool -EdgeCollapse:: +EdgeCollapse:: is_open_triangle(const halfedge_descriptor h1) { bool res = false; @@ -910,9 +912,9 @@ // respective areas is no greater than a max value and the internal // dihedral angle formed by their supporting planes is no greater than // a given threshold -template +template bool -EdgeCollapse:: +EdgeCollapse:: are_shared_triangles_valid(const Point& p0, const Point& p1, const Point& p2, const Point& p3) const { bool res = false; @@ -962,9 +964,9 @@ } // Returns the directed halfedge connecting v0 to v1, if exists. -template -typename EdgeCollapse::halfedge_descriptor -EdgeCollapse:: +template +typename EdgeCollapse::halfedge_descriptor +EdgeCollapse:: find_connection(const vertex_descriptor v0, const vertex_descriptor v1) const { @@ -979,9 +981,9 @@ // Given the edge 'e' around the link for the collapsinge edge "v0-v1", finds the vertex that makes a triangle adjacent to 'e' but exterior to the link (i.e not containing v0 nor v1) // If 'e' is a null handle OR 'e' is a border edge, there is no such triangle and a null handle is returned. -template -typename EdgeCollapse::vertex_descriptor -EdgeCollapse:: +template +typename EdgeCollapse::vertex_descriptor +EdgeCollapse:: find_exterior_link_triangle_3rd_vertex(const halfedge_descriptor e, const vertex_descriptor v0, const vertex_descriptor v1) const @@ -1015,9 +1017,9 @@ // A collapse is geometrically valid if, in the resulting local mesh no two adjacent triangles form an internal dihedral angle // greater than a fixed threshold (i.e. triangles do not "fold" into each other) // -template +template bool -EdgeCollapse:: +EdgeCollapse:: is_collapse_geometrically_valid(const Profile& profile, Placement_type k0) { bool res = false; @@ -1114,9 +1116,9 @@ return res; } -template +template void -EdgeCollapse:: +EdgeCollapse:: collapse(const Profile& profile, Placement_type placement) { @@ -1217,9 +1219,9 @@ CGAL_SMS_DEBUG_CODE(++m_step;) } -template +template void -EdgeCollapse:: +EdgeCollapse:: update_neighbors(const vertex_descriptor v_kept) { CGAL_SMS_TRACE(3,"Updating cost of neighboring edges..."); diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Bounded_distance_placement.h cgal-5.5/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Bounded_distance_placement.h --- cgal-5.4.1/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Bounded_distance_placement.h 2022-06-03 19:05:56.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Bounded_distance_placement.h 2022-07-13 19:06:53.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Bounded_distance_placement.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Bounded_distance_placement.h $ // $Id: Bounded_distance_placement.h d6d8fbe 2020-04-27T16:06:43+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Bounded_normal_change_filter.h cgal-5.5/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Bounded_normal_change_filter.h --- cgal-5.4.1/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Bounded_normal_change_filter.h 2022-06-03 19:05:56.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Bounded_normal_change_filter.h 2022-07-13 19:06:53.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Bounded_normal_change_filter.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Bounded_normal_change_filter.h $ // $Id: Bounded_normal_change_filter.h e1c1e1f 2020-11-04T11:28:02+00:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Bounded_normal_change_placement.h cgal-5.5/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Bounded_normal_change_placement.h --- cgal-5.4.1/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Bounded_normal_change_placement.h 2022-06-03 19:05:56.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Bounded_normal_change_placement.h 2022-07-13 19:06:53.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Bounded_normal_change_placement.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Bounded_normal_change_placement.h $ // $Id: Bounded_normal_change_placement.h ff09c5d 2019-10-25T16:35:53+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Constrained_placement.h cgal-5.5/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Constrained_placement.h --- cgal-5.4.1/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Constrained_placement.h 2022-06-03 19:05:56.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Constrained_placement.h 2022-07-13 19:06:53.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Constrained_placement.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Constrained_placement.h $ // $Id: Constrained_placement.h ff09c5d 2019-10-25T16:35:53+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Count_ratio_stop_predicate.h cgal-5.5/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Count_ratio_stop_predicate.h --- cgal-5.4.1/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Count_ratio_stop_predicate.h 2022-06-03 19:05:56.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Count_ratio_stop_predicate.h 2022-07-13 19:06:53.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Count_ratio_stop_predicate.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Count_ratio_stop_predicate.h $ // $Id: Count_ratio_stop_predicate.h ff09c5d 2019-10-25T16:35:53+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Count_stop_predicate.h cgal-5.5/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Count_stop_predicate.h --- cgal-5.4.1/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Count_stop_predicate.h 2022-06-03 19:05:56.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Count_stop_predicate.h 2022-07-13 19:06:53.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Count_stop_predicate.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Count_stop_predicate.h $ // $Id: Count_stop_predicate.h ff09c5d 2019-10-25T16:35:53+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Edge_length_cost.h cgal-5.5/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Edge_length_cost.h --- cgal-5.4.1/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Edge_length_cost.h 2022-06-03 19:05:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Edge_length_cost.h 2022-07-13 19:06:53.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Edge_length_cost.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Edge_length_cost.h $ // $Id: Edge_length_cost.h ff09c5d 2019-10-25T16:35:53+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Edge_length_stop_predicate.h cgal-5.5/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Edge_length_stop_predicate.h --- cgal-5.4.1/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Edge_length_stop_predicate.h 2022-06-03 19:05:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Edge_length_stop_predicate.h 2022-07-13 19:06:53.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Edge_length_stop_predicate.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Edge_length_stop_predicate.h $ // $Id: Edge_length_stop_predicate.h ff09c5d 2019-10-25T16:35:53+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Edge_profile.h cgal-5.5/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Edge_profile.h --- cgal-5.4.1/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Edge_profile.h 2022-06-03 19:05:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Edge_profile.h 2022-07-13 19:06:53.000000000 +0000 @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Edge_profile.h $ -// $Id: Edge_profile.h 9a7c98f 2019-11-29T11:42:18+01:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Edge_profile.h $ +// $Id: Edge_profile.h a1b00f9 2021-12-22T12:02:53+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Fernando Cacciola @@ -76,9 +76,9 @@ Edge_profile(const halfedge_descriptor h_v0v1, TM& tmesh, const Geom_traits& traits, - const VertexIndexMap& vim, - const VertexPointMap& vpm, - const HalfedgeIndexMap& him, + const VertexIndexMap vim, + const VertexPointMap vpm, + const HalfedgeIndexMap him, bool has_border); public : @@ -120,7 +120,7 @@ const halfedge_descriptor_vector& border_edges() const { return m_border_edges; } const TM& surface() const { return m_tm; } const TM& surface_mesh() const { return m_tm; } - const VertexPointMap& vertex_point_map() const { return m_vpm; } + VertexPointMap vertex_point_map() const { return m_vpm; } const Geom_traits& geom_traits() const { return m_traits; } public : @@ -163,7 +163,7 @@ Triangle_vector m_triangles; const TM& m_tm; - const VertexPointMap& m_vpm; + const VertexPointMap m_vpm; const Geom_traits& m_traits; }; @@ -173,9 +173,9 @@ Edge_profile(const halfedge_descriptor h_v0v1, TM& tmesh, const Geom_traits& traits, - const VertexIndexMap& /*vim*/, - const VertexPointMap& vpm, - const HalfedgeIndexMap& /*him*/, + const VertexIndexMap /*vim*/, + const VertexPointMap vpm, + const HalfedgeIndexMap /*him*/, bool has_border) : m_h_v0v1(h_v0v1), diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/FastEnvelope_filter.h cgal-5.5/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/FastEnvelope_filter.h --- cgal-5.4.1/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/FastEnvelope_filter.h 2022-06-03 19:05:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/FastEnvelope_filter.h 2022-07-13 19:06:54.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/FastEnvelope_filter.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/FastEnvelope_filter.h $ // $Id: FastEnvelope_filter.h deeff23 2020-09-14T17:03:40+01:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/GarlandHeckbert_plane_policies.h cgal-5.5/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/GarlandHeckbert_plane_policies.h --- cgal-5.4.1/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/GarlandHeckbert_plane_policies.h 1970-01-01 00:00:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/GarlandHeckbert_plane_policies.h 2022-07-13 19:06:54.000000000 +0000 @@ -0,0 +1,118 @@ +// Copyright (c) 2019 GeometryFactory (France). All rights reserved. +// +// This file is part of CGAL (www.cgal.org). +// +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/GarlandHeckbert_plane_policies.h $ +// $Id: GarlandHeckbert_plane_policies.h 776cfd6 2022-03-31T23:24:20+02:00 Mael Rouxel-Labbé +// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial +// +// Author(s) : Baskin Burak Senbaslar, +// Mael Rouxel-Labbé, +// Julian Komaromy + +#ifndef CGAL_SURFACE_MESH_SIMPLIFICATION_POLICIES_GARLANDHECKBERT_PLANE_POLICIES_H +#define CGAL_SURFACE_MESH_SIMPLIFICATION_POLICIES_GARLANDHECKBERT_PLANE_POLICIES_H + +#include + +#include +#include +#include + +namespace CGAL { +namespace Surface_mesh_simplification { +namespace internal { + +template +class Plane_quadric_calculator +{ + typedef typename GarlandHeckbert_matrix_types::Mat_4 Mat_4; + typedef typename GarlandHeckbert_matrix_types::Col_4 Col_4; + +public: + Plane_quadric_calculator() { } + + template + Mat_4 construct_quadric_from_edge(typename boost::graph_traits::halfedge_descriptor he, + const TriangleMesh& tmesh, + const VertexPointMap point_map, + const GeomTraits& gt) const + { + return construct_classic_plane_quadric_from_edge(he, tmesh, point_map, gt); + } + + template + Mat_4 construct_quadric_from_face(typename boost::graph_traits::face_descriptor f, + const TriangleMesh& tmesh, + const VertexPointMap point_map, + const GeomTraits& gt) const + { + return construct_classic_plane_quadric_from_face(f, tmesh, point_map, gt); + } + + // @fixme unused? + Mat_4 construct_quadric_from_normal(const typename GeomTraits::Vector_3& normal, + const typename GeomTraits::Point_3& point, + const GeomTraits& gt) const + { + typedef typename GeomTraits::FT FT; + + auto dot_product = gt.compute_scalar_product_3_object(); + auto construct_vector = gt.construct_vector_3_object(); + + // negative dot product between the normal and the position vector + const FT d = - dot_product(normal, construct_vector(ORIGIN, point)); + + // row vector given by d appended to the normal + const Col_4 row { normal.x(), normal.y(), normal.z(), d }; + + // outer product + return row.transpose() * row; + } + + Col_4 construct_optimal_point(const Mat_4& quadric, + const Col_4& p0, + const Col_4& p1) const + { + return construct_optimal_point_singular(quadric, p0, p1); + } +}; + +} // namespace internal + +template +class GarlandHeckbert_plane_policies + : public internal::GarlandHeckbert_cost_and_placement< + internal::Plane_quadric_calculator, TriangleMesh, GeomTraits> +{ +public: + typedef internal::Plane_quadric_calculator Quadric_calculator; + +private: + typedef internal::GarlandHeckbert_cost_and_placement< + Quadric_calculator, TriangleMesh, GeomTraits> Base; + typedef GarlandHeckbert_plane_policies Self; + +public: + typedef Self Get_cost; + typedef Self Get_placement; + + typedef typename GeomTraits::FT FT; + +public: + GarlandHeckbert_plane_policies(TriangleMesh& tmesh, + const FT dm = FT(100)) + : Base(tmesh, Quadric_calculator(), dm) + { } + +public: + const Get_cost& get_cost() const { return *this; } + const Get_placement& get_placement() const { return *this; } + + using Base::operator(); +}; + +} // namespace Surface_mesh_simplification +} // namespace CGAL + +#endif // CGAL_SURFACE_MESH_SIMPLIFICATION_POLICIES_GARLANDHECKBERT_PLANE_POLICIES_H diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/GarlandHeckbert_policies.h cgal-5.5/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/GarlandHeckbert_policies.h --- cgal-5.4.1/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/GarlandHeckbert_policies.h 2022-06-03 19:05:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/GarlandHeckbert_policies.h 2022-07-13 19:06:54.000000000 +0000 @@ -2,188 +2,31 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/GarlandHeckbert_policies.h $ -// $Id: GarlandHeckbert_policies.h 9a7c98f 2019-11-29T11:42:18+01:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/GarlandHeckbert_policies.h $ +// $Id: GarlandHeckbert_policies.h 522a88b 2022-04-08T11:10:20+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Baskin Burak Senbaslar, -// Mael Rouxel-Labbé -// +// Mael Rouxel-Labbé, +// Julian Komaromy + #ifndef CGAL_SURFACE_MESH_SIMPLIFICATION_POLICIES_GARLANDHECKBERT_POLICIES_H #define CGAL_SURFACE_MESH_SIMPLIFICATION_POLICIES_GARLANDHECKBERT_POLICIES_H #include -#include -#include - -#include - -#include - -#include +#include -#include +#include +#include +#include +#include namespace CGAL { namespace Surface_mesh_simplification { -namespace internal { -template -class GarlandHeckbert_cost -{ -public: - typedef VCM_ Vertex_cost_map; - typedef FT_ FT; - - // Tells the main function of `Edge_collapse` that these policies must call "initialize" - // and "update" functions. A bit awkward, but still better than abusing visitors. - typedef CGAL::Tag_true Update_tag; - - GarlandHeckbert_cost() { } - GarlandHeckbert_cost(Vertex_cost_map vcm, - const FT discontinuity_multiplier = FT(100)) // abusing FT(double) - : - m_cost_matrices(vcm), - m_discontinuity_multiplier(discontinuity_multiplier) - { } - - template - void initialize(const TM_& tmesh, const VPM_& vpm, const GT_& gt) const - { - typedef internal::GarlandHeckbert_core GH_core; - - GH_core::fundamental_error_quadrics(m_cost_matrices, tmesh, vpm, gt, m_discontinuity_multiplier); - } - - template - boost::optional - operator()(const Profile& profile, - const boost::optional& placement) const - { - typedef typename Profile::Triangle_mesh Triangle_mesh; - typedef typename Profile::Vertex_point_map Vertex_point_map; - typedef typename Profile::Geom_traits Geom_traits; - typedef internal::GarlandHeckbert_core GH_core; - - typedef typename GH_core::Matrix4x4 Matrix4x4; - typedef typename GH_core::Col4 Col4; - typedef boost::optional Optional_FT; - - if(!placement) - return boost::optional(); - - CGAL_precondition(get(m_cost_matrices, profile.v0()) != Matrix4x4()); - CGAL_precondition(get(m_cost_matrices, profile.v1()) != Matrix4x4()); - - const Matrix4x4 combined_matrix = GH_core::combine_matrices(get(m_cost_matrices, profile.v0()), - get(m_cost_matrices, profile.v1())); - const Col4 pt = GH_core::point_to_homogenous_column(*placement); - const Optional_FT cost = (pt.transpose() * combined_matrix * pt)(0, 0); - - return cost; - } - - template - void update_after_collapse(const Profile& profile, - const vertex_descriptor new_v) const - { - typedef typename Profile::Triangle_mesh Triangle_mesh; - typedef typename Profile::Vertex_point_map Vertex_point_map; - typedef typename Profile::Geom_traits Geom_traits; - typedef internal::GarlandHeckbert_core GH_core; - - put(m_cost_matrices, new_v, - GH_core::combine_matrices(get(m_cost_matrices, profile.v0()), - get(m_cost_matrices, profile.v1()))); - } - -private: - Vertex_cost_map m_cost_matrices; - FT m_discontinuity_multiplier; -}; - -template -class GarlandHeckbert_placement -{ -public: - typedef VCM_ Vertex_cost_map; - - GarlandHeckbert_placement() { } - GarlandHeckbert_placement(Vertex_cost_map cost_matrices) - : m_cost_matrices(cost_matrices) - { } - - template - boost::optional - operator()(const Profile& profile) const - { - typedef typename Profile::Triangle_mesh Triangle_mesh; - typedef typename Profile::Vertex_point_map Vertex_point_map; - typedef typename Profile::Geom_traits Geom_traits; - typedef internal::GarlandHeckbert_core GH_core; - - typedef typename GH_core::Matrix4x4 Matrix4x4; - typedef typename GH_core::Col4 Col4; - - CGAL_precondition(get(m_cost_matrices, profile.v0()) != Matrix4x4()); - CGAL_precondition(get(m_cost_matrices, profile.v1()) != Matrix4x4()); - - // the combined matrix has already been computed in the evaluation of the cost... - const Matrix4x4 combinedMatrix = GH_core::combine_matrices( - get(m_cost_matrices, profile.v0()), - get(m_cost_matrices, profile.v1())); - - const Col4 p0 = GH_core::point_to_homogenous_column(profile.p0()); - const Col4 p1 = GH_core::point_to_homogenous_column(profile.p1()); - const Col4 opt = GH_core::optimal_point(combinedMatrix, p0, p1); - - boost::optional pt = typename Profile::Point(opt(0) / opt(3), - opt(1) / opt(3), - opt(2) / opt(3)); - - return pt; - } - -private: - Vertex_cost_map m_cost_matrices; -}; - -} // namespace internal - -template -class GarlandHeckbert_policies -{ -public: - typedef TriangleMesh Triangle_mesh; - typedef GeomTraits Geom_traits; - typedef typename Geom_traits::FT FT; - - typedef typename internal::GarlandHeckbert_matrix_type::type Cost_matrix; - typedef CGAL::dynamic_vertex_property_t Cost_property; - typedef typename boost::property_map::type Vertex_cost_map; - - typedef internal::GarlandHeckbert_cost Get_cost; - typedef internal::GarlandHeckbert_placement Get_placement; - - GarlandHeckbert_policies(TriangleMesh& tmesh, - const FT discontinuity_multiplier = FT(100)) - { - vcm_ = get(Cost_property(), tmesh); - get_cost_ = Get_cost(vcm_, discontinuity_multiplier); - get_placement_ = Get_placement(vcm_); - } - - Get_cost& get_cost() { return get_cost_; } - const Get_cost& get_cost() const { return get_cost_; } - Get_placement& get_placement() { return get_placement_; } - const Get_placement& get_placement() const { return get_placement_; } - -private: - Vertex_cost_map vcm_; - Get_cost get_cost_; - Get_placement get_placement_; -}; +template +using GarlandHeckbert_policies CGAL_DEPRECATED = GarlandHeckbert_plane_policies; } // namespace Surface_mesh_simplification } // namespace CGAL diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/GarlandHeckbert_probabilistic_plane_policies.h cgal-5.5/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/GarlandHeckbert_probabilistic_plane_policies.h --- cgal-5.4.1/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/GarlandHeckbert_probabilistic_plane_policies.h 1970-01-01 00:00:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/GarlandHeckbert_probabilistic_plane_policies.h 2022-07-13 19:06:54.000000000 +0000 @@ -0,0 +1,176 @@ +// Copyright (c) 2019 GeometryFactory (France). All rights reserved. +// +// This file is part of CGAL (www.cgal.org). +// +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/GarlandHeckbert_probabilistic_plane_policies.h $ +// $Id: GarlandHeckbert_probabilistic_plane_policies.h 776cfd6 2022-03-31T23:24:20+02:00 Mael Rouxel-Labbé +// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial +// +// Author(s) : Baskin Burak Senbaslar, +// Mael Rouxel-Labbé, +// Julian Komaromy + +#ifndef CGAL_SURFACE_MESH_SIMPLIFICATION_POLICIES_GARLANDHECKBERT_PROBABILISTIC_PLANE_POLICIES_H +#define CGAL_SURFACE_MESH_SIMPLIFICATION_POLICIES_GARLANDHECKBERT_PROBABILISTIC_PLANE_POLICIES_H + +#include + +#include +#include +#include + +#include +#include + +#include +#include + +namespace CGAL { +namespace Surface_mesh_simplification { +namespace internal { + +template +class Probabilistic_plane_quadric_calculator +{ + typedef typename boost::graph_traits::halfedge_descriptor halfedge_descriptor; + typedef typename boost::graph_traits::face_descriptor face_descriptor; + + typedef typename GeomTraits::FT FT; + + typedef Constant_property_map > Default_FVM; + typedef typename Default::Get::type Face_variance_map; + + typedef typename GarlandHeckbert_matrix_types::Mat_4 Mat_4; + typedef typename GarlandHeckbert_matrix_types::Col_4 Col_4; + +private: + // @fixme check the magic values + + // magic number determined by some testing + static constexpr FT default_variance_unit = 0.05; + + // magic number - for most use cases, there is no input variance, so it makes sense to + // set the positional variance to a smaller value than the normal variance + static constexpr FT position_variance_factor = 0.1; + + Face_variance_map m_face_variance_map; + +public: + Probabilistic_plane_quadric_calculator() = delete; + + template + Probabilistic_plane_quadric_calculator(const FVM fvm) + : m_face_variance_map(fvm) + { } + + Probabilistic_plane_quadric_calculator(TriangleMesh& tmesh, + typename boost::enable_if >::type* = nullptr) + { + // try to initialize the face variance map using the estimated variance + // parameters are constants defined for this class + m_face_variance_map = Default_FVM { internal::estimate_variances(tmesh, GeomTraits(), + default_variance_unit, + position_variance_factor) }; + } + +public: + template + Mat_4 construct_quadric_from_edge(const halfedge_descriptor he, + const TriangleMesh& tmesh, + const VertexPointMap vpm, + const GeomTraits& gt) const + { + typedef typename GeomTraits::FT FT; + typedef typename GeomTraits::Point_3 Point_3; + typedef typename GeomTraits::Vector_3 Vector_3; + + const Vector_3 normal = construct_edge_normal(he, tmesh, vpm, gt); + const Point_3 p = get(vpm, source(he, tmesh)); + + FT n_variance, p_variance; + std::tie(n_variance, p_variance) = get(m_face_variance_map, face(he, tmesh)); + + return construct_prob_plane_quadric_from_normal(normal, p, gt, n_variance, p_variance); + } + + template + Mat_4 construct_quadric_from_face(const face_descriptor f, + const TriangleMesh& tmesh, + const VertexPointMap vpm, + const GeomTraits& gt) const + { + typedef typename GeomTraits::FT FT; + typedef typename GeomTraits::Point_3 Point_3; + typedef typename GeomTraits::Vector_3 Vector_3; + + const Vector_3 normal = construct_unit_normal_from_face(f, tmesh, vpm, gt); + const Point_3 p = get(vpm, source(halfedge(f, tmesh), tmesh)); + + FT n_variance, p_variance; + std::tie(n_variance, p_variance) = get(m_face_variance_map, f); + + return construct_prob_plane_quadric_from_normal(normal, p, gt, n_variance, p_variance); + } + + Col_4 construct_optimal_point(const Mat_4& quadric, + const Col_4& /*p0*/, + const Col_4& /*p1*/) const + { + // @fixme check this + return construct_optimal_point_invertible(quadric); + } +}; + +} // namespace internal + +// Implements probabilistic plane quadrics, +// optionally takes a face variance map giving a per-face variance +template +class GarlandHeckbert_probabilistic_plane_policies + : public internal::GarlandHeckbert_cost_and_placement< + internal::Probabilistic_plane_quadric_calculator, + TriangleMesh, GeomTraits> +{ +public: + typedef internal::Probabilistic_plane_quadric_calculator< + TriangleMesh, GeomTraits, FaceVarianceMap> Quadric_calculator; + +private: + typedef internal::GarlandHeckbert_cost_and_placement< + Quadric_calculator, TriangleMesh, GeomTraits> Base; + typedef GarlandHeckbert_probabilistic_plane_policies< + TriangleMesh, GeomTraits> Self; + +public: + typedef Self Get_cost; + typedef Self Get_placement; + + typedef typename GeomTraits::FT FT; + +public: + // Only available if the quadric calculator is using the default (constant) variance property map + GarlandHeckbert_probabilistic_plane_policies(TriangleMesh& tmesh, + const FT dm = FT(100)) + : Base(tmesh, Quadric_calculator(tmesh), dm) + { } + + template + GarlandHeckbert_probabilistic_plane_policies(TriangleMesh& tmesh, + const FT dm, + const FVM fvm) + : Base(tmesh, Quadric_calculator(fvm), dm) + { } + +public: + const Get_cost& get_cost() const { return *this; } + const Get_placement& get_placement() const { return *this; } + + using Base::operator(); +}; + +} // namespace Surface_mesh_simplification +} // namespace CGAL + +#endif // CGAL_SURFACE_MESH_SIMPLIFICATION_POLICIES_GARLANDHECKBERT_PROBABILISTIC_PLANE_POLICIES_H diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/GarlandHeckbert_probabilistic_triangle_policies.h cgal-5.5/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/GarlandHeckbert_probabilistic_triangle_policies.h --- cgal-5.4.1/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/GarlandHeckbert_probabilistic_triangle_policies.h 1970-01-01 00:00:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/GarlandHeckbert_probabilistic_triangle_policies.h 2022-07-13 19:06:54.000000000 +0000 @@ -0,0 +1,166 @@ +// Copyright (c) 2019 GeometryFactory (France). All rights reserved. +// +// This file is part of CGAL (www.cgal.org). +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/GarlandHeckbert_probabilistic_triangle_policies.h $ +// $Id: GarlandHeckbert_probabilistic_triangle_policies.h 776cfd6 2022-03-31T23:24:20+02:00 Mael Rouxel-Labbé +// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial +// +// Author(s) : Baskin Burak Senbaslar, +// Mael Rouxel-Labbé, +// Julian Komaromy + +#ifndef CGAL_SURFACE_MESH_SIMPLIFICATION_POLICIES_GARLANDHECKBERT_PROBABILISTIC_TRIANGLE_POLICIES_H +#define CGAL_SURFACE_MESH_SIMPLIFICATION_POLICIES_GARLANDHECKBERT_PROBABILISTIC_TRIANGLE_POLICIES_H + +#include + +#include +#include +#include + +#include +#include + +#include + +namespace CGAL { +namespace Surface_mesh_simplification { +namespace internal { + +template +class Probabilistic_triangle_quadric_calculator +{ + typedef typename GeomTraits::FT FT; + typedef typename GeomTraits::Point_3 Point_3; + typedef typename GeomTraits::Vector_3 Vector_3; + + typedef typename boost::graph_traits::face_descriptor face_descriptor; + + typedef Constant_property_map Default_FVM; + typedef typename Default::Get::type Face_variance_map; + + typedef typename GarlandHeckbert_matrix_types::Mat_4 Mat_4; + typedef typename GarlandHeckbert_matrix_types::Col_4 Col_4; + +private: + // same meaning as for probabilistic plane quadrics + static constexpr FT default_variance_unit = 0.05; + + // this is only used when we fall back to probabilistic planes for the discontinuous edges, + // the actual triangle quadric calculation only uses the normal variance + static constexpr FT position_variance_factor = 1; + + Face_variance_map m_face_variance_map; + +public: + Probabilistic_triangle_quadric_calculator() = delete; + + template + Probabilistic_triangle_quadric_calculator(const FVM fvm) + : m_face_variance_map(fvm) + { } + + Probabilistic_triangle_quadric_calculator(TriangleMesh& tmesh, + typename boost::enable_if >::type* = nullptr) + { + // try to initialize the face variance map using the estimated variance + // parameters are constants defined for this class + FT variance, discard_position; + std::tie(variance, discard_position) = + estimate_variances(tmesh, GeomTraits(), default_variance_unit, position_variance_factor); + + // see probabilistic plane quadrics + m_face_variance_map = Default_FVM { variance }; + } + +public: + // we don't have a sensible way to construct a triangle quadric + // from an edge, so we fall back to probabilistic plane quadrics here + template + Mat_4 construct_quadric_from_edge(typename boost::graph_traits::halfedge_descriptor he, + const TriangleMesh& tmesh, + const VertexPointMap point_map, + const GeomTraits& gt) const + { + // same as in probabilistic plane policy + const Vector_3 normal = construct_edge_normal(he, tmesh, point_map, gt); + const Point_3 p = get(point_map, source(he, tmesh)); + + const FT variance = get(m_face_variance_map, face(he, tmesh)); + + // @fixme plane? + return construct_prob_plane_quadric_from_normal(normal, p, gt, variance, + position_variance_factor * variance); + } + + template + Mat_4 construct_quadric_from_face(typename boost::graph_traits::face_descriptor f, + const TriangleMesh& tmesh, + const VertexPointMap point_map, + const GeomTraits& gt) const + { + const FT variance = get(m_face_variance_map, f); + + return construct_prob_triangle_quadric_from_face(f, variance, tmesh, point_map, gt); + } + + Col_4 construct_optimal_point(const Mat_4& quadric, const Col_4& /*p0*/, const Col_4& /*p1*/) const + { + // @fixme check this + return construct_optimal_point_invertible(quadric); + } +}; + +} // namespace internal + +// implements probabilistic triangle faces and optionally takes a face variance map +// analogously to probabilistic plane quadrics +template +class GarlandHeckbert_probabilistic_triangle_policies + : public internal::GarlandHeckbert_cost_and_placement< + internal::Probabilistic_triangle_quadric_calculator, + TriangleMesh, GeomTraits> +{ +public: + typedef internal::Probabilistic_triangle_quadric_calculator< + TriangleMesh, GeomTraits, FaceVarianceMap> Quadric_calculator; + +private: + typedef internal::GarlandHeckbert_cost_and_placement< + Quadric_calculator, TriangleMesh, GeomTraits> Base; + typedef GarlandHeckbert_probabilistic_triangle_policies< + TriangleMesh, GeomTraits> Self; + +public: + typedef Self Get_cost; + typedef Self Get_placement; + + typedef typename GeomTraits::FT FT; + +public: + // Only available if the quadric calculator is using the default (constant) variance property map + GarlandHeckbert_probabilistic_triangle_policies(TriangleMesh& tmesh, + const FT dm = FT(100)) + : Base(tmesh, Quadric_calculator(tmesh), dm) + { } + + template + GarlandHeckbert_probabilistic_triangle_policies(TriangleMesh& tmesh, + const FT dm, + const FVM fvm) + : Base(tmesh, Quadric_calculator(fvm), dm) + { } + +public: + const Get_cost& get_cost() const { return *this; } + const Get_placement& get_placement() const { return *this; } + + using Base::operator(); +}; + +} // namespace Surface_mesh_simplification +} // namespace CGAL + +#endif // CGAL_SURFACE_MESH_SIMPLIFICATION_POLICIES_GARLANDHECKBERT_PROBABILISTIC_TRIANGLE_POLICIES_H diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/GarlandHeckbert_triangle_policies.h cgal-5.5/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/GarlandHeckbert_triangle_policies.h --- cgal-5.4.1/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/GarlandHeckbert_triangle_policies.h 1970-01-01 00:00:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/GarlandHeckbert_triangle_policies.h 2022-07-13 19:06:54.000000000 +0000 @@ -0,0 +1,103 @@ +// Copyright (c) 2019 GeometryFactory (France). All rights reserved. +// +// This file is part of CGAL (www.cgal.org). +// +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/GarlandHeckbert_triangle_policies.h $ +// $Id: GarlandHeckbert_triangle_policies.h 776cfd6 2022-03-31T23:24:20+02:00 Mael Rouxel-Labbé +// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial +// +// Author(s) : Baskin Burak Senbaslar, +// Mael Rouxel-Labbé, +// Julian Komaromy + +#ifndef CGAL_SURFACE_MESH_SIMPLIFICATION_POLICIES_GARLANDHECKBERT_TRIANGLE_POLICIES_H +#define CGAL_SURFACE_MESH_SIMPLIFICATION_POLICIES_GARLANDHECKBERT_TRIANGLE_POLICIES_H + +#include + +#include +#include +#include + +namespace CGAL { +namespace Surface_mesh_simplification { +namespace internal { + +template +class Triangle_quadric_calculator +{ + typedef typename GarlandHeckbert_matrix_types::Mat_4 Mat_4; + typedef typename GarlandHeckbert_matrix_types::Col_4 Col_4; + +public: + Triangle_quadric_calculator() { } + + template + Mat_4 construct_quadric_from_edge(typename boost::graph_traits::halfedge_descriptor he, + const TriangleMesh& tmesh, + const VertexPointMap point_map, + const GeomTraits& gt) const + { + // @fixme "plane"? why not incident triangles? + return construct_classic_plane_quadric_from_edge(he, tmesh, point_map, gt); + } + + template + Mat_4 construct_quadric_from_face(typename boost::graph_traits::face_descriptor f, + const TriangleMesh& tmesh, + const VertexPointMap point_map, + const GeomTraits& gt) const + { + return construct_classic_triangle_quadric_from_face(f, tmesh, point_map, gt); + } + + Col_4 construct_optimal_point(const Mat_4& quadric, + const Col_4& p0, + const Col_4& p1) const + { + return construct_optimal_point_singular(quadric, p0, p1); + } +}; + +} // namespace internal + +// use triangle quadrics for the faces, classical plane quadrics for the edges +// and optimize with a check for singular matrices +// +// implements classic triangle policies +template +class GarlandHeckbert_triangle_policies + : public internal::GarlandHeckbert_cost_and_placement< + internal::Triangle_quadric_calculator, TriangleMesh, GeomTraits> +{ +public: + typedef internal::Triangle_quadric_calculator Quadric_calculator; + +private: + typedef internal::GarlandHeckbert_cost_and_placement< + Quadric_calculator, TriangleMesh, GeomTraits> Base; + typedef GarlandHeckbert_triangle_policies Self; + +public: + typedef Self Get_cost; + typedef Self Get_placement; + + typedef typename GeomTraits::FT FT; + +public: + GarlandHeckbert_triangle_policies(TriangleMesh& tmesh, + const FT dm = FT(100)) + : Base(tmesh, Quadric_calculator(), dm) + { } + +public: + const Get_cost& get_cost() const { return *this; } + const Get_placement& get_placement() const { return *this; } + + using Base::operator(); +}; + +} // namespace Surface_mesh_simplification +} // namespace CGAL + +#endif // CGAL_SURFACE_MESH_SIMPLIFICATION_POLICIES_GARLANDHECKBERT_TRIANGLE_POLICIES_H diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/internal/GarlandHeckbert_core.h cgal-5.5/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/internal/GarlandHeckbert_core.h --- cgal-5.4.1/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/internal/GarlandHeckbert_core.h 2022-06-03 19:05:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/internal/GarlandHeckbert_core.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,311 +0,0 @@ -// Copyright (c) 2019 GeometryFactory (France). All rights reserved. -// -// This file is part of CGAL (www.cgal.org). -// -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/internal/GarlandHeckbert_core.h $ -// $Id: GarlandHeckbert_core.h 72b8f75 2021-10-21T11:14:43+02:00 Sébastien Loriot -// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial -// -// Author(s) : Baskin Burak Senbaslar, -// Mael Rouxel-Labbé -// - -#ifndef CGAL_SURFACE_MESH_SIMPLIFICATION_POLICIES_EDGE_COLLAPSE_INTERNAL_GARLAND_HECKBERT_CORE_H -#define CGAL_SURFACE_MESH_SIMPLIFICATION_POLICIES_EDGE_COLLAPSE_INTERNAL_GARLAND_HECKBERT_CORE_H - -#include - -#include -#include - -#include - -namespace CGAL { -namespace Surface_mesh_simplification { -namespace internal { - -template -struct GarlandHeckbert_matrix_type -{ - typedef typename GT_::FT FT; - typedef Eigen::Matrix type; -}; - -template -struct GarlandHeckbert_core -{ - typedef TM_ Triangle_mesh; - typedef boost::graph_traits GraphTraits; - typedef typename GraphTraits::vertex_descriptor vertex_descriptor; - typedef typename GraphTraits::halfedge_descriptor halfedge_descriptor; - typedef typename GraphTraits::face_descriptor face_descriptor; - - typedef VPM_ Vertex_point_pmap; - typedef typename boost::property_traits::value_type Point; - typedef typename boost::property_traits::reference Point_reference; - - typedef GT_ Geom_traits; - typedef typename Geom_traits::FT FT; - typedef typename Geom_traits::Line_3 Line_3; - typedef typename Geom_traits::Plane_3 Plane_3; - typedef typename Geom_traits::Vector_3 Vector_3; - - typedef typename GarlandHeckbert_matrix_type::type Matrix4x4; - typedef Eigen::Matrix Row4; - typedef Eigen::Matrix Col4; - - static Col4 point_to_homogenous_column(const Point& pt) - { - return Col4(pt.x(), pt.y(), pt.z(), FT(1)); - } - - /** - * Combines two Q matrices. - * It is simply the addition of two matrices - */ - inline static Matrix4x4 combine_matrices(const Matrix4x4& aFirst, const Matrix4x4& aSecond) - { - return aFirst + aSecond; - } - - /** - * Returns `true` if the target of h is a discontinuity vertex in tmesh - * - * Currently, only checks if vertex belongs to a border. - */ - static bool is_discontinuity_vertex(const halfedge_descriptor h, const Triangle_mesh& tmesh) - { - if(is_border(target(h, tmesh), tmesh)) - return true; - - return false; - } - - static bool is_discontinuity_edge(const halfedge_descriptor h, const Triangle_mesh& tmesh) - { - return is_border_edge(h, tmesh); - } - - /* - * fundamental error quadric for the target vertex of h in tmesh - * Unused, but leaving it as it might still be useful somehow - */ - static Matrix4x4 fundamental_error_quadric(const halfedge_descriptor h, - const Triangle_mesh& tmesh, - const Vertex_point_pmap& vpm, - const Geom_traits& gt, - const FT discontinuity_multiplier = FT(100)) - { - Matrix4x4 quadric = Matrix4x4::Zero(); - - const vertex_descriptor target_vd = target(h, tmesh); - const Vector_3 target_vertex_vector = gt.construct_vector_3_object()(CGAL::ORIGIN, get(vpm, target_vd)); - - // const bool discontinuity_vertex = is_discontinuity_vertex(h, tmesh); - - for(const halfedge_descriptor hd : halfedges_around_target(target_vd, tmesh)) - { - const face_descriptor fd = face(hd, tmesh); - if(fd == GraphTraits::null_face()) - continue; - - Plane_3 plane(get(vpm, source(hd, tmesh)), - get(vpm, target(hd, tmesh)), - get(vpm, target(next(hd, tmesh), tmesh))); - - Row4 plane_mtr; - const FT norm = CGAL::sqrt(CGAL::square(plane.a()) + - CGAL::square(plane.b()) + - CGAL::square(plane.c())); - const FT den = FT(1) / norm; - - plane_mtr << den * plane.a(), - den * plane.b(), - den * plane.c(), - den * plane.d(); - quadric += plane_mtr.transpose() * plane_mtr; - - if(is_discontinuity_edge(hd, tmesh)) - { - const vertex_descriptor source_vd = source(hd, tmesh); - - const Vector_3 p1p2 = gt.construct_vector_3_object()(get(vpm, source_vd), get(vpm, target_vd)); - const Vector_3 normal = gt.construct_cross_product_vector_3_object()( - p1p2, gt.construct_orthogonal_vector_3_object()(plane)); - - const FT d = - normal * target_vertex_vector; - const FT norm = CGAL::sqrt(gt.compute_squared_length_3_object()(normal)); - const FT den = FT(1) / norm; - - plane_mtr << den * normal.x(), - den * normal.y(), - den * normal.z(), - den * d; - quadric += discontinuity_multiplier * plane_mtr.transpose() * plane_mtr; - } - - const halfedge_descriptor shd = next(hd, tmesh); - if(is_discontinuity_edge(shd, tmesh)) - { - const Vector_3 p1p2 = gt.construct_vector_3_object()(get(vpm, target_vd), get(vpm, target(shd, tmesh))); - const Vector_3 normal = gt.construct_cross_product_vector_3_object()( - p1p2, gt.construct_orthogonal_vector_3_object()(plane)); - - const FT d = - normal * target_vertex_vector; - const FT norm = CGAL::sqrt(gt.compute_squared_length_3_object()(normal)); - const FT den = FT(1) / norm; - - plane_mtr << den * normal.x(), - den * normal.y(), - den * normal.z(), - den * d; - quadric += discontinuity_multiplier * plane_mtr.transpose() * plane_mtr; - } - } - - return quadric; - } - - template - static void fundamental_error_quadrics(VCM& vcm, // quadrics container - const Triangle_mesh& tmesh, - const Vertex_point_pmap& vpm, - const Geom_traits& gt, - const FT discontinuity_multiplier = FT(100)) - { - Matrix4x4 nq = Matrix4x4::Zero(); - for(vertex_descriptor v : vertices(tmesh)) - put(vcm, v, nq); - - for(face_descriptor f : faces(tmesh)) - { - const halfedge_descriptor h = halfedge(f, tmesh); - - const Point_reference p = get(vpm, source(h, tmesh)); - const Point_reference q = get(vpm, target(h, tmesh)); - const Point_reference r = get(vpm, target(next(h, tmesh), tmesh)); - - const FT rpx = p.x() - r.x(); - const FT rpy = p.y() - r.y(); - const FT rpz = p.z() - r.z(); - const FT rqx = q.x() - r.x(); - const FT rqy = q.y() - r.y(); - const FT rqz = q.z() - r.z(); - - // Cross product rp * rq - const FT a = rpy*rqz - rqy*rpz; - const FT b = rpz*rqx - rqz*rpx; - const FT c = rpx*rqy - rqx*rpy; - const FT d = - a*r.x() - b*r.y() - c*r.z(); - - const Vector_3 plane_n = gt.construct_vector_3_object()(a, b, c); - const FT norm = CGAL::sqrt(CGAL::square(a) + CGAL::square(b) + CGAL::square(c)); - if (norm==0) - continue; - const FT den = FT(1) / norm; - - Row4 plane_mtr_r; - plane_mtr_r << den * a, den * b, den * c, den * d; - const Matrix4x4 plane_mtr = plane_mtr_r.transpose() * plane_mtr_r; - - for(halfedge_descriptor shd : halfedges_around_face(h, tmesh)) - { - const vertex_descriptor vs = source(shd, tmesh); - const vertex_descriptor vt = target(shd, tmesh); - - put(vcm, vt, combine_matrices(get(vcm, vt), plane_mtr)); - - if(!is_discontinuity_edge(shd, tmesh)) - continue; - - const Vector_3 pspt = gt.construct_vector_3_object()(get(vpm, vs), get(vpm, vt)); - const Vector_3 disc_plane_n = gt.construct_cross_product_vector_3_object()(pspt, plane_n); - - // the plane contains the edge, so taking 'vs' or 'vt' will yield the same 'd' - const Vector_3 vvt = gt.construct_vector_3_object()(CGAL::ORIGIN, get(vpm, vt)); - const FT disc_d = - gt.compute_scalar_product_3_object()(disc_plane_n, vvt); - - const FT disc_norm = CGAL::sqrt(gt.compute_squared_length_3_object()(disc_plane_n)); - if (disc_norm==0) - continue; - const FT disc_den = FT(1) / disc_norm; - - Row4 disc_mtr_r; - disc_mtr_r << disc_den * disc_plane_n.x(), - disc_den * disc_plane_n.y(), - disc_den * disc_plane_n.z(), - disc_den * disc_d; - - const Matrix4x4 disc_mtr = discontinuity_multiplier * disc_mtr_r.transpose() * disc_mtr_r; - - put(vcm, vs, combine_matrices(get(vcm, vs), disc_mtr)); - put(vcm, vt, combine_matrices(get(vcm, vt), disc_mtr)); - } - } - } - - - /* - * Return the point p that minimizes p' Q p where p is free. - * p0, and p1 are the points that are being collapsed. - * aQuadric is the matrix that is the combination of matrices - * of p0 and p1. - */ - static Col4 optimal_point(const Matrix4x4& aQuadric, - const Col4& p0, - const Col4& p1) - { - Matrix4x4 X; - X << aQuadric.block(0, 0, 3, 4), 0, 0, 0, 1; - - Col4 opt_pt; - - if(X.determinant() == 0) - { - // not invertible - const Col4 p1mp0 = std::move(p1 - p0); - const FT a = (p1mp0.transpose() * aQuadric * p1mp0)(0, 0); - const FT b = 2 * (p0.transpose() * aQuadric * p1mp0)(0, 0); - - if(a == 0) - { - if(b < 0) - opt_pt = p1; - else if(b == 0) - opt_pt = 0.5 * (p0 + p1); - else - opt_pt = p0; - } - else - { - FT ext_t = -b/(2*a); - if(ext_t < 0 || ext_t > 1 || a < 0) - { - // one of endpoints - FT p0_cost = (p0.transpose() * aQuadric * p0)(0, 0); - FT p1_cost = (p1.transpose() * aQuadric * p1)(0, 0); - if(p0_cost > p1_cost) - opt_pt = p1; - else - opt_pt = p0; - } - else - { - // extremum of the parabola - opt_pt = p0 + ext_t * (p1 - p0); - } - } - } - else // invertible - { - opt_pt = X.inverse().col(3); // == X.inverse() * (0 0 0 1) - } - return opt_pt; - } -}; - -} // namespace internal -} // namespace Surface_mesh_simplification -} // namespace CGAL - -#endif // CGAL_SURFACE_MESH_SIMPLIFICATION_POLICIES_EDGE_COLLAPSE_INTERNAL_GARLAND_HECKBERT_CORE_H diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/internal/GarlandHeckbert_functions.h cgal-5.5/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/internal/GarlandHeckbert_functions.h --- cgal-5.4.1/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/internal/GarlandHeckbert_functions.h 1970-01-01 00:00:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/internal/GarlandHeckbert_functions.h 2022-07-13 19:06:54.000000000 +0000 @@ -0,0 +1,563 @@ +// Copyright (c) 2019 GeometryFactory (France). All rights reserved. +// +// This file is part of CGAL (www.cgal.org). +// +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/internal/GarlandHeckbert_functions.h $ +// $Id: GarlandHeckbert_functions.h e2aa7d2 2022-03-22T14:35:42+01:00 Mael Rouxel-Labbé +// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial +// +// Author(s) : Mael Rouxel-Labbé, +// Julian Komaromy + +#ifndef CGAL_SURFACE_MESH_SIMPLIFICATION_POLICIES_GARLANDHECKBERT_FUNCTIONS_H +#define CGAL_SURFACE_MESH_SIMPLIFICATION_POLICIES_GARLANDHECKBERT_FUNCTIONS_H + +#include + +#include +#include + +#include + +#include + +namespace CGAL { +namespace Surface_mesh_simplification { +namespace internal { + +// taken from https://stackoverflow.com/questions/1148309/inverting-a-4x4-matrix/ +template +bool invert_matrix_4(const Matrix& m, Matrix& im) +{ + typedef typename Matrix::value_type FT; + + FT det; + + FT A2323 = m(2, 2) * m(3, 3) - m(2, 3) * m(3, 2); + FT A1323 = m(2, 1) * m(3, 3) - m(2, 3) * m(3, 1); + FT A1223 = m(2, 1) * m(3, 2) - m(2, 2) * m(3, 1); + FT A0323 = m(2, 0) * m(3, 3) - m(2, 3) * m(3, 0); + FT A0223 = m(2, 0) * m(3, 2) - m(2, 2) * m(3, 0); + FT A0123 = m(2, 0) * m(3, 1) - m(2, 1) * m(3, 0); + // FT A2313 = m(1, 2) * m(3, 3) - m(1, 3) * m(3, 2); + // FT A1313 = m(1, 1) * m(3, 3) - m(1, 3) * m(3, 1); + // FT A1213 = m(1, 1) * m(3, 2) - m(1, 2) * m(3, 1); + FT A2312 = m(1, 2) * m(2, 3) - m(1, 3) * m(2, 2); + FT A1312 = m(1, 1) * m(2, 3) - m(1, 3) * m(2, 1); + FT A1212 = m(1, 1) * m(2, 2) - m(1, 2) * m(2, 1); + // FT A0313 = m(1, 0) * m(3, 3) - m(1, 3) * m(3, 0); + // FT A0213 = m(1, 0) * m(3, 2) - m(1, 2) * m(3, 0); + FT A0312 = m(1, 0) * m(2, 3) - m(1, 3) * m(2, 0); + FT A0212 = m(1, 0) * m(2, 2) - m(1, 2) * m(2, 0); + // FT A0113 = m(1, 0) * m(3, 1) - m(1, 1) * m(3, 0); + FT A0112 = m(1, 0) * m(2, 1) - m(1, 1) * m(2, 0); + + det = m(0, 0) * ( m(1, 1) * A2323 - m(1, 2) * A1323 + m(1, 3) * A1223 ) + - m(0, 1) * ( m(1, 0) * A2323 - m(1, 2) * A0323 + m(1, 3) * A0223 ) + + m(0, 2) * ( m(1, 0) * A1323 - m(1, 1) * A0323 + m(1, 3) * A0123 ) + - m(0, 3) * ( m(1, 0) * A1223 - m(1, 1) * A0223 + m(1, 2) * A0123 ); + + if(is_zero(det)) + return false; + + det = 1 / det; + + // we never actually use values other than those in the third column, + // so might as well not calculate them + // im(0, 0) = det * ( m(1, 1) * A2323 - m(1, 2) * A1323 + m(1, 3) * A1223 ); + // im(0, 1) = det * - ( m(0, 1) * A2323 - m(0, 2) * A1323 + m(0, 3) * A1223 ); + // im(0, 2) = det * ( m(0, 1) * A2313 - m(0, 2) * A1313 + m(0, 3) * A1213 ); + im(0, 3) = det * - ( m(0, 1) * A2312 - m(0, 2) * A1312 + m(0, 3) * A1212 ); + // im(1, 0) = det * - ( m(1, 0) * A2323 - m(1, 2) * A0323 + m(1, 3) * A0223 ); + // im(1, 1) = det * ( m(0, 0) * A2323 - m(0, 2) * A0323 + m(0, 3) * A0223 ); + // im(1, 2) = det * - ( m(0, 0) * A2313 - m(0, 2) * A0313 + m(0, 3) * A0213 ); + im(1, 3) = det * ( m(0, 0) * A2312 - m(0, 2) * A0312 + m(0, 3) * A0212 ); + // im(2, 0) = det * ( m(1, 0) * A1323 - m(1, 1) * A0323 + m(1, 3) * A0123 ); + // im(2, 1) = det * - ( m(0, 0) * A1323 - m(0, 1) * A0323 + m(0, 3) * A0123 ); + // im(2, 2) = det * ( m(0, 0) * A1313 - m(0, 1) * A0313 + m(0, 3) * A0113 ); + im(2, 3) = det * - ( m(0, 0) * A1312 - m(0, 1) * A0312 + m(0, 3) * A0112 ); + // im(3, 0) = det * - ( m(1, 0) * A1223 - m(1, 1) * A0223 + m(1, 2) * A0123 ); + // im(3, 1) = det * ( m(0, 0) * A1223 - m(0, 1) * A0223 + m(0, 2) * A0123 ); + // im(3, 2) = det * - ( m(0, 0) * A1213 - m(0, 1) * A0213 + m(0, 2) * A0113 ); + im(3, 3) = det * ( m(0, 0) * A1212 - m(0, 1) * A0212 + m(0, 2) * A0112 ); + + return true; +} + +template +typename GarlandHeckbert_matrix_types::Col_3 +vector_to_col_3(const typename GeomTraits::Vector_3& v) +{ + typename GarlandHeckbert_matrix_types::Col_3 col { v.x(), v.y(), v.z() }; + return col; +} + +template +typename GeomTraits::Vector_3 +construct_unit_normal_from_face(typename boost::graph_traits::face_descriptor f, + const TriangleMesh& tmesh, + const VertexPointMap vpm, + const GeomTraits& gt) +{ + typedef typename boost::graph_traits::halfedge_descriptor halfedge_descriptor; + typedef typename boost::property_traits::reference Point_ref; + + typedef typename GeomTraits::FT FT; + typedef typename GeomTraits::Vector_3 Vector_3; + + auto cross_product = gt.construct_cross_product_vector_3_object(); + auto squared_length = gt.compute_squared_length_3_object(); + + const halfedge_descriptor h = halfedge(f, tmesh); + + const Point_ref p = get(vpm, target(h, tmesh)); + const Point_ref q = get(vpm, target(next(h, tmesh), tmesh)); + const Point_ref r = get(vpm, source(h, tmesh)); + + Vector_3 normal = cross_product(q - p, r - p); + + const FT norm = sqrt(squared_length(normal)); + if(!is_zero(norm)) + normal = normal / norm; + + return normal; +} + +template +typename GeomTraits::Vector_3 +construct_edge_normal(typename boost::graph_traits::halfedge_descriptor h, + const TriangleMesh& tmesh, + const VertexPointMap vpm, + const GeomTraits& gt) +{ + typedef typename boost::property_traits::reference Point_ref; + + typedef typename GeomTraits::FT FT; + typedef typename GeomTraits::Vector_3 Vector_3; + + auto vector = gt.construct_vector_3_object(); + auto cross_product = gt.construct_cross_product_vector_3_object(); + auto squared_length = gt.compute_squared_length_3_object(); + + const Point_ref p = get(vpm, target(h, tmesh)); + const Point_ref q = get(vpm, target(next(h, tmesh), tmesh)); + const Point_ref r = get(vpm, source(h, tmesh)); + const Vector_3 face_normal = cross_product(q - p, r - p); + + const Vector_3 edge_vector = vector(r, p); + Vector_3 normal = cross_product(edge_vector, face_normal); + + const FT norm = sqrt(squared_length(normal)); + if(!is_zero(norm)) + normal = normal / norm; + + return normal; +} + +template +std::array +vectors_from_face(typename boost::graph_traits::face_descriptor f, + const TriangleMesh& tmesh, + const VertexPointMap vpm, + const GeomTraits& gt) +{ + typedef typename boost::property_traits::reference Point_reference; + typedef typename boost::graph_traits::halfedge_descriptor halfedge_descriptor; + + auto vector = gt.construct_vector_3_object(); + + const halfedge_descriptor h = halfedge(f, tmesh); + + // get all points and turn them into location vectors so we can use cross product on them + const Point_reference p = get(vpm, target(h, tmesh)); + const Point_reference q = get(vpm, target(next(h, tmesh), tmesh)); + const Point_reference r = get(vpm, source(h, tmesh)); + + std::array arr { vector(ORIGIN, p), + vector(ORIGIN, q), + vector(ORIGIN, r) }; + + return arr; +} + +template +typename GarlandHeckbert_matrix_types::Mat_3 +skew_sym_mat_cross_product(const typename GeomTraits::Vector_3& v) +{ + typename GarlandHeckbert_matrix_types::Mat_3 mat; + + mat << 0, - v.z(), v.y(), + v.z(), 0, - v.x(), + - v.y(), v.x(), 0; + + return mat; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// +/// OPTIMAL POINT +//////////////////////////////////////////////////////////////////////////////////////////////////// + +template +typename GarlandHeckbert_matrix_types::Col_4 +construct_optimal_point_invertible(const typename GarlandHeckbert_matrix_types::Mat_4& quadric) +{ + typedef typename GarlandHeckbert_matrix_types::Mat_4 Mat_4; + typedef typename GarlandHeckbert_matrix_types::Col_4 Col_4; + + Mat_4 x; + x << quadric.block(0, 0, 3, 4), 0, 0, 0, 1; + + Col_4 opt_pt; + opt_pt = x.inverse().col(3); // == X.inverse() * (0 0 0 1) + + return opt_pt; +} + +template +typename GarlandHeckbert_matrix_types::Col_4 +construct_optimal_point_singular(const typename GarlandHeckbert_matrix_types::Mat_4& quadric, + const typename GarlandHeckbert_matrix_types::Col_4& p0, + const typename GarlandHeckbert_matrix_types::Col_4& p1) +{ + typedef typename GeomTraits::FT FT; + typedef typename GarlandHeckbert_matrix_types::Mat_4 Mat_4; + typedef typename GarlandHeckbert_matrix_types::Col_4 Col_4; + + // In this case, the matrix mat may no be invertible, so we save the result to check + Mat_4 mat; + mat << quadric.block(0, 0, 3, 4), 0, 0, 0, 1; + + Mat_4 inverse; + bool invertible = invert_matrix_4(mat, inverse); + + if(invertible) + { + return inverse.col(3); + } + else + { + Col_4 opt_pt; + + const Col_4 p1mp0 = p1 - p0; + const FT a = (p1mp0.transpose() * quadric * p1mp0)(0, 0); + const FT b = 2 * (p0.transpose() * quadric * p1mp0)(0, 0); + + if(is_zero(a)) + { + if(b < 0) + opt_pt = p1; + else if(is_zero(b)) + opt_pt = 0.5 * (p0 + p1); + else + opt_pt = p0; + } + else + { + FT ext_t = - b / (FT(2) * a); + if(ext_t < 0 || ext_t > 1 || a < 0) + { + // one of endpoints + FT p0_cost = (p0.transpose() * quadric * p0)(0, 0); + FT p1_cost = (p1.transpose() * quadric * p1)(0, 0); + + if(p0_cost > p1_cost) + opt_pt = p1; + else + opt_pt = p0; + } + else + { + // extremum of the parabola + opt_pt = p0 + ext_t * (p1 - p0); + } + } + + return opt_pt; + } +} + + +//////////////////////////////////////////////////////////////////////////////////////////////////// +/// CLASSIC PLANE +//////////////////////////////////////////////////////////////////////////////////////////////////// + +template +typename GarlandHeckbert_matrix_types::Mat_4 +construct_classic_plane_quadric_from_normal(const typename GeomTraits::Vector_3& normal, + const typename GeomTraits::Point_3& point, + const GeomTraits& gt) +{ + typedef typename GeomTraits::FT FT; + + typedef typename GarlandHeckbert_matrix_types::Row_4 Row_4; + + auto dot_product = gt.compute_scalar_product_3_object(); + auto vector = gt.construct_vector_3_object(); + + // negative dot product between the normal and the position vector + const FT d = - dot_product(normal, vector(ORIGIN, point)); + + // row vector given by d appended to the normal + Row_4 row { normal.x(), normal.y(), normal.z(), d }; + + // outer product + return row.transpose() * row; +} + +template +typename GarlandHeckbert_matrix_types::Mat_4 +construct_classic_plane_quadric_from_edge(typename boost::graph_traits::halfedge_descriptor he, + const TriangleMesh& mesh, + const VertexPointMap vpm, + const GeomTraits& gt) +{ + typedef typename GeomTraits::Vector_3 Vector_3; + + const Vector_3 normal = construct_edge_normal(he, mesh, vpm, gt); + + // use this normal to construct the quadric analogously to constructing quadric + // from the normal of the face + return construct_classic_plane_quadric_from_normal(normal, get(vpm, target(he, mesh)), gt); +} + +template +typename GarlandHeckbert_matrix_types::Mat_4 +construct_classic_plane_quadric_from_face(typename boost::graph_traits::face_descriptor f, + const TriangleMesh& mesh, + const VertexPointMap vpm, + const GeomTraits& gt) +{ + auto normal = construct_unit_normal_from_face(f, mesh, vpm, gt); + + // get any point of the face + const auto p = get(vpm, target(halfedge(f, mesh), mesh)); + + return construct_classic_plane_quadric_from_normal(normal, p, gt); +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// +/// CLASSIC TRIANGLE +//////////////////////////////////////////////////////////////////////////////////////////////////// + +template +typename GarlandHeckbert_matrix_types::Mat_4 +construct_classic_triangle_quadric_from_face(typename boost::graph_traits::face_descriptor f, + const TriangleMesh& tmesh, + const VertexPointMap vpm, + const GeomTraits& gt) +{ + typedef typename GeomTraits::FT FT; + typedef typename GeomTraits::Vector_3 Vector_3; + + typedef typename GarlandHeckbert_matrix_types::Row_4 Row_4; + + auto cross_product = gt.construct_cross_product_vector_3_object(); + auto dot_product = gt.compute_scalar_product_3_object(); + auto sum_vectors = gt.construct_sum_of_vectors_3_object(); + + std::array vectors = vectors_from_face(f, tmesh, vpm, gt); + + const Vector_3& a = vectors[0]; + const Vector_3& b = vectors[1]; + const Vector_3& c = vectors[2]; + + const Vector_3 ab = cross_product(a, b); + const Vector_3 bc = cross_product(b, c); + const Vector_3 ca = cross_product(c, a); + + const Vector_3 sum_of_cross_products = sum_vectors(sum_vectors(ab, bc), ca); + const FT scalar_triple_product = dot_product(ab, c); + + Row_4 row; + row << sum_of_cross_products.x(), sum_of_cross_products.y(), + sum_of_cross_products.z(), - scalar_triple_product; + + return row.transpose() * row; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// +/// PROB PLANE +//////////////////////////////////////////////////////////////////////////////////////////////////// + +template +typename GarlandHeckbert_matrix_types::Mat_4 +construct_prob_plane_quadric_from_normal(const typename GeomTraits::Vector_3& mean_normal, + const typename GeomTraits::Point_3& point, + const GeomTraits& gt, + typename GeomTraits::FT face_nv, + typename GeomTraits::FT face_mv) +{ + typedef typename GeomTraits::FT FT; + typedef typename GeomTraits::Vector_3 Vector_3; + + typedef typename GarlandHeckbert_matrix_types::Col_3 Col_3; + typedef typename GarlandHeckbert_matrix_types::Mat_4 Mat_4; + + auto vector = gt.construct_vector_3_object(); + auto dot_product = gt.compute_scalar_product_3_object(); + auto squared_length = gt.compute_squared_length_3_object(); + + const Vector_3 mean_vec = vector(ORIGIN, point); + const Col_3 mean_n_col { mean_normal.x(), mean_normal.y(), mean_normal.z() }; + + // start by setting values along the diagonal + Mat_4 mat = face_nv * Mat_4::Identity(); + + // add outer product of the mean normal with itself to the upper left 3x3 block + mat.block(0, 0, 3, 3) += mean_n_col * mean_n_col.transpose(); + + // set the first 3 values of the last row and the first 3 values of the last column + const FT dot_mnmv = dot_product(mean_normal, mean_vec); + const Vector_3 b1 = dot_mnmv * mean_normal + face_nv * mean_vec; + + const Col_3 b { b1.x(), b1.y(), b1.z() }; + + mat.col(3).head(3) = - b; + mat.row(3).head(3) = - b.transpose(); + + // set the value in the bottom right corner, we get this by considering + // that we only have single variances given instead of covariance matrices + mat(3, 3) = square(dot_mnmv) + + face_nv * squared_length(mean_vec) + + face_mv * squared_length(mean_normal) + + 3 * face_nv * face_mv; // tr(Sigma_n * Sigma_m) + + return mat; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// +/// PROB TRIANGLE +//////////////////////////////////////////////////////////////////////////////////////////////////// + +template +typename GarlandHeckbert_matrix_types::Mat_4 +construct_prob_triangle_quadric_from_face(typename boost::graph_traits::face_descriptor f, + typename GeomTraits::FT var, + const TriangleMesh& tmesh, + const VertexPointMap vpm, + const GeomTraits& gt) +{ + typedef typename GeomTraits::FT FT; + typedef typename GeomTraits::Vector_3 Vector_3; + + typedef typename GarlandHeckbert_matrix_types::Mat_3 Mat_3; + typedef typename GarlandHeckbert_matrix_types::Col_3 Col_3; + typedef typename GarlandHeckbert_matrix_types::Mat_4 Mat_4; + + auto cross_product = gt.construct_cross_product_vector_3_object(); + auto sum_vectors = gt.construct_sum_of_vectors_3_object(); + auto dot_product = gt.compute_scalar_product_3_object(); + auto squared_length = gt.compute_squared_length_3_object(); + + // array containing the position vectors corresponding to + // the vertices of the given face + auto vectors = vectors_from_face(f, tmesh, vpm, gt); + + const Vector_3& a = vectors[0]; + const Vector_3& b = vectors[1]; + const Vector_3& c = vectors[2]; + + const Vector_3 ab = cross_product(a, b); + const Vector_3 bc = cross_product(b, c); + const Vector_3 ca = cross_product(c, a); + + const Vector_3 a_minus_b = sum_vectors(a, -b); + const Vector_3 b_minus_c = sum_vectors(b, -c); + const Vector_3 c_minus_a = sum_vectors(c, -a); + + const Mat_3 cp_ab = skew_sym_mat_cross_product(a_minus_b); + const Mat_3 cp_bc = skew_sym_mat_cross_product(b_minus_c); + const Mat_3 cp_ca = skew_sym_mat_cross_product(c_minus_a); + + const Vector_3 sum_of_cross_product = sum_vectors(sum_vectors(ab, bc), ca); + const Col_3 sum_cp_col { sum_of_cross_product.x(), sum_of_cross_product.y(), sum_of_cross_product.z() }; + + Mat_3 A = sum_cp_col * sum_cp_col.transpose(); + A += var * (cp_ab * cp_ab.transpose() + cp_bc * cp_bc.transpose() + cp_ca * cp_ca.transpose()); + + // Add the 3 simple cross inference matrix - components (we only have one variance here) + A += 6 * square(var) * Mat_3::Identity(); + + // we need the determinant of matrix with columns a, b, c - we use the scalar triple product + const FT det = dot_product(ab, c); + + // Compute the b vector, this follows the formula directly - but we can factor + // out the diagonal covariance matrices + const Col_3 res_b = det * sum_cp_col - var * (vector_to_col_3(cross_product(a_minus_b, ab)) + + vector_to_col_3(cross_product(b_minus_c, bc)) + + vector_to_col_3(cross_product(c_minus_a, ca))) + + 2 * square(var) * vector_to_col_3(sum_vectors(sum_vectors(a, b), c)); + + const FT ab2 = squared_length(ab); + const FT bc2 = squared_length(bc); + const FT ca2 = squared_length(ca); + const FT a2 = squared_length(a); + const FT b2 = squared_length(b); + const FT c2 = squared_length(c); + + const FT res_c = square(det) + + var * (ab2 + bc2 + ca2) + + square(var) * (2 * (a2 + b2 + c2) + 6 * var); + + Mat_4 ret = Mat_4::Zero(); + ret.block(0, 0, 3, 3) = A; + ret.block(3, 0, 1, 3) = - res_b.transpose(); + ret.block(0, 3, 3, 1) = - res_b; + ret(3, 3) = res_c; + + return ret; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// +/// PROB VARIANCE +//////////////////////////////////////////////////////////////////////////////////////////////////// + +template +std::pair +estimate_variances(const TriangleMesh& mesh, + const GeomTraits& gt, + const typename GeomTraits::FT variance, + const typename GeomTraits::FT p_factor) +{ + typedef typename TriangleMesh::Vertex_index vertex_descriptor; + typedef typename TriangleMesh::Edge_index edge_descriptor; + + typedef typename GeomTraits::FT FT; + typedef typename GeomTraits::Point_3 Point_3; + typedef typename GeomTraits::Vector_3 Vector_3; + + CGAL_precondition(!CGAL::is_empty(mesh)); + + auto construct_vector = gt.construct_vector_3_object(); + auto squared_length = gt.compute_squared_length_3_object(); + + FT average_edge_length = 0; + + std::size_t ne = 0; + for(edge_descriptor e : edges(mesh)) + { + vertex_descriptor v1 = mesh.vertex(e, 0); + vertex_descriptor v2 = mesh.vertex(e, 1); + + const Point_3& p1 = mesh.point(v1); // @fixme Surface_mesh API + const Point_3& p2 = mesh.point(v2); + + const Vector_3 vec = construct_vector(p1, p2); + average_edge_length += sqrt(squared_length(vec)); + + ++ne; // edges(mesh).size() can be costly, might as well increment now + } + + average_edge_length = average_edge_length / ne; + + const FT n2 = variance * average_edge_length; + const FT p2 = p_factor * variance * average_edge_length; + + return std::make_pair(n2, p2); +} + +} // namespace internal +} // namespace Surface_mesh_simplification +} // namespace CGAL + +#endif // CGAL_SURFACE_MESH_SIMPLIFICATION_POLICIES_GARLANDHECKBERT_FUNCTIONS_H diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/internal/GarlandHeckbert_policy_base.h cgal-5.5/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/internal/GarlandHeckbert_policy_base.h --- cgal-5.4.1/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/internal/GarlandHeckbert_policy_base.h 1970-01-01 00:00:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/internal/GarlandHeckbert_policy_base.h 2022-07-13 19:06:54.000000000 +0000 @@ -0,0 +1,251 @@ +// Copyright (c) 2019 GeometryFactory (France). All rights reserved. +// +// This file is part of CGAL (www.cgal.org). +// +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/internal/GarlandHeckbert_policy_base.h $ +// $Id: GarlandHeckbert_policy_base.h 776cfd6 2022-03-31T23:24:20+02:00 Mael Rouxel-Labbé +// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial +// +// Author(s) : Baskin Burak Senbaslar, +// Mael Rouxel-Labbé, +// Julian Komaromy + +#ifndef CGAL_SURFACE_MESH_SIMPLIFICATION_POLICIES_INTERNAL_GARLANDHECKBERT_POLICIES_BASE_H +#define CGAL_SURFACE_MESH_SIMPLIFICATION_POLICIES_INTERNAL_GARLANDHECKBERT_POLICIES_BASE_H + +#include + +#include +#include + +#include + +#include + +#include + +namespace CGAL { +namespace Surface_mesh_simplification { +namespace internal { + +template +Mat combine_matrices(const Mat& a, const Mat& b) +{ + return a + b; +} + +template +struct GarlandHeckbert_matrix_types +{ + typedef typename GeomTraits::FT FT; + + typedef Eigen::Matrix Mat_3; + typedef Eigen::Matrix Col_3; + typedef Eigen::Matrix Mat_4; + typedef Eigen::Matrix Col_4; + typedef Eigen::Matrix Row_4; +}; + +// Storage is initialized by the most-derived class (e.g. GarlandHeckbert_plane_policies) +template +struct GarlandHeckbert_quadrics_storage +{ + typedef typename GarlandHeckbert_matrix_types::Mat_4 Mat_4; + typedef typename GarlandHeckbert_matrix_types::Col_4 Col_4; + + typedef Mat_4 Cost_matrix; + typedef CGAL::dynamic_vertex_property_t Cost_property; + typedef typename boost::property_map::type Vertex_cost_map; + + typedef QuadricCalculator Quadric_calculator; + +protected: + Vertex_cost_map m_cost_matrices; + Quadric_calculator m_quadric_calculator; + +public: + GarlandHeckbert_quadrics_storage() = delete; + + GarlandHeckbert_quadrics_storage(TriangleMesh& tmesh, + const Quadric_calculator& quadric_calculator) + : m_quadric_calculator(quadric_calculator) + { + m_cost_matrices = get(Cost_property(), tmesh); + } +}; + +template +class GarlandHeckbert_cost_and_placement + : public GarlandHeckbert_quadrics_storage +{ + typedef QuadricCalculator Quadric_calculator; + typedef GarlandHeckbert_quadrics_storage< + Quadric_calculator, TriangleMesh, GeomTraits> Base; + +public: + // Tells the main function of 'Edge_collapse' that these + // policies must call "initialize" and "update" functions. + typedef CGAL::Tag_true Update_tag; + + typedef typename boost::graph_traits::vertex_descriptor vertex_descriptor; + typedef typename boost::graph_traits::halfedge_descriptor halfedge_descriptor; + typedef typename boost::graph_traits::face_descriptor face_descriptor; + + typedef typename GeomTraits::FT FT; + typedef typename GeomTraits::Point_3 Point_3; + typedef typename GeomTraits::Vector_3 Vector_3; + + typedef typename Base::Mat_4 Mat_4; + typedef typename Base::Col_4 Col_4; + +private: + FT discontinuity_multiplier; + +public: + GarlandHeckbert_cost_and_placement(TriangleMesh& tmesh, + const Quadric_calculator& quadric_calculator, + const FT dm = FT(100)) + : Base(tmesh, quadric_calculator), discontinuity_multiplier(dm) + { } + + decltype(auto) vcm() const { return this->m_cost_matrices; } + const Quadric_calculator& quadric_calculator() const { return this->m_quadric_calculator; } + +public: + static Col_4 point_to_homogenous_column(const Point_3& point) + { + return Col_4 { point.x(), point.y(), point.z(), FT(1) }; + } + + Col_4 construct_optimum(const Mat_4& mat, const Col_4& p0, const Col_4& p1) const + { + return quadric_calculator().construct_optimal_point(mat, p0, p1); + } + + static bool is_discontinuity_edge(const halfedge_descriptor h, + const TriangleMesh& tmesh) + { + return is_border_edge(h, tmesh); + } + +public: + template + Mat_4 construct_quadric(const halfedge_descriptor he, + const TriangleMesh& tmesh, + const VertexPointMap vpm, + const GeomTraits& gt) const + { + return quadric_calculator().construct_quadric_from_edge(he, tmesh, vpm, gt); + } + + template + Mat_4 construct_quadric(const face_descriptor f, + const TriangleMesh& tmesh, + const VertexPointMap vpm, + const GeomTraits& gt) const + { + return quadric_calculator().construct_quadric_from_face(f, tmesh, vpm, gt); + } + +public: + // initialize all quadrics + template + void initialize(const TriangleMesh& tmesh, + const VertexPointMap vpm, + const GeomTraits& gt) const + { + Mat_4 zero_mat = Mat_4::Zero(); + + for(vertex_descriptor v : vertices(tmesh)) + put(vcm(), v, zero_mat); + + for(face_descriptor f : faces(tmesh)) + { + if(f == boost::graph_traits::null_face()) + continue; + + const halfedge_descriptor h = halfedge(f, tmesh); + + // construtct the (4 x 4) matrix representing the plane quadric + const Mat_4 quadric = construct_quadric(f, tmesh, vpm, gt); + + for(halfedge_descriptor shd : halfedges_around_face(h, tmesh)) + { + const vertex_descriptor vs = source(shd, tmesh); + const vertex_descriptor vt = target(shd, tmesh); + + put(vcm(), vs, combine_matrices(get(vcm(), vs), quadric)); + + if(!is_discontinuity_edge(shd, tmesh)) + continue; + + const Mat_4 discontinuous_quadric = + discontinuity_multiplier * construct_quadric(shd, tmesh, vpm, gt); + + put(vcm(), vs, combine_matrices(get(vcm(), vs), discontinuous_quadric)); + put(vcm(), vt, combine_matrices(get(vcm(), vt), discontinuous_quadric)); + } + } + } + + template + void update_after_collapse(const Profile& profile, + const VertexDescriptor new_v) const + { + put(vcm(), new_v, combine_matrices(get(vcm(), profile.v0()), + get(vcm(), profile.v1()))); + } + +public: + // Cost + template + boost::optional + operator()(const Profile& profile, + const boost::optional& placement) const + { + typedef boost::optional Optional_FT; + + if(!placement) + return boost::optional(); + + CGAL_precondition(!get(vcm(), profile.v0()).isZero(0)); + CGAL_precondition(!get(vcm(), profile.v1()).isZero(0)); + + const Mat_4 combined_matrix = combine_matrices(get(vcm(), profile.v0()), + get(vcm(), profile.v1())); + const Col_4 pt = point_to_homogenous_column(*placement); + const Optional_FT cost = (pt.transpose() * combined_matrix * pt)(0, 0); + + return cost; + } + +public: + // Placement + template + boost::optional operator()(const Profile& profile) const + { + CGAL_precondition(!get(vcm(), profile.v0()).isZero(0)); + CGAL_precondition(!get(vcm(), profile.v1()).isZero(0)); + + // the combined matrix has already been computed in the evaluation of the cost... + const Mat_4 combined_matrix = combine_matrices(get(vcm(), profile.v0()), + get(vcm(), profile.v1())); + + const Col_4 p0 = point_to_homogenous_column(profile.p0()); + const Col_4 p1 = point_to_homogenous_column(profile.p1()); + + const Col_4 opt = construct_optimum(combined_matrix, p0, p1); + + boost::optional pt = typename Profile::Point(opt(0) / opt(3), + opt(1) / opt(3), + opt(2) / opt(3)); + + return pt; + } +}; + +} // namespace internal +} // namespace Surface_mesh_simplification +} // namespace CGAL + +#endif // CGAL_SURFACE_MESH_SIMPLIFICATION_POLICIES_INTERNAL_GARLANDHECKBERT_POLICIES_BASE_H diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/internal/Lindstrom_Turk_core.h cgal-5.5/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/internal/Lindstrom_Turk_core.h --- cgal-5.4.1/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/internal/Lindstrom_Turk_core.h 2022-06-03 19:05:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/internal/Lindstrom_Turk_core.h 2022-07-13 19:06:54.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/internal/Lindstrom_Turk_core.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/internal/Lindstrom_Turk_core.h $ // $Id: Lindstrom_Turk_core.h bd60028 2021-01-08T10:20:34+01:00 Dmitry Anisimov // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/internal/LindstromTurk_params.h cgal-5.5/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/internal/LindstromTurk_params.h --- cgal-5.4.1/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/internal/LindstromTurk_params.h 2022-06-03 19:05:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/internal/LindstromTurk_params.h 2022-07-13 19:06:54.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/internal/LindstromTurk_params.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/internal/LindstromTurk_params.h $ // $Id: LindstromTurk_params.h ff09c5d 2019-10-25T16:35:53+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/LindstromTurk_cost.h cgal-5.5/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/LindstromTurk_cost.h --- cgal-5.4.1/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/LindstromTurk_cost.h 2022-06-03 19:05:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/LindstromTurk_cost.h 2022-07-13 19:06:54.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/LindstromTurk_cost.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/LindstromTurk_cost.h $ // $Id: LindstromTurk_cost.h ff09c5d 2019-10-25T16:35:53+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/LindstromTurk.h cgal-5.5/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/LindstromTurk.h --- cgal-5.4.1/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/LindstromTurk.h 2022-06-03 19:05:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/LindstromTurk.h 2022-07-13 19:06:54.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/LindstromTurk.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/LindstromTurk.h $ // $Id: LindstromTurk.h ff09c5d 2019-10-25T16:35:53+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/LindstromTurk_placement.h cgal-5.5/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/LindstromTurk_placement.h --- cgal-5.4.1/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/LindstromTurk_placement.h 2022-06-03 19:05:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/LindstromTurk_placement.h 2022-07-13 19:06:54.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/LindstromTurk_placement.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/LindstromTurk_placement.h $ // $Id: LindstromTurk_placement.h ff09c5d 2019-10-25T16:35:53+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Midpoint_placement.h cgal-5.5/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Midpoint_placement.h --- cgal-5.4.1/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Midpoint_placement.h 2022-06-03 19:05:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Midpoint_placement.h 2022-07-13 19:06:54.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Midpoint_placement.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Midpoint_placement.h $ // $Id: Midpoint_placement.h ff09c5d 2019-10-25T16:35:53+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Polyhedral_envelope_filter.h cgal-5.5/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Polyhedral_envelope_filter.h --- cgal-5.4.1/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Polyhedral_envelope_filter.h 2022-06-03 19:05:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Polyhedral_envelope_filter.h 2022-07-13 19:06:09.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polygon_mesh_processing/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Polyhedral_envelope_filter.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polygon_mesh_processing/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Polyhedral_envelope_filter.h $ // $Id: Polyhedral_envelope_filter.h 02db50a 2021-01-04T10:36:14+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_skeletonization/internal/Curve_skeleton.h cgal-5.5/include/CGAL/Surface_mesh_skeletonization/internal/Curve_skeleton.h --- cgal-5.4.1/include/CGAL/Surface_mesh_skeletonization/internal/Curve_skeleton.h 2022-06-03 19:05:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_skeletonization/internal/Curve_skeleton.h 2022-07-13 19:06:54.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_skeletonization/include/CGAL/Surface_mesh_skeletonization/internal/Curve_skeleton.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_skeletonization/include/CGAL/Surface_mesh_skeletonization/internal/Curve_skeleton.h $ // $Id: Curve_skeleton.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_skeletonization/internal/Debug.h cgal-5.5/include/CGAL/Surface_mesh_skeletonization/internal/Debug.h --- cgal-5.4.1/include/CGAL/Surface_mesh_skeletonization/internal/Debug.h 2022-06-03 19:05:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_skeletonization/internal/Debug.h 2022-07-13 19:06:54.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_skeletonization/include/CGAL/Surface_mesh_skeletonization/internal/Debug.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_skeletonization/include/CGAL/Surface_mesh_skeletonization/internal/Debug.h $ // $Id: Debug.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_skeletonization/internal/Detect_degeneracy.h cgal-5.5/include/CGAL/Surface_mesh_skeletonization/internal/Detect_degeneracy.h --- cgal-5.4.1/include/CGAL/Surface_mesh_skeletonization/internal/Detect_degeneracy.h 2022-06-03 19:05:57.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_skeletonization/internal/Detect_degeneracy.h 2022-07-13 19:06:54.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_skeletonization/include/CGAL/Surface_mesh_skeletonization/internal/Detect_degeneracy.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_skeletonization/include/CGAL/Surface_mesh_skeletonization/internal/Detect_degeneracy.h $ // $Id: Detect_degeneracy.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_topology/internal/Edge_weight_functor.h cgal-5.5/include/CGAL/Surface_mesh_topology/internal/Edge_weight_functor.h --- cgal-5.4.1/include/CGAL/Surface_mesh_topology/internal/Edge_weight_functor.h 2022-06-03 19:05:58.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_topology/internal/Edge_weight_functor.h 2022-07-13 19:06:55.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_topology/include/CGAL/Surface_mesh_topology/internal/Edge_weight_functor.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_topology/include/CGAL/Surface_mesh_topology/internal/Edge_weight_functor.h $ // $Id: Edge_weight_functor.h 19d7e19 2020-04-06T09:13:47+02:00 Guillaume Damiand // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_topology/internal/Facewidth.h cgal-5.5/include/CGAL/Surface_mesh_topology/internal/Facewidth.h --- cgal-5.4.1/include/CGAL/Surface_mesh_topology/internal/Facewidth.h 2022-06-03 19:05:58.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_topology/internal/Facewidth.h 2022-07-13 19:06:55.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_topology/include/CGAL/Surface_mesh_topology/internal/Facewidth.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_topology/include/CGAL/Surface_mesh_topology/internal/Facewidth.h $ // $Id: Facewidth.h a09b8b1 2020-04-21T08:49:10+02:00 Guillaume Damiand // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_topology/internal/Functors_for_face_graph_wrapper.h cgal-5.5/include/CGAL/Surface_mesh_topology/internal/Functors_for_face_graph_wrapper.h --- cgal-5.4.1/include/CGAL/Surface_mesh_topology/internal/Functors_for_face_graph_wrapper.h 2022-06-03 19:05:58.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_topology/internal/Functors_for_face_graph_wrapper.h 2022-07-13 19:06:55.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_topology/include/CGAL/Surface_mesh_topology/internal/Functors_for_face_graph_wrapper.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_topology/include/CGAL/Surface_mesh_topology/internal/Functors_for_face_graph_wrapper.h $ // $Id: Functors_for_face_graph_wrapper.h 3fb644e 2020-04-10T17:40:30+02:00 Guillaume Damiand // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_topology/internal/Generic_map_selector.h cgal-5.5/include/CGAL/Surface_mesh_topology/internal/Generic_map_selector.h --- cgal-5.4.1/include/CGAL/Surface_mesh_topology/internal/Generic_map_selector.h 2022-06-03 19:05:58.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_topology/internal/Generic_map_selector.h 2022-07-13 19:06:55.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_topology/include/CGAL/Surface_mesh_topology/internal/Generic_map_selector.h $ -// $Id: Generic_map_selector.h e6536aa 2020-06-09T20:15:16+02:00 Laurent Rineau +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_topology/include/CGAL/Surface_mesh_topology/internal/Generic_map_selector.h $ +// $Id: Generic_map_selector.h faadbaa 2022-02-09T09:37:41+01:00 Guillaume Damiand // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Thien Hoang @@ -44,9 +44,9 @@ using Mesh_original = Mesh_; using Generic_map = CGAL::Generalized_map<2, Items_>; using Dart_const_handle_original = typename Mesh_original::Dart_const_handle; - using Copy_to_origin_map = boost::unordered_map; - using Origin_to_copy_map = boost::unordered_map; static void copy(Generic_map& target, const Mesh_original& source, @@ -54,7 +54,7 @@ Copy_to_origin_map& copy_to_origin, typename Generic_map::size_type mark_perforated) { - target.copy_from_const(source, &origin_to_copy, ©_to_origin, true, mark_perforated); + target.copy_from_const(source, &origin_to_copy, ©_to_origin, false, true, mark_perforated); } }; @@ -64,16 +64,16 @@ using Mesh_original = Mesh_; using Generic_map = CGAL::Combinatorial_map<2, Items_>; using Dart_const_handle_original = typename Mesh_original::Dart_const_handle; - using Copy_to_origin_map = boost::unordered_map; - using Origin_to_copy_map = boost::unordered_map; static void copy(Generic_map& target, const Mesh_original& source, Origin_to_copy_map& origin_to_copy, Copy_to_origin_map& copy_to_origin, typename Generic_map::size_type mark_perforated) { - target.copy_from_const(source, &origin_to_copy, ©_to_origin, true, mark_perforated); + target.copy_from_const(source, &origin_to_copy, ©_to_origin, false, true, mark_perforated); } }; @@ -83,9 +83,9 @@ using Mesh_original = Mesh_; using Generic_map = CGAL::Combinatorial_map<2, Items_>; using Dart_const_handle_original = typename boost::graph_traits::halfedge_descriptor; - using Copy_to_origin_map = boost::unordered_map; - using Origin_to_copy_map = boost::unordered_map; static void copy(Generic_map& target, const Mesh_original& source, diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_topology/internal/Iterators_for_face_graph_wrapper.h cgal-5.5/include/CGAL/Surface_mesh_topology/internal/Iterators_for_face_graph_wrapper.h --- cgal-5.4.1/include/CGAL/Surface_mesh_topology/internal/Iterators_for_face_graph_wrapper.h 2022-06-03 19:05:58.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_topology/internal/Iterators_for_face_graph_wrapper.h 2022-07-13 19:06:55.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_topology/include/CGAL/Surface_mesh_topology/internal/Iterators_for_face_graph_wrapper.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_topology/include/CGAL/Surface_mesh_topology/internal/Iterators_for_face_graph_wrapper.h $ // $Id: Iterators_for_face_graph_wrapper.h 1de5666 2020-04-20T14:39:05+02:00 Guillaume Damiand // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_topology/internal/Minimal_quadrangulation.h cgal-5.5/include/CGAL/Surface_mesh_topology/internal/Minimal_quadrangulation.h --- cgal-5.4.1/include/CGAL/Surface_mesh_topology/internal/Minimal_quadrangulation.h 2022-06-03 19:05:58.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_topology/internal/Minimal_quadrangulation.h 2022-07-13 19:06:55.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_topology/include/CGAL/Surface_mesh_topology/internal/Minimal_quadrangulation.h $ -// $Id: Minimal_quadrangulation.h 93c2d79 2021-02-26T18:14:26+01:00 Guillaume Damiand +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_topology/include/CGAL/Surface_mesh_topology/internal/Minimal_quadrangulation.h $ +// $Id: Minimal_quadrangulation.h c5c6098 2022-01-27T11:02:17+01:00 Guillaume Damiand // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Guillaume Damiand @@ -670,7 +670,7 @@ } res.update_is_closed(); CGAL_assertion(res.is_empty() || res.is_closed()); - CGAL_assertion(res.is_valid()); + CGAL_expensive_assertion(res.is_valid()); return res; } @@ -702,7 +702,7 @@ if (!res.is_empty()) { res.merge_last_flat_with_next_if_possible(); } CGAL_assertion(res.is_closed() || res.is_empty()); - CGAL_assertion(res.is_valid()); + CGAL_expensive_assertion(res.is_valid()); return res; } diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_topology/internal/Path_generators.h cgal-5.5/include/CGAL/Surface_mesh_topology/internal/Path_generators.h --- cgal-5.4.1/include/CGAL/Surface_mesh_topology/internal/Path_generators.h 2022-06-03 19:05:58.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_topology/internal/Path_generators.h 2022-07-13 19:06:55.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_topology/include/CGAL/Surface_mesh_topology/internal/Path_generators.h $ -// $Id: Path_generators.h 8bb22d5 2020-03-26T14:23:37+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_topology/include/CGAL/Surface_mesh_topology/internal/Path_generators.h $ +// $Id: Path_generators.h 440a8df 2022-02-03T08:41:04+00:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Guillaume Damiand @@ -13,6 +13,7 @@ #define CGAL_PATH_GENERATORS_H 1 #include +#include #include #include @@ -174,7 +175,7 @@ { return NULL; } } - assert (border_faces.size()!=0); + CGAL_assertion(border_faces.size()!=0); typename LCC::Dart_const_handle dhres=border_faces[0]; while(lcc.template is_free<2>(dhres) || lcc.is_marked(lcc.template beta<2>(dhres), amark)) diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_topology/internal/Path_on_surface_with_rle.h cgal-5.5/include/CGAL/Surface_mesh_topology/internal/Path_on_surface_with_rle.h --- cgal-5.4.1/include/CGAL/Surface_mesh_topology/internal/Path_on_surface_with_rle.h 2022-06-03 19:05:58.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_topology/internal/Path_on_surface_with_rle.h 2022-07-13 19:06:55.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_topology/include/CGAL/Surface_mesh_topology/internal/Path_on_surface_with_rle.h $ -// $Id: Path_on_surface_with_rle.h 7f63f3d 2021-10-04T15:53:36+02:00 Mael +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_topology/include/CGAL/Surface_mesh_topology/internal/Path_on_surface_with_rle.h $ +// $Id: Path_on_surface_with_rle.h c5c6098 2022-01-27T11:02:17+01:00 Guillaume Damiand // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Guillaume Damiand @@ -185,7 +185,7 @@ (positive_flat?(static_cast(apath.length()-1)): -(static_cast(apath.length()-1))))); m_length=apath.length(); - CGAL_assertion(is_valid()); + CGAL_expensive_assertion(is_valid()); return; } } @@ -201,7 +201,7 @@ } while(i @@ -65,8 +65,8 @@ using Path =CGAL::Surface_mesh_topology::Path_on_surface; // Associations between original darts and their copy. - using Origin_to_copy=boost::unordered_map; - using Copy_to_origin=boost::unordered_map; + using Origin_to_copy=std::unordered_map; + using Copy_to_origin=std::unordered_map; /// @return the local map const Local_map& get_local_map() const diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_traits_generator_3.h cgal-5.5/include/CGAL/Surface_mesh_traits_generator_3.h --- cgal-5.4.1/include/CGAL/Surface_mesh_traits_generator_3.h 2022-06-03 19:06:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_traits_generator_3.h 2022-07-13 19:06:57.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesher/include/CGAL/Surface_mesh_traits_generator_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesher/include/CGAL/Surface_mesh_traits_generator_3.h $ // $Id: Surface_mesh_traits_generator_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_triangulation_generator_3.h cgal-5.5/include/CGAL/Surface_mesh_triangulation_generator_3.h --- cgal-5.4.1/include/CGAL/Surface_mesh_triangulation_generator_3.h 2022-06-03 19:06:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_triangulation_generator_3.h 2022-07-13 19:06:57.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesher/include/CGAL/Surface_mesh_triangulation_generator_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesher/include/CGAL/Surface_mesh_triangulation_generator_3.h $ // $Id: Surface_mesh_triangulation_generator_3.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_mesh_vertex_base_3.h cgal-5.5/include/CGAL/Surface_mesh_vertex_base_3.h --- cgal-5.4.1/include/CGAL/Surface_mesh_vertex_base_3.h 2022-06-03 19:06:00.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_mesh_vertex_base_3.h 2022-07-13 19:06:57.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesher/include/CGAL/Surface_mesh_vertex_base_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesher/include/CGAL/Surface_mesh_vertex_base_3.h $ // $Id: Surface_mesh_vertex_base_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/surface_neighbor_coordinates_3.h cgal-5.5/include/CGAL/surface_neighbor_coordinates_3.h --- cgal-5.4.1/include/CGAL/surface_neighbor_coordinates_3.h 2022-06-03 19:04:25.000000000 +0000 +++ cgal-5.5/include/CGAL/surface_neighbor_coordinates_3.h 2022-07-13 19:05:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Interpolation/include/CGAL/surface_neighbor_coordinates_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Interpolation/include/CGAL/surface_neighbor_coordinates_3.h $ // $Id: surface_neighbor_coordinates_3.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/surface_neighbors_3.h cgal-5.5/include/CGAL/surface_neighbors_3.h --- cgal-5.4.1/include/CGAL/surface_neighbors_3.h 2022-06-03 19:04:25.000000000 +0000 +++ cgal-5.5/include/CGAL/surface_neighbors_3.h 2022-07-13 19:05:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Interpolation/include/CGAL/surface_neighbors_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Interpolation/include/CGAL/surface_neighbors_3.h $ // $Id: surface_neighbors_3.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/surface_reconstruction_points_assertions.h cgal-5.5/include/CGAL/surface_reconstruction_points_assertions.h --- cgal-5.4.1/include/CGAL/surface_reconstruction_points_assertions.h 2022-06-03 19:05:13.000000000 +0000 +++ cgal-5.5/include/CGAL/surface_reconstruction_points_assertions.h 2022-07-13 19:06:07.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Poisson_surface_reconstruction_3/include/CGAL/surface_reconstruction_points_assertions.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Poisson_surface_reconstruction_3/include/CGAL/surface_reconstruction_points_assertions.h $ // $Id: surface_reconstruction_points_assertions.h 5a36ff8 2020-12-04T08:02:26+00:00 Giles Bathgate // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_sweep_2/Arr_basic_insertion_traits_2.h cgal-5.5/include/CGAL/Surface_sweep_2/Arr_basic_insertion_traits_2.h --- cgal-5.4.1/include/CGAL/Surface_sweep_2/Arr_basic_insertion_traits_2.h 2022-06-03 19:03:45.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_sweep_2/Arr_basic_insertion_traits_2.h 2022-07-13 19:04:31.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Surface_sweep_2/Arr_basic_insertion_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Surface_sweep_2/Arr_basic_insertion_traits_2.h $ // $Id: Arr_basic_insertion_traits_2.h 6b64dc8 2020-11-11T09:38:55+02:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_sweep_2/Arr_batched_pl_ss_visitor.h cgal-5.5/include/CGAL/Surface_sweep_2/Arr_batched_pl_ss_visitor.h --- cgal-5.4.1/include/CGAL/Surface_sweep_2/Arr_batched_pl_ss_visitor.h 2022-06-03 19:03:45.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_sweep_2/Arr_batched_pl_ss_visitor.h 2022-07-13 19:04:31.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Surface_sweep_2/Arr_batched_pl_ss_visitor.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Surface_sweep_2/Arr_batched_pl_ss_visitor.h $ // $Id: Arr_batched_pl_ss_visitor.h 5985db1 2021-07-28T16:17:10+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_sweep_2/Arr_construction_event_base.h cgal-5.5/include/CGAL/Surface_sweep_2/Arr_construction_event_base.h --- cgal-5.4.1/include/CGAL/Surface_sweep_2/Arr_construction_event_base.h 2022-06-03 19:03:45.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_sweep_2/Arr_construction_event_base.h 2022-07-13 19:04:31.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Surface_sweep_2/Arr_construction_event_base.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Surface_sweep_2/Arr_construction_event_base.h $ // $Id: Arr_construction_event_base.h 5985db1 2021-07-28T16:17:10+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_sweep_2/Arr_construction_event.h cgal-5.5/include/CGAL/Surface_sweep_2/Arr_construction_event.h --- cgal-5.4.1/include/CGAL/Surface_sweep_2/Arr_construction_event.h 2022-06-03 19:03:45.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_sweep_2/Arr_construction_event.h 2022-07-13 19:04:31.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Surface_sweep_2/Arr_construction_event.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Surface_sweep_2/Arr_construction_event.h $ // $Id: Arr_construction_event.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_sweep_2/Arr_construction_ss_visitor.h cgal-5.5/include/CGAL/Surface_sweep_2/Arr_construction_ss_visitor.h --- cgal-5.4.1/include/CGAL/Surface_sweep_2/Arr_construction_ss_visitor.h 2022-06-03 19:03:45.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_sweep_2/Arr_construction_ss_visitor.h 2022-07-13 19:04:31.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Surface_sweep_2/Arr_construction_ss_visitor.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Surface_sweep_2/Arr_construction_ss_visitor.h $ // $Id: Arr_construction_ss_visitor.h 6e1fc8a 2021-09-02T16:53:07+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_sweep_2/Arr_construction_subcurve.h cgal-5.5/include/CGAL/Surface_sweep_2/Arr_construction_subcurve.h --- cgal-5.4.1/include/CGAL/Surface_sweep_2/Arr_construction_subcurve.h 2022-06-03 19:03:45.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_sweep_2/Arr_construction_subcurve.h 2022-07-13 19:04:31.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Surface_sweep_2/Arr_construction_subcurve.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Surface_sweep_2/Arr_construction_subcurve.h $ // $Id: Arr_construction_subcurve.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_sweep_2/Arr_default_overlay_traits_base.h cgal-5.5/include/CGAL/Surface_sweep_2/Arr_default_overlay_traits_base.h --- cgal-5.4.1/include/CGAL/Surface_sweep_2/Arr_default_overlay_traits_base.h 2022-06-03 19:03:45.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_sweep_2/Arr_default_overlay_traits_base.h 2022-07-13 19:04:31.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Surface_sweep_2/Arr_default_overlay_traits_base.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Surface_sweep_2/Arr_default_overlay_traits_base.h $ // $Id: Arr_default_overlay_traits_base.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_sweep_2/Arr_insertion_ss_visitor.h cgal-5.5/include/CGAL/Surface_sweep_2/Arr_insertion_ss_visitor.h --- cgal-5.4.1/include/CGAL/Surface_sweep_2/Arr_insertion_ss_visitor.h 2022-06-03 19:03:45.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_sweep_2/Arr_insertion_ss_visitor.h 2022-07-13 19:04:31.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Surface_sweep_2/Arr_insertion_ss_visitor.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Surface_sweep_2/Arr_insertion_ss_visitor.h $ // $Id: Arr_insertion_ss_visitor.h 6e1fc8a 2021-09-02T16:53:07+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_sweep_2/Arr_insertion_traits_2.h cgal-5.5/include/CGAL/Surface_sweep_2/Arr_insertion_traits_2.h --- cgal-5.4.1/include/CGAL/Surface_sweep_2/Arr_insertion_traits_2.h 2022-06-03 19:03:45.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_sweep_2/Arr_insertion_traits_2.h 2022-07-13 19:04:31.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Surface_sweep_2/Arr_insertion_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Surface_sweep_2/Arr_insertion_traits_2.h $ // $Id: Arr_insertion_traits_2.h 4158542 2020-04-01T12:31:51+03:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_sweep_2/Arr_no_intersection_insertion_ss_visitor.h cgal-5.5/include/CGAL/Surface_sweep_2/Arr_no_intersection_insertion_ss_visitor.h --- cgal-5.4.1/include/CGAL/Surface_sweep_2/Arr_no_intersection_insertion_ss_visitor.h 2022-06-03 19:03:45.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_sweep_2/Arr_no_intersection_insertion_ss_visitor.h 2022-07-13 19:04:31.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Surface_sweep_2/Arr_no_intersection_insertion_ss_visitor.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Surface_sweep_2/Arr_no_intersection_insertion_ss_visitor.h $ // $Id: Arr_no_intersection_insertion_ss_visitor.h 6e1fc8a 2021-09-02T16:53:07+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_sweep_2/Arr_overlay_event.h cgal-5.5/include/CGAL/Surface_sweep_2/Arr_overlay_event.h --- cgal-5.4.1/include/CGAL/Surface_sweep_2/Arr_overlay_event.h 2022-06-03 19:03:45.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_sweep_2/Arr_overlay_event.h 2022-07-13 19:04:31.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Surface_sweep_2/Arr_overlay_event.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Surface_sweep_2/Arr_overlay_event.h $ // $Id: Arr_overlay_event.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_sweep_2/Arr_overlay_ss_visitor.h cgal-5.5/include/CGAL/Surface_sweep_2/Arr_overlay_ss_visitor.h --- cgal-5.4.1/include/CGAL/Surface_sweep_2/Arr_overlay_ss_visitor.h 2022-06-03 19:03:46.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_sweep_2/Arr_overlay_ss_visitor.h 2022-07-13 19:04:31.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Surface_sweep_2/Arr_overlay_ss_visitor.h $ -// $Id: Arr_overlay_ss_visitor.h 6e1fc8a 2021-09-02T16:53:07+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Surface_sweep_2/Arr_overlay_ss_visitor.h $ +// $Id: Arr_overlay_ss_visitor.h 4ffc949 2022-02-03T17:11:20+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -24,9 +24,10 @@ #include #include -#include #include +#include + #include #include #include @@ -114,7 +115,7 @@ Halfedge_map; typedef std::pair Handle_info; - typedef boost::unordered_map + typedef std::unordered_map Vertex_map; // Side categoties: diff -Nru cgal-5.4.1/include/CGAL/Surface_sweep_2/Arr_overlay_subcurve.h cgal-5.5/include/CGAL/Surface_sweep_2/Arr_overlay_subcurve.h --- cgal-5.4.1/include/CGAL/Surface_sweep_2/Arr_overlay_subcurve.h 2022-06-03 19:03:46.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_sweep_2/Arr_overlay_subcurve.h 2022-07-13 19:04:31.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Surface_sweep_2/Arr_overlay_subcurve.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Surface_sweep_2/Arr_overlay_subcurve.h $ // $Id: Arr_overlay_subcurve.h b0c3c84 2019-12-18T09:05:45+02:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_sweep_2/Arr_overlay_traits_2.h cgal-5.5/include/CGAL/Surface_sweep_2/Arr_overlay_traits_2.h --- cgal-5.4.1/include/CGAL/Surface_sweep_2/Arr_overlay_traits_2.h 2022-06-03 19:03:46.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_sweep_2/Arr_overlay_traits_2.h 2022-07-13 19:04:31.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Surface_sweep_2/Arr_overlay_traits_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Surface_sweep_2/Arr_overlay_traits_2.h $ // $Id: Arr_overlay_traits_2.h 6b64dc8 2020-11-11T09:38:55+02:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_sweep_2/Arr_vert_decomp_ss_visitor.h cgal-5.5/include/CGAL/Surface_sweep_2/Arr_vert_decomp_ss_visitor.h --- cgal-5.4.1/include/CGAL/Surface_sweep_2/Arr_vert_decomp_ss_visitor.h 2022-06-03 19:03:46.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_sweep_2/Arr_vert_decomp_ss_visitor.h 2022-07-13 19:04:31.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Arrangement_on_surface_2/include/CGAL/Surface_sweep_2/Arr_vert_decomp_ss_visitor.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Surface_sweep_2/Arr_vert_decomp_ss_visitor.h $ // $Id: Arr_vert_decomp_ss_visitor.h 5985db1 2021-07-28T16:17:10+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_sweep_2/Curve_comparer.h cgal-5.5/include/CGAL/Surface_sweep_2/Curve_comparer.h --- cgal-5.4.1/include/CGAL/Surface_sweep_2/Curve_comparer.h 2022-06-03 19:06:01.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_sweep_2/Curve_comparer.h 2022-07-13 19:06:58.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_sweep_2/include/CGAL/Surface_sweep_2/Curve_comparer.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_sweep_2/include/CGAL/Surface_sweep_2/Curve_comparer.h $ // $Id: Curve_comparer.h 2a3fbc0 2019-11-19T09:47:44+02:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_sweep_2/Default_event_base.h cgal-5.5/include/CGAL/Surface_sweep_2/Default_event_base.h --- cgal-5.4.1/include/CGAL/Surface_sweep_2/Default_event_base.h 2022-06-03 19:06:01.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_sweep_2/Default_event_base.h 2022-07-13 19:06:58.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_sweep_2/include/CGAL/Surface_sweep_2/Default_event_base.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_sweep_2/include/CGAL/Surface_sweep_2/Default_event_base.h $ // $Id: Default_event_base.h 092cf8e 2019-10-25T16:26:17+02:00 Laurent Rineau // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_sweep_2/Default_event.h cgal-5.5/include/CGAL/Surface_sweep_2/Default_event.h --- cgal-5.4.1/include/CGAL/Surface_sweep_2/Default_event.h 2022-06-03 19:06:01.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_sweep_2/Default_event.h 2022-07-13 19:06:58.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_sweep_2/include/CGAL/Surface_sweep_2/Default_event.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_sweep_2/include/CGAL/Surface_sweep_2/Default_event.h $ // $Id: Default_event.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_sweep_2/Default_subcurve.h cgal-5.5/include/CGAL/Surface_sweep_2/Default_subcurve.h --- cgal-5.4.1/include/CGAL/Surface_sweep_2/Default_subcurve.h 2022-06-03 19:06:01.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_sweep_2/Default_subcurve.h 2022-07-13 19:06:58.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_sweep_2/include/CGAL/Surface_sweep_2/Default_subcurve.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_sweep_2/include/CGAL/Surface_sweep_2/Default_subcurve.h $ // $Id: Default_subcurve.h a3d04af 2021-07-28T16:19:20+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_sweep_2/Default_visitor_base.h cgal-5.5/include/CGAL/Surface_sweep_2/Default_visitor_base.h --- cgal-5.4.1/include/CGAL/Surface_sweep_2/Default_visitor_base.h 2022-06-03 19:06:01.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_sweep_2/Default_visitor_base.h 2022-07-13 19:06:58.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_sweep_2/include/CGAL/Surface_sweep_2/Default_visitor_base.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_sweep_2/include/CGAL/Surface_sweep_2/Default_visitor_base.h $ // $Id: Default_visitor_base.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_sweep_2/Default_visitor.h cgal-5.5/include/CGAL/Surface_sweep_2/Default_visitor.h --- cgal-5.4.1/include/CGAL/Surface_sweep_2/Default_visitor.h 2022-06-03 19:06:01.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_sweep_2/Default_visitor.h 2022-07-13 19:06:58.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_sweep_2/include/CGAL/Surface_sweep_2/Default_visitor.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_sweep_2/include/CGAL/Surface_sweep_2/Default_visitor.h $ // $Id: Default_visitor.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_sweep_2/Do_interior_intersect_visitor.h cgal-5.5/include/CGAL/Surface_sweep_2/Do_interior_intersect_visitor.h --- cgal-5.4.1/include/CGAL/Surface_sweep_2/Do_interior_intersect_visitor.h 2022-06-03 19:06:01.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_sweep_2/Do_interior_intersect_visitor.h 2022-07-13 19:06:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_sweep_2/include/CGAL/Surface_sweep_2/Do_interior_intersect_visitor.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_sweep_2/include/CGAL/Surface_sweep_2/Do_interior_intersect_visitor.h $ // $Id: Do_interior_intersect_visitor.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_sweep_2/Event_comparer.h cgal-5.5/include/CGAL/Surface_sweep_2/Event_comparer.h --- cgal-5.4.1/include/CGAL/Surface_sweep_2/Event_comparer.h 2022-06-03 19:06:01.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_sweep_2/Event_comparer.h 2022-07-13 19:06:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_sweep_2/include/CGAL/Surface_sweep_2/Event_comparer.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_sweep_2/include/CGAL/Surface_sweep_2/Event_comparer.h $ // $Id: Event_comparer.h 4c15a1c 2021-10-18T11:15:14+01:00 Michael Bell // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_sweep_2/Intersection_points_visitor.h cgal-5.5/include/CGAL/Surface_sweep_2/Intersection_points_visitor.h --- cgal-5.4.1/include/CGAL/Surface_sweep_2/Intersection_points_visitor.h 2022-06-03 19:06:01.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_sweep_2/Intersection_points_visitor.h 2022-07-13 19:06:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_sweep_2/include/CGAL/Surface_sweep_2/Intersection_points_visitor.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_sweep_2/include/CGAL/Surface_sweep_2/Intersection_points_visitor.h $ // $Id: Intersection_points_visitor.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_sweep_2/No_intersection_surface_sweep_2_impl.h cgal-5.5/include/CGAL/Surface_sweep_2/No_intersection_surface_sweep_2_impl.h --- cgal-5.4.1/include/CGAL/Surface_sweep_2/No_intersection_surface_sweep_2_impl.h 2022-06-03 19:06:01.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_sweep_2/No_intersection_surface_sweep_2_impl.h 2022-07-13 19:06:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_sweep_2/include/CGAL/Surface_sweep_2/No_intersection_surface_sweep_2_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_sweep_2/include/CGAL/Surface_sweep_2/No_intersection_surface_sweep_2_impl.h $ // $Id: No_intersection_surface_sweep_2_impl.h facabca 2021-09-10T17:47:17+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_sweep_2/No_overlap_event_base.h cgal-5.5/include/CGAL/Surface_sweep_2/No_overlap_event_base.h --- cgal-5.4.1/include/CGAL/Surface_sweep_2/No_overlap_event_base.h 2022-06-03 19:06:01.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_sweep_2/No_overlap_event_base.h 2022-07-13 19:06:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_sweep_2/include/CGAL/Surface_sweep_2/No_overlap_event_base.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_sweep_2/include/CGAL/Surface_sweep_2/No_overlap_event_base.h $ // $Id: No_overlap_event_base.h efa642a 2021-03-25T15:43:48+02:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_sweep_2/No_overlap_event.h cgal-5.5/include/CGAL/Surface_sweep_2/No_overlap_event.h --- cgal-5.4.1/include/CGAL/Surface_sweep_2/No_overlap_event.h 2022-06-03 19:06:01.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_sweep_2/No_overlap_event.h 2022-07-13 19:06:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_sweep_2/include/CGAL/Surface_sweep_2/No_overlap_event.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_sweep_2/include/CGAL/Surface_sweep_2/No_overlap_event.h $ // $Id: No_overlap_event.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_sweep_2/No_overlap_subcurve.h cgal-5.5/include/CGAL/Surface_sweep_2/No_overlap_subcurve.h --- cgal-5.4.1/include/CGAL/Surface_sweep_2/No_overlap_subcurve.h 2022-06-03 19:06:01.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_sweep_2/No_overlap_subcurve.h 2022-07-13 19:06:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_sweep_2/include/CGAL/Surface_sweep_2/No_overlap_subcurve.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_sweep_2/include/CGAL/Surface_sweep_2/No_overlap_subcurve.h $ // $Id: No_overlap_subcurve.h a3d04af 2021-07-28T16:19:20+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_sweep_2/Random_access_output_iterator.h cgal-5.5/include/CGAL/Surface_sweep_2/Random_access_output_iterator.h --- cgal-5.4.1/include/CGAL/Surface_sweep_2/Random_access_output_iterator.h 2022-06-03 19:06:01.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_sweep_2/Random_access_output_iterator.h 2022-07-13 19:06:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_sweep_2/include/CGAL/Surface_sweep_2/Random_access_output_iterator.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_sweep_2/include/CGAL/Surface_sweep_2/Random_access_output_iterator.h $ // $Id: Random_access_output_iterator.h 2c490b7 2020-10-20T15:17:24+02:00 Simon Giraudot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_sweep_2/Subcurves_visitor.h cgal-5.5/include/CGAL/Surface_sweep_2/Subcurves_visitor.h --- cgal-5.4.1/include/CGAL/Surface_sweep_2/Subcurves_visitor.h 2022-06-03 19:06:01.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_sweep_2/Subcurves_visitor.h 2022-07-13 19:06:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_sweep_2/include/CGAL/Surface_sweep_2/Subcurves_visitor.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_sweep_2/include/CGAL/Surface_sweep_2/Subcurves_visitor.h $ // $Id: Subcurves_visitor.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_sweep_2/Surface_sweep_2_debug.h cgal-5.5/include/CGAL/Surface_sweep_2/Surface_sweep_2_debug.h --- cgal-5.4.1/include/CGAL/Surface_sweep_2/Surface_sweep_2_debug.h 2022-06-03 19:06:01.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_sweep_2/Surface_sweep_2_debug.h 2022-07-13 19:06:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_sweep_2/include/CGAL/Surface_sweep_2/Surface_sweep_2_debug.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_sweep_2/include/CGAL/Surface_sweep_2/Surface_sweep_2_debug.h $ // $Id: Surface_sweep_2_debug.h 63e52b0 2021-03-25T15:42:47+02:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_sweep_2/Surface_sweep_2_impl.h cgal-5.5/include/CGAL/Surface_sweep_2/Surface_sweep_2_impl.h --- cgal-5.4.1/include/CGAL/Surface_sweep_2/Surface_sweep_2_impl.h 2022-06-03 19:06:01.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_sweep_2/Surface_sweep_2_impl.h 2022-07-13 19:06:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_sweep_2/include/CGAL/Surface_sweep_2/Surface_sweep_2_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_sweep_2/include/CGAL/Surface_sweep_2/Surface_sweep_2_impl.h $ // $Id: Surface_sweep_2_impl.h 89e6a98 2021-03-26T09:26:36+03:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_sweep_2/Surface_sweep_2_utils.h cgal-5.5/include/CGAL/Surface_sweep_2/Surface_sweep_2_utils.h --- cgal-5.4.1/include/CGAL/Surface_sweep_2/Surface_sweep_2_utils.h 2022-06-03 19:06:01.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_sweep_2/Surface_sweep_2_utils.h 2022-07-13 19:06:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_sweep_2/include/CGAL/Surface_sweep_2/Surface_sweep_2_utils.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_sweep_2/include/CGAL/Surface_sweep_2/Surface_sweep_2_utils.h $ // $Id: Surface_sweep_2_utils.h 708469f 2020-06-12T14:06:58+03:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_sweep_2_algorithms.h cgal-5.5/include/CGAL/Surface_sweep_2_algorithms.h --- cgal-5.4.1/include/CGAL/Surface_sweep_2_algorithms.h 2022-06-03 19:06:01.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_sweep_2_algorithms.h 2022-07-13 19:06:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_sweep_2/include/CGAL/Surface_sweep_2_algorithms.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_sweep_2/include/CGAL/Surface_sweep_2_algorithms.h $ // $Id: Surface_sweep_2_algorithms.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Surface_sweep_2.h cgal-5.5/include/CGAL/Surface_sweep_2.h --- cgal-5.4.1/include/CGAL/Surface_sweep_2.h 2022-06-03 19:06:01.000000000 +0000 +++ cgal-5.5/include/CGAL/Surface_sweep_2.h 2022-07-13 19:06:58.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_sweep_2/include/CGAL/Surface_sweep_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_sweep_2/include/CGAL/Surface_sweep_2.h $ // $Id: Surface_sweep_2.h 6b64dc8 2020-11-11T09:38:55+02:00 Efi Fogel // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Sweep_line_2_algorithms.h cgal-5.5/include/CGAL/Sweep_line_2_algorithms.h --- cgal-5.4.1/include/CGAL/Sweep_line_2_algorithms.h 2022-06-03 19:06:02.000000000 +0000 +++ cgal-5.5/include/CGAL/Sweep_line_2_algorithms.h 2022-07-13 19:06:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_sweep_2/include/CGAL/Sweep_line_2_algorithms.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_sweep_2/include/CGAL/Sweep_line_2_algorithms.h $ // $Id: Sweep_line_2_algorithms.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/sweep_observer.h cgal-5.5/include/CGAL/sweep_observer.h --- cgal-5.4.1/include/CGAL/sweep_observer.h 2022-06-03 19:04:54.000000000 +0000 +++ cgal-5.5/include/CGAL/sweep_observer.h 2022-07-13 19:05:47.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Nef_2/include/CGAL/sweep_observer.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_2/include/CGAL/sweep_observer.h $ // $Id: sweep_observer.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/tags.h cgal-5.5/include/CGAL/tags.h --- cgal-5.4.1/include/CGAL/tags.h 2022-06-03 19:05:33.000000000 +0000 +++ cgal-5.5/include/CGAL/tags.h 2022-07-13 19:06:29.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/tags.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/tags.h $ // $Id: tags.h 8bb22d5 2020-03-26T14:23:37+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/TDS_2/internal/Edge_hash_function.h cgal-5.5/include/CGAL/TDS_2/internal/Edge_hash_function.h --- cgal-5.4.1/include/CGAL/TDS_2/internal/Edge_hash_function.h 2022-06-03 19:06:02.000000000 +0000 +++ cgal-5.5/include/CGAL/TDS_2/internal/Edge_hash_function.h 2022-07-13 19:06:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/TDS_2/include/CGAL/TDS_2/internal/Edge_hash_function.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/TDS_2/include/CGAL/TDS_2/internal/Edge_hash_function.h $ // $Id: Edge_hash_function.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/TDS_2/internal/edge_list.h cgal-5.5/include/CGAL/TDS_2/internal/edge_list.h --- cgal-5.4.1/include/CGAL/TDS_2/internal/edge_list.h 2022-06-03 19:06:02.000000000 +0000 +++ cgal-5.5/include/CGAL/TDS_2/internal/edge_list.h 2022-07-13 19:06:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/TDS_2/include/CGAL/TDS_2/internal/edge_list.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/TDS_2/include/CGAL/TDS_2/internal/edge_list.h $ // $Id: edge_list.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/TDS_3/internal/Dummy_tds_3.h cgal-5.5/include/CGAL/TDS_3/internal/Dummy_tds_3.h --- cgal-5.4.1/include/CGAL/TDS_3/internal/Dummy_tds_3.h 2022-06-03 19:06:03.000000000 +0000 +++ cgal-5.5/include/CGAL/TDS_3/internal/Dummy_tds_3.h 2022-07-13 19:07:00.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/TDS_3/include/CGAL/TDS_3/internal/Dummy_tds_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/TDS_3/include/CGAL/TDS_3/internal/Dummy_tds_3.h $ // $Id: Dummy_tds_3.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/TDS_3/internal/Triangulation_ds_circulators_3.h cgal-5.5/include/CGAL/TDS_3/internal/Triangulation_ds_circulators_3.h --- cgal-5.4.1/include/CGAL/TDS_3/internal/Triangulation_ds_circulators_3.h 2022-06-03 19:06:03.000000000 +0000 +++ cgal-5.5/include/CGAL/TDS_3/internal/Triangulation_ds_circulators_3.h 2022-07-13 19:07:00.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/TDS_3/include/CGAL/TDS_3/internal/Triangulation_ds_circulators_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/TDS_3/include/CGAL/TDS_3/internal/Triangulation_ds_circulators_3.h $ // $Id: Triangulation_ds_circulators_3.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/TDS_3/internal/Triangulation_ds_iterators_3.h cgal-5.5/include/CGAL/TDS_3/internal/Triangulation_ds_iterators_3.h --- cgal-5.4.1/include/CGAL/TDS_3/internal/Triangulation_ds_iterators_3.h 2022-06-03 19:06:03.000000000 +0000 +++ cgal-5.5/include/CGAL/TDS_3/internal/Triangulation_ds_iterators_3.h 2022-07-13 19:07:00.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/TDS_3/include/CGAL/TDS_3/internal/Triangulation_ds_iterators_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/TDS_3/include/CGAL/TDS_3/internal/Triangulation_ds_iterators_3.h $ // $Id: Triangulation_ds_iterators_3.h 524ce8f 2021-09-29T11:46:55+02:00 Laurent Rineau // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/TDS_full_cell_default_storage_policy.h cgal-5.5/include/CGAL/TDS_full_cell_default_storage_policy.h --- cgal-5.4.1/include/CGAL/TDS_full_cell_default_storage_policy.h 2022-06-03 19:06:05.000000000 +0000 +++ cgal-5.5/include/CGAL/TDS_full_cell_default_storage_policy.h 2022-07-13 19:07:03.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation/include/CGAL/TDS_full_cell_default_storage_policy.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation/include/CGAL/TDS_full_cell_default_storage_policy.h $ // $Id: TDS_full_cell_default_storage_policy.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/TDS_full_cell_mirror_storage_policy.h cgal-5.5/include/CGAL/TDS_full_cell_mirror_storage_policy.h --- cgal-5.4.1/include/CGAL/TDS_full_cell_mirror_storage_policy.h 2022-06-03 19:06:05.000000000 +0000 +++ cgal-5.5/include/CGAL/TDS_full_cell_mirror_storage_policy.h 2022-07-13 19:07:03.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation/include/CGAL/TDS_full_cell_mirror_storage_policy.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation/include/CGAL/TDS_full_cell_mirror_storage_policy.h $ // $Id: TDS_full_cell_mirror_storage_policy.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/test_FPU_rounding_mode_impl.h cgal-5.5/include/CGAL/test_FPU_rounding_mode_impl.h --- cgal-5.4.1/include/CGAL/test_FPU_rounding_mode_impl.h 2022-06-03 19:05:02.000000000 +0000 +++ cgal-5.5/include/CGAL/test_FPU_rounding_mode_impl.h 2022-07-13 19:05:56.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/test_FPU_rounding_mode_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/test_FPU_rounding_mode_impl.h $ // $Id: test_FPU_rounding_mode_impl.h a08470b 2020-11-03T10:14:42+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Tetrahedral_remeshing/internal/collapse_short_edges.h cgal-5.5/include/CGAL/Tetrahedral_remeshing/internal/collapse_short_edges.h --- cgal-5.4.1/include/CGAL/Tetrahedral_remeshing/internal/collapse_short_edges.h 2022-06-03 19:06:03.000000000 +0000 +++ cgal-5.5/include/CGAL/Tetrahedral_remeshing/internal/collapse_short_edges.h 2022-07-13 19:07:01.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/internal/collapse_short_edges.h $ -// $Id: collapse_short_edges.h 086299c 2021-01-08T10:39:24+01:00 Dmitry Anisimov +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/internal/collapse_short_edges.h $ +// $Id: collapse_short_edges.h 4ffc949 2022-02-03T17:11:20+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -19,12 +19,13 @@ #include #include #include -#include #include +#include #include #include #include +#include #include #include @@ -157,7 +158,7 @@ v0_new_pos = vec(point(vh1->point())); } - boost::unordered_set invalid_cells; + std::unordered_set invalid_cells; typedef typename Tr::Cell_circulator Cell_circulator; Cell_circulator circ = triangulation.incident_cells(edge); @@ -554,12 +555,12 @@ typename Tr::Geom_traits::Construct_normal_3 normal = gt.construct_normal_3_object(); - boost::unordered_set facets; + std::unordered_set> facets; tr.finite_incident_facets(v0, std::inserter(facets, facets.end())); tr.finite_incident_facets(v1, std::inserter(facets, facets.end())); // note : checking a 2nd ring of facets does not change the result -// boost::unordered_set ring2; +// std::unordered_set> ring2; // for (const Facet& f : facets) // { // for (int i = 1; i < 4; ++i) @@ -671,7 +672,7 @@ const Vertex_handle v1 = edge.first->vertex(edge.second); const Vertex_handle v2 = edge.first->vertex(edge.third); - boost::unordered_map edges_sqlength_after_collapse; + std::unordered_map edges_sqlength_after_collapse; std::vector inc_edges; c3t3.triangulation().finite_incident_edges(v1, @@ -790,7 +791,7 @@ bool valid = true; std::vector cells_to_remove; - boost::unordered_set invalid_cells; + std::unordered_set invalid_cells; for(const Cell_handle& c : inc_cells) { @@ -988,7 +989,7 @@ typedef std::array FV; typedef std::pair EV; - boost::unordered_map facets; + std::unordered_map> facets; for (Cell_handle c : cells) { for (int i = 0; i < 4; ++i) @@ -996,7 +997,7 @@ const FV fvi = make_vertex_array(c->vertex((i + 1) % 4), c->vertex((i + 2) % 4), c->vertex((i + 3) % 4)); - typename boost::unordered_map::iterator fit = facets.find(fvi); + typename std::unordered_map>::iterator fit = facets.find(fvi); if (fit == facets.end()) facets.insert(std::make_pair(fvi, 1)); else @@ -1004,7 +1005,7 @@ } } - boost::unordered_map edges; + std::unordered_map> edges; for (const auto& fvv : facets) { if (fvv.second != 1) @@ -1013,7 +1014,7 @@ for (int i = 0; i < 3; ++i) { const EV evi = make_vertex_pair(fvv.first[i], fvv.first[(i + 1) % 3]); - typename boost::unordered_map::iterator eit = edges.find(evi); + typename std::unordered_map>::iterator eit = edges.find(evi); if (eit == edges.end()) edges.insert(std::make_pair(evi, 1)); else diff -Nru cgal-5.4.1/include/CGAL/Tetrahedral_remeshing/internal/compute_c3t3_statistics.h cgal-5.5/include/CGAL/Tetrahedral_remeshing/internal/compute_c3t3_statistics.h --- cgal-5.4.1/include/CGAL/Tetrahedral_remeshing/internal/compute_c3t3_statistics.h 2022-06-03 19:06:03.000000000 +0000 +++ cgal-5.5/include/CGAL/Tetrahedral_remeshing/internal/compute_c3t3_statistics.h 2022-07-13 19:07:01.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/internal/compute_c3t3_statistics.h $ -// $Id: compute_c3t3_statistics.h ab05dde 2020-06-12T08:08:56+02:00 Jane Tournois +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/internal/compute_c3t3_statistics.h $ +// $Id: compute_c3t3_statistics.h 4ffc949 2022-02-03T17:11:20+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -19,8 +19,7 @@ #include #include #include - -#include +#include #include @@ -46,8 +45,6 @@ std::size_t nb_edges = 0; double total_edges = 0; - std::size_t nb_angle = 0; - double total_angle = 0; double min_edges_length = (std::numeric_limits::max)(); double max_edges_length = 0.; @@ -89,7 +86,7 @@ = tr.geom_traits().compute_approximate_dihedral_angle_3_object(); std::size_t nb_tets = 0; - boost::unordered_set selected_vertices; + std::unordered_set selected_vertices; std::vector sub_ids; for (Finite_cells_iterator cit = tr.finite_cells_begin(); cit != tr.finite_cells_end(); @@ -156,33 +153,27 @@ double a = CGAL::to_double(CGAL::abs(approx_dihedral_angle(p0, p1, p2, p3))); if (a < min_dihedral_angle) { min_dihedral_angle = a; } if (a > max_dihedral_angle) { max_dihedral_angle = a; } - total_angle += a; - ++nb_angle; + a = CGAL::to_double(CGAL::abs(approx_dihedral_angle(p0, p2, p1, p3))); if (a < min_dihedral_angle) { min_dihedral_angle = a; } if (a > max_dihedral_angle) { max_dihedral_angle = a; } - total_angle += a; - ++nb_angle; + a = CGAL::to_double(CGAL::abs(approx_dihedral_angle(p0, p3, p1, p2))); if (a < min_dihedral_angle) { min_dihedral_angle = a; } if (a > max_dihedral_angle) { max_dihedral_angle = a; } - total_angle += a; - ++nb_angle; + a = CGAL::to_double(CGAL::abs(approx_dihedral_angle(p1, p2, p0, p3))); if (a < min_dihedral_angle) { min_dihedral_angle = a; } if (a > max_dihedral_angle) { max_dihedral_angle = a; } - total_angle += a; - ++nb_angle; + a = CGAL::to_double(CGAL::abs(approx_dihedral_angle(p1, p3, p0, p2))); if (a < min_dihedral_angle) { min_dihedral_angle = a; } if (a > max_dihedral_angle) { max_dihedral_angle = a; } - total_angle += a; - ++nb_angle; + a = CGAL::to_double(CGAL::abs(approx_dihedral_angle(p2, p3, p0, p1))); if (a < min_dihedral_angle) { min_dihedral_angle = a; } if (a > max_dihedral_angle) { max_dihedral_angle = a; } - total_angle += a; - ++nb_angle; + } std::size_t nb_subdomains = sub_ids.size(); diff -Nru cgal-5.4.1/include/CGAL/Tetrahedral_remeshing/internal/flip_edges.h cgal-5.5/include/CGAL/Tetrahedral_remeshing/internal/flip_edges.h --- cgal-5.4.1/include/CGAL/Tetrahedral_remeshing/internal/flip_edges.h 2022-06-03 19:06:03.000000000 +0000 +++ cgal-5.5/include/CGAL/Tetrahedral_remeshing/internal/flip_edges.h 2022-07-13 19:07:01.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/internal/flip_edges.h $ -// $Id: flip_edges.h 7c4a61e 2020-10-09T16:50:14+02:00 Laurent Rineau +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/internal/flip_edges.h $ +// $Id: flip_edges.h 4ffc949 2022-02-03T17:11:20+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -20,11 +20,12 @@ #include -#include -#include #include #include +#include +#include +#include #include #include @@ -226,8 +227,8 @@ //Keep the facets typedef CGAL::Triple Facet_vvv; - typedef boost::unordered_map FaceMapIndex; - boost::unordered_set outer_mirror_facets; + typedef std::unordered_map FaceMapIndex; + std::unordered_set> outer_mirror_facets; FaceMapIndex facet_map_indices; std::vector mirror_facets; @@ -782,7 +783,7 @@ boost::container::small_vector to_remove; //Neighbors that will need to be updated after flip - boost::unordered_set neighbor_facets; + std::unordered_set> neighbor_facets; //Facets that will be used to create new cells // i.e. all the facets opposite to vh1 and don't have vh @@ -895,7 +896,7 @@ } typedef CGAL::Triple Facet_vvv; - typedef boost::unordered_map FaceMapIndex; + typedef std::unordered_map FaceMapIndex; FaceMapIndex facet_map_indices; std::vector facets; @@ -1092,12 +1093,12 @@ Facet_circulator done = circ; //Identify the vertices around this edge - boost::unordered_set vertices_around_edge; + std::unordered_set vertices_around_edge; bool boundary_edge = false; bool hull_edge = false; - boost::unordered_set boundary_vertices; -// boost::unordered_set hull_vertices; + std::unordered_set boundary_vertices; +// std::unordered_set hull_vertices; do { //Get the ids of the opposite vertices @@ -1242,7 +1243,7 @@ //compute vertices normals map? // typedef typename C3T3::Surface_patch_index Surface_patch_index; - // typedef boost::unordered_map Spi_map; + // typedef std::unordered_map Spi_map; //if (!protect_boundaries) //{ // std::cout << "\tBoundary flips" << std::endl; diff -Nru cgal-5.4.1/include/CGAL/Tetrahedral_remeshing/internal/FMLS.h cgal-5.5/include/CGAL/Tetrahedral_remeshing/internal/FMLS.h --- cgal-5.4.1/include/CGAL/Tetrahedral_remeshing/internal/FMLS.h 2022-06-03 19:06:03.000000000 +0000 +++ cgal-5.5/include/CGAL/Tetrahedral_remeshing/internal/FMLS.h 2022-07-13 19:07:01.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/internal/FMLS.h $ -// $Id: FMLS.h ba695b9 2021-04-12T16:43:30+02:00 Jane Tournois +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/internal/FMLS.h $ +// $Id: FMLS.h 4ffc949 2022-02-03T17:11:20+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -562,7 +562,7 @@ subdomain_FMLS.clear(); subdomain_FMLS_indices.clear(); - typedef boost::unordered_map SurfaceIndexMap; + typedef std::unordered_map> SurfaceIndexMap; SurfaceIndexMap current_subdomain_FMLS_indices; SurfaceIndexMap subdomain_sample_numbers; diff -Nru cgal-5.4.1/include/CGAL/Tetrahedral_remeshing/internal/smooth_vertices.h cgal-5.5/include/CGAL/Tetrahedral_remeshing/internal/smooth_vertices.h --- cgal-5.4.1/include/CGAL/Tetrahedral_remeshing/internal/smooth_vertices.h 2022-06-03 19:06:03.000000000 +0000 +++ cgal-5.5/include/CGAL/Tetrahedral_remeshing/internal/smooth_vertices.h 2022-07-13 19:07:01.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/internal/smooth_vertices.h $ -// $Id: smooth_vertices.h 086299c 2021-01-08T10:39:24+01:00 Dmitry Anisimov +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/internal/smooth_vertices.h $ +// $Id: smooth_vertices.h 4ffc949 2022-02-03T17:11:20+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -20,10 +20,12 @@ #include #include -#include + #include #include +#include +#include #include #include #include @@ -50,7 +52,7 @@ private: typedef CGAL::Tetrahedral_remeshing::internal::FMLS FMLS; std::vector subdomain_FMLS; - boost::unordered_map subdomain_FMLS_indices; + std::unordered_map> subdomain_FMLS_indices; bool m_smooth_constrained_edges; public: @@ -60,12 +62,12 @@ const bool smooth_constrained_edges) { //collect a map of vertices surface indices - boost::unordered_map > vertices_surface_indices; + std::unordered_map > vertices_surface_indices; collect_vertices_surface_indices(c3t3, vertices_surface_indices); //collect a map of normals at surface vertices - boost::unordered_map > vertices_normals; + std::unordered_map>> vertices_normals; compute_vertices_normals(c3t3, vertices_normals, cell_selector); // Build MLS Surfaces @@ -152,7 +154,7 @@ const Tr& tr = c3t3.triangulation(); //collect all facet normals - boost::unordered_map fnormals; + std::unordered_map> fnormals; for (const Facet& f : tr.finite_facets()) { if (is_boundary(c3t3, f, cell_selector)) @@ -246,8 +248,8 @@ #ifdef CGAL_TETRAHEDRAL_REMESHING_DEBUG osf.close(); std::ofstream os("dump_normals.polylines.txt"); - boost::unordered_map > ons_map; + std::unordered_map, boost::hash > ons_map; #endif //normalize the computed normals @@ -376,7 +378,7 @@ void collect_vertices_surface_indices( const C3t3& c3t3, - boost::unordered_map >& vertices_surface_indices) { for (typename C3t3::Facets_in_complex_iterator @@ -423,18 +425,18 @@ Tr& tr = c3t3.triangulation(); //collect a map of vertices surface indices - boost::unordered_map > vertices_surface_indices; + std::unordered_map > vertices_surface_indices; if(m_smooth_constrained_edges) collect_vertices_surface_indices(c3t3, vertices_surface_indices); //collect a map of normals at surface vertices - boost::unordered_map > vertices_normals; + std::unordered_map>> vertices_normals; compute_vertices_normals(c3t3, vertices_normals, cell_selector); //smooth() const std::size_t nbv = tr.number_of_vertices(); - boost::unordered_map vertex_id; + std::unordered_map vertex_id; std::vector smoothed_positions(nbv, CGAL::NULL_VECTOR); std::vector neighbors(nbv, -1); std::vector free_vertex(nbv, false);//are vertices free to move? indices are in `vertex_id` diff -Nru cgal-5.4.1/include/CGAL/Tetrahedral_remeshing/internal/split_long_edges.h cgal-5.5/include/CGAL/Tetrahedral_remeshing/internal/split_long_edges.h --- cgal-5.4.1/include/CGAL/Tetrahedral_remeshing/internal/split_long_edges.h 2022-06-03 19:06:03.000000000 +0000 +++ cgal-5.5/include/CGAL/Tetrahedral_remeshing/internal/split_long_edges.h 2022-07-13 19:07:01.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/internal/split_long_edges.h $ -// $Id: split_long_edges.h 0fdfebd 2020-12-17T17:30:17+01:00 Jane Tournois +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/internal/split_long_edges.h $ +// $Id: split_long_edges.h 4ffc949 2022-02-03T17:11:20+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -18,11 +18,12 @@ #include #include #include -#include #include +#include #include +#include #include #include @@ -68,8 +69,8 @@ } CGAL_assertion(dimension > 0); - boost::unordered_map cells_info; - boost::unordered_map > facets_info; + std::unordered_map> cells_info; + std::unordered_map, boost::hash> facets_info; // check orientation and collect incident cells to avoid circulating twice boost::container::small_vector inc_cells; diff -Nru cgal-5.4.1/include/CGAL/Tetrahedral_remeshing/internal/tetrahedral_adaptive_remeshing_impl.h cgal-5.5/include/CGAL/Tetrahedral_remeshing/internal/tetrahedral_adaptive_remeshing_impl.h --- cgal-5.4.1/include/CGAL/Tetrahedral_remeshing/internal/tetrahedral_adaptive_remeshing_impl.h 2022-06-03 19:06:03.000000000 +0000 +++ cgal-5.5/include/CGAL/Tetrahedral_remeshing/internal/tetrahedral_adaptive_remeshing_impl.h 2022-07-13 19:07:01.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/internal/tetrahedral_adaptive_remeshing_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/internal/tetrahedral_adaptive_remeshing_impl.h $ // $Id: tetrahedral_adaptive_remeshing_impl.h 590ddf8 2021-10-08T15:38:47+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Tetrahedral_remeshing/internal/tetrahedral_remeshing_helpers.h cgal-5.5/include/CGAL/Tetrahedral_remeshing/internal/tetrahedral_remeshing_helpers.h --- cgal-5.4.1/include/CGAL/Tetrahedral_remeshing/internal/tetrahedral_remeshing_helpers.h 2022-06-03 19:06:03.000000000 +0000 +++ cgal-5.5/include/CGAL/Tetrahedral_remeshing/internal/tetrahedral_remeshing_helpers.h 2022-07-13 19:07:01.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/internal/tetrahedral_remeshing_helpers.h $ -// $Id: tetrahedral_remeshing_helpers.h 70058db 2021-05-03T15:30:52+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/internal/tetrahedral_remeshing_helpers.h $ +// $Id: tetrahedral_remeshing_helpers.h 1c1d5d1 2022-02-17T15:10:40+00:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -18,6 +18,7 @@ #include #include #include +#include #include #include @@ -616,7 +617,7 @@ { typedef typename C3t3::Subdomain_index Subdomain_index; - boost::unordered_set indices; + std::unordered_set indices; incident_subdomains(v, c3t3, std::inserter(indices, indices.begin())); return indices.size(); @@ -628,7 +629,7 @@ { typedef typename C3t3::Subdomain_index Subdomain_index; - boost::unordered_set indices; + std::unordered_set indices; incident_subdomains(e, c3t3, std::inserter(indices, indices.begin())); return indices.size(); @@ -640,7 +641,7 @@ { typedef typename C3t3::Surface_patch_index Surface_patch_index; - boost::unordered_set indices; + std::unordered_set> indices; incident_surface_patches(e, c3t3, std::inserter(indices, indices.begin())); return indices.size(); @@ -651,7 +652,7 @@ const C3t3& c3t3) { typedef typename C3t3::Edge Edge; - boost::unordered_set edges; + std::unordered_set edges; c3t3.triangulation().finite_incident_edges(v, std::inserter(edges, edges.begin())); std::size_t count = 0; @@ -1309,7 +1310,7 @@ Bimap_t vertices; int index = 0; - boost::unordered_set > facets; + std::unordered_set, boost::hash> > facets; for (Cell_handle c : cells) { diff -Nru cgal-5.4.1/include/CGAL/Tetrahedral_remeshing/Remeshing_cell_base_3.h cgal-5.5/include/CGAL/Tetrahedral_remeshing/Remeshing_cell_base_3.h --- cgal-5.4.1/include/CGAL/Tetrahedral_remeshing/Remeshing_cell_base_3.h 2022-06-03 19:06:03.000000000 +0000 +++ cgal-5.5/include/CGAL/Tetrahedral_remeshing/Remeshing_cell_base_3.h 2022-07-13 19:07:01.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/Remeshing_cell_base_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/Remeshing_cell_base_3.h $ // $Id: Remeshing_cell_base_3.h ab05dde 2020-06-12T08:08:56+02:00 Jane Tournois // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Tetrahedral_remeshing/Remeshing_triangulation_3.h cgal-5.5/include/CGAL/Tetrahedral_remeshing/Remeshing_triangulation_3.h --- cgal-5.4.1/include/CGAL/Tetrahedral_remeshing/Remeshing_triangulation_3.h 2022-06-03 19:06:03.000000000 +0000 +++ cgal-5.5/include/CGAL/Tetrahedral_remeshing/Remeshing_triangulation_3.h 2022-07-13 19:07:01.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/Remeshing_triangulation_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/Remeshing_triangulation_3.h $ // $Id: Remeshing_triangulation_3.h ab05dde 2020-06-12T08:08:56+02:00 Jane Tournois // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Tetrahedral_remeshing/Remeshing_vertex_base_3.h cgal-5.5/include/CGAL/Tetrahedral_remeshing/Remeshing_vertex_base_3.h --- cgal-5.4.1/include/CGAL/Tetrahedral_remeshing/Remeshing_vertex_base_3.h 2022-06-03 19:06:03.000000000 +0000 +++ cgal-5.5/include/CGAL/Tetrahedral_remeshing/Remeshing_vertex_base_3.h 2022-07-13 19:07:01.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/Remeshing_vertex_base_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/Remeshing_vertex_base_3.h $ // $Id: Remeshing_vertex_base_3.h ab05dde 2020-06-12T08:08:56+02:00 Jane Tournois // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Tetrahedral_remeshing/Sizing_field.h cgal-5.5/include/CGAL/Tetrahedral_remeshing/Sizing_field.h --- cgal-5.4.1/include/CGAL/Tetrahedral_remeshing/Sizing_field.h 2022-06-03 19:06:03.000000000 +0000 +++ cgal-5.5/include/CGAL/Tetrahedral_remeshing/Sizing_field.h 2022-07-13 19:07:01.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/Sizing_field.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/Sizing_field.h $ // $Id: Sizing_field.h ab05dde 2020-06-12T08:08:56+02:00 Jane Tournois // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Tetrahedral_remeshing/tetrahedral_remeshing_io.h cgal-5.5/include/CGAL/Tetrahedral_remeshing/tetrahedral_remeshing_io.h --- cgal-5.4.1/include/CGAL/Tetrahedral_remeshing/tetrahedral_remeshing_io.h 2022-06-03 19:06:03.000000000 +0000 +++ cgal-5.5/include/CGAL/Tetrahedral_remeshing/tetrahedral_remeshing_io.h 2022-07-13 19:07:01.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/tetrahedral_remeshing_io.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/tetrahedral_remeshing_io.h $ // $Id: tetrahedral_remeshing_io.h 4e519a3 2021-05-05T13:15:37+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Tetrahedral_remeshing/Uniform_sizing_field.h cgal-5.5/include/CGAL/Tetrahedral_remeshing/Uniform_sizing_field.h --- cgal-5.4.1/include/CGAL/Tetrahedral_remeshing/Uniform_sizing_field.h 2022-06-03 19:06:03.000000000 +0000 +++ cgal-5.5/include/CGAL/Tetrahedral_remeshing/Uniform_sizing_field.h 2022-07-13 19:07:01.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/Uniform_sizing_field.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/Uniform_sizing_field.h $ // $Id: Uniform_sizing_field.h ab05dde 2020-06-12T08:08:56+02:00 Jane Tournois // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/tetrahedral_remeshing.h cgal-5.5/include/CGAL/tetrahedral_remeshing.h --- cgal-5.4.1/include/CGAL/tetrahedral_remeshing.h 2022-06-03 19:06:03.000000000 +0000 +++ cgal-5.5/include/CGAL/tetrahedral_remeshing.h 2022-07-13 19:07:01.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Tetrahedral_remeshing/include/CGAL/tetrahedral_remeshing.h $ -// $Id: tetrahedral_remeshing.h bfd4e99 2020-09-15T15:42:24+02:00 Jane Tournois +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Tetrahedral_remeshing/include/CGAL/tetrahedral_remeshing.h $ +// $Id: tetrahedral_remeshing.h dbd66a5 2022-03-22T11:38:48+01:00 Jane Tournois // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -23,7 +23,7 @@ #include #include -#include +#include #include #ifdef CGAL_DUMP_REMESHING_STEPS @@ -159,11 +159,11 @@ * @todo implement non-uniform sizing field instead of uniform target edge length */ template + typename NamedParameters = parameters::Default_named_parameters> void tetrahedral_isotropic_remeshing( CGAL::Triangulation_3& tr, const double& target_edge_length, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { typedef CGAL::Triangulation_3 Triangulation; tetrahedral_isotropic_remeshing( @@ -174,11 +174,11 @@ } template + typename NamedParameters = parameters::Default_named_parameters> void tetrahedral_isotropic_remeshing( CGAL::Triangulation_3& tr, const float& target_edge_length, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { typedef CGAL::Triangulation_3 Triangulation; tetrahedral_isotropic_remeshing( @@ -272,6 +272,8 @@ #ifdef CGAL_TETRAHEDRAL_REMESHING_VERBOSE std::cout << "done." << std::endl; +#endif +#ifdef CGAL_TETRAHEDRAL_REMESHING_DEBUG Tetrahedral_remeshing::internal::compute_statistics( remesher.tr(), cell_select, "statistics_begin.txt"); #endif @@ -280,7 +282,7 @@ std::size_t nb_extra_iterations = 3; remesher.remesh(max_it, nb_extra_iterations); -#ifdef CGAL_TETRAHEDRAL_REMESHING_VERBOSE +#ifdef CGAL_TETRAHEDRAL_REMESHING_DEBUG const double angle_bound = 5.0; Tetrahedral_remeshing::debug::dump_cells_with_small_dihedral_angle(tr, angle_bound, cell_select, "bad_cells.mesh"); @@ -289,15 +291,6 @@ #endif } -template -void tetrahedral_isotropic_remeshing( - CGAL::Triangulation_3& tr, - const double& target_edge_length) -{ - tetrahedral_isotropic_remeshing(tr, target_edge_length, - CGAL::parameters::all_default()); -} - /*! * \ingroup PkgTetrahedralRemeshingRef * converts the triangulation contained in the input to a `Triangulation_3`. @@ -348,11 +341,11 @@ /////// template + typename NamedParameters = parameters::Default_named_parameters> void tetrahedral_isotropic_remeshing( CGAL::Mesh_complex_3_in_triangulation_3& c3t3, const double& target_edge_length, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { tetrahedral_isotropic_remeshing( c3t3, @@ -363,11 +356,11 @@ template + typename NamedParameters = parameters::Default_named_parameters> void tetrahedral_isotropic_remeshing( CGAL::Mesh_complex_3_in_triangulation_3& c3t3, const float& target_edge_length, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values) { tetrahedral_isotropic_remeshing( c3t3, @@ -377,23 +370,13 @@ } template -void tetrahedral_isotropic_remeshing( - CGAL::Mesh_complex_3_in_triangulation_3& c3t3, - const double& target_edge_length) -{ - return tetrahedral_isotropic_remeshing(c3t3, target_edge_length, - CGAL::parameters::all_default()); -} - -template + typename NamedParameters = parameters::Default_named_parameters> void tetrahedral_isotropic_remeshing( CGAL::Mesh_complex_3_in_triangulation_3& c3t3, const SizingFunction& sizing, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { CGAL_assertion(c3t3.triangulation().tds().is_valid(true)); diff -Nru cgal-5.4.1/include/CGAL/Tetrahedron_3.h cgal-5.5/include/CGAL/Tetrahedron_3.h --- cgal-5.4.1/include/CGAL/Tetrahedron_3.h 2022-06-03 19:04:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Tetrahedron_3.h 2022-07-13 19:05:24.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Tetrahedron_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Tetrahedron_3.h $ // $Id: Tetrahedron_3.h 8fa0f55 2021-05-27T10:27:38+02:00 Laurent Rineau // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/thread.h cgal-5.5/include/CGAL/thread.h --- cgal-5.4.1/include/CGAL/thread.h 2022-06-03 19:05:33.000000000 +0000 +++ cgal-5.5/include/CGAL/thread.h 2022-07-13 19:06:29.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/thread.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/thread.h $ // $Id: thread.h 288c283 2021-08-30T19:24:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Three/Buffer_objects.h cgal-5.5/include/CGAL/Three/Buffer_objects.h --- cgal-5.4.1/include/CGAL/Three/Buffer_objects.h 2022-06-03 19:06:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Three/Buffer_objects.h 2022-07-13 19:07:01.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Three/include/CGAL/Three/Buffer_objects.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Three/include/CGAL/Three/Buffer_objects.h $ // $Id: Buffer_objects.h 26355e2 2020-06-25T12:31:21+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Three/Edge_container.h cgal-5.5/include/CGAL/Three/Edge_container.h --- cgal-5.4.1/include/CGAL/Three/Edge_container.h 2022-06-03 19:06:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Three/Edge_container.h 2022-07-13 19:07:01.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Three/include/CGAL/Three/Edge_container.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Three/include/CGAL/Three/Edge_container.h $ // $Id: Edge_container.h f79ec02 2021-06-28T13:11:28+02:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Three/exceptions.h cgal-5.5/include/CGAL/Three/exceptions.h --- cgal-5.4.1/include/CGAL/Three/exceptions.h 2022-06-03 19:06:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Three/exceptions.h 2022-07-13 19:07:02.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Three/include/CGAL/Three/exceptions.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Three/include/CGAL/Three/exceptions.h $ // $Id: exceptions.h 2478b85 2021-11-04T09:14:02+01:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Three/Point_container.h cgal-5.5/include/CGAL/Three/Point_container.h --- cgal-5.4.1/include/CGAL/Three/Point_container.h 2022-06-03 19:06:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Three/Point_container.h 2022-07-13 19:07:01.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Three/include/CGAL/Three/Point_container.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Three/include/CGAL/Three/Point_container.h $ // $Id: Point_container.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Three/Polyhedron_demo_io_plugin_interface.h cgal-5.5/include/CGAL/Three/Polyhedron_demo_io_plugin_interface.h --- cgal-5.4.1/include/CGAL/Three/Polyhedron_demo_io_plugin_interface.h 2022-06-03 19:06:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Three/Polyhedron_demo_io_plugin_interface.h 2022-07-13 19:07:01.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Three/include/CGAL/Three/Polyhedron_demo_io_plugin_interface.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Three/include/CGAL/Three/Polyhedron_demo_io_plugin_interface.h $ // $Id: Polyhedron_demo_io_plugin_interface.h 26355e2 2020-06-25T12:31:21+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Three/Polyhedron_demo_plugin_helper.h cgal-5.5/include/CGAL/Three/Polyhedron_demo_plugin_helper.h --- cgal-5.4.1/include/CGAL/Three/Polyhedron_demo_plugin_helper.h 2022-06-03 19:06:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Three/Polyhedron_demo_plugin_helper.h 2022-07-13 19:07:01.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Three/include/CGAL/Three/Polyhedron_demo_plugin_helper.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Three/include/CGAL/Three/Polyhedron_demo_plugin_helper.h $ // $Id: Polyhedron_demo_plugin_helper.h 26355e2 2020-06-25T12:31:21+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Three/Polyhedron_demo_plugin_interface.h cgal-5.5/include/CGAL/Three/Polyhedron_demo_plugin_interface.h --- cgal-5.4.1/include/CGAL/Three/Polyhedron_demo_plugin_interface.h 2022-06-03 19:06:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Three/Polyhedron_demo_plugin_interface.h 2022-07-13 19:07:01.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Three/include/CGAL/Three/Polyhedron_demo_plugin_interface.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Three/include/CGAL/Three/Polyhedron_demo_plugin_interface.h $ // $Id: Polyhedron_demo_plugin_interface.h 26355e2 2020-06-25T12:31:21+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Three/Primitive_container.h cgal-5.5/include/CGAL/Three/Primitive_container.h --- cgal-5.4.1/include/CGAL/Three/Primitive_container.h 2022-06-03 19:06:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Three/Primitive_container.h 2022-07-13 19:07:01.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Three/include/CGAL/Three/Primitive_container.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Three/include/CGAL/Three/Primitive_container.h $ // $Id: Primitive_container.h 26355e2 2020-06-25T12:31:21+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Three/Scene_draw_interface.h cgal-5.5/include/CGAL/Three/Scene_draw_interface.h --- cgal-5.4.1/include/CGAL/Three/Scene_draw_interface.h 2022-06-03 19:06:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Three/Scene_draw_interface.h 2022-07-13 19:07:01.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Three/include/CGAL/Three/Scene_draw_interface.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Three/include/CGAL/Three/Scene_draw_interface.h $ // $Id: Scene_draw_interface.h 1f45360 2021-01-26T09:05:24+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Three/Scene_group_item.h cgal-5.5/include/CGAL/Three/Scene_group_item.h --- cgal-5.4.1/include/CGAL/Three/Scene_group_item.h 2022-06-03 19:06:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Three/Scene_group_item.h 2022-07-13 19:07:01.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Three/include/CGAL/Three/Scene_group_item.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Three/include/CGAL/Three/Scene_group_item.h $ // $Id: Scene_group_item.h f513a79 2021-04-21T15:48:36+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Three/Scene_interface.h cgal-5.5/include/CGAL/Three/Scene_interface.h --- cgal-5.4.1/include/CGAL/Three/Scene_interface.h 2022-06-03 19:06:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Three/Scene_interface.h 2022-07-13 19:07:02.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Three/include/CGAL/Three/Scene_interface.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Three/include/CGAL/Three/Scene_interface.h $ // $Id: Scene_interface.h 7bfa33f 2021-06-04T14:01:47+02:00 albert-github // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Three/Scene_item_config.h cgal-5.5/include/CGAL/Three/Scene_item_config.h --- cgal-5.4.1/include/CGAL/Three/Scene_item_config.h 2022-06-03 19:06:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Three/Scene_item_config.h 2022-07-13 19:07:02.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Three/include/CGAL/Three/Scene_item_config.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Three/include/CGAL/Three/Scene_item_config.h $ // $Id: Scene_item_config.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Three/Scene_item.h cgal-5.5/include/CGAL/Three/Scene_item.h --- cgal-5.4.1/include/CGAL/Three/Scene_item.h 2022-06-03 19:06:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Three/Scene_item.h 2022-07-13 19:07:02.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Three/include/CGAL/Three/Scene_item.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Three/include/CGAL/Three/Scene_item.h $ // $Id: Scene_item.h 1a9a578 2021-06-18T10:54:35+02:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Three/Scene_item_rendering_helper.h cgal-5.5/include/CGAL/Three/Scene_item_rendering_helper.h --- cgal-5.4.1/include/CGAL/Three/Scene_item_rendering_helper.h 2022-06-03 19:06:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Three/Scene_item_rendering_helper.h 2022-07-13 19:07:02.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Three/include/CGAL/Three/Scene_item_rendering_helper.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Three/include/CGAL/Three/Scene_item_rendering_helper.h $ // $Id: Scene_item_rendering_helper.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Three/Scene_item_with_properties.h cgal-5.5/include/CGAL/Three/Scene_item_with_properties.h --- cgal-5.4.1/include/CGAL/Three/Scene_item_with_properties.h 2022-06-03 19:06:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Three/Scene_item_with_properties.h 2022-07-13 19:07:02.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Three/include/CGAL/Three/Scene_item_with_properties.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Three/include/CGAL/Three/Scene_item_with_properties.h $ // $Id: Scene_item_with_properties.h 8f34457 2021-04-13T15:12:51+02:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Three/Scene_print_item_interface.h cgal-5.5/include/CGAL/Three/Scene_print_item_interface.h --- cgal-5.4.1/include/CGAL/Three/Scene_print_item_interface.h 2022-06-03 19:06:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Three/Scene_print_item_interface.h 2022-07-13 19:07:02.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Three/include/CGAL/Three/Scene_print_item_interface.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Three/include/CGAL/Three/Scene_print_item_interface.h $ // $Id: Scene_print_item_interface.h 3b70343 2020-11-16T16:19:43+01:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Three/Scene_transparent_interface.h cgal-5.5/include/CGAL/Three/Scene_transparent_interface.h --- cgal-5.4.1/include/CGAL/Three/Scene_transparent_interface.h 2022-06-03 19:06:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Three/Scene_transparent_interface.h 2022-07-13 19:07:02.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Three/include/CGAL/Three/Scene_transparent_interface.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Three/include/CGAL/Three/Scene_transparent_interface.h $ // $Id: Scene_transparent_interface.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Three/Scene_zoomable_item_interface.h cgal-5.5/include/CGAL/Three/Scene_zoomable_item_interface.h --- cgal-5.4.1/include/CGAL/Three/Scene_zoomable_item_interface.h 2022-06-03 19:06:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Three/Scene_zoomable_item_interface.h 2022-07-13 19:07:02.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Three/include/CGAL/Three/Scene_zoomable_item_interface.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Three/include/CGAL/Three/Scene_zoomable_item_interface.h $ // $Id: Scene_zoomable_item_interface.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Three/TextRenderer.h cgal-5.5/include/CGAL/Three/TextRenderer.h --- cgal-5.4.1/include/CGAL/Three/TextRenderer.h 2022-06-03 19:06:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Three/TextRenderer.h 2022-07-13 19:07:02.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Three/include/CGAL/Three/TextRenderer.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Three/include/CGAL/Three/TextRenderer.h $ // $Id: TextRenderer.h 3b70343 2020-11-16T16:19:43+01:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Three/Three.h cgal-5.5/include/CGAL/Three/Three.h --- cgal-5.4.1/include/CGAL/Three/Three.h 2022-06-03 19:06:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Three/Three.h 2022-07-13 19:07:02.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Three/include/CGAL/Three/Three.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Three/include/CGAL/Three/Three.h $ // $Id: Three.h 720b2dd 2021-08-30T12:47:10+02:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Three/Triangle_container.h cgal-5.5/include/CGAL/Three/Triangle_container.h --- cgal-5.4.1/include/CGAL/Three/Triangle_container.h 2022-06-03 19:06:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Three/Triangle_container.h 2022-07-13 19:07:02.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Three/include/CGAL/Three/Triangle_container.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Three/include/CGAL/Three/Triangle_container.h $ // $Id: Triangle_container.h f79ec02 2021-06-28T13:11:28+02:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Three/Viewer_config.h cgal-5.5/include/CGAL/Three/Viewer_config.h --- cgal-5.4.1/include/CGAL/Three/Viewer_config.h 2022-06-03 19:06:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Three/Viewer_config.h 2022-07-13 19:07:02.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Three/include/CGAL/Three/Viewer_config.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Three/include/CGAL/Three/Viewer_config.h $ // $Id: Viewer_config.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Three/Viewer_interface.h cgal-5.5/include/CGAL/Three/Viewer_interface.h --- cgal-5.4.1/include/CGAL/Three/Viewer_interface.h 2022-06-03 19:06:04.000000000 +0000 +++ cgal-5.5/include/CGAL/Three/Viewer_interface.h 2022-07-13 19:07:02.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Three/include/CGAL/Three/Viewer_interface.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Three/include/CGAL/Three/Viewer_interface.h $ // $Id: Viewer_interface.h 8f1c510 2021-08-10T15:21:33+02:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Threetuple.h cgal-5.5/include/CGAL/Threetuple.h --- cgal-5.4.1/include/CGAL/Threetuple.h 2022-06-03 19:05:33.000000000 +0000 +++ cgal-5.5/include/CGAL/Threetuple.h 2022-07-13 19:06:28.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/Threetuple.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/Threetuple.h $ // $Id: Threetuple.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Timer.h cgal-5.5/include/CGAL/Timer.h --- cgal-5.4.1/include/CGAL/Timer.h 2022-06-03 19:05:28.000000000 +0000 +++ cgal-5.5/include/CGAL/Timer.h 2022-07-13 19:06:23.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Profiling_tools/include/CGAL/Timer.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Profiling_tools/include/CGAL/Timer.h $ // $Id: Timer.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Timer_impl.h cgal-5.5/include/CGAL/Timer_impl.h --- cgal-5.4.1/include/CGAL/Timer_impl.h 2022-06-03 19:05:28.000000000 +0000 +++ cgal-5.5/include/CGAL/Timer_impl.h 2022-07-13 19:06:23.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Profiling_tools/include/CGAL/Timer_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Profiling_tools/include/CGAL/Timer_impl.h $ // $Id: Timer_impl.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Time_stamper.h cgal-5.5/include/CGAL/Time_stamper.h --- cgal-5.4.1/include/CGAL/Time_stamper.h 2022-06-03 19:05:33.000000000 +0000 +++ cgal-5.5/include/CGAL/Time_stamper.h 2022-07-13 19:06:28.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/Time_stamper.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/Time_stamper.h $ // $Id: Time_stamper.h e9b7595 2021-05-04T11:45:57+02:00 Maxime Gimeno // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Tools/chained_map.h cgal-5.5/include/CGAL/Tools/chained_map.h --- cgal-5.4.1/include/CGAL/Tools/chained_map.h 2022-06-03 19:04:17.000000000 +0000 +++ cgal-5.5/include/CGAL/Tools/chained_map.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,384 +0,0 @@ -// Copyright (c) 1997-2000 -// Utrecht University (The Netherlands), -// ETH Zurich (Switzerland), -// INRIA Sophia-Antipolis (France), -// Max-Planck-Institute Saarbruecken (Germany), -// and Tel-Aviv University (Israel). All rights reserved. -// -// This file is part of CGAL (www.cgal.org) -// -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Hash_map/include/CGAL/Tools/chained_map.h $ -// $Id: chained_map.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot -// SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial -// -// -// Author(s) : Courtesy of LEDA -#ifndef CGAL_CHAINED_MAP_H -#define CGAL_CHAINED_MAP_H - -#include -#include - -namespace CGAL { - -namespace internal { - -template class chained_map; -template class chained_map_elem; - -template -class chained_map_elem -{ - template friend class chained_map; - std::size_t k; T i; - chained_map_elem* succ; -}; - -template -class chained_map -{ - const std::size_t nullptrKEY; - const std::size_t NONnullptrKEY; - - chained_map_elem STOP; - - chained_map_elem* table; - chained_map_elem* table_end; - chained_map_elem* free; - std::size_t table_size; - std::size_t table_size_1; - - chained_map_elem* old_table; - chained_map_elem* old_table_end; - chained_map_elem* old_free; - std::size_t old_table_size; - std::size_t old_table_size_1; - - std::size_t old_index; - typedef std::allocator_traits Allocator_traits; - typedef typename Allocator_traits::template rebind_alloc > allocator_type; - - allocator_type alloc; - -public: - T& xdef() { return STOP.i; } - const T& cxdef() const { return STOP.i; } -private: - void init_inf(T& x) const { x = STOP.i; } - - - chained_map_elem* HASH(std::size_t x) const - { return table + (x & table_size_1); } - - void init_table(std::size_t t); - void rehash(); - void del_old_table(); - - inline void insert(std::size_t x, T y); - - void destroy(chained_map_elem* item) - { - typedef std::allocator_traits Allocator_type_traits; - Allocator_type_traits::destroy(alloc,item); - } - -public: - typedef chained_map_elem* chained_map_item; - typedef chained_map_item item; - - std::size_t index(chained_map_item it) const { return it->k; } - T& inf(chained_map_item it) const { return it->i; } - - chained_map(std::size_t n = 1); - chained_map(const chained_map& D); - chained_map& operator=(const chained_map& D); - - - void clear_entries(); - void clear(); - ~chained_map() - { - if (old_table) - { - for (chained_map_item item = old_table ; item != old_table_end ; ++item) - destroy(item); - alloc.deallocate(old_table, old_table_end - old_table); - } - for (chained_map_item item = table ; item != table_end ; ++item) - destroy(item); - alloc.deallocate(table, table_end - table); - } - - T& access(chained_map_item p, std::size_t x); - T& access(std::size_t x); - chained_map_item lookup(std::size_t x) const; - chained_map_item first_item() const; - chained_map_item next_item(chained_map_item it) const; - void statistics() const; -}; - -template -inline T& chained_map::access(std::size_t x) -{ chained_map_item p = HASH(x); - - if (old_table) del_old_table(); - if ( p->k == x ) { - old_index = x; - return p->i; - } - else { - if ( p->k == nullptrKEY ) { - p->k = x; - init_inf(p->i); // initializes p->i to xdef - old_index = x; - return p->i; - } else - return access(p,x); - } -} - -template -void chained_map::init_table(std::size_t t) -{ - table_size = t; - table_size_1 = t-1; - table = alloc.allocate(t + t/2); - for (std::size_t i = 0 ; i < t + t/2 ; ++i){ - std::allocator_traits::construct(alloc,table + i); - } - - free = table + t; - table_end = table + t + t/2; - - for (chained_map_item p = table; p < free; p++) - { p->succ = &STOP; - p->k = nullptrKEY; - } - table->k = NONnullptrKEY; -} - - -template -inline void chained_map::insert(std::size_t x, T y) -{ chained_map_item q = HASH(x); - if ( q->k == nullptrKEY ) { - q->k = x; - q->i = y; - } else { - free->k = x; - free->i = y; - free->succ = q->succ; - q->succ = free++; - } -} - - -template -void chained_map::rehash() -{ - old_table = table; - old_table_end = table_end; - old_table_size = table_size; - old_table_size_1 = table_size_1; - old_free = free; - - chained_map_item old_table_mid = table + table_size; - - init_table(2*table_size); - - chained_map_item p; - - for(p = old_table + 1; p < old_table_mid; p++) - { std::size_t x = p->k; - if ( x != nullptrKEY ) // list p is non-empty - { chained_map_item q = HASH(x); - q->k = x; - q->i = p->i; - } - } - - while (p < old_table_end) - { std::size_t x = p->k; - insert(x,p->i); - p++; - } -} - - -template -void chained_map::del_old_table() -{ - chained_map_item save_table = table; - chained_map_item save_table_end = table_end; - chained_map_item save_free = free; - std::size_t save_table_size = table_size; - std::size_t save_table_size_1 = table_size_1; - - table = old_table; - table_end = old_table_end; - table_size = old_table_size; - table_size_1 = old_table_size_1; - free = old_free; - - old_table = 0; - - T p = access(old_index); - - for (chained_map_item item = table ; item != table_end ; ++item) - destroy(item); - alloc.deallocate(table, table_end - table); - - table = save_table; - table_end = save_table_end; - table_size = save_table_size; - table_size_1 = save_table_size_1; - free = save_free; - access(old_index) = p; -} - -template -T& chained_map::access(chained_map_item p, std::size_t x) -{ - STOP.k = x; - chained_map_item q = p->succ; - while (q->k != x) q = q->succ; - if (q != &STOP) - { old_index = x; - return q->i; - } - - // index x not present, insert it - - if (free == table_end) // table full: rehash - { rehash(); - p = HASH(x); - } - - if (p->k == nullptrKEY) - { p->k = x; - init_inf(p->i); // initializes p->i to xdef - return p->i; - } - - q = free++; - q->k = x; - init_inf(q->i); // initializes q->i to xdef - q->succ = p->succ; - p->succ = q; - return q->i; -} - - -template -chained_map::chained_map(std::size_t n) : - nullptrKEY(0), NONnullptrKEY(1), old_table(0) -{ - if (n < 512) - init_table(512); - else { - std::size_t ts = 1; - while (ts < n) ts <<= 1; - init_table(ts); - } -} - - -template -chained_map::chained_map(const chained_map& D) : - nullptrKEY(0), NONnullptrKEY(1), old_table(0) -{ - init_table(D.table_size); - STOP.i = D.STOP.i; // xdef - - for(chained_map_item p = D.table + 1; p < D.free; p++) - { if (p->k != nullptrKEY || p >= D.table + D.table_size) - { insert(p->k,p->i); - //D.copy_inf(p->i); // see chapter Implementation - } - } -} - -template -chained_map& chained_map::operator=(const chained_map& D) -{ - clear_entries(); - - for (chained_map_item item = table ; item != table_end ; ++item) - destroy(item); - - alloc.deallocate(table, table_end - table); - - init_table(D.table_size); - STOP.i = D.STOP.i; // xdef - - for(chained_map_item p = D.table + 1; p < D.free; p++) - { if (p->k != nullptrKEY || p >= D.table + D.table_size) - { insert(p->k,p->i); - //copy_inf(p->i); // see chapter Implementation - } - } - return *this; -} - -template -void chained_map::clear_entries() -{ for(chained_map_item p = table + 1; p < free; p++) - if (p->k != nullptrKEY || p >= table + table_size) - p->i = T(); -} - -template -void chained_map::clear() -{ - clear_entries(); - - for (chained_map_item item = table ; item != table_end ; ++item) - destroy(item); - alloc.deallocate(table, table_end - table); - - init_table(512); -} - -template -typename chained_map::chained_map_item -chained_map::lookup(std::size_t x) const -{ chained_map_item p = HASH(x); - ((std::size_t &)STOP.k) = x; // cast away const - while (p->k != x) - { p = p->succ; } - return (p == &STOP) ? 0 : p; -} - - -template -typename chained_map::chained_map_item -chained_map::first_item() const -{ return next_item(table); } - -template -typename chained_map::chained_map_item -chained_map::next_item(chained_map_item it) const -{ if (it == 0) return 0; - do it++; while (it < table + table_size && it->k == nullptrKEY); - return (it < free ? it : 0); -} - -template -void chained_map::statistics() const -{ std::cout << "table_size: " << table_size <<"\n"; - std::size_t n = 0; - for (chained_map_item p = table + 1; p < table + table_size; p++) - if (p ->k != nullptrKEY) n++; - std::size_t used_in_overflow = free - (table + table_size ); - n += used_in_overflow; - std::cout << "number of entries: " << n << "\n"; - std::cout << "fraction of entries in first position: " << - ((double) (n - used_in_overflow))/n <<"\n"; - std::cout << "fraction of empty lists: " << - ((double) (n - used_in_overflow))/table_size<<"\n"; -} - -} // namespace internal -} //namespace CGAL - -#endif // CGAL_CHAINED_MAP_H diff -Nru cgal-5.4.1/include/CGAL/to_rational.h cgal-5.5/include/CGAL/to_rational.h --- cgal-5.4.1/include/CGAL/to_rational.h 2022-06-03 19:05:02.000000000 +0000 +++ cgal-5.5/include/CGAL/to_rational.h 2022-07-13 19:05:56.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/to_rational.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/to_rational.h $ // $Id: to_rational.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/transforming_iterator.h cgal-5.5/include/CGAL/transforming_iterator.h --- cgal-5.4.1/include/CGAL/transforming_iterator.h 2022-06-03 19:05:33.000000000 +0000 +++ cgal-5.5/include/CGAL/transforming_iterator.h 2022-07-13 19:06:29.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/transforming_iterator.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/transforming_iterator.h $ // $Id: transforming_iterator.h 209513d 2020-07-31T15:58:38+02:00 Dmitry Anisimov // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/transforming_pair_iterator.h cgal-5.5/include/CGAL/transforming_pair_iterator.h --- cgal-5.4.1/include/CGAL/transforming_pair_iterator.h 2022-06-03 19:05:33.000000000 +0000 +++ cgal-5.5/include/CGAL/transforming_pair_iterator.h 2022-07-13 19:06:29.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/transforming_pair_iterator.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/transforming_pair_iterator.h $ // $Id: transforming_pair_iterator.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Transform_iterator.h cgal-5.5/include/CGAL/Transform_iterator.h --- cgal-5.4.1/include/CGAL/Transform_iterator.h 2022-06-03 19:04:42.000000000 +0000 +++ cgal-5.5/include/CGAL/Transform_iterator.h 2022-07-13 19:05:34.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Matrix_search/include/CGAL/Transform_iterator.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Matrix_search/include/CGAL/Transform_iterator.h $ // $Id: Transform_iterator.h 4b472db 2021-02-03T10:57:36+00:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Tree_assertions.h cgal-5.5/include/CGAL/Tree_assertions.h --- cgal-5.4.1/include/CGAL/Tree_assertions.h 2022-06-03 19:05:35.000000000 +0000 +++ cgal-5.5/include/CGAL/Tree_assertions.h 2022-07-13 19:06:31.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/SearchStructures/include/CGAL/Tree_assertions.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/SearchStructures/include/CGAL/Tree_assertions.h $ // $Id: Tree_assertions.h 5a36ff8 2020-12-04T08:02:26+00:00 Giles Bathgate // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Tree_base.h cgal-5.5/include/CGAL/Tree_base.h --- cgal-5.4.1/include/CGAL/Tree_base.h 2022-06-03 19:05:35.000000000 +0000 +++ cgal-5.5/include/CGAL/Tree_base.h 2022-07-13 19:06:31.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/SearchStructures/include/CGAL/Tree_base.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/SearchStructures/include/CGAL/Tree_base.h $ // $Id: Tree_base.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Tree_traits.h cgal-5.5/include/CGAL/Tree_traits.h --- cgal-5.4.1/include/CGAL/Tree_traits.h 2022-06-03 19:05:35.000000000 +0000 +++ cgal-5.5/include/CGAL/Tree_traits.h 2022-07-13 19:06:31.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/SearchStructures/include/CGAL/Tree_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/SearchStructures/include/CGAL/Tree_traits.h $ // $Id: Tree_traits.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangle_2.h cgal-5.5/include/CGAL/Triangle_2.h --- cgal-5.4.1/include/CGAL/Triangle_2.h 2022-06-03 19:04:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangle_2.h 2022-07-13 19:05:24.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Triangle_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Triangle_2.h $ // $Id: Triangle_2.h 4e519a3 2021-05-05T13:15:37+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangle_3.h cgal-5.5/include/CGAL/Triangle_3.h --- cgal-5.4.1/include/CGAL/Triangle_3.h 2022-06-03 19:04:32.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangle_3.h 2022-07-13 19:05:24.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Triangle_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Triangle_3.h $ // $Id: Triangle_3.h 4e519a3 2021-05-05T13:15:37+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangle_accessor_3.h cgal-5.5/include/CGAL/Triangle_accessor_3.h --- cgal-5.4.1/include/CGAL/Triangle_accessor_3.h 2022-06-03 19:04:49.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangle_accessor_3.h 2022-07-13 19:05:41.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_3/include/CGAL/Triangle_accessor_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Triangle_accessor_3.h $ // $Id: Triangle_accessor_3.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangular_expansion_visibility_2.h cgal-5.5/include/CGAL/Triangular_expansion_visibility_2.h --- cgal-5.4.1/include/CGAL/Triangular_expansion_visibility_2.h 2022-06-03 19:06:12.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangular_expansion_visibility_2.h 2022-07-13 19:07:11.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Visibility_2/include/CGAL/Triangular_expansion_visibility_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Visibility_2/include/CGAL/Triangular_expansion_visibility_2.h $ // $Id: Triangular_expansion_visibility_2.h 1faa0e2 2021-04-28T10:55:26+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangular_field_2.h cgal-5.5/include/CGAL/Triangular_field_2.h --- cgal-5.4.1/include/CGAL/Triangular_field_2.h 2022-06-03 19:05:51.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangular_field_2.h 2022-07-13 19:06:48.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Stream_lines_2/include/CGAL/Triangular_field_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Stream_lines_2/include/CGAL/Triangular_field_2.h $ // $Id: Triangular_field_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulated_mixed_complex_observer_3.h cgal-5.5/include/CGAL/Triangulated_mixed_complex_observer_3.h --- cgal-5.4.1/include/CGAL/Triangulated_mixed_complex_observer_3.h 2022-06-03 19:05:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulated_mixed_complex_observer_3.h 2022-07-13 19:06:41.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Skin_surface_3/include/CGAL/Triangulated_mixed_complex_observer_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Skin_surface_3/include/CGAL/Triangulated_mixed_complex_observer_3.h $ // $Id: Triangulated_mixed_complex_observer_3.h 1faa0e2 2021-04-28T10:55:26+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/triangulate_mixed_complex_3.h cgal-5.5/include/CGAL/triangulate_mixed_complex_3.h --- cgal-5.4.1/include/CGAL/triangulate_mixed_complex_3.h 2022-06-03 19:05:45.000000000 +0000 +++ cgal-5.5/include/CGAL/triangulate_mixed_complex_3.h 2022-07-13 19:06:41.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Skin_surface_3/include/CGAL/triangulate_mixed_complex_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Skin_surface_3/include/CGAL/triangulate_mixed_complex_3.h $ // $Id: triangulate_mixed_complex_3.h 7a1aaa4 2022-03-09T13:11:19+00:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/triangulate_power_diagram_3.h cgal-5.5/include/CGAL/triangulate_power_diagram_3.h --- cgal-5.4.1/include/CGAL/triangulate_power_diagram_3.h 2022-06-03 19:05:45.000000000 +0000 +++ cgal-5.5/include/CGAL/triangulate_power_diagram_3.h 2022-07-13 19:06:41.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Skin_surface_3/include/CGAL/triangulate_power_diagram_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Skin_surface_3/include/CGAL/triangulate_power_diagram_3.h $ // $Id: triangulate_power_diagram_3.h 7a1aaa4 2022-03-09T13:11:19+00:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation/internal/Combination_enumerator.h cgal-5.5/include/CGAL/Triangulation/internal/Combination_enumerator.h --- cgal-5.4.1/include/CGAL/Triangulation/internal/Combination_enumerator.h 2022-06-03 19:06:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation/internal/Combination_enumerator.h 2022-07-13 19:07:03.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation/include/CGAL/Triangulation/internal/Combination_enumerator.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation/include/CGAL/Triangulation/internal/Combination_enumerator.h $ // $Id: Combination_enumerator.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation/internal/Dummy_TDS.h cgal-5.5/include/CGAL/Triangulation/internal/Dummy_TDS.h --- cgal-5.4.1/include/CGAL/Triangulation/internal/Dummy_TDS.h 2022-06-03 19:06:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation/internal/Dummy_TDS.h 2022-07-13 19:07:03.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation/include/CGAL/Triangulation/internal/Dummy_TDS.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation/include/CGAL/Triangulation/internal/Dummy_TDS.h $ // $Id: Dummy_TDS.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation/internal/Static_or_dynamic_array.h cgal-5.5/include/CGAL/Triangulation/internal/Static_or_dynamic_array.h --- cgal-5.4.1/include/CGAL/Triangulation/internal/Static_or_dynamic_array.h 2022-06-03 19:06:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation/internal/Static_or_dynamic_array.h 2022-07-13 19:07:03.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation/include/CGAL/Triangulation/internal/Static_or_dynamic_array.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation/include/CGAL/Triangulation/internal/Static_or_dynamic_array.h $ // $Id: Static_or_dynamic_array.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation/internal/Triangulation_ds_iterators.h cgal-5.5/include/CGAL/Triangulation/internal/Triangulation_ds_iterators.h --- cgal-5.4.1/include/CGAL/Triangulation/internal/Triangulation_ds_iterators.h 2022-06-03 19:06:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation/internal/Triangulation_ds_iterators.h 2022-07-13 19:07:03.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation/include/CGAL/Triangulation/internal/Triangulation_ds_iterators.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation/include/CGAL/Triangulation/internal/Triangulation_ds_iterators.h $ // $Id: Triangulation_ds_iterators.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation/internal/utilities.h cgal-5.5/include/CGAL/Triangulation/internal/utilities.h --- cgal-5.4.1/include/CGAL/Triangulation/internal/utilities.h 2022-06-03 19:06:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation/internal/utilities.h 2022-07-13 19:07:03.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation/include/CGAL/Triangulation/internal/utilities.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation/include/CGAL/Triangulation/internal/utilities.h $ // $Id: utilities.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation_2/insert_constraints.h cgal-5.5/include/CGAL/Triangulation_2/insert_constraints.h --- cgal-5.4.1/include/CGAL/Triangulation_2/insert_constraints.h 2022-06-03 19:06:07.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation_2/insert_constraints.h 2022-07-13 19:07:05.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_2/include/CGAL/Triangulation_2/insert_constraints.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_2/include/CGAL/Triangulation_2/insert_constraints.h $ // $Id: insert_constraints.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation_2/internal/Constraint_hierarchy_2.h cgal-5.5/include/CGAL/Triangulation_2/internal/Constraint_hierarchy_2.h --- cgal-5.4.1/include/CGAL/Triangulation_2/internal/Constraint_hierarchy_2.h 2022-06-03 19:06:07.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation_2/internal/Constraint_hierarchy_2.h 2022-07-13 19:07:05.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_2/include/CGAL/Triangulation_2/internal/Constraint_hierarchy_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_2/include/CGAL/Triangulation_2/internal/Constraint_hierarchy_2.h $ // $Id: Constraint_hierarchy_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation_2/internal/CTP2_subconstraint_graph.h cgal-5.5/include/CGAL/Triangulation_2/internal/CTP2_subconstraint_graph.h --- cgal-5.4.1/include/CGAL/Triangulation_2/internal/CTP2_subconstraint_graph.h 2022-06-03 19:06:07.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation_2/internal/CTP2_subconstraint_graph.h 2022-07-13 19:07:05.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_2/include/CGAL/Triangulation_2/internal/CTP2_subconstraint_graph.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_2/include/CGAL/Triangulation_2/internal/CTP2_subconstraint_graph.h $ // $Id: CTP2_subconstraint_graph.h f841429 2020-03-26T19:27:08+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation_2/internal/Polyline_constraint_hierarchy_2.h cgal-5.5/include/CGAL/Triangulation_2/internal/Polyline_constraint_hierarchy_2.h --- cgal-5.4.1/include/CGAL/Triangulation_2/internal/Polyline_constraint_hierarchy_2.h 2022-06-03 19:06:07.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation_2/internal/Polyline_constraint_hierarchy_2.h 2022-07-13 19:07:05.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_2/include/CGAL/Triangulation_2/internal/Polyline_constraint_hierarchy_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_2/include/CGAL/Triangulation_2/internal/Polyline_constraint_hierarchy_2.h $ // $Id: Polyline_constraint_hierarchy_2.h bdec436 2021-06-25T10:05:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation_2/internal/Triangulation_line_face_circulator_2.h cgal-5.5/include/CGAL/Triangulation_2/internal/Triangulation_line_face_circulator_2.h --- cgal-5.4.1/include/CGAL/Triangulation_2/internal/Triangulation_line_face_circulator_2.h 2022-06-03 19:06:07.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation_2/internal/Triangulation_line_face_circulator_2.h 2022-07-13 19:07:05.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_2/include/CGAL/Triangulation_2/internal/Triangulation_line_face_circulator_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_2/include/CGAL/Triangulation_2/internal/Triangulation_line_face_circulator_2.h $ // $Id: Triangulation_line_face_circulator_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation_2.h cgal-5.5/include/CGAL/Triangulation_2.h --- cgal-5.4.1/include/CGAL/Triangulation_2.h 2022-06-03 19:06:07.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation_2.h 2022-07-13 19:07:05.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_2/include/CGAL/Triangulation_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_2/include/CGAL/Triangulation_2.h $ // $Id: Triangulation_2.h 5945e48 2021-09-17T08:14:06+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation_2_projection_traits_3.h cgal-5.5/include/CGAL/Triangulation_2_projection_traits_3.h --- cgal-5.4.1/include/CGAL/Triangulation_2_projection_traits_3.h 2022-06-03 19:06:07.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation_2_projection_traits_3.h 2022-07-13 19:07:05.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_2/include/CGAL/Triangulation_2_projection_traits_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_2/include/CGAL/Triangulation_2_projection_traits_3.h $ // $Id: Triangulation_2_projection_traits_3.h dacbd18 2021-08-30T12:35:34+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation_2_to_lcc.h cgal-5.5/include/CGAL/Triangulation_2_to_lcc.h --- cgal-5.4.1/include/CGAL/Triangulation_2_to_lcc.h 2022-06-03 19:06:07.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation_2_to_lcc.h 2022-07-13 19:07:05.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_2/include/CGAL/Triangulation_2_to_lcc.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_2/include/CGAL/Triangulation_2_to_lcc.h $ // $Id: Triangulation_2_to_lcc.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation_2_traits_3.h cgal-5.5/include/CGAL/Triangulation_2_traits_3.h --- cgal-5.4.1/include/CGAL/Triangulation_2_traits_3.h 2022-06-03 19:06:07.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation_2_traits_3.h 2022-07-13 19:07:05.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_2/include/CGAL/Triangulation_2_traits_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_2/include/CGAL/Triangulation_2_traits_3.h $ // $Id: Triangulation_2_traits_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation_3/internal/Delaunay_triangulation_hierarchy_3.h cgal-5.5/include/CGAL/Triangulation_3/internal/Delaunay_triangulation_hierarchy_3.h --- cgal-5.4.1/include/CGAL/Triangulation_3/internal/Delaunay_triangulation_hierarchy_3.h 2022-06-03 19:06:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation_3/internal/Delaunay_triangulation_hierarchy_3.h 2022-07-13 19:07:09.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_3/include/CGAL/Triangulation_3/internal/Delaunay_triangulation_hierarchy_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_3/include/CGAL/Triangulation_3/internal/Delaunay_triangulation_hierarchy_3.h $ // $Id: Delaunay_triangulation_hierarchy_3.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation_3/internal/Triangulation_segment_traverser_3_impl.h cgal-5.5/include/CGAL/Triangulation_3/internal/Triangulation_segment_traverser_3_impl.h --- cgal-5.4.1/include/CGAL/Triangulation_3/internal/Triangulation_segment_traverser_3_impl.h 2022-06-03 19:06:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation_3/internal/Triangulation_segment_traverser_3_impl.h 2022-07-13 19:07:09.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_3/include/CGAL/Triangulation_3/internal/Triangulation_segment_traverser_3_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_3/include/CGAL/Triangulation_3/internal/Triangulation_segment_traverser_3_impl.h $ // $Id: Triangulation_segment_traverser_3_impl.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation_3.h cgal-5.5/include/CGAL/Triangulation_3.h --- cgal-5.4.1/include/CGAL/Triangulation_3.h 2022-06-03 19:06:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation_3.h 2022-07-13 19:07:09.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_3/include/CGAL/Triangulation_3.h $ -// $Id: Triangulation_3.h bac0822 2021-09-29T11:46:53+02:00 Laurent Rineau +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_3/include/CGAL/Triangulation_3.h $ +// $Id: Triangulation_3.h c2fa2cb 2022-06-15T10:18:57+02:00 Laurent Rineau // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Monique Teillaud @@ -2388,9 +2388,13 @@ if(!is) return is; + std::vector< Vertex_handle > V; + if(d > 3 || d < -2 || (n+1) > V.max_size()) { + is.setstate(std::ios_base::failbit); + return is; + } tr._tds.set_dimension(d); - - std::vector< Vertex_handle > V(n+1); + V.resize(n+1); V[0] = tr.infinite_vertex(); // the infinite vertex is numbered 0 for(std::size_t i=1; i <= n; i++) @@ -5170,6 +5174,7 @@ } typename Vertex_triple_Facet_map::value_type o_vt_f_pair = *oit; + outer_map.erase(oit); Cell_handle o_ch = o_vt_f_pair.second.first; unsigned int o_i = o_vt_f_pair.second.second; @@ -5215,7 +5220,6 @@ } } } - outer_map.erase(oit); } tds().delete_vertex(v); tds().delete_cells(hole.begin(), hole.end()); @@ -5367,6 +5371,7 @@ } typename Vertex_triple_Facet_map::value_type o_vt_f_pair = *oit; + outer_map.erase(oit); Cell_handle o_ch = o_vt_f_pair.second.first; unsigned int o_i = o_vt_f_pair.second.second; @@ -5413,7 +5418,6 @@ } } } - outer_map.erase(oit); } tds().delete_vertex(v); tds().delete_cells(inc_cells.begin(), inc_cells.end()); @@ -5670,6 +5674,7 @@ } typename Vertex_triple_Facet_map::value_type o_vt_f_pair = *oit; + outer_map.erase(oit); Cell_handle o_ch = o_vt_f_pair.second.first; unsigned int o_i = o_vt_f_pair.second.second; @@ -5717,7 +5722,6 @@ } } } - outer_map.erase(oit); } tds().delete_vertex(v); tds().delete_cells(hole.begin(), hole.end()); @@ -6059,6 +6063,7 @@ } typename Vertex_triple_Facet_map::value_type o_vt_f_pair = *oit; + outer_map.erase(oit); Cell_handle o_ch = o_vt_f_pair.second.first; unsigned int o_i = o_vt_f_pair.second.second; @@ -6105,7 +6110,6 @@ } } } - outer_map.erase(oit); } // fixing pointer @@ -6511,6 +6515,7 @@ } typename Vertex_triple_Facet_map::value_type o_vt_f_pair = *oit; + outer_map.erase(oit); Cell_handle o_ch = o_vt_f_pair.second.first; unsigned int o_i = o_vt_f_pair.second.second; @@ -6558,7 +6563,6 @@ } } } - outer_map.erase(oit); } // fixing pointer @@ -6851,6 +6855,7 @@ } typename Vertex_triple_Facet_map::value_type o_vt_f_pair = *oit; + outer_map.erase(oit); Cell_handle o_ch = o_vt_f_pair.second.first; unsigned int o_i = o_vt_f_pair.second.second; @@ -6900,7 +6905,6 @@ } } - outer_map.erase(oit); } this->tds().delete_cells(hole.begin(), hole.end()); diff -Nru cgal-5.4.1/include/CGAL/Triangulation_3_to_lcc.h cgal-5.5/include/CGAL/Triangulation_3_to_lcc.h --- cgal-5.4.1/include/CGAL/Triangulation_3_to_lcc.h 2022-06-03 19:06:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation_3_to_lcc.h 2022-07-13 19:07:09.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_3/include/CGAL/Triangulation_3_to_lcc.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_3/include/CGAL/Triangulation_3_to_lcc.h $ // $Id: Triangulation_3_to_lcc.h 8bb22d5 2020-03-26T14:23:37+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/triangulation_assertions.h cgal-5.5/include/CGAL/triangulation_assertions.h --- cgal-5.4.1/include/CGAL/triangulation_assertions.h 2022-06-03 19:05:33.000000000 +0000 +++ cgal-5.5/include/CGAL/triangulation_assertions.h 2022-07-13 19:06:29.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/triangulation_assertions.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/triangulation_assertions.h $ // $Id: triangulation_assertions.h 5a36ff8 2020-12-04T08:02:26+00:00 Giles Bathgate // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation_cell_base_3.h cgal-5.5/include/CGAL/Triangulation_cell_base_3.h --- cgal-5.4.1/include/CGAL/Triangulation_cell_base_3.h 2022-06-03 19:06:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation_cell_base_3.h 2022-07-13 19:07:09.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_3/include/CGAL/Triangulation_cell_base_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_3/include/CGAL/Triangulation_cell_base_3.h $ // $Id: Triangulation_cell_base_3.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation_cell_base_with_info_3.h cgal-5.5/include/CGAL/Triangulation_cell_base_with_info_3.h --- cgal-5.4.1/include/CGAL/Triangulation_cell_base_with_info_3.h 2022-06-03 19:06:10.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation_cell_base_with_info_3.h 2022-07-13 19:07:09.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_3/include/CGAL/Triangulation_cell_base_with_info_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_3/include/CGAL/Triangulation_cell_base_with_info_3.h $ // $Id: Triangulation_cell_base_with_info_3.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation_conformer_2.h cgal-5.5/include/CGAL/Triangulation_conformer_2.h --- cgal-5.4.1/include/CGAL/Triangulation_conformer_2.h 2022-06-03 19:04:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation_conformer_2.h 2022-07-13 19:05:36.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Mesh_2/include/CGAL/Triangulation_conformer_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_2/include/CGAL/Triangulation_conformer_2.h $ // $Id: Triangulation_conformer_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation_data_structure_2.h cgal-5.5/include/CGAL/Triangulation_data_structure_2.h --- cgal-5.4.1/include/CGAL/Triangulation_data_structure_2.h 2022-06-03 19:06:02.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation_data_structure_2.h 2022-07-13 19:06:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/TDS_2/include/CGAL/Triangulation_data_structure_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/TDS_2/include/CGAL/Triangulation_data_structure_2.h $ // $Id: Triangulation_data_structure_2.h cc54df3 2022-04-26T08:15:51+01:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation_data_structure_3.h cgal-5.5/include/CGAL/Triangulation_data_structure_3.h --- cgal-5.4.1/include/CGAL/Triangulation_data_structure_3.h 2022-06-03 19:06:03.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation_data_structure_3.h 2022-07-13 19:07:00.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/TDS_3/include/CGAL/Triangulation_data_structure_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/TDS_3/include/CGAL/Triangulation_data_structure_3.h $ // $Id: Triangulation_data_structure_3.h cdbf0d7 2022-03-09T11:34:12+00:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation_data_structure.h cgal-5.5/include/CGAL/Triangulation_data_structure.h --- cgal-5.4.1/include/CGAL/Triangulation_data_structure.h 2022-06-03 19:06:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation_data_structure.h 2022-07-13 19:07:03.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation/include/CGAL/Triangulation_data_structure.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation/include/CGAL/Triangulation_data_structure.h $ // $Id: Triangulation_data_structure.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation_data_structure_using_list_2.h cgal-5.5/include/CGAL/Triangulation_data_structure_using_list_2.h --- cgal-5.4.1/include/CGAL/Triangulation_data_structure_using_list_2.h 2022-06-03 19:06:07.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation_data_structure_using_list_2.h 2022-07-13 19:07:05.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_2/include/CGAL/Triangulation_data_structure_using_list_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_2/include/CGAL/Triangulation_data_structure_using_list_2.h $ // $Id: Triangulation_data_structure_using_list_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation_default_data_structure_2.h cgal-5.5/include/CGAL/Triangulation_default_data_structure_2.h --- cgal-5.4.1/include/CGAL/Triangulation_default_data_structure_2.h 2022-06-03 19:06:07.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation_default_data_structure_2.h 2022-07-13 19:07:05.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_2/include/CGAL/Triangulation_default_data_structure_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_2/include/CGAL/Triangulation_default_data_structure_2.h $ // $Id: Triangulation_default_data_structure_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation_ds_cell_base_3.h cgal-5.5/include/CGAL/Triangulation_ds_cell_base_3.h --- cgal-5.4.1/include/CGAL/Triangulation_ds_cell_base_3.h 2022-06-03 19:06:03.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation_ds_cell_base_3.h 2022-07-13 19:07:00.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/TDS_3/include/CGAL/Triangulation_ds_cell_base_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/TDS_3/include/CGAL/Triangulation_ds_cell_base_3.h $ // $Id: Triangulation_ds_cell_base_3.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation_ds_circulators_2.h cgal-5.5/include/CGAL/Triangulation_ds_circulators_2.h --- cgal-5.4.1/include/CGAL/Triangulation_ds_circulators_2.h 2022-06-03 19:06:02.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation_ds_circulators_2.h 2022-07-13 19:06:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/TDS_2/include/CGAL/Triangulation_ds_circulators_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/TDS_2/include/CGAL/Triangulation_ds_circulators_2.h $ // $Id: Triangulation_ds_circulators_2.h 74d8922 2020-04-20T15:25:40+02:00 Guillaume Damiand // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation_ds_face_2.h cgal-5.5/include/CGAL/Triangulation_ds_face_2.h --- cgal-5.4.1/include/CGAL/Triangulation_ds_face_2.h 2022-06-03 19:06:02.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation_ds_face_2.h 2022-07-13 19:06:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/TDS_2/include/CGAL/Triangulation_ds_face_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/TDS_2/include/CGAL/Triangulation_ds_face_2.h $ // $Id: Triangulation_ds_face_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation_ds_face_base_2.h cgal-5.5/include/CGAL/Triangulation_ds_face_base_2.h --- cgal-5.4.1/include/CGAL/Triangulation_ds_face_base_2.h 2022-06-03 19:06:02.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation_ds_face_base_2.h 2022-07-13 19:06:59.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/TDS_2/include/CGAL/Triangulation_ds_face_base_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/TDS_2/include/CGAL/Triangulation_ds_face_base_2.h $ // $Id: Triangulation_ds_face_base_2.h cff3cdb 2021-08-12T10:23:57+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation_ds_full_cell.h cgal-5.5/include/CGAL/Triangulation_ds_full_cell.h --- cgal-5.4.1/include/CGAL/Triangulation_ds_full_cell.h 2022-06-03 19:06:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation_ds_full_cell.h 2022-07-13 19:07:03.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation/include/CGAL/Triangulation_ds_full_cell.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation/include/CGAL/Triangulation_ds_full_cell.h $ // $Id: Triangulation_ds_full_cell.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation_ds_iterators_2.h cgal-5.5/include/CGAL/Triangulation_ds_iterators_2.h --- cgal-5.4.1/include/CGAL/Triangulation_ds_iterators_2.h 2022-06-03 19:06:02.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation_ds_iterators_2.h 2022-07-13 19:07:00.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/TDS_2/include/CGAL/Triangulation_ds_iterators_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/TDS_2/include/CGAL/Triangulation_ds_iterators_2.h $ // $Id: Triangulation_ds_iterators_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation_ds_vertex_2.h cgal-5.5/include/CGAL/Triangulation_ds_vertex_2.h --- cgal-5.4.1/include/CGAL/Triangulation_ds_vertex_2.h 2022-06-03 19:06:02.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation_ds_vertex_2.h 2022-07-13 19:07:00.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/TDS_2/include/CGAL/Triangulation_ds_vertex_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/TDS_2/include/CGAL/Triangulation_ds_vertex_2.h $ // $Id: Triangulation_ds_vertex_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation_ds_vertex_base_2.h cgal-5.5/include/CGAL/Triangulation_ds_vertex_base_2.h --- cgal-5.4.1/include/CGAL/Triangulation_ds_vertex_base_2.h 2022-06-03 19:06:02.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation_ds_vertex_base_2.h 2022-07-13 19:07:00.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/TDS_2/include/CGAL/Triangulation_ds_vertex_base_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/TDS_2/include/CGAL/Triangulation_ds_vertex_base_2.h $ // $Id: Triangulation_ds_vertex_base_2.h d1a323c 2020-03-26T19:24:14+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation_ds_vertex_base_3.h cgal-5.5/include/CGAL/Triangulation_ds_vertex_base_3.h --- cgal-5.4.1/include/CGAL/Triangulation_ds_vertex_base_3.h 2022-06-03 19:06:03.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation_ds_vertex_base_3.h 2022-07-13 19:07:00.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/TDS_3/include/CGAL/Triangulation_ds_vertex_base_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/TDS_3/include/CGAL/Triangulation_ds_vertex_base_3.h $ // $Id: Triangulation_ds_vertex_base_3.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation_ds_vertex.h cgal-5.5/include/CGAL/Triangulation_ds_vertex.h --- cgal-5.4.1/include/CGAL/Triangulation_ds_vertex.h 2022-06-03 19:06:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation_ds_vertex.h 2022-07-13 19:07:03.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation/include/CGAL/Triangulation_ds_vertex.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation/include/CGAL/Triangulation_ds_vertex.h $ // $Id: Triangulation_ds_vertex.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation_face_base_2.h cgal-5.5/include/CGAL/Triangulation_face_base_2.h --- cgal-5.4.1/include/CGAL/Triangulation_face_base_2.h 2022-06-03 19:06:07.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation_face_base_2.h 2022-07-13 19:07:06.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_2/include/CGAL/Triangulation_face_base_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_2/include/CGAL/Triangulation_face_base_2.h $ // $Id: Triangulation_face_base_2.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation_face_base_with_id_2.h cgal-5.5/include/CGAL/Triangulation_face_base_with_id_2.h --- cgal-5.4.1/include/CGAL/Triangulation_face_base_with_id_2.h 2022-06-03 19:06:07.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation_face_base_with_id_2.h 2022-07-13 19:07:06.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_2/include/CGAL/Triangulation_face_base_with_id_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_2/include/CGAL/Triangulation_face_base_with_id_2.h $ // $Id: Triangulation_face_base_with_id_2.h 8bb22d5 2020-03-26T14:23:37+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation_face_base_with_info_2.h cgal-5.5/include/CGAL/Triangulation_face_base_with_info_2.h --- cgal-5.4.1/include/CGAL/Triangulation_face_base_with_info_2.h 2022-06-03 19:06:07.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation_face_base_with_info_2.h 2022-07-13 19:07:06.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_2/include/CGAL/Triangulation_face_base_with_info_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_2/include/CGAL/Triangulation_face_base_with_info_2.h $ // $Id: Triangulation_face_base_with_info_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation_face.h cgal-5.5/include/CGAL/Triangulation_face.h --- cgal-5.4.1/include/CGAL/Triangulation_face.h 2022-06-03 19:06:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation_face.h 2022-07-13 19:07:03.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation/include/CGAL/Triangulation_face.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation/include/CGAL/Triangulation_face.h $ // $Id: Triangulation_face.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation_full_cell.h cgal-5.5/include/CGAL/Triangulation_full_cell.h --- cgal-5.4.1/include/CGAL/Triangulation_full_cell.h 2022-06-03 19:06:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation_full_cell.h 2022-07-13 19:07:03.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation/include/CGAL/Triangulation_full_cell.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation/include/CGAL/Triangulation_full_cell.h $ // $Id: Triangulation_full_cell.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation_geom_traits_3.h cgal-5.5/include/CGAL/Triangulation_geom_traits_3.h --- cgal-5.4.1/include/CGAL/Triangulation_geom_traits_3.h 2022-06-03 19:06:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation_geom_traits_3.h 2022-07-13 19:07:10.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_3/include/CGAL/Triangulation_geom_traits_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_3/include/CGAL/Triangulation_geom_traits_3.h $ // $Id: Triangulation_geom_traits_3.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation.h cgal-5.5/include/CGAL/Triangulation.h --- cgal-5.4.1/include/CGAL/Triangulation.h 2022-06-03 19:06:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation.h 2022-07-13 19:07:03.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation/include/CGAL/Triangulation.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation/include/CGAL/Triangulation.h $ // $Id: Triangulation.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation_hierarchy_2.h cgal-5.5/include/CGAL/Triangulation_hierarchy_2.h --- cgal-5.4.1/include/CGAL/Triangulation_hierarchy_2.h 2022-06-03 19:06:07.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation_hierarchy_2.h 2022-07-13 19:07:06.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_2/include/CGAL/Triangulation_hierarchy_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_2/include/CGAL/Triangulation_hierarchy_2.h $ // $Id: Triangulation_hierarchy_2.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation_hierarchy_3.h cgal-5.5/include/CGAL/Triangulation_hierarchy_3.h --- cgal-5.4.1/include/CGAL/Triangulation_hierarchy_3.h 2022-06-03 19:06:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation_hierarchy_3.h 2022-07-13 19:07:10.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_3/include/CGAL/Triangulation_hierarchy_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_3/include/CGAL/Triangulation_hierarchy_3.h $ // $Id: Triangulation_hierarchy_3.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation_hierarchy_vertex_base_2.h cgal-5.5/include/CGAL/Triangulation_hierarchy_vertex_base_2.h --- cgal-5.4.1/include/CGAL/Triangulation_hierarchy_vertex_base_2.h 2022-06-03 19:06:07.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation_hierarchy_vertex_base_2.h 2022-07-13 19:07:06.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_2/include/CGAL/Triangulation_hierarchy_vertex_base_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_2/include/CGAL/Triangulation_hierarchy_vertex_base_2.h $ // $Id: Triangulation_hierarchy_vertex_base_2.h d1a323c 2020-03-26T19:24:14+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation_hierarchy_vertex_base_3.h cgal-5.5/include/CGAL/Triangulation_hierarchy_vertex_base_3.h --- cgal-5.4.1/include/CGAL/Triangulation_hierarchy_vertex_base_3.h 2022-06-03 19:06:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation_hierarchy_vertex_base_3.h 2022-07-13 19:07:10.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_3/include/CGAL/Triangulation_hierarchy_vertex_base_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_3/include/CGAL/Triangulation_hierarchy_vertex_base_3.h $ // $Id: Triangulation_hierarchy_vertex_base_3.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation_incremental_builder_3.h cgal-5.5/include/CGAL/Triangulation_incremental_builder_3.h --- cgal-5.4.1/include/CGAL/Triangulation_incremental_builder_3.h 2022-06-03 19:05:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation_incremental_builder_3.h 2022-07-13 19:06:41.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Skin_surface_3/include/CGAL/Triangulation_incremental_builder_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Skin_surface_3/include/CGAL/Triangulation_incremental_builder_3.h $ // $Id: Triangulation_incremental_builder_3.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation_on_sphere_2/internal/arc_on_sphere_2_subsampling.h cgal-5.5/include/CGAL/Triangulation_on_sphere_2/internal/arc_on_sphere_2_subsampling.h --- cgal-5.4.1/include/CGAL/Triangulation_on_sphere_2/internal/arc_on_sphere_2_subsampling.h 2022-06-03 19:06:12.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation_on_sphere_2/internal/arc_on_sphere_2_subsampling.h 2022-07-13 19:07:11.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_on_sphere_2/include/CGAL/Triangulation_on_sphere_2/internal/arc_on_sphere_2_subsampling.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_on_sphere_2/include/CGAL/Triangulation_on_sphere_2/internal/arc_on_sphere_2_subsampling.h $ // $Id: arc_on_sphere_2_subsampling.h 8de892f 2021-05-12T10:05:26+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation_on_sphere_2/internal/get_precision_bounds.h cgal-5.5/include/CGAL/Triangulation_on_sphere_2/internal/get_precision_bounds.h --- cgal-5.4.1/include/CGAL/Triangulation_on_sphere_2/internal/get_precision_bounds.h 2022-06-03 19:06:12.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation_on_sphere_2/internal/get_precision_bounds.h 2022-07-13 19:07:11.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_on_sphere_2/include/CGAL/Triangulation_on_sphere_2/internal/get_precision_bounds.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_on_sphere_2/include/CGAL/Triangulation_on_sphere_2/internal/get_precision_bounds.h $ // $Id: get_precision_bounds.h bd5a54e 2021-03-24T13:30:58+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation_on_sphere_2/IO/OFF.h cgal-5.5/include/CGAL/Triangulation_on_sphere_2/IO/OFF.h --- cgal-5.4.1/include/CGAL/Triangulation_on_sphere_2/IO/OFF.h 2022-06-03 19:06:12.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation_on_sphere_2/IO/OFF.h 2022-07-13 19:07:11.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_on_sphere_2/include/CGAL/Triangulation_on_sphere_2/IO/OFF.h $ -// $Id: OFF.h fb6f703 2021-05-04T14:07:49+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_on_sphere_2/include/CGAL/Triangulation_on_sphere_2/IO/OFF.h $ +// $Id: OFF.h 75b03e6 2022-01-10T15:33:04+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Mael Rouxel-Labbé @@ -16,7 +16,7 @@ #include -#include +#include #include #include @@ -24,12 +24,6 @@ #include #include -#ifdef DOXYGEN_RUNNING -#define CGAL_BGL_NP_TEMPLATE_PARAMETERS NamedParameters -#define CGAL_BGL_NP_CLASS NamedParameters -#define CGAL_DEPRECATED -#endif - namespace CGAL { template @@ -68,10 +62,10 @@ \return `true` if the writing was successful, `false` otherwise. */ -template +template bool write_OFF(std::ostream& os, const CGAL::Triangulation_on_sphere_2& dt, - const CGAL_BGL_NP_CLASS& np) + const NamedParameters& np = parameters::default_values()) { typedef Triangulation_on_sphere_2 Tr; typedef typename Tr::Vertex_handle Vertex_handle; @@ -136,16 +130,6 @@ return !os.fail(); } -/// \cond SKIP_IN_MANUAL - -template -bool write_OFF(std::ostream& os, const CGAL::Triangulation_on_sphere_2& dt) -{ - return write_OFF(os, dt, parameters::all_default()); -} - -/// \endcond - /*! \ingroup PkgPointSet3IOOFF @@ -169,26 +153,15 @@ \return `true` if the writing was successful, `false` otherwise. */ -template +template bool write_OFF(const std::string& fname, const CGAL::Triangulation_on_sphere_2& dt, - const CGAL_BGL_NP_CLASS& np) + const NamedParameters& np = parameters::default_values()) { std::ofstream os(fname); // stream precision will be set in the ostream overload return write_OFF(os, dt, np); } -/// \cond SKIP_IN_MANUAL - -template -bool write_OFF(const std::string& fname, const CGAL::Triangulation_on_sphere_2& dt) -{ - std::ofstream os(fname); - return write_OFF(os, dt, parameters::all_default()); -} - -/// \endcond - } } // namespace CGAL::IO #endif // CGAL_TOS2_IO_OFF_H diff -Nru cgal-5.4.1/include/CGAL/Triangulation_on_sphere_2.h cgal-5.5/include/CGAL/Triangulation_on_sphere_2.h --- cgal-5.4.1/include/CGAL/Triangulation_on_sphere_2.h 2022-06-03 19:06:12.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation_on_sphere_2.h 2022-07-13 19:07:11.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_on_sphere_2/include/CGAL/Triangulation_on_sphere_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_on_sphere_2/include/CGAL/Triangulation_on_sphere_2.h $ // $Id: Triangulation_on_sphere_2.h d871728 2021-07-23T13:09:37+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation_on_sphere_face_base_2.h cgal-5.5/include/CGAL/Triangulation_on_sphere_face_base_2.h --- cgal-5.4.1/include/CGAL/Triangulation_on_sphere_face_base_2.h 2022-06-03 19:06:12.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation_on_sphere_face_base_2.h 2022-07-13 19:07:11.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_on_sphere_2/include/CGAL/Triangulation_on_sphere_face_base_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_on_sphere_2/include/CGAL/Triangulation_on_sphere_face_base_2.h $ // $Id: Triangulation_on_sphere_face_base_2.h 640dffc 2021-01-31T12:31:06+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation_on_sphere_vertex_base_2.h cgal-5.5/include/CGAL/Triangulation_on_sphere_vertex_base_2.h --- cgal-5.4.1/include/CGAL/Triangulation_on_sphere_vertex_base_2.h 2022-06-03 19:06:12.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation_on_sphere_vertex_base_2.h 2022-07-13 19:07:11.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_on_sphere_2/include/CGAL/Triangulation_on_sphere_vertex_base_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_on_sphere_2/include/CGAL/Triangulation_on_sphere_vertex_base_2.h $ // $Id: Triangulation_on_sphere_vertex_base_2.h cdcc86a 2021-03-22T22:18:22+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation_segment_traverser_3.h cgal-5.5/include/CGAL/Triangulation_segment_traverser_3.h --- cgal-5.4.1/include/CGAL/Triangulation_segment_traverser_3.h 2022-06-03 19:06:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation_segment_traverser_3.h 2022-07-13 19:07:10.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_3/include/CGAL/Triangulation_segment_traverser_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_3/include/CGAL/Triangulation_segment_traverser_3.h $ // $Id: Triangulation_segment_traverser_3.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation_simplex_3.h cgal-5.5/include/CGAL/Triangulation_simplex_3.h --- cgal-5.4.1/include/CGAL/Triangulation_simplex_3.h 2022-06-03 19:06:03.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation_simplex_3.h 2022-07-13 19:07:00.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/TDS_3/include/CGAL/Triangulation_simplex_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/TDS_3/include/CGAL/Triangulation_simplex_3.h $ // $Id: Triangulation_simplex_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation_sphere_line_face_circulator_2.h cgal-5.5/include/CGAL/Triangulation_sphere_line_face_circulator_2.h --- cgal-5.4.1/include/CGAL/Triangulation_sphere_line_face_circulator_2.h 2022-06-03 19:06:12.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation_sphere_line_face_circulator_2.h 2022-07-13 19:07:11.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_on_sphere_2/include/CGAL/Triangulation_sphere_line_face_circulator_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_on_sphere_2/include/CGAL/Triangulation_sphere_line_face_circulator_2.h $ // $Id: Triangulation_sphere_line_face_circulator_2.h 23658a0 2021-03-20T19:56:10+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation_structural_filtering_traits.h cgal-5.5/include/CGAL/Triangulation_structural_filtering_traits.h --- cgal-5.4.1/include/CGAL/Triangulation_structural_filtering_traits.h 2022-06-03 19:04:33.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation_structural_filtering_traits.h 2022-07-13 19:05:24.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Triangulation_structural_filtering_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Triangulation_structural_filtering_traits.h $ // $Id: Triangulation_structural_filtering_traits.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation_utils_2.h cgal-5.5/include/CGAL/Triangulation_utils_2.h --- cgal-5.4.1/include/CGAL/Triangulation_utils_2.h 2022-06-03 19:06:02.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation_utils_2.h 2022-07-13 19:07:00.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/TDS_2/include/CGAL/Triangulation_utils_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/TDS_2/include/CGAL/Triangulation_utils_2.h $ // $Id: Triangulation_utils_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation_utils_3.h cgal-5.5/include/CGAL/Triangulation_utils_3.h --- cgal-5.4.1/include/CGAL/Triangulation_utils_3.h 2022-06-03 19:06:03.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation_utils_3.h 2022-07-13 19:07:00.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/TDS_3/include/CGAL/Triangulation_utils_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/TDS_3/include/CGAL/Triangulation_utils_3.h $ // $Id: Triangulation_utils_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation_vertex_base_2.h cgal-5.5/include/CGAL/Triangulation_vertex_base_2.h --- cgal-5.4.1/include/CGAL/Triangulation_vertex_base_2.h 2022-06-03 19:06:07.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation_vertex_base_2.h 2022-07-13 19:07:06.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_2/include/CGAL/Triangulation_vertex_base_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_2/include/CGAL/Triangulation_vertex_base_2.h $ // $Id: Triangulation_vertex_base_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation_vertex_base_3.h cgal-5.5/include/CGAL/Triangulation_vertex_base_3.h --- cgal-5.4.1/include/CGAL/Triangulation_vertex_base_3.h 2022-06-03 19:06:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation_vertex_base_3.h 2022-07-13 19:07:10.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_3/include/CGAL/Triangulation_vertex_base_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_3/include/CGAL/Triangulation_vertex_base_3.h $ // $Id: Triangulation_vertex_base_3.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation_vertex_base_with_id_2.h cgal-5.5/include/CGAL/Triangulation_vertex_base_with_id_2.h --- cgal-5.4.1/include/CGAL/Triangulation_vertex_base_with_id_2.h 2022-06-03 19:06:07.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation_vertex_base_with_id_2.h 2022-07-13 19:07:06.000000000 +0000 @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_2/include/CGAL/Triangulation_vertex_base_with_id_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_2/include/CGAL/Triangulation_vertex_base_with_id_2.h $ // $Id: Triangulation_vertex_base_with_id_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation_vertex_base_with_info_2.h cgal-5.5/include/CGAL/Triangulation_vertex_base_with_info_2.h --- cgal-5.4.1/include/CGAL/Triangulation_vertex_base_with_info_2.h 2022-06-03 19:06:07.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation_vertex_base_with_info_2.h 2022-07-13 19:07:06.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_2/include/CGAL/Triangulation_vertex_base_with_info_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_2/include/CGAL/Triangulation_vertex_base_with_info_2.h $ // $Id: Triangulation_vertex_base_with_info_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation_vertex_base_with_info_3.h cgal-5.5/include/CGAL/Triangulation_vertex_base_with_info_3.h --- cgal-5.4.1/include/CGAL/Triangulation_vertex_base_with_info_3.h 2022-06-03 19:06:11.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation_vertex_base_with_info_3.h 2022-07-13 19:07:10.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation_3/include/CGAL/Triangulation_vertex_base_with_info_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation_3/include/CGAL/Triangulation_vertex_base_with_info_3.h $ // $Id: Triangulation_vertex_base_with_info_3.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Triangulation_vertex.h cgal-5.5/include/CGAL/Triangulation_vertex.h --- cgal-5.4.1/include/CGAL/Triangulation_vertex.h 2022-06-03 19:06:05.000000000 +0000 +++ cgal-5.5/include/CGAL/Triangulation_vertex.h 2022-07-13 19:07:03.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Triangulation/include/CGAL/Triangulation_vertex.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Triangulation/include/CGAL/Triangulation_vertex.h $ // $Id: Triangulation_vertex.h 2d18b6e 2020-08-26T11:30:59+02:00 Marc Glisse // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Trisegment_2.h cgal-5.5/include/CGAL/Trisegment_2.h --- cgal-5.4.1/include/CGAL/Trisegment_2.h 2022-06-03 19:05:50.000000000 +0000 +++ cgal-5.5/include/CGAL/Trisegment_2.h 2022-07-13 19:06:46.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Straight_skeleton_2/include/CGAL/Trisegment_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Straight_skeleton_2/include/CGAL/Trisegment_2.h $ // $Id: Trisegment_2.h b43e578 2020-11-27T14:00:24+01:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/tss.h cgal-5.5/include/CGAL/tss.h --- cgal-5.4.1/include/CGAL/tss.h 2022-06-03 19:04:24.000000000 +0000 +++ cgal-5.5/include/CGAL/tss.h 2022-07-13 19:05:14.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/tss.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/tss.h $ // $Id: tss.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial diff -Nru cgal-5.4.1/include/CGAL/tuple.h cgal-5.5/include/CGAL/tuple.h --- cgal-5.4.1/include/CGAL/tuple.h 2022-06-03 19:05:33.000000000 +0000 +++ cgal-5.5/include/CGAL/tuple.h 2022-07-13 19:06:29.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/tuple.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/tuple.h $ // $Id: tuple.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Twotuple.h cgal-5.5/include/CGAL/Twotuple.h --- cgal-5.4.1/include/CGAL/Twotuple.h 2022-06-03 19:05:33.000000000 +0000 +++ cgal-5.5/include/CGAL/Twotuple.h 2022-07-13 19:06:28.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/Twotuple.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/Twotuple.h $ // $Id: Twotuple.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/typeset.h cgal-5.5/include/CGAL/typeset.h --- cgal-5.4.1/include/CGAL/typeset.h 2022-06-03 19:04:58.000000000 +0000 +++ cgal-5.5/include/CGAL/typeset.h 2022-07-13 19:05:52.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/NewKernel_d/include/CGAL/typeset.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/NewKernel_d/include/CGAL/typeset.h $ // $Id: typeset.h 822bc55 2020-03-27T08:28:48+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/type_traits.h cgal-5.5/include/CGAL/type_traits.h --- cgal-5.4.1/include/CGAL/type_traits.h 2022-06-03 19:05:33.000000000 +0000 +++ cgal-5.5/include/CGAL/type_traits.h 2022-07-13 19:06:29.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/type_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/type_traits.h $ // $Id: type_traits.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Umbilics.h cgal-5.5/include/CGAL/Umbilics.h --- cgal-5.4.1/include/CGAL/Umbilics.h 2022-06-03 19:05:30.000000000 +0000 +++ cgal-5.5/include/CGAL/Umbilics.h 2022-07-13 19:06:25.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Ridges_3/include/CGAL/Umbilics.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Ridges_3/include/CGAL/Umbilics.h $ // $Id: Umbilics.h 1faa0e2 2021-04-28T10:55:26+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Uncertain.h cgal-5.5/include/CGAL/Uncertain.h --- cgal-5.4.1/include/CGAL/Uncertain.h 2022-06-03 19:05:33.000000000 +0000 +++ cgal-5.5/include/CGAL/Uncertain.h 2022-07-13 19:06:28.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/Uncertain.h $ -// $Id: Uncertain.h 358420e 2021-08-30T18:57:55+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/Uncertain.h $ +// $Id: Uncertain.h 6acb3a1 2022-07-11T10:35:09+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Sylvain Pion @@ -289,6 +289,11 @@ return Uncertain(!a.sup(), !a.inf()); } +#ifdef __clang__ +# pragma GCC diagnostic push +# pragma GCC diagnostic ignored "-Wunknown-warning-option" +# pragma GCC diagnostic ignored "-Wbitwise-instead-of-logical" +#endif inline Uncertain operator|(Uncertain a, Uncertain b) { @@ -324,7 +329,9 @@ { return Uncertain(a.inf() & b, a.sup() & b); } - +#ifdef __clang__ +# pragma GCC diagnostic pop +#endif // Equality operators diff -Nru cgal-5.4.1/include/CGAL/Unfiltered_predicate_adaptor.h cgal-5.5/include/CGAL/Unfiltered_predicate_adaptor.h --- cgal-5.4.1/include/CGAL/Unfiltered_predicate_adaptor.h 2022-06-03 19:05:50.000000000 +0000 +++ cgal-5.5/include/CGAL/Unfiltered_predicate_adaptor.h 2022-07-13 19:06:46.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Straight_skeleton_2/include/CGAL/Unfiltered_predicate_adaptor.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Straight_skeleton_2/include/CGAL/Unfiltered_predicate_adaptor.h $ // $Id: Unfiltered_predicate_adaptor.h 655d427 2020-09-11T15:00:12+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Union_find.h cgal-5.5/include/CGAL/Union_find.h --- cgal-5.4.1/include/CGAL/Union_find.h 2022-06-03 19:06:12.000000000 +0000 +++ cgal-5.5/include/CGAL/Union_find.h 2022-07-13 19:07:11.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Union_find/include/CGAL/Union_find.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Union_find/include/CGAL/Union_find.h $ // $Id: Union_find.h fcd4e57 2020-05-22T11:29:03+02:00 Marc Glisse // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Union_of_balls_3.h cgal-5.5/include/CGAL/Union_of_balls_3.h --- cgal-5.4.1/include/CGAL/Union_of_balls_3.h 2022-06-03 19:05:44.000000000 +0000 +++ cgal-5.5/include/CGAL/Union_of_balls_3.h 2022-07-13 19:06:41.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Skin_surface_3/include/CGAL/Union_of_balls_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Skin_surface_3/include/CGAL/Union_of_balls_3.h $ // $Id: Union_of_balls_3.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Unique_hash_map.h cgal-5.5/include/CGAL/Unique_hash_map.h --- cgal-5.4.1/include/CGAL/Unique_hash_map.h 2022-06-03 19:04:17.000000000 +0000 +++ cgal-5.5/include/CGAL/Unique_hash_map.h 2022-07-13 19:05:07.000000000 +0000 @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Hash_map/include/CGAL/Unique_hash_map.h $ -// $Id: Unique_hash_map.h 590ddf8 2021-10-08T15:38:47+02:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Hash_map/include/CGAL/Unique_hash_map.h $ +// $Id: Unique_hash_map.h 3207dfe 2022-04-06T16:05:54+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // @@ -23,7 +23,7 @@ #include #include #include -#include +#include #include namespace CGAL { @@ -47,37 +47,50 @@ private: typedef internal::chained_map Map; - typedef typename Map::item Item; + typedef typename Map::Item Item; private: Hash_function m_hash_function; Map m_map; + template + void reserve_impl(It, It, Iterator_category) + {} + + template + void reserve_impl(It b, It e, std::forward_iterator_tag) + { + m_map.reserve(std::distance(b,e)); + } + public: - Unique_hash_map() { m_map.xdef() = Data(); } + Unique_hash_map() = default; - Unique_hash_map( const Data& deflt, std::size_t table_size = 1) - : m_map( table_size) { m_map.xdef() = deflt; } + Unique_hash_map( const Data& deflt, std::size_t table_size = Map::default_size) + : m_map(table_size, deflt) + {} Unique_hash_map( const Data& deflt, std::size_t table_size, const Hash_function& fct) - : m_hash_function(fct), m_map( table_size) { m_map.xdef() = deflt; } + : m_hash_function(fct), m_map( table_size, deflt) + {} Unique_hash_map( Key first1, Key beyond1, Data first2) { - m_map.xdef() = Data(); insert( first1, beyond1, first2); } Unique_hash_map( Key first1, Key beyond1, Data first2, const Data& deflt, std::size_t table_size = 1, const Hash_function& fct = Hash_function()) - : m_hash_function(fct), m_map( table_size) { - m_map.xdef() = deflt; + : m_hash_function(fct), m_map(table_size, deflt) { insert( first1, beyond1, first2); } + void reserve(std::size_t n) + { m_map.reserve(n); } + Data default_value() const { return m_map.cxdef(); } Hash_function hash_function() const { return m_hash_function; } @@ -104,6 +117,7 @@ } Data insert( Key first1, Key beyond1, Data first2) { + reserve_impl(first1, beyond1, typename std::iterator_traits::iterator_category()); for ( ; first1 != beyond1; (++first1, ++first2)) { operator[]( first1) = first2; } diff -Nru cgal-5.4.1/include/CGAL/use.h cgal-5.5/include/CGAL/use.h --- cgal-5.4.1/include/CGAL/use.h 2022-06-03 19:04:24.000000000 +0000 +++ cgal-5.5/include/CGAL/use.h 2022-07-13 19:05:14.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/use.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/use.h $ // $Id: use.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/user_classes.h cgal-5.5/include/CGAL/user_classes.h --- cgal-5.4.1/include/CGAL/user_classes.h 2022-06-03 19:04:33.000000000 +0000 +++ cgal-5.5/include/CGAL/user_classes.h 2022-07-13 19:05:25.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/user_classes.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/user_classes.h $ // $Id: user_classes.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/utility.h cgal-5.5/include/CGAL/utility.h --- cgal-5.4.1/include/CGAL/utility.h 2022-06-03 19:05:33.000000000 +0000 +++ cgal-5.5/include/CGAL/utility.h 2022-07-13 19:06:29.000000000 +0000 @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/utility.h $ -// $Id: utility.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/utility.h $ +// $Id: utility.h 4ffc949 2022-02-03T17:11:20+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // @@ -325,4 +325,28 @@ } //namespace CGAL +namespace std { + +#if defined(BOOST_MSVC) +# pragma warning(push) +# pragma warning(disable:4099) // For VC10 it is class hash +#endif + +#ifndef CGAL_CFG_NO_STD_HASH +template +struct hash> +{ + std::size_t operator()(const CGAL::Triple& t) const + { + return hash_value(t); + } +}; +#endif // CGAL_CFG_NO_STD_HASH + +#if defined(BOOST_MSVC) +# pragma warning(pop) +#endif + +} // std namespace + #endif // CGAL_UTILITY_H diff -Nru cgal-5.4.1/include/CGAL/utils_classes.h cgal-5.5/include/CGAL/utils_classes.h --- cgal-5.4.1/include/CGAL/utils_classes.h 2022-06-03 19:05:02.000000000 +0000 +++ cgal-5.5/include/CGAL/utils_classes.h 2022-07-13 19:05:56.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/utils_classes.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/utils_classes.h $ // $Id: utils_classes.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/utils.h cgal-5.5/include/CGAL/utils.h --- cgal-5.4.1/include/CGAL/utils.h 2022-06-03 19:05:02.000000000 +0000 +++ cgal-5.5/include/CGAL/utils.h 2022-07-13 19:05:56.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Number_types/include/CGAL/utils.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Number_types/include/CGAL/utils.h $ // $Id: utils.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/value_type_traits.h cgal-5.5/include/CGAL/value_type_traits.h --- cgal-5.4.1/include/CGAL/value_type_traits.h 2022-06-03 19:05:33.000000000 +0000 +++ cgal-5.5/include/CGAL/value_type_traits.h 2022-07-13 19:06:29.000000000 +0000 @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/value_type_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/value_type_traits.h $ // $Id: value_type_traits.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Variational_shape_approximation.h cgal-5.5/include/CGAL/Variational_shape_approximation.h --- cgal-5.4.1/include/CGAL/Variational_shape_approximation.h 2022-06-03 19:05:53.000000000 +0000 +++ cgal-5.5/include/CGAL/Variational_shape_approximation.h 2022-07-13 19:06:50.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesh_approximation/include/CGAL/Variational_shape_approximation.h $ -// $Id: Variational_shape_approximation.h 6911f0c 2022-01-07T15:42:50+01:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_approximation/include/CGAL/Variational_shape_approximation.h $ +// $Id: Variational_shape_approximation.h 389ef8e 2022-05-17T10:51:32+01:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -31,11 +31,11 @@ #include #include -#include +#include #include #include -#include +#include #include #include @@ -1209,7 +1209,8 @@ * @param t concurrency tag */ template - void fit(const ProxyWrapperIterator beg, const ProxyWrapperIterator end, const CGAL::Sequential_tag &) { + void fit(const ProxyWrapperIterator beg, const ProxyWrapperIterator end, const CGAL::Sequential_tag & t) { + CGAL_USE(t); std::vector > px_faces(m_proxies.size()); for(face_descriptor f : faces(*m_ptm)) px_faces[get(m_fproxy_map, f)].push_back(f); @@ -1230,7 +1231,8 @@ * @param t concurrency tag */ template - void fit(const ProxyWrapperIterator beg, const ProxyWrapperIterator end, const CGAL::Parallel_tag &) { + void fit(const ProxyWrapperIterator beg, const ProxyWrapperIterator end, const CGAL::Parallel_tag & t) { + CGAL_USE(t); std::vector > px_faces(m_proxies.size()); for(face_descriptor f : faces(*m_ptm)) px_faces[get(m_fproxy_map, f)].push_back(f); @@ -1334,7 +1336,7 @@ * 3. Update the proxy error. * 4. Update proxy map. * @pre current face proxy map is valid - * @param face_descriptor face + * @param f face * @param px_idx proxy index * @return fitted wrapped proxy */ @@ -1652,7 +1654,7 @@ typedef typename SubGraph::vertex_descriptor sg_vertex_descriptor; typedef std::vector VertexVector; - typedef boost::unordered_map VertexMap; + typedef std::unordered_map VertexMap; typedef boost::associative_property_map ToSGVertexMap; VertexMap vmap; ToSGVertexMap to_sgv_map(vmap); @@ -1790,7 +1792,7 @@ /*! * @brief walks along the region boundary cycle to the first halfedge * pointing to a vertex associated with an anchor. - * @param[in/out] he_start region boundary halfedge + * @param[in,out] he_start region boundary halfedge */ void walk_to_first_anchor(halfedge_descriptor &he_start) { const halfedge_descriptor start_mark = he_start; @@ -1805,7 +1807,7 @@ /*! * @brief walks along the region boundary cycle to the next anchor * and records the path as a `Boundary_chord`. - * @param[in/out] he_start starting region boundary halfedge + * @param[in,out] he_start starting region boundary halfedge * pointing to a vertex associated with an anchor * @param[out] chord recorded path chord */ @@ -1818,7 +1820,7 @@ /*! * @brief walks to the next boundary cycle halfedge. - * @param[in/out] he_start region boundary halfedge + * @param[in,out] he_start region boundary halfedge */ void walk_to_next_border_halfedge(halfedge_descriptor &he_start) const { const std::size_t px_idx = get(m_fproxy_map, face(he_start, *m_ptm)); diff -Nru cgal-5.4.1/include/CGAL/vcm_estimate_edges.h cgal-5.5/include/CGAL/vcm_estimate_edges.h --- cgal-5.4.1/include/CGAL/vcm_estimate_edges.h 2022-06-03 19:05:13.000000000 +0000 +++ cgal-5.5/include/CGAL/vcm_estimate_edges.h 2022-07-13 19:06:06.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Point_set_processing_3/include/CGAL/vcm_estimate_edges.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Point_set_processing_3/include/CGAL/vcm_estimate_edges.h $ // $Id: vcm_estimate_edges.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/vcm_estimate_normals.h cgal-5.5/include/CGAL/vcm_estimate_normals.h --- cgal-5.4.1/include/CGAL/vcm_estimate_normals.h 2022-06-03 19:05:13.000000000 +0000 +++ cgal-5.5/include/CGAL/vcm_estimate_normals.h 2022-07-13 19:06:06.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Point_set_processing_3/include/CGAL/vcm_estimate_normals.h $ -// $Id: vcm_estimate_normals.h 9939011 2020-06-21T15:54:21+02:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Point_set_processing_3/include/CGAL/vcm_estimate_normals.h $ +// $Id: vcm_estimate_normals.h 75b03e6 2022-01-10T15:33:04+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Jocelyn Meyron and Quentin Mérigot @@ -29,7 +29,7 @@ #include #include -#include +#include #include #include @@ -257,23 +257,24 @@ */ template + typename NamedParameters = parameters::Default_named_parameters> void compute_vcm (const PointRange& points, std::vector< std::array > &ccov, double offset_radius, double convolution_radius, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { using parameters::choose_parameter; using parameters::get_parameter; // basic geometric types - typedef typename CGAL::GetPointMap::type PointMap; - typedef typename Point_set_processing_3::GetK::Kernel Kernel; + typedef Point_set_processing_3_np_helper NP_helper; + typedef typename NP_helper::Const_point_map PointMap; + typedef typename NP_helper::Geom_traits Kernel; - PointMap point_map = choose_parameter(get_parameter(np, internal_np::point_map)); - Kernel kernel; + PointMap point_map = NP_helper::get_const_point_map(points, np); + Kernel kernel = NP_helper::get_geom_traits(points, np); // First, compute the VCM for each point std::vector< std::array > cov; @@ -299,21 +300,6 @@ } /// \cond SKIP_IN_MANUAL -// variant with default NP -template -void -compute_vcm (const PointRange& points, - std::vector< std::array > &ccov, - double offset_radius, - double convolution_radius) -{ - compute_vcm (points, ccov, offset_radius, convolution_radius, - CGAL::Point_set_processing_3::parameters::all_default (points)); -} - -/// \endcond - -/// \cond SKIP_IN_MANUAL template @@ -329,17 +315,16 @@ using parameters::get_parameter; // basic geometric types - typedef typename CGAL::GetPointMap::type PointMap; - typedef typename Point_set_processing_3::GetNormalMap::type NormalMap; - typedef typename Point_set_processing_3::GetK::Kernel Kernel; + typedef Point_set_processing_3_np_helper NP_helper; + typedef typename NP_helper::Point_map PointMap; + typedef typename NP_helper::Normal_map NormalMap; + typedef typename NP_helper::Geom_traits Kernel; typedef typename GetDiagonalizeTraits::type DiagonalizeTraits; - CGAL_static_assertion_msg(!(boost::is_same::NoMap>::value), - "Error: no normal map"); + CGAL_static_assertion_msg(NP_helper::has_normal_map(), "Error: no normal map"); - PointMap point_map = choose_parameter(get_parameter(np, internal_np::point_map)); - NormalMap normal_map = choose_parameter(get_parameter(np, internal_np::normal_map)); + PointMap point_map = NP_helper::get_point_map(points, np); + NormalMap normal_map = NP_helper::get_normal_map(points, np); typedef std::array Covariance; @@ -439,34 +424,18 @@ \cgalNamedParamsEnd */ template void vcm_estimate_normals (PointRange& points, double offset_radius, double convolution_radius, - const NamedParameters& np + const NamedParameters& np = parameters::default_values() ) { vcm_estimate_normals_internal(points, offset_radius, convolution_radius, np); } -/// \cond SKIP_IN_MANUAL -// variant with default NP -template -void -vcm_estimate_normals (PointRange& points, - double offset_radius, ///< offset radius. - double convolution_radius) ///< convolution radius. -{ - return vcm_estimate_normals - (points, offset_radius, convolution_radius, - CGAL::Point_set_processing_3::parameters::all_default(points)); -} - -/// \endcond - - /** \ingroup PkgPointSetProcessing3Algorithms Estimates normal directions of the range of `points` @@ -514,34 +483,18 @@ \cgalNamedParamsEnd */ template < typename PointRange, - typename NamedParameters + typename NamedParameters = parameters::Default_named_parameters > void vcm_estimate_normals (PointRange& points, double offset_radius, unsigned int k, - const NamedParameters& np + const NamedParameters& np = parameters::default_values() ) { vcm_estimate_normals_internal(points, offset_radius, 0, np, k); } -/// \cond SKIP_IN_MANUAL -// variant with default NP -template -void -vcm_estimate_normals (PointRange& points, - double offset_radius, ///< offset radius. - unsigned int k) -{ - return vcm_estimate_normals - (points, offset_radius, k, - CGAL::Point_set_processing_3::parameters::all_default(points)); -} - - -/// \endcond - } // namespace CGAL #include diff -Nru cgal-5.4.1/include/CGAL/Vector_2.h cgal-5.5/include/CGAL/Vector_2.h --- cgal-5.4.1/include/CGAL/Vector_2.h 2022-06-03 19:04:33.000000000 +0000 +++ cgal-5.5/include/CGAL/Vector_2.h 2022-07-13 19:05:24.000000000 +0000 @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Vector_2.h $ -// $Id: Vector_2.h 1538fdb 2022-04-27T16:30:53+02:00 Laurent Rineau +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Vector_2.h $ +// $Id: Vector_2.h 2884569 2022-04-27T16:32:06+02:00 Laurent Rineau // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // diff -Nru cgal-5.4.1/include/CGAL/Vector_3.h cgal-5.5/include/CGAL/Vector_3.h --- cgal-5.4.1/include/CGAL/Vector_3.h 2022-06-03 19:04:33.000000000 +0000 +++ cgal-5.5/include/CGAL/Vector_3.h 2022-07-13 19:05:24.000000000 +0000 @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Vector_3.h $ -// $Id: Vector_3.h 1538fdb 2022-04-27T16:30:53+02:00 Laurent Rineau +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Vector_3.h $ +// $Id: Vector_3.h 2884569 2022-04-27T16:32:06+02:00 Laurent Rineau // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // diff -Nru cgal-5.4.1/include/CGAL/vector.h cgal-5.5/include/CGAL/vector.h --- cgal-5.4.1/include/CGAL/vector.h 2022-06-03 19:05:33.000000000 +0000 +++ cgal-5.5/include/CGAL/vector.h 2022-07-13 19:06:29.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/STL_Extension/include/CGAL/vector.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/vector.h $ // $Id: vector.h b42bbde 2021-05-05T06:46:57+01:00 Giles Bathgate // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/version.h cgal-5.5/include/CGAL/version.h --- cgal-5.4.1/include/CGAL/version.h 2022-06-03 19:06:15.000000000 +0000 +++ cgal-5.5/include/CGAL/version.h 2022-07-13 19:07:15.000000000 +0000 @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/version.h $ -// $Id: version.h 47aab15 2022-01-31T17:26:46+01:00 Laurent Rineau +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/version.h $ +// $Id: version.h 10f5fa4 2022-06-29T14:52:29+02:00 Laurent Rineau // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : - @@ -17,12 +17,12 @@ #define CGAL_VERSION_H #ifndef SWIG -#define CGAL_VERSION 5.4.1 -#define CGAL_GIT_HASH e09b9c8a24800dfbc2dcc4a4ce465893af3068ae +#define CGAL_VERSION 5.5 +#define CGAL_GIT_HASH 80c30e4c79f1bb34673cdcfa22d8498d7c09967c #endif -#define CGAL_VERSION_NR 1050411000 +#define CGAL_VERSION_NR 1050501000 #define CGAL_SVN_REVISION 99999 -#define CGAL_RELEASE_DATE 20220603 +#define CGAL_RELEASE_DATE 20220713 #include diff -Nru cgal-5.4.1/include/CGAL/version_macros.h cgal-5.5/include/CGAL/version_macros.h --- cgal-5.4.1/include/CGAL/version_macros.h 2022-06-03 19:04:24.000000000 +0000 +++ cgal-5.5/include/CGAL/version_macros.h 2022-07-13 19:05:14.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Installation/include/CGAL/version_macros.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Installation/include/CGAL/version_macros.h $ // $Id: version_macros.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Vertex2Data_Property_Map_with_std_map.h cgal-5.5/include/CGAL/Vertex2Data_Property_Map_with_std_map.h --- cgal-5.4.1/include/CGAL/Vertex2Data_Property_Map_with_std_map.h 2022-06-03 19:05:30.000000000 +0000 +++ cgal-5.5/include/CGAL/Vertex2Data_Property_Map_with_std_map.h 2022-07-13 19:06:25.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Ridges_3/include/CGAL/Vertex2Data_Property_Map_with_std_map.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Ridges_3/include/CGAL/Vertex2Data_Property_Map_with_std_map.h $ // $Id: Vertex2Data_Property_Map_with_std_map.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Visibility_2/visibility_utils.h cgal-5.5/include/CGAL/Visibility_2/visibility_utils.h --- cgal-5.4.1/include/CGAL/Visibility_2/visibility_utils.h 2022-06-03 19:06:12.000000000 +0000 +++ cgal-5.5/include/CGAL/Visibility_2/visibility_utils.h 2022-07-13 19:07:11.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Visibility_2/include/CGAL/Visibility_2/visibility_utils.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Visibility_2/include/CGAL/Visibility_2/visibility_utils.h $ // $Id: visibility_utils.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Accessor.h cgal-5.5/include/CGAL/Voronoi_diagram_2/Accessor.h --- cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Accessor.h 2022-06-03 19:06:13.000000000 +0000 +++ cgal-5.5/include/CGAL/Voronoi_diagram_2/Accessor.h 2022-07-13 19:07:13.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Accessor.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Accessor.h $ // $Id: Accessor.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Adaptation_traits_base_2.h cgal-5.5/include/CGAL/Voronoi_diagram_2/Adaptation_traits_base_2.h --- cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Adaptation_traits_base_2.h 2022-06-03 19:06:13.000000000 +0000 +++ cgal-5.5/include/CGAL/Voronoi_diagram_2/Adaptation_traits_base_2.h 2022-07-13 19:07:13.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Adaptation_traits_base_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Adaptation_traits_base_2.h $ // $Id: Adaptation_traits_base_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Adaptation_traits_functors.h cgal-5.5/include/CGAL/Voronoi_diagram_2/Adaptation_traits_functors.h --- cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Adaptation_traits_functors.h 2022-06-03 19:06:13.000000000 +0000 +++ cgal-5.5/include/CGAL/Voronoi_diagram_2/Adaptation_traits_functors.h 2022-07-13 19:07:13.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Adaptation_traits_functors.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Adaptation_traits_functors.h $ // $Id: Adaptation_traits_functors.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Apollonius_graph_degeneracy_testers.h cgal-5.5/include/CGAL/Voronoi_diagram_2/Apollonius_graph_degeneracy_testers.h --- cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Apollonius_graph_degeneracy_testers.h 2022-06-03 19:06:13.000000000 +0000 +++ cgal-5.5/include/CGAL/Voronoi_diagram_2/Apollonius_graph_degeneracy_testers.h 2022-07-13 19:07:13.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Apollonius_graph_degeneracy_testers.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Apollonius_graph_degeneracy_testers.h $ // $Id: Apollonius_graph_degeneracy_testers.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Apollonius_graph_nearest_site_2.h cgal-5.5/include/CGAL/Voronoi_diagram_2/Apollonius_graph_nearest_site_2.h --- cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Apollonius_graph_nearest_site_2.h 2022-06-03 19:06:13.000000000 +0000 +++ cgal-5.5/include/CGAL/Voronoi_diagram_2/Apollonius_graph_nearest_site_2.h 2022-07-13 19:07:13.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Apollonius_graph_nearest_site_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Apollonius_graph_nearest_site_2.h $ // $Id: Apollonius_graph_nearest_site_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Voronoi_diagram_2/basic.h cgal-5.5/include/CGAL/Voronoi_diagram_2/basic.h --- cgal-5.4.1/include/CGAL/Voronoi_diagram_2/basic.h 2022-06-03 19:06:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Voronoi_diagram_2/basic.h 2022-07-13 19:07:14.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/basic.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/basic.h $ // $Id: basic.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Cached_degeneracy_testers.h cgal-5.5/include/CGAL/Voronoi_diagram_2/Cached_degeneracy_testers.h --- cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Cached_degeneracy_testers.h 2022-06-03 19:06:13.000000000 +0000 +++ cgal-5.5/include/CGAL/Voronoi_diagram_2/Cached_degeneracy_testers.h 2022-07-13 19:07:13.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Cached_degeneracy_testers.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Cached_degeneracy_testers.h $ // $Id: Cached_degeneracy_testers.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Circulator_adaptors.h cgal-5.5/include/CGAL/Voronoi_diagram_2/Circulator_adaptors.h --- cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Circulator_adaptors.h 2022-06-03 19:06:13.000000000 +0000 +++ cgal-5.5/include/CGAL/Voronoi_diagram_2/Circulator_adaptors.h 2022-07-13 19:07:13.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Circulator_adaptors.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Circulator_adaptors.h $ // $Id: Circulator_adaptors.h 2e47630 2021-11-10T09:28:05+01:00 Laurent Rineau // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Connected_components.h cgal-5.5/include/CGAL/Voronoi_diagram_2/Connected_components.h --- cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Connected_components.h 2022-06-03 19:06:13.000000000 +0000 +++ cgal-5.5/include/CGAL/Voronoi_diagram_2/Connected_components.h 2022-07-13 19:07:13.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Connected_components.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Connected_components.h $ // $Id: Connected_components.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Construct_dual_points.h cgal-5.5/include/CGAL/Voronoi_diagram_2/Construct_dual_points.h --- cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Construct_dual_points.h 2022-06-03 19:06:13.000000000 +0000 +++ cgal-5.5/include/CGAL/Voronoi_diagram_2/Construct_dual_points.h 2022-07-13 19:07:13.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Construct_dual_points.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Construct_dual_points.h $ // $Id: Construct_dual_points.h 942d461 2021-05-05T16:59:22+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Default_site_inserters.h cgal-5.5/include/CGAL/Voronoi_diagram_2/Default_site_inserters.h --- cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Default_site_inserters.h 2022-06-03 19:06:13.000000000 +0000 +++ cgal-5.5/include/CGAL/Voronoi_diagram_2/Default_site_inserters.h 2022-07-13 19:07:13.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Default_site_inserters.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Default_site_inserters.h $ // $Id: Default_site_inserters.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Default_site_removers.h cgal-5.5/include/CGAL/Voronoi_diagram_2/Default_site_removers.h --- cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Default_site_removers.h 2022-06-03 19:06:13.000000000 +0000 +++ cgal-5.5/include/CGAL/Voronoi_diagram_2/Default_site_removers.h 2022-07-13 19:07:13.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Default_site_removers.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Default_site_removers.h $ // $Id: Default_site_removers.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Degeneracy_tester_binders.h cgal-5.5/include/CGAL/Voronoi_diagram_2/Degeneracy_tester_binders.h --- cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Degeneracy_tester_binders.h 2022-06-03 19:06:13.000000000 +0000 +++ cgal-5.5/include/CGAL/Voronoi_diagram_2/Degeneracy_tester_binders.h 2022-07-13 19:07:13.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Degeneracy_tester_binders.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Degeneracy_tester_binders.h $ // $Id: Degeneracy_tester_binders.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Delaunay_triangulation_degeneracy_testers.h cgal-5.5/include/CGAL/Voronoi_diagram_2/Delaunay_triangulation_degeneracy_testers.h --- cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Delaunay_triangulation_degeneracy_testers.h 2022-06-03 19:06:13.000000000 +0000 +++ cgal-5.5/include/CGAL/Voronoi_diagram_2/Delaunay_triangulation_degeneracy_testers.h 2022-07-13 19:07:13.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Delaunay_triangulation_degeneracy_testers.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Delaunay_triangulation_degeneracy_testers.h $ // $Id: Delaunay_triangulation_degeneracy_testers.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Delaunay_triangulation_nearest_site_2.h cgal-5.5/include/CGAL/Voronoi_diagram_2/Delaunay_triangulation_nearest_site_2.h --- cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Delaunay_triangulation_nearest_site_2.h 2022-06-03 19:06:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Voronoi_diagram_2/Delaunay_triangulation_nearest_site_2.h 2022-07-13 19:07:13.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Delaunay_triangulation_nearest_site_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Delaunay_triangulation_nearest_site_2.h $ // $Id: Delaunay_triangulation_nearest_site_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Delaunay_triangulation_on_sphere_degeneracy_testers.h cgal-5.5/include/CGAL/Voronoi_diagram_2/Delaunay_triangulation_on_sphere_degeneracy_testers.h --- cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Delaunay_triangulation_on_sphere_degeneracy_testers.h 2022-06-03 19:06:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Voronoi_diagram_2/Delaunay_triangulation_on_sphere_degeneracy_testers.h 2022-07-13 19:07:13.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Delaunay_triangulation_on_sphere_degeneracy_testers.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Delaunay_triangulation_on_sphere_degeneracy_testers.h $ // $Id: Delaunay_triangulation_on_sphere_degeneracy_testers.h 326a055 2021-07-06T10:11:49+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Dummy_iterator.h cgal-5.5/include/CGAL/Voronoi_diagram_2/Dummy_iterator.h --- cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Dummy_iterator.h 2022-06-03 19:06:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Voronoi_diagram_2/Dummy_iterator.h 2022-07-13 19:07:13.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Dummy_iterator.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Dummy_iterator.h $ // $Id: Dummy_iterator.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Edge_less.h cgal-5.5/include/CGAL/Voronoi_diagram_2/Edge_less.h --- cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Edge_less.h 2022-06-03 19:06:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Voronoi_diagram_2/Edge_less.h 2022-07-13 19:07:13.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Edge_less.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Edge_less.h $ // $Id: Edge_less.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Face.h cgal-5.5/include/CGAL/Voronoi_diagram_2/Face.h --- cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Face.h 2022-06-03 19:06:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Voronoi_diagram_2/Face.h 2022-07-13 19:07:13.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Face.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Face.h $ // $Id: Face.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Finder_classes.h cgal-5.5/include/CGAL/Voronoi_diagram_2/Finder_classes.h --- cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Finder_classes.h 2022-06-03 19:06:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Voronoi_diagram_2/Finder_classes.h 2022-07-13 19:07:13.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Finder_classes.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Finder_classes.h $ // $Id: Finder_classes.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Halfedge.h cgal-5.5/include/CGAL/Voronoi_diagram_2/Halfedge.h --- cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Halfedge.h 2022-06-03 19:06:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Voronoi_diagram_2/Halfedge.h 2022-07-13 19:07:13.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Halfedge.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Halfedge.h $ // $Id: Halfedge.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Handle_adaptor.h cgal-5.5/include/CGAL/Voronoi_diagram_2/Handle_adaptor.h --- cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Handle_adaptor.h 2022-06-03 19:06:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Voronoi_diagram_2/Handle_adaptor.h 2022-07-13 19:07:13.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Handle_adaptor.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Handle_adaptor.h $ // $Id: Handle_adaptor.h aea0bdd 2021-09-13T09:33:35+02:00 Laurent Rineau // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Identity_rejectors.h cgal-5.5/include/CGAL/Voronoi_diagram_2/Identity_rejectors.h --- cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Identity_rejectors.h 2022-06-03 19:06:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Voronoi_diagram_2/Identity_rejectors.h 2022-07-13 19:07:13.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Identity_rejectors.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Identity_rejectors.h $ // $Id: Identity_rejectors.h 3816336 2021-04-29T23:24:40+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Iterator_adaptors.h cgal-5.5/include/CGAL/Voronoi_diagram_2/Iterator_adaptors.h --- cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Iterator_adaptors.h 2022-06-03 19:06:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Voronoi_diagram_2/Iterator_adaptors.h 2022-07-13 19:07:13.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Iterator_adaptors.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Iterator_adaptors.h $ // $Id: Iterator_adaptors.h 2e47630 2021-11-10T09:28:05+01:00 Laurent Rineau // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Policy_base.h cgal-5.5/include/CGAL/Voronoi_diagram_2/Policy_base.h --- cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Policy_base.h 2022-06-03 19:06:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Voronoi_diagram_2/Policy_base.h 2022-07-13 19:07:13.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Policy_base.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Policy_base.h $ // $Id: Policy_base.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Regular_triangulation_degeneracy_testers.h cgal-5.5/include/CGAL/Voronoi_diagram_2/Regular_triangulation_degeneracy_testers.h --- cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Regular_triangulation_degeneracy_testers.h 2022-06-03 19:06:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Voronoi_diagram_2/Regular_triangulation_degeneracy_testers.h 2022-07-13 19:07:13.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Regular_triangulation_degeneracy_testers.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Regular_triangulation_degeneracy_testers.h $ // $Id: Regular_triangulation_degeneracy_testers.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Regular_triangulation_nearest_site_2.h cgal-5.5/include/CGAL/Voronoi_diagram_2/Regular_triangulation_nearest_site_2.h --- cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Regular_triangulation_nearest_site_2.h 2022-06-03 19:06:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Voronoi_diagram_2/Regular_triangulation_nearest_site_2.h 2022-07-13 19:07:13.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Regular_triangulation_nearest_site_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Regular_triangulation_nearest_site_2.h $ // $Id: Regular_triangulation_nearest_site_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Segment_Delaunay_graph_degeneracy_testers.h cgal-5.5/include/CGAL/Voronoi_diagram_2/Segment_Delaunay_graph_degeneracy_testers.h --- cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Segment_Delaunay_graph_degeneracy_testers.h 2022-06-03 19:06:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Voronoi_diagram_2/Segment_Delaunay_graph_degeneracy_testers.h 2022-07-13 19:07:14.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Segment_Delaunay_graph_degeneracy_testers.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Segment_Delaunay_graph_degeneracy_testers.h $ // $Id: Segment_Delaunay_graph_degeneracy_testers.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Segment_Delaunay_graph_nearest_site_2.h cgal-5.5/include/CGAL/Voronoi_diagram_2/Segment_Delaunay_graph_nearest_site_2.h --- cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Segment_Delaunay_graph_nearest_site_2.h 2022-06-03 19:06:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Voronoi_diagram_2/Segment_Delaunay_graph_nearest_site_2.h 2022-07-13 19:07:14.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Segment_Delaunay_graph_nearest_site_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Segment_Delaunay_graph_nearest_site_2.h $ // $Id: Segment_Delaunay_graph_nearest_site_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Site_accessors.h cgal-5.5/include/CGAL/Voronoi_diagram_2/Site_accessors.h --- cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Site_accessors.h 2022-06-03 19:06:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Voronoi_diagram_2/Site_accessors.h 2022-07-13 19:07:14.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Site_accessors.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Site_accessors.h $ // $Id: Site_accessors.h 942d461 2021-05-05T16:59:22+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Unbounded_edges.h cgal-5.5/include/CGAL/Voronoi_diagram_2/Unbounded_edges.h --- cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Unbounded_edges.h 2022-06-03 19:06:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Voronoi_diagram_2/Unbounded_edges.h 2022-07-13 19:07:14.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Unbounded_edges.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Unbounded_edges.h $ // $Id: Unbounded_edges.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Unbounded_faces.h cgal-5.5/include/CGAL/Voronoi_diagram_2/Unbounded_faces.h --- cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Unbounded_faces.h 2022-06-03 19:06:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Voronoi_diagram_2/Unbounded_faces.h 2022-07-13 19:07:14.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Unbounded_faces.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Unbounded_faces.h $ // $Id: Unbounded_faces.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Validity_testers.h cgal-5.5/include/CGAL/Voronoi_diagram_2/Validity_testers.h --- cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Validity_testers.h 2022-06-03 19:06:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Voronoi_diagram_2/Validity_testers.h 2022-07-13 19:07:14.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Validity_testers.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Validity_testers.h $ // $Id: Validity_testers.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Vertex.h cgal-5.5/include/CGAL/Voronoi_diagram_2/Vertex.h --- cgal-5.4.1/include/CGAL/Voronoi_diagram_2/Vertex.h 2022-06-03 19:06:14.000000000 +0000 +++ cgal-5.5/include/CGAL/Voronoi_diagram_2/Vertex.h 2022-07-13 19:07:14.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Vertex.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2/Vertex.h $ // $Id: Vertex.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Voronoi_diagram_2.h cgal-5.5/include/CGAL/Voronoi_diagram_2.h --- cgal-5.4.1/include/CGAL/Voronoi_diagram_2.h 2022-06-03 19:06:13.000000000 +0000 +++ cgal-5.5/include/CGAL/Voronoi_diagram_2.h 2022-07-13 19:07:12.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Voronoi_diagram_2/include/CGAL/Voronoi_diagram_2.h $ // $Id: Voronoi_diagram_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Voronoi_intersection_2_traits_3.h cgal-5.5/include/CGAL/Voronoi_intersection_2_traits_3.h --- cgal-5.4.1/include/CGAL/Voronoi_intersection_2_traits_3.h 2022-06-03 19:04:25.000000000 +0000 +++ cgal-5.5/include/CGAL/Voronoi_intersection_2_traits_3.h 2022-07-13 19:05:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Interpolation/include/CGAL/Voronoi_intersection_2_traits_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Interpolation/include/CGAL/Voronoi_intersection_2_traits_3.h $ // $Id: Voronoi_intersection_2_traits_3.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/vtkSurfaceMesherContourFilter.h cgal-5.5/include/CGAL/vtkSurfaceMesherContourFilter.h --- cgal-5.4.1/include/CGAL/vtkSurfaceMesherContourFilter.h 2022-06-03 19:06:01.000000000 +0000 +++ cgal-5.5/include/CGAL/vtkSurfaceMesherContourFilter.h 2022-07-13 19:06:58.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Surface_mesher/include/CGAL/vtkSurfaceMesherContourFilter.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesher/include/CGAL/vtkSurfaceMesherContourFilter.h $ // $Id: vtkSurfaceMesherContourFilter.h e9d41d7 2020-04-21T10:03:00+02:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Weighted_Minkowski_distance.h cgal-5.5/include/CGAL/Weighted_Minkowski_distance.h --- cgal-5.4.1/include/CGAL/Weighted_Minkowski_distance.h 2022-06-03 19:05:47.000000000 +0000 +++ cgal-5.5/include/CGAL/Weighted_Minkowski_distance.h 2022-07-13 19:06:44.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Spatial_searching/include/CGAL/Weighted_Minkowski_distance.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Spatial_searching/include/CGAL/Weighted_Minkowski_distance.h $ // $Id: Weighted_Minkowski_distance.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Weighted_point_2.h cgal-5.5/include/CGAL/Weighted_point_2.h --- cgal-5.4.1/include/CGAL/Weighted_point_2.h 2022-06-03 19:04:33.000000000 +0000 +++ cgal-5.5/include/CGAL/Weighted_point_2.h 2022-07-13 19:05:24.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Weighted_point_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Weighted_point_2.h $ // $Id: Weighted_point_2.h e7357ac 2021-07-19T14:53:27+02:00 Marc Glisse // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Weighted_point_3.h cgal-5.5/include/CGAL/Weighted_point_3.h --- cgal-5.4.1/include/CGAL/Weighted_point_3.h 2022-06-03 19:04:33.000000000 +0000 +++ cgal-5.5/include/CGAL/Weighted_point_3.h 2022-07-13 19:05:24.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Kernel_23/include/CGAL/Weighted_point_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Kernel_23/include/CGAL/Weighted_point_3.h $ // $Id: Weighted_point_3.h e7357ac 2021-07-19T14:53:27+02:00 Marc Glisse // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Weights/authalic_weights.h cgal-5.5/include/CGAL/Weights/authalic_weights.h --- cgal-5.4.1/include/CGAL/Weights/authalic_weights.h 2022-06-03 19:06:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Weights/authalic_weights.h 2022-07-13 19:07:14.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Weights/include/CGAL/Weights/authalic_weights.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Weights/include/CGAL/Weights/authalic_weights.h $ // $Id: authalic_weights.h 12bf0e9 2021-10-18T17:31:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Weights/barycentric_region_weights.h cgal-5.5/include/CGAL/Weights/barycentric_region_weights.h --- cgal-5.4.1/include/CGAL/Weights/barycentric_region_weights.h 2022-06-03 19:06:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Weights/barycentric_region_weights.h 2022-07-13 19:07:14.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Weights/include/CGAL/Weights/barycentric_region_weights.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Weights/include/CGAL/Weights/barycentric_region_weights.h $ // $Id: barycentric_region_weights.h 12bf0e9 2021-10-18T17:31:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Weights/cotangent_weights.h cgal-5.5/include/CGAL/Weights/cotangent_weights.h --- cgal-5.4.1/include/CGAL/Weights/cotangent_weights.h 2022-06-03 19:06:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Weights/cotangent_weights.h 2022-07-13 19:07:14.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Weights/include/CGAL/Weights/cotangent_weights.h $ -// $Id: cotangent_weights.h 12bf0e9 2021-10-18T17:31:59+02:00 Sébastien Loriot +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Weights/include/CGAL/Weights/cotangent_weights.h $ +// $Id: cotangent_weights.h 62936f8 2022-06-13T17:01:35+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // @@ -136,8 +136,7 @@ const CGAL::Point_2& r, const CGAL::Point_2& p, const CGAL::Point_2& q) { - - const GeomTraits traits; + GeomTraits traits; return cotangent_weight(t, r, p, q, traits); } @@ -162,7 +161,7 @@ const CGAL::Point_3& p, const CGAL::Point_3& q) { - const GeomTraits traits; + GeomTraits traits; return cotangent_weight(t, r, p, q, traits); } @@ -182,7 +181,7 @@ const PolygonMesh& m_pmesh; const VertexPointMap m_pmap; - const GeomTraits m_traits; + GeomTraits m_traits; public: using vertex_descriptor = typename boost::graph_traits::vertex_descriptor; @@ -247,7 +246,7 @@ using GeomTraits = typename CGAL::Kernel_traits< typename boost::property_traits::value_type>::type; using FT = typename GeomTraits::FT; - const GeomTraits traits; + GeomTraits traits; if (is_border(he, pmesh)) { return FT(0); @@ -291,7 +290,7 @@ using GeomTraits = typename CGAL::Kernel_traits< typename boost::property_traits::value_type>::type; using FT = typename GeomTraits::FT; - const GeomTraits traits; + GeomTraits traits; const auto v0 = target(he, pmesh); const auto v1 = source(he, pmesh); @@ -375,7 +374,7 @@ const PolygonMesh& m_pmesh; const VertexPointMap m_pmap; - const GeomTraits m_traits; + GeomTraits m_traits; public: using vertex_descriptor = typename boost::graph_traits::vertex_descriptor; diff -Nru cgal-5.4.1/include/CGAL/Weights/discrete_harmonic_weights.h cgal-5.5/include/CGAL/Weights/discrete_harmonic_weights.h --- cgal-5.4.1/include/CGAL/Weights/discrete_harmonic_weights.h 2022-06-03 19:06:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Weights/discrete_harmonic_weights.h 2022-07-13 19:07:14.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Weights/include/CGAL/Weights/discrete_harmonic_weights.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Weights/include/CGAL/Weights/discrete_harmonic_weights.h $ // $Id: discrete_harmonic_weights.h 12bf0e9 2021-10-18T17:31:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Weights/internal/pmp_weights_deprecated.h cgal-5.5/include/CGAL/Weights/internal/pmp_weights_deprecated.h --- cgal-5.4.1/include/CGAL/Weights/internal/pmp_weights_deprecated.h 2022-06-03 19:06:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Weights/internal/pmp_weights_deprecated.h 2022-07-13 19:07:14.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Weights/include/CGAL/Weights/internal/pmp_weights_deprecated.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Weights/include/CGAL/Weights/internal/pmp_weights_deprecated.h $ // $Id: pmp_weights_deprecated.h 12bf0e9 2021-10-18T17:31:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Weights/internal/polygon_utils_2.h cgal-5.5/include/CGAL/Weights/internal/polygon_utils_2.h --- cgal-5.4.1/include/CGAL/Weights/internal/polygon_utils_2.h 2022-06-03 19:06:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Weights/internal/polygon_utils_2.h 2022-07-13 19:07:14.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Weights/include/CGAL/Weights/internal/polygon_utils_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Weights/include/CGAL/Weights/internal/polygon_utils_2.h $ // $Id: polygon_utils_2.h 12bf0e9 2021-10-18T17:31:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Weights/internal/utils.h cgal-5.5/include/CGAL/Weights/internal/utils.h --- cgal-5.4.1/include/CGAL/Weights/internal/utils.h 2022-06-03 19:06:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Weights/internal/utils.h 2022-07-13 19:07:14.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Weights/include/CGAL/Weights/internal/utils.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Weights/include/CGAL/Weights/internal/utils.h $ // $Id: utils.h 12bf0e9 2021-10-18T17:31:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Weights/inverse_distance_weights.h cgal-5.5/include/CGAL/Weights/inverse_distance_weights.h --- cgal-5.4.1/include/CGAL/Weights/inverse_distance_weights.h 2022-06-03 19:06:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Weights/inverse_distance_weights.h 2022-07-13 19:07:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Weights/include/CGAL/Weights/inverse_distance_weights.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Weights/include/CGAL/Weights/inverse_distance_weights.h $ // $Id: inverse_distance_weights.h 12bf0e9 2021-10-18T17:31:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Weights/mean_value_weights.h cgal-5.5/include/CGAL/Weights/mean_value_weights.h --- cgal-5.4.1/include/CGAL/Weights/mean_value_weights.h 2022-06-03 19:06:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Weights/mean_value_weights.h 2022-07-13 19:07:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Weights/include/CGAL/Weights/mean_value_weights.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Weights/include/CGAL/Weights/mean_value_weights.h $ // $Id: mean_value_weights.h 12bf0e9 2021-10-18T17:31:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Weights/mixed_voronoi_region_weights.h cgal-5.5/include/CGAL/Weights/mixed_voronoi_region_weights.h --- cgal-5.4.1/include/CGAL/Weights/mixed_voronoi_region_weights.h 2022-06-03 19:06:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Weights/mixed_voronoi_region_weights.h 2022-07-13 19:07:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Weights/include/CGAL/Weights/mixed_voronoi_region_weights.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Weights/include/CGAL/Weights/mixed_voronoi_region_weights.h $ // $Id: mixed_voronoi_region_weights.h 12bf0e9 2021-10-18T17:31:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Weights/shepard_weights.h cgal-5.5/include/CGAL/Weights/shepard_weights.h --- cgal-5.4.1/include/CGAL/Weights/shepard_weights.h 2022-06-03 19:06:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Weights/shepard_weights.h 2022-07-13 19:07:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Weights/include/CGAL/Weights/shepard_weights.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Weights/include/CGAL/Weights/shepard_weights.h $ // $Id: shepard_weights.h 12bf0e9 2021-10-18T17:31:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Weights/tangent_weights.h cgal-5.5/include/CGAL/Weights/tangent_weights.h --- cgal-5.4.1/include/CGAL/Weights/tangent_weights.h 2022-06-03 19:06:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Weights/tangent_weights.h 2022-07-13 19:07:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Weights/include/CGAL/Weights/tangent_weights.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Weights/include/CGAL/Weights/tangent_weights.h $ // $Id: tangent_weights.h 12bf0e9 2021-10-18T17:31:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Weights/three_point_family_weights.h cgal-5.5/include/CGAL/Weights/three_point_family_weights.h --- cgal-5.4.1/include/CGAL/Weights/three_point_family_weights.h 2022-06-03 19:06:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Weights/three_point_family_weights.h 2022-07-13 19:07:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Weights/include/CGAL/Weights/three_point_family_weights.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Weights/include/CGAL/Weights/three_point_family_weights.h $ // $Id: three_point_family_weights.h 12bf0e9 2021-10-18T17:31:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Weights/triangular_region_weights.h cgal-5.5/include/CGAL/Weights/triangular_region_weights.h --- cgal-5.4.1/include/CGAL/Weights/triangular_region_weights.h 2022-06-03 19:06:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Weights/triangular_region_weights.h 2022-07-13 19:07:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Weights/include/CGAL/Weights/triangular_region_weights.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Weights/include/CGAL/Weights/triangular_region_weights.h $ // $Id: triangular_region_weights.h 12bf0e9 2021-10-18T17:31:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Weights/uniform_region_weights.h cgal-5.5/include/CGAL/Weights/uniform_region_weights.h --- cgal-5.4.1/include/CGAL/Weights/uniform_region_weights.h 2022-06-03 19:06:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Weights/uniform_region_weights.h 2022-07-13 19:07:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Weights/include/CGAL/Weights/uniform_region_weights.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Weights/include/CGAL/Weights/uniform_region_weights.h $ // $Id: uniform_region_weights.h 12bf0e9 2021-10-18T17:31:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Weights/uniform_weights.h cgal-5.5/include/CGAL/Weights/uniform_weights.h --- cgal-5.4.1/include/CGAL/Weights/uniform_weights.h 2022-06-03 19:06:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Weights/uniform_weights.h 2022-07-13 19:07:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Weights/include/CGAL/Weights/uniform_weights.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Weights/include/CGAL/Weights/uniform_weights.h $ // $Id: uniform_weights.h 12bf0e9 2021-10-18T17:31:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Weights/utils.h cgal-5.5/include/CGAL/Weights/utils.h --- cgal-5.4.1/include/CGAL/Weights/utils.h 2022-06-03 19:06:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Weights/utils.h 2022-07-13 19:07:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Weights/include/CGAL/Weights/utils.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Weights/include/CGAL/Weights/utils.h $ // $Id: utils.h 12bf0e9 2021-10-18T17:31:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Weights/voronoi_region_weights.h cgal-5.5/include/CGAL/Weights/voronoi_region_weights.h --- cgal-5.4.1/include/CGAL/Weights/voronoi_region_weights.h 2022-06-03 19:06:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Weights/voronoi_region_weights.h 2022-07-13 19:07:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Weights/include/CGAL/Weights/voronoi_region_weights.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Weights/include/CGAL/Weights/voronoi_region_weights.h $ // $Id: voronoi_region_weights.h 12bf0e9 2021-10-18T17:31:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Weights/wachspress_weights.h cgal-5.5/include/CGAL/Weights/wachspress_weights.h --- cgal-5.4.1/include/CGAL/Weights/wachspress_weights.h 2022-06-03 19:06:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Weights/wachspress_weights.h 2022-07-13 19:07:15.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Weights/include/CGAL/Weights/wachspress_weights.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Weights/include/CGAL/Weights/wachspress_weights.h $ // $Id: wachspress_weights.h 12bf0e9 2021-10-18T17:31:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Weights.h cgal-5.5/include/CGAL/Weights.h --- cgal-5.4.1/include/CGAL/Weights.h 2022-06-03 19:06:15.000000000 +0000 +++ cgal-5.5/include/CGAL/Weights.h 2022-07-13 19:07:14.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Weights/include/CGAL/Weights.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Weights/include/CGAL/Weights.h $ // $Id: Weights.h 12bf0e9 2021-10-18T17:31:59+02:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Width_3.h cgal-5.5/include/CGAL/Width_3.h --- cgal-5.4.1/include/CGAL/Width_3.h 2022-06-03 19:05:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Width_3.h 2022-07-13 19:06:22.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polytope_distance_d/include/CGAL/Width_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polytope_distance_d/include/CGAL/Width_3.h $ // $Id: Width_3.h 521c72d 2021-10-04T13:22:00+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/width_assertions.h cgal-5.5/include/CGAL/width_assertions.h --- cgal-5.4.1/include/CGAL/width_assertions.h 2022-06-03 19:05:27.000000000 +0000 +++ cgal-5.5/include/CGAL/width_assertions.h 2022-07-13 19:06:22.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polytope_distance_d/include/CGAL/width_assertions.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polytope_distance_d/include/CGAL/width_assertions.h $ // $Id: width_assertions.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Width_default_traits_3.h cgal-5.5/include/CGAL/Width_default_traits_3.h --- cgal-5.4.1/include/CGAL/Width_default_traits_3.h 2022-06-03 19:05:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Width_default_traits_3.h 2022-07-13 19:06:22.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polytope_distance_d/include/CGAL/Width_default_traits_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polytope_distance_d/include/CGAL/Width_default_traits_3.h $ // $Id: Width_default_traits_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/Width_polyhedron_3.h cgal-5.5/include/CGAL/Width_polyhedron_3.h --- cgal-5.4.1/include/CGAL/Width_polyhedron_3.h 2022-06-03 19:05:27.000000000 +0000 +++ cgal-5.5/include/CGAL/Width_polyhedron_3.h 2022-07-13 19:06:22.000000000 +0000 @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Polytope_distance_d/include/CGAL/Width_polyhedron_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polytope_distance_d/include/CGAL/Width_polyhedron_3.h $ // $Id: Width_polyhedron_3.h 5a36ff8 2020-12-04T08:02:26+00:00 Giles Bathgate // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/include/CGAL/wlop_simplify_and_regularize_point_set.h cgal-5.5/include/CGAL/wlop_simplify_and_regularize_point_set.h --- cgal-5.4.1/include/CGAL/wlop_simplify_and_regularize_point_set.h 2022-06-03 19:05:13.000000000 +0000 +++ cgal-5.5/include/CGAL/wlop_simplify_and_regularize_point_set.h 2022-07-13 19:06:06.000000000 +0000 @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Point_set_processing_3/include/CGAL/wlop_simplify_and_regularize_point_set.h $ -// $Id: wlop_simplify_and_regularize_point_set.h 2a54687 2021-06-04T13:52:14+02:00 albert-github +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Point_set_processing_3/include/CGAL/wlop_simplify_and_regularize_point_set.h $ +// $Id: wlop_simplify_and_regularize_point_set.h 75b03e6 2022-01-10T15:33:04+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Shihao Wu, Clement Jamin, Pierre Alliez @@ -23,7 +23,7 @@ #include #include -#include +#include #include #include #include @@ -429,22 +429,23 @@ template + typename NamedParameters = parameters::Default_named_parameters> OutputIterator wlop_simplify_and_regularize_point_set( PointRange& points, OutputIterator output, - const NamedParameters& np + const NamedParameters& np = parameters::default_values() ) { using parameters::choose_parameter; using parameters::get_parameter; // basic geometric types - typedef typename CGAL::GetPointMap::type PointMap; - typedef typename Point_set_processing_3::GetK::Kernel Kernel; + typedef CGAL::Point_set_processing_3_np_helper NP_helper; + typedef typename NP_helper::Point_map PointMap; + typedef typename NP_helper::Geom_traits Kernel; - PointMap point_map = choose_parameter(get_parameter(np, internal_np::point_map)); + PointMap point_map = NP_helper::get_point_map(points, np); double select_percentage = choose_parameter(get_parameter(np, internal_np::select_percentage), 5.); double radius = choose_parameter(get_parameter(np, internal_np::neighbor_radius), -1); unsigned int iter_number = choose_parameter(get_parameter(np, internal_np::number_of_iterations), 35); @@ -612,22 +613,6 @@ return output; } - -/// \cond SKIP_IN_MANUAL -// variant with default NP -template -OutputIterator -wlop_simplify_and_regularize_point_set( - PointRange& points, - OutputIterator output) ///< output iterator where output points are put. -{ - return wlop_simplify_and_regularize_point_set - (points, output, CGAL::Point_set_processing_3::parameters::all_default(points)); -} -/// \endcond - } //namespace CGAL #include diff -Nru cgal-5.4.1/include/CGAL/wmult.h cgal-5.5/include/CGAL/wmult.h --- cgal-5.4.1/include/CGAL/wmult.h 2022-06-03 19:04:10.000000000 +0000 +++ cgal-5.5/include/CGAL/wmult.h 2022-07-13 19:04:58.000000000 +0000 @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4.1/Distance_2/include/CGAL/wmult.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Distance_2/include/CGAL/wmult.h $ // $Id: wmult.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff -Nru cgal-5.4.1/lib/cmake/CGAL/CGALConfig.cmake cgal-5.5/lib/cmake/CGAL/CGALConfig.cmake --- cgal-5.4.1/lib/cmake/CGAL/CGALConfig.cmake 2022-01-18 09:59:28.000000000 +0000 +++ cgal-5.5/lib/cmake/CGAL/CGALConfig.cmake 2022-06-13 09:15:16.000000000 +0000 @@ -89,7 +89,9 @@ if (EXISTS "${CMAKE_SOURCE_DIR}/../../data") set(CGAL_DATA_DIR "${CMAKE_SOURCE_DIR}/../../data") else() - message(WARNING "CGAL_DATA_DIR cannot be deduced, set the variable CGAL_DATA_DIR to set the default value of CGAL::data_file_path()") + if(CGAL_TEST_SUITE) + message(WARNING "CGAL_DATA_DIR cannot be deduced, set the variable CGAL_DATA_DIR to set the default value of CGAL::data_file_path()") + endif() endif() endif() endif() diff -Nru cgal-5.4.1/lib/cmake/CGAL/CGALConfigVersion.cmake cgal-5.5/lib/cmake/CGAL/CGALConfigVersion.cmake --- cgal-5.4.1/lib/cmake/CGAL/CGALConfigVersion.cmake 2022-02-18 20:00:06.000000000 +0000 +++ cgal-5.5/lib/cmake/CGAL/CGALConfigVersion.cmake 2022-07-01 19:00:06.000000000 +0000 @@ -1,8 +1,8 @@ set(CGAL_MAJOR_VERSION 5) -set(CGAL_MINOR_VERSION 4) -set(CGAL_BUGFIX_VERSION 1) +set(CGAL_MINOR_VERSION 5) +set(CGAL_BUGFIX_VERSION 0) include(${CMAKE_CURRENT_LIST_DIR}/CGALConfigBuildVersion.cmake) -set(CGAL_VERSION_PUBLIC_RELEASE_VERSION "5.4.1") +set(CGAL_VERSION_PUBLIC_RELEASE_VERSION "5.5") set(CGAL_VERSION_PUBLIC_RELEASE_NAME "CGAL-${CGAL_VERSION_PUBLIC_RELEASE_VERSION}") if (CGAL_BUGFIX_VERSION AND CGAL_BUGFIX_VERSION GREATER 0) diff -Nru cgal-5.4.1/scripts/cgal_create_CMakeLists cgal-5.5/scripts/cgal_create_CMakeLists --- cgal-5.4.1/scripts/cgal_create_CMakeLists 2022-05-06 19:00:05.000000000 +0000 +++ cgal-5.5/scripts/cgal_create_CMakeLists 2022-06-13 09:15:37.000000000 +0000 @@ -86,7 +86,7 @@ # Created by the script cgal_create_CMakeLists # This is the CMake script for compiling a set of CGAL applications. -cmake_minimum_required(VERSION 3.1...3.15) +cmake_minimum_required(VERSION 3.1...3.23) EOF #--------------------------------------------------------------------------- diff -Nru cgal-5.4.1/scripts/cgal_create_cmake_script cgal-5.5/scripts/cgal_create_cmake_script --- cgal-5.4.1/scripts/cgal_create_cmake_script 2022-01-18 09:58:56.000000000 +0000 +++ cgal-5.5/scripts/cgal_create_cmake_script 2022-06-13 09:15:37.000000000 +0000 @@ -31,7 +31,7 @@ # Created by the script cgal_create_cmake_script # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.1...3.14) +cmake_minimum_required(VERSION 3.1...3.23) project( ${PROJECT}${TYPE} ) find_package(CGAL REQUIRED QUIET OPTIONAL_COMPONENTS Core ) diff -Nru cgal-5.4.1/VERSION cgal-5.5/VERSION --- cgal-5.4.1/VERSION 2022-06-03 19:06:15.000000000 +0000 +++ cgal-5.5/VERSION 2022-07-13 19:07:15.000000000 +0000 @@ -1 +1 @@ -5.4.1 \ No newline at end of file +5.5 \ No newline at end of file