diff --git a/.dockerignore b/.dockerignore index 7904b793..b2ba3afc 100644 --- a/.dockerignore +++ b/.dockerignore @@ -3,3 +3,4 @@ !/src !/thirdparty !/docker +!/tools/prepare_point_cloud diff --git a/.gitignore b/.gitignore index 822725e1..d265b913 100644 --- a/.gitignore +++ b/.gitignore @@ -8,5 +8,3 @@ Mesh*.json *.stl *.swp *.log -thirdparty/LAStools/bin64/* -!/thirdparty/LAStools/bin64/serf diff --git a/CHANGELOG.md b/CHANGELOG.md index 653128ee..ba93352f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,15 @@ # Changelog +## [0.2.0] - 2022-10-07 +### Added +- Point cloud preparation tool city4cfd_pcprep +### Changed +- (breaking) Terrain smoothing overhaul +### Removed +- Previous point cloud preparation script + ## [0.1.2] - 2022-09-13 -### Improved +### Changed - Bad triangles handling ## [0.1.1] - 2022-09-02 diff --git a/CMakeLists.txt b/CMakeLists.txt index ccb09ddd..f4081ee1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,7 +2,6 @@ cmake_minimum_required(VERSION 3.1) project(city4cfd) -#set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/Modules/" ${CMAKE_MODULE_PATH}) #set( CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true ) set(CMAKE_CXX_FLAGS "-O3") @@ -13,21 +12,16 @@ set(CMAKE_BUILD_TYPE "Release") # cmake_policy(SET CMP0003 NEW) #endif() -#============================== -# Alpha wrap support -set(ALPHA_WRAP_SUPPORT OFF) -#============================== - # BOOST -find_package(Boost 1.66 REQUIRED COMPONENTS filesystem) +find_package(Boost 1.66 REQUIRED COMPONENTS filesystem locale) # CGAL find_package(CGAL REQUIRED QUIET COMPONENTS) if (CGAL_FOUND) - if (CGAL_VERSION VERSION_GREATER_EQUAL "5.3") + if (CGAL_VERSION VERSION_GREATER_EQUAL "5.5") message(STATUS "Found CGAL ${CGAL_VERSION}") elseif (CGAL_VERSION VERSION_GREATER_EQUAL "5.0") - message(STATUS "Found CGAL version greater than 5.0, but less than 5.3. " + message(STATUS "Found CGAL version greater than 5.0, but less than 5.5. " "Proceeding to compile with included CGAL headers.") include_directories(${CMAKE_SOURCE_DIR}/thirdparty/CGAL/include) set(CGAL_USE_INCLUDED_HEADERS ON) @@ -37,17 +31,21 @@ if (CGAL_FOUND) return() endif () endif () -if (NOT CGAL_USE_INCLUDED_HEADERS AND ALPHA_WRAP_SUPPORT) - message(STATUS "Requested alpha wrap support. Compiling with included CGAL headers.") - include_directories( ${CMAKE_SOURCE_DIR}/thirdparty/CGAL/include ) -endif() + +# Eigen +find_package(Eigen3 3.2.0) #(requires 3.2.0 or greater) +include(${CMAKE_SOURCE_DIR}/thirdparty/CGAL/cmake/CGAL_Eigen3_support.cmake) # Third-party add_subdirectory(${CMAKE_SOURCE_DIR}/thirdparty/LAStools) +add_subdirectory(${CMAKE_SOURCE_DIR}/thirdparty/CSF/src) include_directories(${CMAKE_SOURCE_DIR}/thirdparty) include_directories(${CMAKE_SOURCE_DIR}/thirdparty/valijson) include_directories(${Boost_INCLUDE_DIR}) +# Tools +add_subdirectory(${CMAKE_SOURCE_DIR}/tools/prepare_point_cloud) + # Creating entries for target: City4CFD FILE(GLOB SRC_FILES "src/*.cpp") add_executable(city4cfd ${SRC_FILES}) @@ -61,7 +59,9 @@ target_link_libraries(city4cfd ${CGAL_3RD_PARTY_LIBRARIES} ${Boost_SYSTEM_LIBRARY} ${Boost_FILESYSTEM_LIBRARY} + ${Boost_LOCALE_LIBRARY} LASlib + CGAL::Eigen3_support ) -install(TARGETS city4cfd DESTINATION bin) +install(TARGETS city4cfd DESTINATION bin) \ No newline at end of file diff --git a/README.md b/README.md index 36fcd45e..2af0faa8 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ If you happen to use it, feedback is very much appreciated. City4CFD is developed by the [3D Geoinformation Research Group](https://3d.bk.tudelft.nl/) at the Delft University of Technology. ## Data formats -**Point clouds** can be imported in LAS/LAZ, XYZ, or PLY format. We ask separately for ground and building points. While some datasets contain building-ground classification, some do not. In case your LAS/LAZ file has buildings/ground classified, you can use [point cloud preparation script](https://github.com/tudelft3d/City4CFD/blob/main/tools/prepare_point_cloud.sh) to create separate files. If buildings and terrain are under the same class, or vegetation is not filtered out, we suggest you use [CloudCompare](https://www.danielgm.net/cc/) to prepare points. +**Point clouds** can be imported in LAS/LAZ, TXT/XYZ, or PLY format. We ask separately for ground and building points. While some datasets contain building-ground classification, some do not. Our [point cloud preparation tool](https://github.com/ipadjen/City4CFD_doc/wiki/Point-clouds#automatic-preparation) can extract ground and building points from user-defined classes, or use the [Cloth Simulation Filter](http://ramm.bnu.edu.cn/projects/CSF/) to separate the ground and non-ground points. If you would like to check your points, see if they are classified, or even conduct the filtering and classification yourself, we suggest you use [CloudCompare](https://www.danielgm.net/cc/). **2D data** (polygons) are imported in GeoJSON format. For all pre-processing related to polygons, including conversion to GeoJSON, you can use [QGIS](https://qgis.org/en/site/). @@ -34,14 +34,27 @@ City4CFD is developed by the [3D Geoinformation Research Group](https://3d.bk.tu **Output** is in the following formats: OBJ, STL, and CityJSON. The ID of each polygon is preserved, and there is a 1-to-1 mapping between the input and the output. ## Installation -You can directly compile City4CFD on your system using cmake, run it through a Docker container, or install using Homebrew in case of macOS. +You can directly compile City4CFD on your system using cmake, run it through a Docker container, or install using Homebrew in the case of macOS. ### Build from source The following libraries are required to build the project: - [CGAL](https://www.cgal.org/) version 5 - Boost >= 1.66 +- Eigen >= 3.2 + +*OpenMP* is an optional dependency. + +All dependencies are generally available in Linux distributions, e.g. in Debian/Ubuntu/Mint: +``` +sudo apt-get install libcgal-dev libboost-all-dev libeigen3-dev libomp-dev +``` + +In macOS you can install dependencies with Homebrew: + +``` +brew install cmake boost cgal eigen libomp +``` -Both dependencies are generally available in Linux distributions (Debian/Ubuntu/Mint) as *libcgal-dev* and *libboost-dev*, and in macOS with Homebrew as *cgal* and *boost*. The project uses CMake to generate makefiles, so make sure it is also installed. To build City4CFD, do the following: @@ -54,14 +67,13 @@ make You can speed up compilation by typing *make -j $numcores* where *$numcores* is the number of threads you can spare for compilation. ### Docker -We offer built [Docker](https://www.docker.com/) images for every release, available at the [Docker Hub](https://hub.docker.com/r/tudelft3d/city4cfd). Running the docker script for the first time will pull the docker image from the Docker Hub repository. +We offer built [Docker](https://www.docker.com/) images for every release, available at the [Docker Hub](https://hub.docker.com/r/tudelft3d/city4cfd). Running [the docker script](https://github.com/tudelft3d/City4CFD/tree/main/docker/run) for the first time will pull the docker image from the Docker Hub repository. ### macOS Mac users can install City4CFD through Homebrew: ``` -brew tap tudelft3d/software -brew install city4cfd +brew install tudelft3d/software/city4cfd ``` ## Getting started @@ -76,7 +88,7 @@ in case of building from a source. To run through a Docker container, you can use one of the scripts in ```docker/run/```. The script with the extension ```.sh``` can be used in Linux and macOS, the one with the extension ```.ps1``` in Windows Powershell, and the last one with ```.bat``` in Windows Command Prompt. You have to run a script (you can copy it beforehand) from the root directory of the project (e.g. ```examples/TUD_Campus```), and the arguments are the same as for the compiled executable, e.g.: ``` -../../docker/run/city4cfd_run.sh config_bpg.json --output_dir results +../../docker/run/city4cfd_run.sh city4cfd config_bpg.json --output_dir results ``` The script pulls the ```latest``` release from the Docker Hub. For a specific release, replace ```latest``` in the script with the released version tag, e.g. ```0.1.0```. In Linux systems, you will probably have to run the command as a sudo unless you create a 'docker' group and add users to it. @@ -92,5 +104,5 @@ If you use City4CFD in a scientific context, please cite the following paper: Pađen, Ivan, García-Sánchez, Clara and Ledoux, Hugo (2022). Towards Automatic Reconstruction of 3D City Models Tailored for Urban Flow Simulations. *Frontiers in Built Environment*, 8, 2022 [[DOI](https://www.frontiersin.org/articles/10.3389/fbuil.2022.899332)][[BibTeX](https://github.com/tudelft3d/City4CFD/blob/master/CITATION.bib)] ## Acknowledgements -We would like to acknowdledge the authors of supporting libraries we use in this project: -[CGAL](https://github.com/CGAL/cgal), [nlohmann/json](https://github.com/nlohmann/json), [valijson](https://github.com/tristanpenman/valijson), [LAStools](https://github.com/LAStools) +We would like to acknowledge the authors of the supporting libraries we use in this project: +[CGAL](https://github.com/CGAL/cgal), [CSF](https://github.com/jianboqi/CSF), [nlohmann/json](https://github.com/nlohmann/json), [LAStools](https://github.com/LAStools), [valijson](https://github.com/tristanpenman/valijson) diff --git a/docker/build-base.sh b/docker/build-base.sh index 56715eed..22731438 100755 --- a/docker/build-base.sh +++ b/docker/build-base.sh @@ -1 +1 @@ -docker build -f city4cfd-build-base.dockerfile -t city4cfd-build-base --no-cache . +docker build -f city4cfd-build-base.dockerfile -t tudelft3d/city4cfd:build-base --no-cache . diff --git a/docker/city4cfd-build-base.dockerfile b/docker/city4cfd-build-base.dockerfile index 63b454aa..35740137 100644 --- a/docker/city4cfd-build-base.dockerfile +++ b/docker/city4cfd-build-base.dockerfile @@ -11,4 +11,6 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ build-essential \ cmake \ libboost-all-dev \ - libcgal-dev + libcgal-dev \ + libeigen3-dev \ + libomp-dev diff --git a/docker/city4cfd.dockerfile b/docker/city4cfd.dockerfile index 7704192d..ac37574a 100644 --- a/docker/city4cfd.dockerfile +++ b/docker/city4cfd.dockerfile @@ -50,6 +50,8 @@ RUN bash /tmp/strip-docker-image-export \ -f /bin/ls \ -f /data \ -f /usr/local/share/proj/proj.db \ + -f /usr/local/bin/city4cfd_pcprep \ + -f /usr/local/bin/city4cfd_las2las \ -f /usr/local/bin/city4cfd # @@ -70,5 +72,5 @@ COPY --from=builder /export/ / WORKDIR /data -ENTRYPOINT ["city4cfd"] -CMD ["--help"] +#ENTRYPOINT ["city4cfd"] +#CMD ["--help"] diff --git a/docs/images/smoothing.png b/docs/images/smoothing.png new file mode 100644 index 00000000..b9836b1b Binary files /dev/null and b/docs/images/smoothing.png differ diff --git a/examples/TUDCampus/config_bpg.json b/examples/TUDCampus/config_bpg.json index 9ab1ec3d..3e8250da 100644 --- a/examples/TUDCampus/config_bpg.json +++ b/examples/TUDCampus/config_bpg.json @@ -30,16 +30,19 @@ "bnd_type_bpg": "Rectangle", "bpg_blockage_ratio": false, "flow_direction": [1, 1], - "buffer_region": -20, + "buffer_region": 20, "reconstruct_boundaries": true, - "terrain_thinning": 80, - "smooth_terrain": false, + "terrain_thinning": 10, + "smooth_terrain": { + "iterations": 1, + "max_pts": 100000 + }, "lod": "1.2", "building_percentile": 90, - "edge_max_len": 2, + "edge_max_len": 5, "output_file_name": "Mesh", "output_format": "obj", diff --git a/examples/TUDCampus/config_bpg_comments.json b/examples/TUDCampus/config_bpg_comments.json index 8dbdb5d0..3008e80d 100644 --- a/examples/TUDCampus/config_bpg_comments.json +++ b/examples/TUDCampus/config_bpg_comments.json @@ -45,15 +45,18 @@ //-- Reconstruction related //- Terrain - "terrain_thinning": 90, // Optional - percentage of randomly removed terrain points - "smooth_terrain": true, // Optional - smoothing flag + "terrain_thinning": 80, // Optional - percentage of randomly removed terrain points + "smooth_terrain": { // Optional - smoothing flag + "iterations": 1, // number of smoothing iterations. Typical numbers are 1-10 + "max_pts": 100000 // number of points after optimized thinning for smoothing + }, "flat_terrain": false, // Optional - make terrain flat //- Buildings "lod": "1.2", "building_percentile": 90, //-- Polygons related - "edge_max_len": 2, + "edge_max_len": 5, //-- Output "output_file_name": "Mesh", diff --git a/examples/TUDCampus/config_import_buildings.json b/examples/TUDCampus/config_import_buildings.json index fb591fc9..02fd2df9 100644 --- a/examples/TUDCampus/config_import_buildings.json +++ b/examples/TUDCampus/config_import_buildings.json @@ -36,13 +36,16 @@ "buffer_region": 5, "reconstruct_boundaries": false, - "terrain_thinning": 80, - "smooth_terrain": false, + "terrain_thinning": 10, + "smooth_terrain": { + "iterations": 1, + "max_pts": 100000 + }, "lod": "1.2", "building_percentile": 90, - "edge_max_len": 2, + "edge_max_len": 5, "output_file_name": "Mesh", "output_format": "obj", diff --git a/examples/TUDCampus/config_manual.json b/examples/TUDCampus/config_manual.json index 02371a3a..bee33005 100644 --- a/examples/TUDCampus/config_manual.json +++ b/examples/TUDCampus/config_manual.json @@ -30,13 +30,16 @@ "buffer_region": 5, "reconstruct_boundaries": true, - "terrain_thinning": 80, - "smooth_terrain": false, + "terrain_thinning": 10, + "smooth_terrain": { + "iterations": 1, + "max_pts": 100000 + }, "lod": "1.2", "building_percentile": 90, - "edge_max_len": 2, + "edge_max_len": 5, "output_file_name": "Mesh", "output_format": "obj", diff --git a/src/Building.cpp b/src/Building.cpp index b84757c7..6fb97c7a 100644 --- a/src/Building.cpp +++ b/src/Building.cpp @@ -36,6 +36,7 @@ #include #include #include +#include Building::Building() : PolyFeature(1), _height(-global::largnum) {} @@ -53,6 +54,78 @@ Building::Building(const nlohmann::json& poly, const int internalID) Building::~Building() = default; +void Building::alpha_wrap(const Buildings& buildings, Mesh& newMesh) { + typedef EPICK::FT FT; + typedef std::array Custom_point; + typedef std::vector CGAL_Polygon; + + //-- Make a single mesh out of all individual buildings + std::vector> points; + std::vector polygons; + for (auto& b : buildings) { + auto& mesh = b->get_mesh(); + for (auto& face: mesh.faces()) { + CGAL_Polygon p; + auto vertices = mesh.vertices_around_face(mesh.halfedge(face)); + for (auto vertex = vertices.begin(); vertex != vertices.end(); ++vertex) { + points.push_back(CGAL::make_array(mesh.point(*vertex).x(), + mesh.point(*vertex).y(), + mesh.point(*vertex).z())); + p.push_back(points.size() - 1); + } + polygons.push_back(p); + } + } + PMP::repair_polygon_soup(points, polygons, CGAL::parameters::geom_traits(geomutils::Array_traits())); + PMP::orient_polygon_soup(points, polygons); + PMP::polygon_soup_to_polygon_mesh(points, polygons, newMesh); + PMP::triangulate_faces(newMesh); + + /* + typedef Mesh::Halfedge_index halfedge_descriptor; + typedef Mesh::Edge_index edge_descriptor; + //-- Set the property map for constrained edges + Mesh::Property_map is_constrained = + newMesh.add_property_map("e:is_constrained",false).first; + + //-- Detect sharp features + for (auto& e : edges(newMesh)) { + halfedge_descriptor hd = halfedge(e,newMesh); + if (!is_border(e,newMesh)) { + double angle = CGAL::Mesh_3::dihedral_angle(newMesh.point(source(hd,newMesh)), + newMesh.point(target(hd,newMesh)), + newMesh.point(target(next(hd,newMesh),newMesh)), + newMesh.point(target(next(opposite(hd,newMesh),newMesh),newMesh))); + if (CGAL::abs(angle)<179.5) + is_constrained[e]=true; + } + } + + Mesh wrap; + CGAL::alpha_wrap_3(newMesh, 0.1, 0.01, wrap, + CGAL::parameters::edge_is_constrained_map(is_constrained)); + */ + + //-- Perform CGAL's alpha wrapping + const double relative_alpha = 900.; + const double relative_offset = 15000.; + CGAL::Bbox_3 bbox = CGAL::Polygon_mesh_processing::bbox(newMesh); + 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::alpha_wrap_3(newMesh, alpha, offset, wrap); + +// CGAL::alpha_wrap_3(newMesh, 2, 0.01, newMesh); // 'coarse' + CGAL::alpha_wrap_3(newMesh, 1.5, 0.03, newMesh); // 'medium' +// CGAL::alpha_wrap_3(newMesh, 0.7, 0.03, newMesh); // 'fine' + +// CGAL::alpha_wrap_3(newMesh, 0.3, 0.03, newMesh); // that one takes long time +// CGAL::alpha_wrap_3(points, polygons, 0.1, 0.001, newMesh); +// newMesh = wrap; +} + void Building::clip_bottom(const Terrainptr& terrain) { if (!_clip_bottom) return; if (this->has_self_intersections() && !Config::get().handleSelfIntersect) throw @@ -81,8 +154,8 @@ void Building::refine() { typedef Mesh::Halfedge_index halfedge_descriptor; typedef Mesh::Edge_index edge_descriptor; - double target_edge_length = 5; //5; - unsigned int nb_iter = 30; //30; + const double target_edge_length = 5; //5; + const unsigned int nb_iter = 30; //30; PMP::remove_degenerate_faces(_mesh); /* @@ -90,7 +163,7 @@ void Building::refine() { ++config::selfIntersecting; PMP::remove_self_intersections(_mesh); } - */ + */ //-- Set the property map for constrained edges Mesh::Property_map is_constrained = diff --git a/src/Building.h b/src/Building.h index d6509b00..0726e72c 100644 --- a/src/Building.h +++ b/src/Building.h @@ -39,6 +39,8 @@ class Building : public PolyFeature { Building(const nlohmann::json& poly, const int internalID); ~Building(); + static void alpha_wrap(const Buildings& buildings, Mesh& newMesh); + virtual void reconstruct() = 0; virtual void reconstruct_flat_terrain() = 0; diff --git a/src/Config.cpp b/src/Config.cpp index 46e5ecf8..d57dab71 100644 --- a/src/Config.cpp +++ b/src/Config.cpp @@ -80,10 +80,9 @@ void Config::validate(nlohmann::json& j) { } void Config::set_config(nlohmann::json& j) { - //-- Schema validation - //-- Path to point cloud(s) + //-- Point cloud configuration if (j.contains("point_clouds")) { - if (j["point_clouds"].contains("ground")) points_xyz = j["point_clouds"]["ground"]; + if (j["point_clouds"].contains("ground")) ground_xyz = j["point_clouds"]["ground"]; if (j["point_clouds"].contains("buildings")) buildings_xyz = j["point_clouds"]["buildings"]; } @@ -143,7 +142,7 @@ void Config::set_config(nlohmann::json& j) { } outputSurfaces.emplace_back("Top"); - //-- Path to polygons + //-- Polygon configuration int i = 0; int surfLayerIdx = outputSurfaces.size(); // 0 - terrain, 1 - buildings, surface layers start from 2 for (auto& poly : j["polygons"]) { @@ -200,8 +199,17 @@ void Config::set_config(nlohmann::json& j) { // Terrain if (j.contains("terrain_thinning")) terrainThinning = j["terrain_thinning"]; - if (j.contains("smooth_terrain")) - smoothTerrain = j["smooth_terrain"]; + if (j.contains("smooth_terrain")) { + if (j["smooth_terrain"].contains("iterations")) { + smoothTerrain = true; + if ((int)j["smooth_terrain"]["iterations"] > 0) { + nSmoothIterations = (int)j["smooth_terrain"]["iterations"]; + } else { smoothTerrain = false; } + } + if (j["smooth_terrain"].contains("max_pts")) { + maxSmoothPts = (int)j["smooth_terrain"]["max_pts"]; + } else { smoothTerrain = false; } + } if (j.contains("flat_terrain")) flatTerrain = j["flat_terrain"]; @@ -258,6 +266,8 @@ void Config::set_config(nlohmann::json& j) { handleSelfIntersect = j["experimental"]["handle_self_intersections"]; if (j["experimental"].contains("refine_buildings")) refineBuildings = j["experimental"]["refine_buildings"]; + if (j["experimental"].contains("alpha_wrap")) + alphaWrap = j["experimental"]["alpha_wrap"]; } } diff --git a/src/Config.h b/src/Config.h index c8340e4d..a5f21a30 100644 --- a/src/Config.h +++ b/src/Config.h @@ -55,8 +55,8 @@ class Config { nlohmann::json& j); //-- Input info - std::string points_xyz; // Ground - std::string buildings_xyz; // Buildings + std::string ground_xyz; // Ground points + std::string buildings_xyz; // Building points std::string gisdata; // Building Polygons std::vector topoLayers = {}; // Other polygons std::string importedBuildingsPath; // Additional pre-reconstructed buildings @@ -80,6 +80,8 @@ class Config { //- Terrain double terrainThinning = 0.; bool smoothTerrain = false; + int nSmoothIterations = 0; + int maxSmoothPts = -9999; bool flatTerrain = false; //- Buildings std::string buildingUniqueId; @@ -122,6 +124,7 @@ class Config { bool clip = false; bool handleSelfIntersect = false; bool refineBuildings = false; + bool alphaWrap = false; }; #endif //CITY4CFD_CONFIG_H \ No newline at end of file diff --git a/src/ImportedBuilding.cpp b/src/ImportedBuilding.cpp index 9b423563..738dc76c 100644 --- a/src/ImportedBuilding.cpp +++ b/src/ImportedBuilding.cpp @@ -33,6 +33,7 @@ #include "io.h" #include "CGAL/Polygon_set_2.h" +#include int ImportedBuilding::noBottom = 0; @@ -252,7 +253,7 @@ void ImportedBuilding::reconstruct() { this->translate_footprint(-5); } //-- Adjust building height points - if (!_trueHeight || Config::get().points_xyz.empty()) { + if (!_trueHeight || Config::get().ground_xyz.empty()) { Vector_3 movePt(0, 0, _avgFootprintHeight); std::vector checkedPt; for (auto& faces : geometry["boundaries"].front()) { @@ -307,6 +308,22 @@ void ImportedBuilding::reconstruct() { PMP::polygon_soup_to_polygon_mesh(points, polygons, _mesh); PMP::triangulate_faces(_mesh); + /* + Mesh wrap; + const double relative_alpha = 300.; + const double relative_offset = 5000.; + 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; +// CGAL::alpha_wrap_3(mesh, alpha, offset, wrap); + CGAL::alpha_wrap_3(_mesh, alpha, offset, wrap); +// CGAL::alpha_wrap_3(_mesh, 10, 10, wrap); + _mesh = wrap; + */ + //-- Get height attribute _height -= _avgFootprintHeight; diff --git a/src/LoD12.cpp b/src/LoD12.cpp index 08831314..4576339b 100644 --- a/src/LoD12.cpp +++ b/src/LoD12.cpp @@ -43,7 +43,7 @@ LoD12::LoD12(const Polygon_with_holes_2& poly, void LoD12::lod12_calc_height(double& height) { _height = geomutils::percentile(_buildingPts, Config::get().buildingPercentile); //-- In case of flat terrain - if (Config::get().points_xyz.empty()) { + if (Config::get().ground_xyz.empty()) { double baseHeight = geomutils::percentile(_buildingPts, 0); _height -= baseHeight; } diff --git a/src/Map3d.cpp b/src/Map3d.cpp index 779c1656..5046d8e1 100644 --- a/src/Map3d.cpp +++ b/src/Map3d.cpp @@ -87,6 +87,9 @@ void Map3d::reconstruct() { //-- Constrain features, generate terrain mesh from CDT this->reconstruct_terrain(); + //-- Geometry wrap (experimental) + if (Config::get().alphaWrap) this->wrap(); + //-- Generate side and top boundaries if (Config::get().reconstructBoundaries) this->reconstruct_boundaries(); } @@ -178,9 +181,7 @@ void Map3d::set_features() { if (Config::get().influRegionConfig.type() == typeid(bool)) _influRegionBPG = true; if (Config::get().domainBndConfig.type() == typeid(bool)) _bndBPG = true; - //-- Smooth terrain if (Config::get().smoothTerrain) { -// geomutils::smooth_dt(_pointCloud.get_terrain(), _dt); _pointCloud.smooth_terrain(); } //-- Make a DT with inexact constructions for fast interpolation @@ -240,7 +241,7 @@ void Map3d::set_bnd() { //-- Prepare the outer boundary polygon for sides and top, and polygon for feature scope Polygon_2 bndPoly, pcBndPoly, startBufferPoly; // Depends on the buffer region bndPoly = _domainBnd.get_bounding_region(); - if (_boundaries.size() > 2) { + if (_boundaries.size() > 2) { geomutils::shorten_long_poly_edges(bndPoly, 20 * Config::get().edgeMaxLen); // Outer poly edge size is hardcoded atm Boundary::set_bnd_poly(bndPoly, pcBndPoly, startBufferPoly); } else @@ -292,6 +293,7 @@ void Map3d::reconstruct_buildings() { for (auto& building : _reconstructedBuildings) building->set_search_tree(searchTree); int failed = 0; + int count = 0; for (auto& f : _buildings) { if (!f->is_active()) continue; try { @@ -389,6 +391,21 @@ void Map3d::clip_buildings() { _terrain->clear_subset(); } +void Map3d::wrap() { + std::cout << "\nAlpha wrapping all buildings..." << std::flush; + + //-- New mesh that will be output of wrapping + Mesh newMesh; + + //-- Perform alpha wrapping + Building::alpha_wrap(_buildings, newMesh); + + //-- Deactivate all individual buildings and add the new mesh + for (auto& b : _buildings) b->deactivate(); + this->clear_inactives(); + _buildings.push_back(std::make_shared(newMesh)); +} + void Map3d::read_data() { //-- Read point clouds _pointCloud.read_point_clouds(); diff --git a/src/Map3d.h b/src/Map3d.h index 3112932a..f385f951 100644 --- a/src/Map3d.h +++ b/src/Map3d.h @@ -78,6 +78,7 @@ class Map3d { void reconstruct_with_flat_terrain(); void solve_building_conflicts(); void clip_buildings(); + void wrap(); void prep_feature_output(); void prep_cityjson_output(); diff --git a/src/PointCloud.cpp b/src/PointCloud.cpp index 63cb7977..05db792a 100644 --- a/src/PointCloud.cpp +++ b/src/PointCloud.cpp @@ -32,6 +32,11 @@ #include "Config.h" #include "PolyFeature.h" +#include +#include +#include +#include + PointCloud::PointCloud() = default; PointCloud::~PointCloud() = default; @@ -46,6 +51,64 @@ void PointCloud::random_thin_pts() { } } +void PointCloud::smooth_terrain() { + typedef CGAL::Parallel_if_available_tag Concurrency_tag; + + std::cout << "Smoothing terrain" << std::endl; + + //-- WLOP simplification and regularization + double retain_percentage = 100; + int& maxTerrainPts = Config::get().maxSmoothPts; + if (maxTerrainPts > 0 && _pointCloudTerrain.size() > maxTerrainPts) { + retain_percentage = (double)maxTerrainPts / (double)_pointCloudTerrain.size() * 100.; + std::cout << " Performing additional (optimized) terrain thinning to " << maxTerrainPts << " points" << std::endl; + } + + std::cout << " Smoothing terrain 1/3..." << std::flush; + const double neighbor_radius = 0.5; // neighbors size. + Point_set_3 simplPts; + CGAL::wlop_simplify_and_regularize_point_set + (_pointCloudTerrain, simplPts.point_back_inserter(), + CGAL::parameters::select_percentage(retain_percentage). + neighbor_radius (neighbor_radius)); + _pointCloudTerrain.clear(); + + std::cout << "\r Smoothing terrain 2/3..." << std::flush; + + //-- Create CDT of current terrain pts + DT dt; + dt.insert(simplPts.points().begin(), simplPts.points().end()); + simplPts.clear(); // end of scope for simplePts + + //-- Make a mesh out of DT + Mesh mesh; + geomutils::dt_to_mesh(dt, mesh); + dt.clear(); // end of scope for the dt + + //-- Isotropic remeshing + const double target_edge_length = 0; + const unsigned int nb_iter = 10; + PMP::remove_degenerate_faces(mesh); + PMP::isotropic_remeshing(faces(mesh), target_edge_length, mesh, + PMP::parameters::number_of_iterations(nb_iter) + ); + + //-- Smoothing + std::cout << "\r Smoothing terrain 3/3..." << std::flush; + const double time = 1; + PMP::smooth_shape(mesh, time, CGAL::parameters::number_of_iterations(Config::get().nSmoothIterations)); + + std::cout << "\r Smoothing terrain...done" << std::endl; + + //-- Mesh back to points +// _pointCloudTerrain.clear(); + for (auto& pt : mesh.points()) { + _pointCloudTerrain.insert(pt); + } + _pointCloudTerrain.add_property_map ("is_building_point", false); +} + +/* depreciated void PointCloud::smooth_terrain() { std::cout << "\nSmoothing terrain" << std::endl; DT dt(_pointCloudTerrain.points().begin(), _pointCloudTerrain.points().end()); @@ -56,6 +119,7 @@ void PointCloud::smooth_terrain() { for (auto& pt : dt.points()) _pointCloudTerrain.insert(pt); _pointCloudTerrain.add_property_map ("is_building_point", false); } +*/ void PointCloud::create_flat_terrain(const PolyFeatures& lsFeatures) { std::cout << "\nCreating flat terrain" << std::endl; @@ -133,20 +197,21 @@ SearchTreePtr PointCloud::make_search_tree_buildings() { } void PointCloud::read_point_clouds() { - //-- Read ground points - if (!Config::get().points_xyz.empty()) { + //- Read ground points + if (!Config::get().ground_xyz.empty()) { std::cout << "Reading ground points" << std::endl; - IO::read_point_cloud(Config::get().points_xyz, _pointCloudTerrain); - _pointCloudTerrain.add_property_map ("is_building_point", false); + IO::read_point_cloud(Config::get().ground_xyz, _pointCloudTerrain); + _pointCloudTerrain.add_property_map("is_building_point", false); std::cout << " Points read: " << _pointCloudTerrain.size() << std::endl; } else { std::cout << "INFO: Did not find any ground points! Will calculate ground as a flat surface." << std::endl; std::cout << "WARNING: Ground height of buildings can only be approximated. " - << "If you are using point cloud to reconstruct buildings, building height estimation can be wrong.\n" << std::endl; + << "If you are using point cloud to reconstruct buildings, building height estimation can be wrong.\n" + << std::endl; } - //-- Read building points + //- Read building points if (!Config::get().buildings_xyz.empty()) { std::cout << "Reading building points" << std::endl; IO::read_point_cloud(Config::get().buildings_xyz, _pointCloudBuildings); diff --git a/src/PointCloud.h b/src/PointCloud.h index f98339e5..ba6c3645 100644 --- a/src/PointCloud.h +++ b/src/PointCloud.h @@ -31,6 +31,9 @@ #include "types.h" #include "CGALTypes.h" +#include "lasreader.hpp" +#include "CSF/src/CSF.h" + typedef std::shared_ptr SearchTreePtr; class PointCloud { diff --git a/src/ReconstructedBuilding.cpp b/src/ReconstructedBuilding.cpp index 3b3bd7ff..30fb5b47 100644 --- a/src/ReconstructedBuilding.cpp +++ b/src/ReconstructedBuilding.cpp @@ -1,7 +1,7 @@ /* City4CFD - - Copyright (c) 2021-2022, 3D Geoinformation Research Group, TU Delft + + Copyright (c) 2021-2022, 3D Geoinformation Research Group, TU Delft This file is part of City4CFD. @@ -38,6 +38,11 @@ ReconstructedBuilding::ReconstructedBuilding(const int internalID) : Building(internalID), _searchTree(nullptr), _attributeHeight(-9999), _attributeHeightAdvantage(Config::get().buildingHeightAttrAdv) {} +ReconstructedBuilding::ReconstructedBuilding(const Mesh& mesh) + : ReconstructedBuilding() { + _mesh = mesh; +} + /* ReconstructedBuilding::ReconstructedBuilding(const nlohmann::json& poly) : Building(poly), _searchTree(nullptr), diff --git a/src/ReconstructedBuilding.h b/src/ReconstructedBuilding.h index aeaae56b..a4e157ab 100644 --- a/src/ReconstructedBuilding.h +++ b/src/ReconstructedBuilding.h @@ -1,7 +1,7 @@ /* City4CFD - - Copyright (c) 2021-2022, 3D Geoinformation Research Group, TU Delft + + Copyright (c) 2021-2022, 3D Geoinformation Research Group, TU Delft This file is part of City4CFD. @@ -34,6 +34,8 @@ class ReconstructedBuilding : public Building { public: ReconstructedBuilding(); ReconstructedBuilding(const int internalID); + ReconstructedBuilding(const Mesh& mesh); + ReconstructedBuilding(const nlohmann::json& poly); // ReconstructedBuilding(const nlohmann::json& poly); ReconstructedBuilding(const nlohmann::json& poly, const int internalID); ~ReconstructedBuilding(); diff --git a/src/Terrain.cpp b/src/Terrain.cpp index 52d8ac91..eb972327 100644 --- a/src/Terrain.cpp +++ b/src/Terrain.cpp @@ -56,15 +56,7 @@ void Terrain::set_cdt(const Point_set_3& pointCloud) { IO::print_progress_bar(100); std::clog << std::endl; std::cout << " Triangulating..." << std::flush; _cdt.insert(pts.begin(), pts.end()); - std::cout << "\r Triangulating " << std::endl; - - /* - //-- Smoothing - if (Config::get().smoothTerrain) { - std::cout << "\n Smoothing" << std::endl; - geomutils::smooth_dt(pointCloud, _cdt); - } - */ + std::cout << "\r Triangulating...done" << std::endl; } void Terrain::prep_constraints(const PolyFeatures& features, Point_set_3& pointCloud) { diff --git a/src/configSchema.inc b/src/configSchema.inc index 0ae6152a..23c8c7b5 100644 --- a/src/configSchema.inc +++ b/src/configSchema.inc @@ -31,7 +31,7 @@ #include "types.h" namespace jsonschema { - //- JSON config schema defined here as a string literal + //-- JSON config schema defined here as a string literal const nlohmann::json schema = R"( { "$schema": "https://json-schema.org/draft-07/schema#", @@ -42,6 +42,31 @@ namespace jsonschema { "point_clouds": { "type": "object", "properties": { + "las_datasets": { + "description": "Schema that deals with import of LAS/LAZ tiles", + "description": "Depreciated, but keeping the schema for now", + "type": "object", + "properties": { + "files": { + "type": "array", + "items": { + "type": "string" + } + }, + "ground_classes": { + "type": "array", + "items": { + "type": "number" + } + }, + "building_classes": { + "type": "array", + "items": { + "type": "number" + } + } + } + }, "ground": { "type": "string" }, @@ -187,7 +212,17 @@ namespace jsonschema { }, "smooth_terrain": { "description": "Optional: Terrain smoothing flag", - "type": "boolean" + "type": "object", + "properties": { + "iterations": { + "type": "integer", + "minimum": 0 + }, + "max_pts": { + "type": "integer", + "exclusiveMinimum": 0 + } + } }, "flat_terrain": { "description": "Optional: Force flat terrain", diff --git a/src/geomutils.cpp b/src/geomutils.cpp index c1daf65d..cd1249e0 100644 --- a/src/geomutils.cpp +++ b/src/geomutils.cpp @@ -79,6 +79,26 @@ void geomutils::cdt_to_mesh(CDT& cdt, Mesh& mesh, const int surfaceLayerID) { mesh.add_face(mesh_vertex[v1], mesh_vertex[v2], mesh_vertex[v3]); } } + +void geomutils::dt_to_mesh(DT& dt, Mesh& mesh) { + std::map indices; + std::vector mesh_vertex; + std::vector face_index; + mesh_vertex.reserve(dt.number_of_vertices()); + int counter = 0; + for (const auto& it : dt.finite_vertex_handles()) { + mesh_vertex.emplace_back(mesh.add_vertex(it->point())); + // outstream << it->point() << std::endl; + indices.insert(std::pair(it, counter++)); + } + for (const auto& it : dt.finite_face_handles()) { + int v1 = indices[it->vertex(0)]; + int v2 = indices[it->vertex(1)]; + int v3 = indices[it->vertex(2)]; + mesh.add_face(mesh_vertex[v1], mesh_vertex[v2], mesh_vertex[v3]); + } +} + //-- CGAL's constrained domain marker expanded to mark different polygon types void geomutils::mark_domains(CDT& ct, const Face_handle& start, diff --git a/src/geomutils.h b/src/geomutils.h index 9080d9ef..7aa6017a 100644 --- a/src/geomutils.h +++ b/src/geomutils.h @@ -35,6 +35,7 @@ namespace geomutils { double percentile(std::vector values, const double percentile); bool point_in_circle(const Point_3& pt, const Point_2& center, const double& radius); void cdt_to_mesh(CDT& cdt, Mesh& mesh, const int surfaceLayerID = -9999); + void dt_to_mesh(DT& dt, Mesh& mesh); void mark_domains(CDT& cdt, PolyFeatures features = {}); void mark_domains(CDT& ct, const Face_handle& start, int index, std::list& border, PolyFeatures& features); diff --git a/src/main.cpp b/src/main.cpp index 306e1024..a5d8bade 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -29,7 +29,7 @@ #include "io.h" #include "Map3d.h" -std::string CITY4CFD_VERSION = "0.1.2"; +std::string CITY4CFD_VERSION = "0.2.0"; void printWelcome() { auto logo{ @@ -87,7 +87,7 @@ int main(int argc, char** argv) { std::string config_path; //-- Path to config.json file if (argc >= 2) { - config_path = fs::current_path().append(argv[1]).string(); + config_path = fs::absolute(argv[1]).string(); } else { printHelp(); return EXIT_SUCCESS; @@ -104,8 +104,8 @@ int main(int argc, char** argv) { } else if (boost::iequals(argv[i], "--output_dir")) { if (i + 1 == argc) throw std::invalid_argument("Missing argument for --output_dir"); - Config::get().outputDir = fs::absolute(fs::current_path().append(argv[++i])); - if (!fs::exists(Config::get().outputDir)) throw std::invalid_argument("Output directory does not exist!"); + Config::get().outputDir = fs::absolute(argv[++i]); + if (!fs::exists(Config::get().outputDir)) throw std::invalid_argument(std::string("Output directory '" + Config::get().outputDir.string() + "' does not exist!")); } else if (boost::iequals(argv[i], "--output_file")) { if (i + 1 == argc) throw std::invalid_argument("Missing argument for --output_file"); diff --git a/thirdparty/CGAL/cmake/CGAL_Eigen3_support.cmake b/thirdparty/CGAL/cmake/CGAL_Eigen3_support.cmake new file mode 100644 index 00000000..cc0df0fa --- /dev/null +++ b/thirdparty/CGAL/cmake/CGAL_Eigen3_support.cmake @@ -0,0 +1,9 @@ +if(EIGEN3_FOUND AND NOT TARGET CGAL::Eigen3_support) + if(NOT TARGET Threads::Threads) + find_package(Threads REQUIRED) + endif() + add_library(CGAL::Eigen3_support INTERFACE IMPORTED) + set_target_properties(CGAL::Eigen3_support PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "CGAL_EIGEN3_ENABLED" + INTERFACE_INCLUDE_DIRECTORIES "${EIGEN3_INCLUDE_DIR}") +endif() diff --git a/thirdparty/CGAL/include/CGAL/AABB_face_graph_triangle_primitive.h b/thirdparty/CGAL/include/CGAL/AABB_face_graph_triangle_primitive.h index e9a07c5c..93b2349f 100644 --- a/thirdparty/CGAL/include/CGAL/AABB_face_graph_triangle_primitive.h +++ b/thirdparty/CGAL/include/CGAL/AABB_face_graph_triangle_primitive.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/AABB_halfedge_graph_segment_primitive.h b/thirdparty/CGAL/include/CGAL/AABB_halfedge_graph_segment_primitive.h index 3a949b8f..dbb8f41e 100644 --- a/thirdparty/CGAL/include/CGAL/AABB_halfedge_graph_segment_primitive.h +++ b/thirdparty/CGAL/include/CGAL/AABB_halfedge_graph_segment_primitive.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/AABB_polyhedral_oracle.h b/thirdparty/CGAL/include/CGAL/AABB_polyhedral_oracle.h index 94229b34..9f583bf3 100644 --- a/thirdparty/CGAL/include/CGAL/AABB_polyhedral_oracle.h +++ b/thirdparty/CGAL/include/CGAL/AABB_polyhedral_oracle.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/AABB_polyhedron_segment_primitive.h b/thirdparty/CGAL/include/CGAL/AABB_polyhedron_segment_primitive.h index 9955f68f..d871d04d 100644 --- a/thirdparty/CGAL/include/CGAL/AABB_polyhedron_segment_primitive.h +++ b/thirdparty/CGAL/include/CGAL/AABB_polyhedron_segment_primitive.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/AABB_polyhedron_triangle_primitive.h b/thirdparty/CGAL/include/CGAL/AABB_polyhedron_triangle_primitive.h index eb4e34e0..24a2d98b 100644 --- a/thirdparty/CGAL/include/CGAL/AABB_polyhedron_triangle_primitive.h +++ b/thirdparty/CGAL/include/CGAL/AABB_polyhedron_triangle_primitive.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/AABB_primitive.h b/thirdparty/CGAL/include/CGAL/AABB_primitive.h index 008785e2..91457cc1 100644 --- a/thirdparty/CGAL/include/CGAL/AABB_primitive.h +++ b/thirdparty/CGAL/include/CGAL/AABB_primitive.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ struct AABB_primitive_base * 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 @@ struct AABB_primitive_base * 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 --git a/thirdparty/CGAL/include/CGAL/AABB_segment_primitive.h b/thirdparty/CGAL/include/CGAL/AABB_segment_primitive.h index 673c0c03..5711f016 100644 --- a/thirdparty/CGAL/include/CGAL/AABB_segment_primitive.h +++ b/thirdparty/CGAL/include/CGAL/AABB_segment_primitive.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/AABB_traits.h b/thirdparty/CGAL/include/CGAL/AABB_traits.h index 393c6f3e..5462c121 100644 --- a/thirdparty/CGAL/include/CGAL/AABB_traits.h +++ b/thirdparty/CGAL/include/CGAL/AABB_traits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/AABB_tree.h b/thirdparty/CGAL/include/CGAL/AABB_tree.h index 59d6aa0f..c89a752a 100644 --- a/thirdparty/CGAL/include/CGAL/AABB_tree.h +++ b/thirdparty/CGAL/include/CGAL/AABB_tree.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace CGAL { /** * @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 @@ namespace CGAL { 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 @@ namespace CGAL { 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 @@ namespace CGAL { 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 @@ namespace CGAL { 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 --git a/thirdparty/CGAL/include/CGAL/AABB_tree/internal/AABB_drawing_traits.h b/thirdparty/CGAL/include/CGAL/AABB_tree/internal/AABB_drawing_traits.h index 7aa7bebb..f964f6f5 100644 --- a/thirdparty/CGAL/include/CGAL/AABB_tree/internal/AABB_drawing_traits.h +++ b/thirdparty/CGAL/include/CGAL/AABB_tree/internal/AABB_drawing_traits.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ struct AABB_drawing_traits 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 --git a/thirdparty/CGAL/include/CGAL/AABB_tree/internal/AABB_node.h b/thirdparty/CGAL/include/CGAL/AABB_tree/internal/AABB_node.h index 5aef1491..dad1a937 100644 --- a/thirdparty/CGAL/include/CGAL/AABB_tree/internal/AABB_node.h +++ b/thirdparty/CGAL/include/CGAL/AABB_tree/internal/AABB_node.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/AABB_tree/internal/AABB_ray_intersection.h b/thirdparty/CGAL/include/CGAL/AABB_tree/internal/AABB_ray_intersection.h index b206e301..5fdae7c8 100644 --- a/thirdparty/CGAL/include/CGAL/AABB_tree/internal/AABB_ray_intersection.h +++ b/thirdparty/CGAL/include/CGAL/AABB_tree/internal/AABB_ray_intersection.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/AABB_tree/internal/AABB_search_tree.h b/thirdparty/CGAL/include/CGAL/AABB_tree/internal/AABB_search_tree.h index 49f32870..85f23f30 100644 --- a/thirdparty/CGAL/include/CGAL/AABB_tree/internal/AABB_search_tree.h +++ b/thirdparty/CGAL/include/CGAL/AABB_tree/internal/AABB_search_tree.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/AABB_tree/internal/AABB_traversal_traits.h b/thirdparty/CGAL/include/CGAL/AABB_tree/internal/AABB_traversal_traits.h index 392aa6eb..28555bf0 100644 --- a/thirdparty/CGAL/include/CGAL/AABB_tree/internal/AABB_traversal_traits.h +++ b/thirdparty/CGAL/include/CGAL/AABB_tree/internal/AABB_traversal_traits.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Listing_intersection_traits 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 @@ class Listing_primitive_traits 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 @@ class Projection_traits 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 --git a/thirdparty/CGAL/include/CGAL/AABB_tree/internal/Has_nested_type_Shared_data.h b/thirdparty/CGAL/include/CGAL/AABB_tree/internal/Has_nested_type_Shared_data.h index d73bd736..3cc7c6ca 100644 --- a/thirdparty/CGAL/include/CGAL/AABB_tree/internal/Has_nested_type_Shared_data.h +++ b/thirdparty/CGAL/include/CGAL/AABB_tree/internal/Has_nested_type_Shared_data.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/AABB_tree/internal/Is_ray_intersection_geomtraits.h b/thirdparty/CGAL/include/CGAL/AABB_tree/internal/Is_ray_intersection_geomtraits.h index 501499dd..02ee6909 100644 --- a/thirdparty/CGAL/include/CGAL/AABB_tree/internal/Is_ray_intersection_geomtraits.h +++ b/thirdparty/CGAL/include/CGAL/AABB_tree/internal/Is_ray_intersection_geomtraits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/AABB_tree/internal/Primitive_helper.h b/thirdparty/CGAL/include/CGAL/AABB_tree/internal/Primitive_helper.h index 6ec6e78d..f6e4703d 100644 --- a/thirdparty/CGAL/include/CGAL/AABB_tree/internal/Primitive_helper.h +++ b/thirdparty/CGAL/include/CGAL/AABB_tree/internal/Primitive_helper.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/AABB_tree/internal/triangle_datum_covering.h b/thirdparty/CGAL/include/CGAL/AABB_tree/internal/triangle_datum_covering.h new file mode 100644 index 00000000..d2a1bb13 --- /dev/null +++ b/thirdparty/CGAL/include/CGAL/AABB_tree/internal/triangle_datum_covering.h @@ -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 --git a/thirdparty/CGAL/include/CGAL/AABB_triangle_primitive.h b/thirdparty/CGAL/include/CGAL/AABB_triangle_primitive.h index e141f767..60028344 100644 --- a/thirdparty/CGAL/include/CGAL/AABB_triangle_primitive.h +++ b/thirdparty/CGAL/include/CGAL/AABB_triangle_primitive.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/AABB_triangulation_3_cell_primitive.h b/thirdparty/CGAL/include/CGAL/AABB_triangulation_3_cell_primitive.h index 475fc7bf..7f00f912 100644 --- a/thirdparty/CGAL/include/CGAL/AABB_triangulation_3_cell_primitive.h +++ b/thirdparty/CGAL/include/CGAL/AABB_triangulation_3_cell_primitive.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/AABB_triangulation_3_triangle_primitive.h b/thirdparty/CGAL/include/CGAL/AABB_triangulation_3_triangle_primitive.h index 38814f05..105070ae 100644 --- a/thirdparty/CGAL/include/CGAL/AABB_triangulation_3_triangle_primitive.h +++ b/thirdparty/CGAL/include/CGAL/AABB_triangulation_3_triangle_primitive.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Advancing_front_surface_reconstruction.h b/thirdparty/CGAL/include/CGAL/Advancing_front_surface_reconstruction.h index e0e1e3ed..627c89e8 100644 --- a/thirdparty/CGAL/include/CGAL/Advancing_front_surface_reconstruction.h +++ b/thirdparty/CGAL/include/CGAL/Advancing_front_surface_reconstruction.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace CGAL { 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 --git a/thirdparty/CGAL/include/CGAL/Advancing_front_surface_reconstruction/internal/Surface_face_base_2.h b/thirdparty/CGAL/include/CGAL/Advancing_front_surface_reconstruction/internal/Surface_face_base_2.h index 07d5429a..55b8cccc 100644 --- a/thirdparty/CGAL/include/CGAL/Advancing_front_surface_reconstruction/internal/Surface_face_base_2.h +++ b/thirdparty/CGAL/include/CGAL/Advancing_front_surface_reconstruction/internal/Surface_face_base_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Advancing_front_surface_reconstruction/internal/Surface_vertex_base_2.h b/thirdparty/CGAL/include/CGAL/Advancing_front_surface_reconstruction/internal/Surface_vertex_base_2.h index e68a0305..4e9757ae 100644 --- a/thirdparty/CGAL/include/CGAL/Advancing_front_surface_reconstruction/internal/Surface_vertex_base_2.h +++ b/thirdparty/CGAL/include/CGAL/Advancing_front_surface_reconstruction/internal/Surface_vertex_base_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Advancing_front_surface_reconstruction/internal/construct_polyhedron.h b/thirdparty/CGAL/include/CGAL/Advancing_front_surface_reconstruction/internal/construct_polyhedron.h index 233d3f5b..a430af33 100644 --- a/thirdparty/CGAL/include/CGAL/Advancing_front_surface_reconstruction/internal/construct_polyhedron.h +++ b/thirdparty/CGAL/include/CGAL/Advancing_front_surface_reconstruction/internal/construct_polyhedron.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Advancing_front_surface_reconstruction/internal/construct_surface_2.h b/thirdparty/CGAL/include/CGAL/Advancing_front_surface_reconstruction/internal/construct_surface_2.h index 9f9ceccc..159abbd2 100644 --- a/thirdparty/CGAL/include/CGAL/Advancing_front_surface_reconstruction/internal/construct_surface_2.h +++ b/thirdparty/CGAL/include/CGAL/Advancing_front_surface_reconstruction/internal/construct_surface_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Advancing_front_surface_reconstruction/internal/write_triple_indices.h b/thirdparty/CGAL/include/CGAL/Advancing_front_surface_reconstruction/internal/write_triple_indices.h index 1e287aa5..353a40bd 100644 --- a/thirdparty/CGAL/include/CGAL/Advancing_front_surface_reconstruction/internal/write_triple_indices.h +++ b/thirdparty/CGAL/include/CGAL/Advancing_front_surface_reconstruction/internal/write_triple_indices.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Advancing_front_surface_reconstruction_cell_base_3.h b/thirdparty/CGAL/include/CGAL/Advancing_front_surface_reconstruction_cell_base_3.h index be122d73..5ca55d39 100644 --- a/thirdparty/CGAL/include/CGAL/Advancing_front_surface_reconstruction_cell_base_3.h +++ b/thirdparty/CGAL/include/CGAL/Advancing_front_surface_reconstruction_cell_base_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Advancing_front_surface_reconstruction_vertex_base_3.h b/thirdparty/CGAL/include/CGAL/Advancing_front_surface_reconstruction_vertex_base_3.h index e9182b3f..640edf56 100644 --- a/thirdparty/CGAL/include/CGAL/Advancing_front_surface_reconstruction_vertex_base_3.h +++ b/thirdparty/CGAL/include/CGAL/Advancing_front_surface_reconstruction_vertex_base_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Aff_transformation_2.h b/thirdparty/CGAL/include/CGAL/Aff_transformation_2.h index ab96047b..2bf28301 100644 --- a/thirdparty/CGAL/include/CGAL/Aff_transformation_2.h +++ b/thirdparty/CGAL/include/CGAL/Aff_transformation_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Aff_transformation_3.h b/thirdparty/CGAL/include/CGAL/Aff_transformation_3.h index 2b3dc6a8..57e6fc44 100644 --- a/thirdparty/CGAL/include/CGAL/Aff_transformation_3.h +++ b/thirdparty/CGAL/include/CGAL/Aff_transformation_3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Algebraic_extension_traits.h b/thirdparty/CGAL/include/CGAL/Algebraic_extension_traits.h index f414eb3f..2325047e 100644 --- a/thirdparty/CGAL/include/CGAL/Algebraic_extension_traits.h +++ b/thirdparty/CGAL/include/CGAL/Algebraic_extension_traits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_converter.h b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_converter.h index 53a1fe52..5d5e6d7a 100644 --- a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_converter.h +++ b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_converter.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Algebraic_curve_kernel_2.h b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Algebraic_curve_kernel_2.h index fbb11f5f..af7e711f 100644 --- a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Algebraic_curve_kernel_2.h +++ b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Algebraic_curve_kernel_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Algebraic_real_d_1.h b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Algebraic_real_d_1.h index 5112a3c6..43146297 100644 --- a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Algebraic_real_d_1.h +++ b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Algebraic_real_d_1.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Algebraic_real_quadratic_refinement_rep_bfi.h b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Algebraic_real_quadratic_refinement_rep_bfi.h index 4ecaf9df..27a59e0c 100644 --- a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Algebraic_real_quadratic_refinement_rep_bfi.h +++ b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Algebraic_real_quadratic_refinement_rep_bfi.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Algebraic_real_rep.h b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Algebraic_real_rep.h index 0098e815..20b0684b 100644 --- a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Algebraic_real_rep.h +++ b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Algebraic_real_rep.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Algebraic_real_rep_bfi.h b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Algebraic_real_rep_bfi.h index e155a928..0e69bf1c 100644 --- a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Algebraic_real_rep_bfi.h +++ b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Algebraic_real_rep_bfi.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Bitstream_coefficient_kernel.h b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Bitstream_coefficient_kernel.h index 001fb95e..97f6c075 100644 --- a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Bitstream_coefficient_kernel.h +++ b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Bitstream_coefficient_kernel.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Bitstream_coefficient_kernel_at_alpha.h b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Bitstream_coefficient_kernel_at_alpha.h index 942e3c3d..7b388032 100644 --- a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Bitstream_coefficient_kernel_at_alpha.h +++ b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Bitstream_coefficient_kernel_at_alpha.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Bitstream_descartes.h b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Bitstream_descartes.h index 99f5b134..d52b57d0 100644 --- a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Bitstream_descartes.h +++ b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Bitstream_descartes.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Bitstream_descartes_E08_tree.h b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Bitstream_descartes_E08_tree.h index 1b7106a6..a1069c86 100644 --- a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Bitstream_descartes_E08_tree.h +++ b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Bitstream_descartes_E08_tree.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Bitstream_descartes_rndl_tree.h b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Bitstream_descartes_rndl_tree.h index 27972923..eea99f1c 100644 --- a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Bitstream_descartes_rndl_tree.h +++ b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Bitstream_descartes_rndl_tree.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Bitstream_descartes_rndl_tree_traits.h b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Bitstream_descartes_rndl_tree_traits.h index 7c15a288..c9653098 100644 --- a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Bitstream_descartes_rndl_tree_traits.h +++ b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Bitstream_descartes_rndl_tree_traits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Curve_analysis_2.h b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Curve_analysis_2.h index 7825327b..2504af3e 100644 --- a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Curve_analysis_2.h +++ b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Curve_analysis_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Curve_pair_analysis_2.h b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Curve_pair_analysis_2.h index 13904d4b..0aed5aa9 100644 --- a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Curve_pair_analysis_2.h +++ b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Curve_pair_analysis_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Descartes.h b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Descartes.h index 84a34564..1d760bec 100644 --- a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Descartes.h +++ b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Descartes.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Event_line_builder.h b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Event_line_builder.h index 6c505bf5..0ec36cbc 100644 --- a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Event_line_builder.h +++ b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Event_line_builder.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Float_traits.h b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Float_traits.h index 81a3d37e..4a135d85 100644 --- a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Float_traits.h +++ b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Float_traits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Interval_evaluate_1.h b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Interval_evaluate_1.h index 525ef83b..22091a46 100644 --- a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Interval_evaluate_1.h +++ b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Interval_evaluate_1.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Interval_evaluate_2.h b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Interval_evaluate_2.h index b54ba78f..de0c65c6 100644 --- a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Interval_evaluate_2.h +++ b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Interval_evaluate_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/LRU_hashed_map.h b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/LRU_hashed_map.h index dc0054a6..7e31f469 100644 --- a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/LRU_hashed_map.h +++ b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/LRU_hashed_map.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Real_embeddable_extension.h b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Real_embeddable_extension.h index 372ee166..5612c900 100644 --- a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Real_embeddable_extension.h +++ b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Real_embeddable_extension.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Real_roots.h b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Real_roots.h index 516b34cd..d86636a5 100644 --- a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Real_roots.h +++ b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Real_roots.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Shear_controller.h b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Shear_controller.h index 15b22921..c84f67c7 100644 --- a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Shear_controller.h +++ b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Shear_controller.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Shear_transformation.h b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Shear_transformation.h index 04872ffc..1e6f3312 100644 --- a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Shear_transformation.h +++ b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Shear_transformation.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Status_line_CA_1.h b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Status_line_CA_1.h index 075a8618..a2234f29 100644 --- a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Status_line_CA_1.h +++ b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Status_line_CA_1.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Status_line_CPA_1.h b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Status_line_CPA_1.h index 033e686f..5172380b 100644 --- a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Status_line_CPA_1.h +++ b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Status_line_CPA_1.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Xy_coordinate_2.h b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Xy_coordinate_2.h index f9230d64..19effa4b 100644 --- a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Xy_coordinate_2.h +++ b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/Xy_coordinate_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/algebraic_curve_kernel_2_tools.h b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/algebraic_curve_kernel_2_tools.h index 65850473..b7e66f9c 100644 --- a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/algebraic_curve_kernel_2_tools.h +++ b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/algebraic_curve_kernel_2_tools.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/bound_between_1.h b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/bound_between_1.h index 436bb818..9745b7d3 100644 --- a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/bound_between_1.h +++ b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/bound_between_1.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/construct_binary.h b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/construct_binary.h index 9884e0c5..8d0d2d21 100644 --- a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/construct_binary.h +++ b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/construct_binary.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/enums.h b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/enums.h index 4f6a02cb..43def1b1 100644 --- a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/enums.h +++ b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/enums.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/exceptions.h b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/exceptions.h index f2a04ade..82fba9ec 100644 --- a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/exceptions.h +++ b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/exceptions.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/flags.h b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/flags.h index ac8a3e6a..de6a8bf8 100644 --- a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/flags.h +++ b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/flags.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/macros.h b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/macros.h index aa6694aa..73af8d1e 100644 --- a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/macros.h +++ b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/macros.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/refine_zero_against.h b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/refine_zero_against.h index dadf76e1..77597c5f 100644 --- a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/refine_zero_against.h +++ b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/refine_zero_against.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ bool refine_zero_against(Field& low, Field& high, Polynomial p, Polynomial q) { 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 @@ bool refine_zero_against(Field& low, Field& high, Polynomial p, Polynomial q) { 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 @@ static bool strong_refine_zero_against(Field& low, Field& high, 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 @@ static bool strong_refine_zero_against(Field& low, Field& high, else { CGAL_assertion(s == sign_p_high); high = mid; - sign_p_high = s; //bogus? + CGAL_assertion_code(sign_p_high = s); //bogus? } } diff --git a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/shear.h b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/shear.h index cb35347b..90187fda 100644 --- a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/shear.h +++ b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/shear.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/univariate_polynomial_utils.h b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/univariate_polynomial_utils.h index 0aebdb59..86d0a4f0 100644 --- a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/univariate_polynomial_utils.h +++ b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d/univariate_polynomial_utils.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d_1.h b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d_1.h index 0f5d2915..4ab52545 100644 --- a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d_1.h +++ b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d_1.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d_2.h b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d_2.h index e3450941..f538aa34 100644 --- a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d_2.h +++ b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_d_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_for_circles/function_objects_on_roots_and_polynomials_2_2.h b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_for_circles/function_objects_on_roots_and_polynomials_2_2.h index 15971b6b..e115158e 100644 --- a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_for_circles/function_objects_on_roots_and_polynomials_2_2.h +++ b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_for_circles/function_objects_on_roots_and_polynomials_2_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_for_circles/internal_functions_comparison_root_for_circles_2_2.h b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_for_circles/internal_functions_comparison_root_for_circles_2_2.h index e1e13bcf..5918d3f5 100644 --- a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_for_circles/internal_functions_comparison_root_for_circles_2_2.h +++ b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_for_circles/internal_functions_comparison_root_for_circles_2_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_for_circles/internal_functions_on_roots_and_polynomial_1_2_and_2_2.h b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_for_circles/internal_functions_on_roots_and_polynomial_1_2_and_2_2.h index 527c3d87..07cb608c 100644 --- a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_for_circles/internal_functions_on_roots_and_polynomial_1_2_and_2_2.h +++ b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_for_circles/internal_functions_on_roots_and_polynomial_1_2_and_2_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_for_circles/internal_functions_on_roots_and_polynomials_2_2.h b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_for_circles/internal_functions_on_roots_and_polynomials_2_2.h index 1fd49701..d318d79d 100644 --- a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_for_circles/internal_functions_on_roots_and_polynomials_2_2.h +++ b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_for_circles/internal_functions_on_roots_and_polynomials_2_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_for_circles_2_2.h b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_for_circles_2_2.h index 8d77e62c..73b9832e 100644 --- a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_for_circles_2_2.h +++ b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_for_circles_2_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_for_spheres/function_objects_on_roots_and_polynomials_2_3.h b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_for_spheres/function_objects_on_roots_and_polynomials_2_3.h index fdea4ac3..f670e2c0 100644 --- a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_for_spheres/function_objects_on_roots_and_polynomials_2_3.h +++ b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_for_spheres/function_objects_on_roots_and_polynomials_2_3.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_for_spheres/internal_functions_comparison_root_for_spheres_2_3.h b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_for_spheres/internal_functions_comparison_root_for_spheres_2_3.h index 7ec3290f..d5e251e5 100644 --- a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_for_spheres/internal_functions_comparison_root_for_spheres_2_3.h +++ b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_for_spheres/internal_functions_comparison_root_for_spheres_2_3.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_for_spheres/internal_functions_on_roots_and_polynomial_1_3_and_2_3.h b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_for_spheres/internal_functions_on_roots_and_polynomial_1_3_and_2_3.h index e0e97b47..a1957fd1 100644 --- a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_for_spheres/internal_functions_on_roots_and_polynomial_1_3_and_2_3.h +++ b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_for_spheres/internal_functions_on_roots_and_polynomial_1_3_and_2_3.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_for_spheres/internal_functions_on_roots_and_polynomials_1_3.h b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_for_spheres/internal_functions_on_roots_and_polynomials_1_3.h index f6551dfe..e6ed9ed2 100644 --- a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_for_spheres/internal_functions_on_roots_and_polynomials_1_3.h +++ b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_for_spheres/internal_functions_on_roots_and_polynomials_1_3.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_for_spheres/internal_functions_on_roots_and_polynomials_2_3.h b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_for_spheres/internal_functions_on_roots_and_polynomials_2_3.h index 49526db2..cc4a2952 100644 --- a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_for_spheres/internal_functions_on_roots_and_polynomials_2_3.h +++ b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_for_spheres/internal_functions_on_roots_and_polynomials_2_3.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_for_spheres_2_3.h b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_for_spheres_2_3.h index a38dad0e..7e7f9b88 100644 --- a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_for_spheres_2_3.h +++ b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_for_spheres_2_3.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_rs_gmpq_d_1.h b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_rs_gmpq_d_1.h index 5e56afd0..46326ff4 100644 --- a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_rs_gmpq_d_1.h +++ b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_rs_gmpq_d_1.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_rs_gmpz_d_1.h b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_rs_gmpz_d_1.h index b7a7859e..02a33cd0 100644 --- a/thirdparty/CGAL/include/CGAL/Algebraic_kernel_rs_gmpz_d_1.h +++ b/thirdparty/CGAL/include/CGAL/Algebraic_kernel_rs_gmpz_d_1.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Algebraic_structure_traits.h b/thirdparty/CGAL/include/CGAL/Algebraic_structure_traits.h index 5c3e647b..a3448659 100644 --- a/thirdparty/CGAL/include/CGAL/Algebraic_structure_traits.h +++ b/thirdparty/CGAL/include/CGAL/Algebraic_structure_traits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Alpha_shape_2.h b/thirdparty/CGAL/include/CGAL/Alpha_shape_2.h index 7eaa6e3e..0f04d07c 100644 --- a/thirdparty/CGAL/include/CGAL/Alpha_shape_2.h +++ b/thirdparty/CGAL/include/CGAL/Alpha_shape_2.h @@ -5,7 +5,7 @@ // // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Alpha_shape_3.h b/thirdparty/CGAL/include/CGAL/Alpha_shape_3.h index 834ed696..5c343862 100644 --- a/thirdparty/CGAL/include/CGAL/Alpha_shape_3.h +++ b/thirdparty/CGAL/include/CGAL/Alpha_shape_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Alpha_shape_cell_base_3.h b/thirdparty/CGAL/include/CGAL/Alpha_shape_cell_base_3.h index 54a3dff5..c884fa4d 100644 --- a/thirdparty/CGAL/include/CGAL/Alpha_shape_cell_base_3.h +++ b/thirdparty/CGAL/include/CGAL/Alpha_shape_cell_base_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Alpha_shape_face_base_2.h b/thirdparty/CGAL/include/CGAL/Alpha_shape_face_base_2.h index 75f260a1..fd1f133a 100644 --- a/thirdparty/CGAL/include/CGAL/Alpha_shape_face_base_2.h +++ b/thirdparty/CGAL/include/CGAL/Alpha_shape_face_base_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Alpha_shape_vertex_base_2.h b/thirdparty/CGAL/include/CGAL/Alpha_shape_vertex_base_2.h index 94040e81..9330a963 100644 --- a/thirdparty/CGAL/include/CGAL/Alpha_shape_vertex_base_2.h +++ b/thirdparty/CGAL/include/CGAL/Alpha_shape_vertex_base_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Alpha_shape_vertex_base_3.h b/thirdparty/CGAL/include/CGAL/Alpha_shape_vertex_base_3.h index 0c58da44..37db1483 100644 --- a/thirdparty/CGAL/include/CGAL/Alpha_shape_vertex_base_3.h +++ b/thirdparty/CGAL/include/CGAL/Alpha_shape_vertex_base_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Alpha_shapes_2/internal/Lazy_alpha_nt_2.h b/thirdparty/CGAL/include/CGAL/Alpha_shapes_2/internal/Lazy_alpha_nt_2.h index 2a9bb786..75178feb 100644 --- a/thirdparty/CGAL/include/CGAL/Alpha_shapes_2/internal/Lazy_alpha_nt_2.h +++ b/thirdparty/CGAL/include/CGAL/Alpha_shapes_2/internal/Lazy_alpha_nt_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Alpha_shapes_3/internal/Classification_type.h b/thirdparty/CGAL/include/CGAL/Alpha_shapes_3/internal/Classification_type.h index 1f638d42..eb28c1a1 100644 --- a/thirdparty/CGAL/include/CGAL/Alpha_shapes_3/internal/Classification_type.h +++ b/thirdparty/CGAL/include/CGAL/Alpha_shapes_3/internal/Classification_type.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Alpha_shapes_3/internal/Lazy_alpha_nt_3.h b/thirdparty/CGAL/include/CGAL/Alpha_shapes_3/internal/Lazy_alpha_nt_3.h index 24d86f7f..0b5e73a4 100644 --- a/thirdparty/CGAL/include/CGAL/Alpha_shapes_3/internal/Lazy_alpha_nt_3.h +++ b/thirdparty/CGAL/include/CGAL/Alpha_shapes_3/internal/Lazy_alpha_nt_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Alpha_wrap_3/internal/Alpha_wrap_3.h b/thirdparty/CGAL/include/CGAL/Alpha_wrap_3/internal/Alpha_wrap_3.h index 51e54a8a..b0af2616 100644 --- a/thirdparty/CGAL/include/CGAL/Alpha_wrap_3/internal/Alpha_wrap_3.h +++ b/thirdparty/CGAL/include/CGAL/Alpha_wrap_3/internal/Alpha_wrap_3.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL$ -// $Id$ +// $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 @@ -19,6 +19,11 @@ #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 @@ -94,6 +99,32 @@ class Cell_base_with_timestamp }; }; +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 { @@ -167,6 +198,9 @@ class Alpha_wrap_3 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 { @@ -211,6 +245,15 @@ class Alpha_wrap_3 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; @@ -223,6 +266,8 @@ class Alpha_wrap_3 t.start(); #endif + visitor.on_alpha_wrapping_begin(*this); + if(!initialize(alpha, offset, seeds)) return; @@ -232,7 +277,7 @@ class Alpha_wrap_3 CGAL::parameters::vertex_point_map(ovpm).stream_precision(17)); #endif - alpha_flood_fill(); + alpha_flood_fill(visitor); #ifdef CGAL_AW3_TIMER t.stop(); @@ -306,10 +351,12 @@ class Alpha_wrap_3 std::cout << "Alpha wrap faces: " << faces(output_mesh).size() << std::endl; #ifdef CGAL_AW3_DEBUG_DUMP_EVERY_STEP - IO::write_polygon_mesh("final.off", alpha_wrap, CGAL::parameters::stream_precision(17)); + 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 @@ -602,11 +649,12 @@ class Alpha_wrap_3 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) + OVPM ovpm) const { namespace PMP = Polygon_mesh_processing; @@ -691,7 +739,7 @@ class Alpha_wrap_3 template void extract_manifold_surface(OutputMesh& output_mesh, - OVPM ovpm) + OVPM ovpm) const { namespace PMP = Polygon_mesh_processing; @@ -743,7 +791,12 @@ class Alpha_wrap_3 if(faces.empty()) return; - CGAL_assertion(PMP::is_polygon_soup_a_polygon_mesh(faces)); + 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)); @@ -758,7 +811,7 @@ class Alpha_wrap_3 template void extract_surface(OutputMesh& output_mesh, OVPM ovpm, - const bool tolerate_non_manifoldness = false) + const bool tolerate_non_manifoldness = false) const { if(tolerate_non_manifoldness) extract_possibly_non_manifold_surface(output_mesh, ovpm); @@ -788,9 +841,9 @@ class Alpha_wrap_3 const bool is_neighbor_cc_in_offset = m_oracle.do_intersect(neighbor_cc_offset_ball); #ifdef CGAL_AW3_DEBUG_STEINER_COMPUTATION - const Point_3& chc = circumcenter(ch); + std::cout << "Compute_steiner_point(" << &*ch << ", " << &*neighbor << ")" << std::endl; - std::cout << "Compute_steiner_point()" << 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; @@ -985,12 +1038,15 @@ class Alpha_wrap_3 return initialize_with_cavities(seeds); } - void alpha_flood_fill() + 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()) { @@ -1012,11 +1068,13 @@ class Alpha_wrap_3 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" + << "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 @@ -1077,10 +1135,14 @@ class Alpha_wrap_3 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)); @@ -1128,6 +1190,8 @@ class Alpha_wrap_3 } } // 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;) diff --git a/thirdparty/CGAL/include/CGAL/Alpha_wrap_3/internal/Alpha_wrap_AABB_traits.h b/thirdparty/CGAL/include/CGAL/Alpha_wrap_3/internal/Alpha_wrap_AABB_traits.h index 8b55605d..39c474c9 100644 --- a/thirdparty/CGAL/include/CGAL/Alpha_wrap_3/internal/Alpha_wrap_AABB_traits.h +++ b/thirdparty/CGAL/include/CGAL/Alpha_wrap_3/internal/Alpha_wrap_AABB_traits.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL$ -// $Id$ +// $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 @@ -267,7 +267,11 @@ class Alpha_wrap_AABB_traits for(int i=0; i<4; ++i) { - if(!q.m_b.test(i) && do_overlap(q.m_tbox[i], bb) && Base::operator()(q.m_triangles[i], bb)) + // 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; } diff --git a/thirdparty/CGAL/include/CGAL/Alpha_wrap_3/internal/Oracle_base.h b/thirdparty/CGAL/include/CGAL/Alpha_wrap_3/internal/Oracle_base.h index 5eba09bc..a4d375d7 100644 --- a/thirdparty/CGAL/include/CGAL/Alpha_wrap_3/internal/Oracle_base.h +++ b/thirdparty/CGAL/include/CGAL/Alpha_wrap_3/internal/Oracle_base.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL$ -// $Id$ +// $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é @@ -142,41 +142,85 @@ class AABB_tree_oracle 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(!tree().empty()); + CGAL_precondition(do_call()); + + typename AABB_tree::Bounding_box bb; + + if(base().do_call()) + bb += base().bbox(); - return base().bbox() + tree().bbox(); + if(!empty()) + bb += tree().bbox(); + + return bb; } template bool do_intersect(const T& t) const { - if(base().do_intersect(t)) + CGAL_precondition(do_call()); + + if(base().do_call() && base().do_intersect(t)) return true; - return AABB_helper::do_intersect(t, tree()); + if(!empty()) + return AABB_helper::do_intersect(t, tree()); + + return false; } FT squared_distance(const Point_3& p) const { - 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()); + CGAL_precondition(do_call()); - return (std::min)(base_sqd, this_sqd); + 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 { - 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()); + CGAL_precondition(do_call()); - return (compare_distance_to_point(p, base_c, this_c) == CGAL::SMALLER) ? base_c : this_c; + 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, @@ -184,22 +228,38 @@ class AABB_tree_oracle const FT offset_size, const FT intersection_precision) const { - Point_3 base_o; - bool base_b = base().first_intersection(p, q, base_o, offset_size, intersection_precision); + CGAL_precondition(do_call()); - if(base_b) + if(base().do_call()) { - // @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; + 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 + else // empty base { return AABB_helper::first_intersection(p, q, o, offset_size, intersection_precision, tree()); } @@ -250,10 +310,13 @@ class AABB_tree_oracle 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(!tree().empty()); + CGAL_precondition(!empty()); return tree().bbox(); } @@ -261,27 +324,32 @@ class AABB_tree_oracle 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()); } diff --git a/thirdparty/CGAL/include/CGAL/Alpha_wrap_3/internal/Point_set_oracle.h b/thirdparty/CGAL/include/CGAL/Alpha_wrap_3/internal/Point_set_oracle.h index 761de1bd..fa331035 100644 --- a/thirdparty/CGAL/include/CGAL/Alpha_wrap_3/internal/Point_set_oracle.h +++ b/thirdparty/CGAL/include/CGAL/Alpha_wrap_3/internal/Point_set_oracle.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL$ -// $Id$ +// $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é @@ -24,45 +24,25 @@ #include #include -#include - #include #include +#include #include +#include namespace CGAL { namespace Alpha_wraps_3 { namespace internal { -// No longer used, but might find some purpose again in the future -template -struct Point_from_iterator_map -{ - using key_type = InputIterator; - using value_type = typename boost::property_traits::value_type; - using reference = typename boost::property_traits::reference; - using category = boost::readable_property_map_tag; - - Point_from_iterator_map(const PM& pm = PM()) : pm(pm) { } - - inline friend reference get(const Point_from_iterator_map& map, const key_type it) - { - return get(map.pm, *it); - } - - PM pm; -}; - // Just some typedefs for readability -template +template struct PS_oracle_traits { - using Point = typename boost::range_value::type; - using Default_GT = typename Kernel_traits::Kernel; - using Base_GT = typename Default::Get::type; // = Kernel, usually - using Geom_traits = Alpha_wrap_AABB_traits; // Wrap the kernel to add Ball_3 + custom Do_intersect_3 + 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 PR_iterator = typename PointRange::const_iterator; using Primitive = AABB_primitive /*DPM*/, Input_iterator_property_map /*RPM*/, @@ -73,25 +53,28 @@ struct PS_oracle_traits using AABB_tree = CGAL::AABB_tree; }; -template class Point_set_oracle - : public AABB_tree_oracle::Geom_traits, - typename PS_oracle_traits::AABB_tree, + : 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 = typename PSOT::Base_GT; + 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() @@ -110,9 +93,10 @@ class Point_set_oracle public: // adds a range of points to the oracle - template + template void add_point_set(const PointRange& points, - const NamedParameters& /*np*/ = CGAL::parameters::default_values()) + const CGAL_NP_CLASS& /*np*/ = CGAL::parameters::default_values()) { if(points.empty()) { @@ -122,11 +106,16 @@ class Point_set_oracle 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(points.begin(), points.end()); + this->tree().insert(std::next(std::cbegin(m_points), old_size), std::cend(m_points)); + + CGAL_postcondition(this->tree().size() == m_points.size()); } }; diff --git a/thirdparty/CGAL/include/CGAL/Alpha_wrap_3/internal/Segment_soup_oracle.h b/thirdparty/CGAL/include/CGAL/Alpha_wrap_3/internal/Segment_soup_oracle.h index b8759e67..5a571fea 100644 --- a/thirdparty/CGAL/include/CGAL/Alpha_wrap_3/internal/Segment_soup_oracle.h +++ b/thirdparty/CGAL/include/CGAL/Alpha_wrap_3/internal/Segment_soup_oracle.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL$ -// $Id$ +// $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é @@ -24,26 +24,25 @@ #include #include -#include - #include #include +#include #include +#include namespace CGAL { namespace Alpha_wraps_3 { namespace internal { // Just some typedefs for readability -template +template struct SS_oracle_traits { - using Segment = typename boost::range_value::type; - using Default_GT = typename Kernel_traits::Kernel; - using Base_GT = typename Default::Get::type; // = Kernel, usually - using Geom_traits = Alpha_wrap_AABB_traits; // Wrap the kernel to add Ball_3 + custom Do_intersect_3 + 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 SR_iterator = typename SegmentRange::const_iterator; using Primitive = AABB_primitive, // DPM CGAL::internal::Source_of_segment_3_iterator_property_map, // RPM @@ -54,25 +53,28 @@ struct SS_oracle_traits using AABB_tree = CGAL::AABB_tree; }; -template class Segment_soup_oracle - : public AABB_tree_oracle::Geom_traits, - typename SS_oracle_traits::AABB_tree, + : 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 = typename SSOT::Base_GT; + 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() @@ -90,9 +92,10 @@ class Segment_soup_oracle { } public: - template + template void add_segment_soup(const SegmentRange& segments, - const NamedParameters& /*np*/ = CGAL::parameters::default_values()) + const CGAL_NP_CLASS& /*np*/ = CGAL::parameters::default_values()) { if(segments.empty()) { @@ -102,12 +105,15 @@ class Segment_soup_oracle 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(segments.begin(), segments.end()); + this->tree().insert(std::next(std::cbegin(m_segments), old_size), std::cend(m_segments)); - CGAL_postcondition(this->tree().size() == segments.size()); + CGAL_postcondition(this->tree().size() == m_segments.size()); } }; diff --git a/thirdparty/CGAL/include/CGAL/Alpha_wrap_3/internal/Triangle_mesh_oracle.h b/thirdparty/CGAL/include/CGAL/Alpha_wrap_3/internal/Triangle_mesh_oracle.h index 3d90fd86..324b63fc 100644 --- a/thirdparty/CGAL/include/CGAL/Alpha_wrap_3/internal/Triangle_mesh_oracle.h +++ b/thirdparty/CGAL/include/CGAL/Alpha_wrap_3/internal/Triangle_mesh_oracle.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL$ -// $Id$ +// $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é @@ -34,41 +34,36 @@ namespace Alpha_wraps_3 { namespace internal { // Just some typedefs for readability in the main oracle class -template +template struct TM_oracle_traits { - using Default_GT = typename GetGeomTraits::type; + using Geom_traits = Alpha_wrap_AABB_traits; // Wrap the kernel to add Ball_3 + custom Do_intersect_3 - using Base_GT = typename Default::Get::type; // = Kernel, usually - 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, + 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, + /*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> + typename TM_oracle_traits::Point_3, + typename TM_oracle_traits::Geom_traits> { - using face_descriptor = typename boost::graph_traits::face_descriptor; - - using TMOT = TM_oracle_traits; - using Base_GT = typename TMOT::Base_GT; + using TMOT = TM_oracle_traits; + using Base_GT = GT_; public: using Geom_traits = typename TMOT::Geom_traits; @@ -122,13 +117,16 @@ class Triangle_mesh_oracle { } public: - template + template void add_triangle_mesh(const TriangleMesh& tmesh, - const NamedParameters& np = CGAL::parameters::default_values()) + 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; diff --git a/thirdparty/CGAL/include/CGAL/Alpha_wrap_3/internal/Triangle_soup_oracle.h b/thirdparty/CGAL/include/CGAL/Alpha_wrap_3/internal/Triangle_soup_oracle.h index f2cb2b17..50a5dc6d 100644 --- a/thirdparty/CGAL/include/CGAL/Alpha_wrap_3/internal/Triangle_soup_oracle.h +++ b/thirdparty/CGAL/include/CGAL/Alpha_wrap_3/internal/Triangle_soup_oracle.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL$ -// $Id$ +// $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é @@ -35,42 +35,34 @@ namespace Alpha_wraps_3 { namespace internal { // Just some typedefs for readability -template +template struct TS_oracle_traits { - using Default_NP = parameters::Default_named_parameters; - using Default_NP_helper = Point_set_processing_3_np_helper; - using Default_GT = typename Default_NP_helper::Geom_traits; - - using Base_GT = typename Default::Get::type; // = Kernel, usually - using Geom_traits = Alpha_wrap_AABB_traits; // Wrap the kernel to add Ball_3 + custom Do_intersect_3 + 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, + 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, + /*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> + typename TS_oracle_traits::Point_3, + typename TS_oracle_traits::Geom_traits> { - using Face = typename boost::range_value::type; - - using TSOT = TS_oracle_traits; - using Base_GT = typename TSOT::Base_GT; + using TSOT = TS_oracle_traits; + using Base_GT = GT_; public: using Geom_traits = typename TSOT::Geom_traits; @@ -124,17 +116,20 @@ class Triangle_soup_oracle { } public: - template + template void add_triangle_soup(const PointRange& points, const FaceRange& faces, - const NamedParameters& np = CGAL::parameters::default_values()) + const CGAL_NP_CLASS& np = CGAL::parameters::default_values()) { using parameters::choose_parameter; using parameters::get_parameter; - using PPM = typename GetPointMap::const_type; + 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 @@ -178,6 +173,22 @@ class Triangle_soup_oracle 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 diff --git a/thirdparty/CGAL/include/CGAL/Alpha_wrap_3/internal/gate_priority_queue.h b/thirdparty/CGAL/include/CGAL/Alpha_wrap_3/internal/gate_priority_queue.h index 8d63e34c..d387593a 100644 --- a/thirdparty/CGAL/include/CGAL/Alpha_wrap_3/internal/gate_priority_queue.h +++ b/thirdparty/CGAL/include/CGAL/Alpha_wrap_3/internal/gate_priority_queue.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL$ -// $Id$ +// $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 diff --git a/thirdparty/CGAL/include/CGAL/Alpha_wrap_3/internal/geometry_utils.h b/thirdparty/CGAL/include/CGAL/Alpha_wrap_3/internal/geometry_utils.h index d3814d0f..98b95298 100644 --- a/thirdparty/CGAL/include/CGAL/Alpha_wrap_3/internal/geometry_utils.h +++ b/thirdparty/CGAL/include/CGAL/Alpha_wrap_3/internal/geometry_utils.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL$ -// $Id$ +// $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 diff --git a/thirdparty/CGAL/include/CGAL/Alpha_wrap_3/internal/offset_intersection.h b/thirdparty/CGAL/include/CGAL/Alpha_wrap_3/internal/offset_intersection.h index d57b468a..f659d019 100644 --- a/thirdparty/CGAL/include/CGAL/Alpha_wrap_3/internal/offset_intersection.h +++ b/thirdparty/CGAL/include/CGAL/Alpha_wrap_3/internal/offset_intersection.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL$ -// $Id$ +// $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 diff --git a/thirdparty/CGAL/include/CGAL/Alpha_wrap_3/internal/oracles.h b/thirdparty/CGAL/include/CGAL/Alpha_wrap_3/internal/oracles.h index 77a4ca31..25299466 100644 --- a/thirdparty/CGAL/include/CGAL/Alpha_wrap_3/internal/oracles.h +++ b/thirdparty/CGAL/include/CGAL/Alpha_wrap_3/internal/oracles.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL$ -// $Id$ +// $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é diff --git a/thirdparty/CGAL/include/CGAL/Alpha_wrap_3/internal/splitting_helper.h b/thirdparty/CGAL/include/CGAL/Alpha_wrap_3/internal/splitting_helper.h index 1e06b7ff..097f0690 100644 --- a/thirdparty/CGAL/include/CGAL/Alpha_wrap_3/internal/splitting_helper.h +++ b/thirdparty/CGAL/include/CGAL/Alpha_wrap_3/internal/splitting_helper.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL$ -// $Id$ +// $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é diff --git a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2.h b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2.h index 2a9ac595..cb207506 100644 --- a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2.h +++ b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Apollonius_graph_2_impl.h b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Apollonius_graph_2_impl.h index 329e71c0..acb1500f 100644 --- a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Apollonius_graph_2_impl.h +++ b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Apollonius_graph_2_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Apollonius_graph_hierarchy_2_impl.h b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Apollonius_graph_hierarchy_2_impl.h index ca092f00..5f64e20d 100644 --- a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Apollonius_graph_hierarchy_2_impl.h +++ b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Apollonius_graph_hierarchy_2_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Bounded_side_of_ccw_circle_C2.h b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Bounded_side_of_ccw_circle_C2.h index 8e634efa..f6355c6f 100644 --- a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Bounded_side_of_ccw_circle_C2.h +++ b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Bounded_side_of_ccw_circle_C2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Compare_weight_2.h b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Compare_weight_2.h index 6091ee9f..4d29f4bb 100644 --- a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Compare_weight_2.h +++ b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Compare_weight_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Compare_x_2.h b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Compare_x_2.h index 61cc2a7a..d35fd393 100644 --- a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Compare_x_2.h +++ b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Compare_x_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Compare_y_2.h b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Compare_y_2.h index 559f3dd5..686a0237 100644 --- a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Compare_y_2.h +++ b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Compare_y_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Constructions_C2.h b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Constructions_C2.h index 16d00523..1076426a 100644 --- a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Constructions_C2.h +++ b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Constructions_C2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Constructions_ftC2.h b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Constructions_ftC2.h index 4a7d9d5e..bc59b522 100644 --- a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Constructions_ftC2.h +++ b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Constructions_ftC2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Constructions_rtH2.h b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Constructions_rtH2.h index f6007dd7..c55f20d2 100644 --- a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Constructions_rtH2.h +++ b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Constructions_rtH2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Finite_edge_test8_C2.h b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Finite_edge_test8_C2.h index 12574e3d..3bf8b07d 100644 --- a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Finite_edge_test8_C2.h +++ b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Finite_edge_test8_C2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Finite_edge_test_C2.h b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Finite_edge_test_C2.h index c6c0f7c2..06189fa9 100644 --- a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Finite_edge_test_C2.h +++ b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Finite_edge_test_C2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Incircle8_C2.h b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Incircle8_C2.h index 949960f9..3bd0ddfd 100644 --- a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Incircle8_C2.h +++ b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Incircle8_C2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Incircle_C2.h b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Incircle_C2.h index 89d002ca..dc78dfc9 100644 --- a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Incircle_C2.h +++ b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Incircle_C2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Infinite_edge_test_C2.h b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Infinite_edge_test_C2.h index 90e97b3a..13ec5945 100644 --- a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Infinite_edge_test_C2.h +++ b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Infinite_edge_test_C2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Is_degenerate_edge_C2.h b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Is_degenerate_edge_C2.h index 403f341c..9a1e8f8f 100644 --- a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Is_degenerate_edge_C2.h +++ b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Is_degenerate_edge_C2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Is_hidden_C2.h b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Is_hidden_C2.h index b21e1e48..9a4f51d5 100644 --- a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Is_hidden_C2.h +++ b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Is_hidden_C2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Kernel_wrapper_2.h b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Kernel_wrapper_2.h index e8c907eb..180e0203 100644 --- a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Kernel_wrapper_2.h +++ b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Kernel_wrapper_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Orientation8_C2.h b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Orientation8_C2.h index fa8509ad..6615a504 100644 --- a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Orientation8_C2.h +++ b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Orientation8_C2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Orientation_2.h b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Orientation_2.h index 039a6ab6..ea8a1ca1 100644 --- a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Orientation_2.h +++ b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Orientation_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Oriented_side_of_bisector_C2.h b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Oriented_side_of_bisector_C2.h index 5b1a85fb..fea72efa 100644 --- a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Oriented_side_of_bisector_C2.h +++ b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Oriented_side_of_bisector_C2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Predicate_constructions_C2.h b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Predicate_constructions_C2.h index 464d4a1a..49b4e1e7 100644 --- a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Predicate_constructions_C2.h +++ b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Predicate_constructions_C2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Predicates_C2.h b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Predicates_C2.h index 90db84be..33aa627f 100644 --- a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Predicates_C2.h +++ b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Predicates_C2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Traits_wrapper_2.h b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Traits_wrapper_2.h index 14e85fdf..16cb87b5 100644 --- a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Traits_wrapper_2.h +++ b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/Traits_wrapper_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/basic.h b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/basic.h index d805f7e0..babe9ee9 100644 --- a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/basic.h +++ b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/basic.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/comparator_profiler.h b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/comparator_profiler.h index 784deaf3..4b725f8b 100644 --- a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/comparator_profiler.h +++ b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/comparator_profiler.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/compare_quadratic.h b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/compare_quadratic.h index 1be3d912..bfe5fde7 100644 --- a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/compare_quadratic.h +++ b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/compare_quadratic.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/predicate_profiler.h b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/predicate_profiler.h index 939b91ec..821a2ac8 100644 --- a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/predicate_profiler.h +++ b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/predicate_profiler.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/uncertain/Uncertain_is_hidden_C2.h b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/uncertain/Uncertain_is_hidden_C2.h index 511725ac..209170e2 100644 --- a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/uncertain/Uncertain_is_hidden_C2.h +++ b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/uncertain/Uncertain_is_hidden_C2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/uncertain/Uncertain_oriented_side_of_bisector_C2.h b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/uncertain/Uncertain_oriented_side_of_bisector_C2.h index 31a22c34..fee16312 100644 --- a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/uncertain/Uncertain_oriented_side_of_bisector_C2.h +++ b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/uncertain/Uncertain_oriented_side_of_bisector_C2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/uncertain/Uncertain_vertex_conflict_2.h b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/uncertain/Uncertain_vertex_conflict_2.h index 84c15816..aa13ad3d 100644 --- a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/uncertain/Uncertain_vertex_conflict_2.h +++ b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/uncertain/Uncertain_vertex_conflict_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/uncertain/uncertain_functions_on_signs.h b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/uncertain/uncertain_functions_on_signs.h index 1d5ebf88..1bd49159 100644 --- a/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/uncertain/uncertain_functions_on_signs.h +++ b/thirdparty/CGAL/include/CGAL/Apollonius_graph_2/uncertain/uncertain_functions_on_signs.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Apollonius_graph_adaptation_policies_2.h b/thirdparty/CGAL/include/CGAL/Apollonius_graph_adaptation_policies_2.h index 0bd3b306..c3160f8d 100644 --- a/thirdparty/CGAL/include/CGAL/Apollonius_graph_adaptation_policies_2.h +++ b/thirdparty/CGAL/include/CGAL/Apollonius_graph_adaptation_policies_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Apollonius_graph_adaptation_traits_2.h b/thirdparty/CGAL/include/CGAL/Apollonius_graph_adaptation_traits_2.h index 1c958de3..0bcd2756 100644 --- a/thirdparty/CGAL/include/CGAL/Apollonius_graph_adaptation_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Apollonius_graph_adaptation_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Apollonius_graph_data_structure_2.h b/thirdparty/CGAL/include/CGAL/Apollonius_graph_data_structure_2.h index aefe5877..2e3b5e14 100644 --- a/thirdparty/CGAL/include/CGAL/Apollonius_graph_data_structure_2.h +++ b/thirdparty/CGAL/include/CGAL/Apollonius_graph_data_structure_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Apollonius_graph_filtered_traits_2.h b/thirdparty/CGAL/include/CGAL/Apollonius_graph_filtered_traits_2.h index a73e5aed..198c2d21 100644 --- a/thirdparty/CGAL/include/CGAL/Apollonius_graph_filtered_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Apollonius_graph_filtered_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Apollonius_graph_hierarchy_2.h b/thirdparty/CGAL/include/CGAL/Apollonius_graph_hierarchy_2.h index 6c7816a1..2ad51903 100644 --- a/thirdparty/CGAL/include/CGAL/Apollonius_graph_hierarchy_2.h +++ b/thirdparty/CGAL/include/CGAL/Apollonius_graph_hierarchy_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Apollonius_graph_hierarchy_vertex_base_2.h b/thirdparty/CGAL/include/CGAL/Apollonius_graph_hierarchy_vertex_base_2.h index da022587..84617836 100644 --- a/thirdparty/CGAL/include/CGAL/Apollonius_graph_hierarchy_vertex_base_2.h +++ b/thirdparty/CGAL/include/CGAL/Apollonius_graph_hierarchy_vertex_base_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Apollonius_graph_traits_2.h b/thirdparty/CGAL/include/CGAL/Apollonius_graph_traits_2.h index c660dd9d..48dd9525 100644 --- a/thirdparty/CGAL/include/CGAL/Apollonius_graph_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Apollonius_graph_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Apollonius_graph_vertex_base_2.h b/thirdparty/CGAL/include/CGAL/Apollonius_graph_vertex_base_2.h index 382ac76c..f12c81c2 100644 --- a/thirdparty/CGAL/include/CGAL/Apollonius_graph_vertex_base_2.h +++ b/thirdparty/CGAL/include/CGAL/Apollonius_graph_vertex_base_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Apollonius_site_2.h b/thirdparty/CGAL/include/CGAL/Apollonius_site_2.h index f4152f0e..5c6b9b27 100644 --- a/thirdparty/CGAL/include/CGAL/Apollonius_site_2.h +++ b/thirdparty/CGAL/include/CGAL/Apollonius_site_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Approximate_min_ellipsoid_d.h b/thirdparty/CGAL/include/CGAL/Approximate_min_ellipsoid_d.h index 9de37931..f1994474 100644 --- a/thirdparty/CGAL/include/CGAL/Approximate_min_ellipsoid_d.h +++ b/thirdparty/CGAL/include/CGAL/Approximate_min_ellipsoid_d.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace CGAL { 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 @@ namespace CGAL { // 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 --git a/thirdparty/CGAL/include/CGAL/Approximate_min_ellipsoid_d/Approximate_min_ellipsoid_d_configure.h b/thirdparty/CGAL/include/CGAL/Approximate_min_ellipsoid_d/Approximate_min_ellipsoid_d_configure.h index 1a14d068..e49d75bf 100644 --- a/thirdparty/CGAL/include/CGAL/Approximate_min_ellipsoid_d/Approximate_min_ellipsoid_d_configure.h +++ b/thirdparty/CGAL/include/CGAL/Approximate_min_ellipsoid_d/Approximate_min_ellipsoid_d_configure.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Approximate_min_ellipsoid_d/Approximate_min_ellipsoid_d_debug.h b/thirdparty/CGAL/include/CGAL/Approximate_min_ellipsoid_d/Approximate_min_ellipsoid_d_debug.h index fd69ea74..f4c9b7dd 100644 --- a/thirdparty/CGAL/include/CGAL/Approximate_min_ellipsoid_d/Approximate_min_ellipsoid_d_debug.h +++ b/thirdparty/CGAL/include/CGAL/Approximate_min_ellipsoid_d/Approximate_min_ellipsoid_d_debug.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Approximate_min_ellipsoid_d/Approximate_min_ellipsoid_d_impl.h b/thirdparty/CGAL/include/CGAL/Approximate_min_ellipsoid_d/Approximate_min_ellipsoid_d_impl.h index 363ec044..559b936b 100644 --- a/thirdparty/CGAL/include/CGAL/Approximate_min_ellipsoid_d/Approximate_min_ellipsoid_d_impl.h +++ b/thirdparty/CGAL/include/CGAL/Approximate_min_ellipsoid_d/Approximate_min_ellipsoid_d_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Approximate_min_ellipsoid_d/Khachiyan_approximation.h b/thirdparty/CGAL/include/CGAL/Approximate_min_ellipsoid_d/Khachiyan_approximation.h index 8dc5e162..90eebcdf 100644 --- a/thirdparty/CGAL/include/CGAL/Approximate_min_ellipsoid_d/Khachiyan_approximation.h +++ b/thirdparty/CGAL/include/CGAL/Approximate_min_ellipsoid_d/Khachiyan_approximation.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Approximate_min_ellipsoid_d/Khachiyan_approximation_impl.h b/thirdparty/CGAL/include/CGAL/Approximate_min_ellipsoid_d/Khachiyan_approximation_impl.h index f9ca0b4f..edc48ed8 100644 --- a/thirdparty/CGAL/include/CGAL/Approximate_min_ellipsoid_d/Khachiyan_approximation_impl.h +++ b/thirdparty/CGAL/include/CGAL/Approximate_min_ellipsoid_d/Khachiyan_approximation_impl.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace CGAL { // 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 --git a/thirdparty/CGAL/include/CGAL/Approximate_min_ellipsoid_d_traits_2.h b/thirdparty/CGAL/include/CGAL/Approximate_min_ellipsoid_d_traits_2.h index 78b33869..5973ed30 100644 --- a/thirdparty/CGAL/include/CGAL/Approximate_min_ellipsoid_d_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Approximate_min_ellipsoid_d_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Approximate_min_ellipsoid_d_traits_3.h b/thirdparty/CGAL/include/CGAL/Approximate_min_ellipsoid_d_traits_3.h index b57f1093..5cf2f2cf 100644 --- a/thirdparty/CGAL/include/CGAL/Approximate_min_ellipsoid_d_traits_3.h +++ b/thirdparty/CGAL/include/CGAL/Approximate_min_ellipsoid_d_traits_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Approximate_min_ellipsoid_d_traits_d.h b/thirdparty/CGAL/include/CGAL/Approximate_min_ellipsoid_d_traits_d.h index e6d87fb2..653b2794 100644 --- a/thirdparty/CGAL/include/CGAL/Approximate_min_ellipsoid_d_traits_d.h +++ b/thirdparty/CGAL/include/CGAL/Approximate_min_ellipsoid_d_traits_d.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arithmetic_kernel.h b/thirdparty/CGAL/include/CGAL/Arithmetic_kernel.h index 4d244e3e..720acf89 100644 --- a/thirdparty/CGAL/include/CGAL/Arithmetic_kernel.h +++ b/thirdparty/CGAL/include/CGAL/Arithmetic_kernel.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arithmetic_kernel/Arithmetic_kernel_base.h b/thirdparty/CGAL/include/CGAL/Arithmetic_kernel/Arithmetic_kernel_base.h index 11e574af..f5b669c8 100644 --- a/thirdparty/CGAL/include/CGAL/Arithmetic_kernel/Arithmetic_kernel_base.h +++ b/thirdparty/CGAL/include/CGAL/Arithmetic_kernel/Arithmetic_kernel_base.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_Bezier_curve_traits_2.h b/thirdparty/CGAL/include/CGAL/Arr_Bezier_curve_traits_2.h index 627da86d..a106f5e0 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_Bezier_curve_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Arr_Bezier_curve_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_accessor.h b/thirdparty/CGAL/include/CGAL/Arr_accessor.h index eb2906cb..dd1889b8 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_accessor.h +++ b/thirdparty/CGAL/include/CGAL/Arr_accessor.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_algebraic_segment_traits_2.h b/thirdparty/CGAL/include/CGAL/Arr_algebraic_segment_traits_2.h index 1b8dc5c3..a8bd24a9 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_algebraic_segment_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Arr_algebraic_segment_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_batched_point_location.h b/thirdparty/CGAL/include/CGAL/Arr_batched_point_location.h index 3db560f9..3d390eeb 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_batched_point_location.h +++ b/thirdparty/CGAL/include/CGAL/Arr_batched_point_location.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_bounded_planar_topology_traits_2.h b/thirdparty/CGAL/include/CGAL/Arr_bounded_planar_topology_traits_2.h index b35756ff..64fbb36e 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_bounded_planar_topology_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Arr_bounded_planar_topology_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_circle_segment_traits_2.h b/thirdparty/CGAL/include/CGAL/Arr_circle_segment_traits_2.h index 1b4d18b4..e55f54ec 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_circle_segment_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Arr_circle_segment_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_circular_arc_traits_2.h b/thirdparty/CGAL/include/CGAL/Arr_circular_arc_traits_2.h index 4360607f..01191db9 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_circular_arc_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Arr_circular_arc_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_circular_line_arc_traits_2.h b/thirdparty/CGAL/include/CGAL/Arr_circular_line_arc_traits_2.h index 0ce0d72a..32721907 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_circular_line_arc_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Arr_circular_line_arc_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_conic_traits_2.h b/thirdparty/CGAL/include/CGAL/Arr_conic_traits_2.h index 67c0d8bb..4880e699 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_conic_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Arr_conic_traits_2.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Arr_conic_traits_2 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 --git a/thirdparty/CGAL/include/CGAL/Arr_consolidated_curve_data_traits_2.h b/thirdparty/CGAL/include/CGAL/Arr_consolidated_curve_data_traits_2.h index df5ebb65..ba86bf71 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_consolidated_curve_data_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Arr_consolidated_curve_data_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_counting_traits_2.h b/thirdparty/CGAL/include/CGAL/Arr_counting_traits_2.h index a1fbf7a3..8a29a832 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_counting_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Arr_counting_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_curve_data_traits_2.h b/thirdparty/CGAL/include/CGAL/Arr_curve_data_traits_2.h index 20f5cb1a..1a2255ed 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_curve_data_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Arr_curve_data_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_dcel_base.h b/thirdparty/CGAL/include/CGAL/Arr_dcel_base.h index d24f59c4..ce1c77f2 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_dcel_base.h +++ b/thirdparty/CGAL/include/CGAL/Arr_dcel_base.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ public In_place_list_base > { * The arrangement DCEL class. */ template > + class Allocator = CGAL_ALLOCATOR(int) > class Arr_dcel_base { public: // Define the vertex, halfedge and face types. diff --git a/thirdparty/CGAL/include/CGAL/Arr_default_dcel.h b/thirdparty/CGAL/include/CGAL/Arr_default_dcel.h index 0dfbb7da..6367e3e9 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_default_dcel.h +++ b/thirdparty/CGAL/include/CGAL/Arr_default_dcel.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_default_overlay_traits.h b/thirdparty/CGAL/include/CGAL/Arr_default_overlay_traits.h index 9e5f325c..ec159210 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_default_overlay_traits.h +++ b/thirdparty/CGAL/include/CGAL/Arr_default_overlay_traits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_directional_non_caching_segment_basic_traits_2.h b/thirdparty/CGAL/include/CGAL/Arr_directional_non_caching_segment_basic_traits_2.h index 231cb6d9..43ffdf29 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_directional_non_caching_segment_basic_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Arr_directional_non_caching_segment_basic_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_enums.h b/thirdparty/CGAL/include/CGAL/Arr_enums.h index 8c8d25d7..1c896d44 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_enums.h +++ b/thirdparty/CGAL/include/CGAL/Arr_enums.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_extended_dcel.h b/thirdparty/CGAL/include/CGAL/Arr_extended_dcel.h index 4ef2b196..2d4b48c5 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_extended_dcel.h +++ b/thirdparty/CGAL/include/CGAL/Arr_extended_dcel.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_face_index_map.h b/thirdparty/CGAL/include/CGAL/Arr_face_index_map.h index 4384b016..d6bb2852 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_face_index_map.h +++ b/thirdparty/CGAL/include/CGAL/Arr_face_index_map.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_face_map.h b/thirdparty/CGAL/include/CGAL/Arr_face_map.h index 83a33cd8..b276befc 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_face_map.h +++ b/thirdparty/CGAL/include/CGAL/Arr_face_map.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_geodesic_arc_on_sphere_partition_traits_2.h b/thirdparty/CGAL/include/CGAL/Arr_geodesic_arc_on_sphere_partition_traits_2.h index a738e79d..fe3b06f5 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_geodesic_arc_on_sphere_partition_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Arr_geodesic_arc_on_sphere_partition_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Arr_geodesic_arc_on_sphere_partition_traits_2 // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_geodesic_arc_on_sphere_traits_2.h b/thirdparty/CGAL/include/CGAL/Arr_geodesic_arc_on_sphere_traits_2.h index cfc83a8f..b3c1f2cc 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_geodesic_arc_on_sphere_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Arr_geodesic_arc_on_sphere_traits_2.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Arr_geodesic_arc_on_sphere_traits_2 : public Kernel_ { */ 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 @@ class Arr_geodesic_arc_on_sphere_traits_2 : public Kernel_ { // 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 @@ class Arr_geodesic_arc_on_sphere_traits_2 : public Kernel_ { ((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 @@ class Arr_geodesic_arc_on_sphere_traits_2 : public Kernel_ { ((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 @@ class Arr_geodesic_arc_on_sphere_traits_2 : public Kernel_ { ((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 @@ class Arr_geodesic_arc_on_sphere_traits_2 : public Kernel_ { 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 @@ class Arr_geodesic_arc_on_sphere_traits_2 : public Kernel_ { // 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 @@ class Arr_geodesic_arc_on_sphere_traits_2 : public Kernel_ { ((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 @@ class Arr_geodesic_arc_on_sphere_traits_2 : public Kernel_ { ((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 @@ class Arr_geodesic_arc_on_sphere_traits_2 : public Kernel_ { 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 @@ class Arr_geodesic_arc_on_sphere_traits_2 : public Kernel_ { * 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 @@ class Arr_geodesic_arc_on_sphere_traits_2 : public Kernel_ { * \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; } - // 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); + if (CGAL::sign(n2.dz()) == POSITIVE) { + // neg pos + return (xsign == POSITIVE) ? LARGER : SMALLER; + } + // neg neg + return (xsign == POSITIVE) ? SMALLER : LARGER; } }; @@ -2317,31 +2352,22 @@ class Arr_geodesic_arc_on_sphere_traits_2 : public Kernel_ { 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 @@ class Arr_geodesic_arc_on_sphere_traits_2 : public Kernel_ { 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 @@ class Arr_geodesic_arc_on_sphere_traits_2 : public Kernel_ { 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 @@ class Arr_geodesic_arc_on_sphere_traits_2 : public Kernel_ { 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 @@ class Arr_x_monotone_geodesic_arc_on_sphere_3 { 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 @@ class Arr_geodesic_arc_on_sphere_3 : 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 --git a/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Arr_plane_3.h b/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Arr_plane_3.h index 6de6110e..abdc71bd 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Arr_plane_3.h +++ b/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Arr_plane_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Bezier_bounding_rational_traits.h b/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Bezier_bounding_rational_traits.h index 59d564bc..e1bb0f7f 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Bezier_bounding_rational_traits.h +++ b/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Bezier_bounding_rational_traits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Bezier_cache.h b/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Bezier_cache.h index e5a71af3..aa780589 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Bezier_cache.h +++ b/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Bezier_cache.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Bezier_curve_2.h b/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Bezier_curve_2.h index d6310445..d05c5190 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Bezier_curve_2.h +++ b/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Bezier_curve_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Bezier_point_2.h b/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Bezier_point_2.h index 7724e364..d8cf155b 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Bezier_point_2.h +++ b/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Bezier_point_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Bezier_x_monotone_2.h b/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Bezier_x_monotone_2.h index 785f6885..1d5434e1 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Bezier_x_monotone_2.h +++ b/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Bezier_x_monotone_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Circle_segment_2.h b/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Circle_segment_2.h index 1359af74..e80cc055 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Circle_segment_2.h +++ b/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Circle_segment_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Conic_arc_2.h b/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Conic_arc_2.h index a8b68cae..8acd6cad 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Conic_arc_2.h +++ b/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Conic_arc_2.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class _Conic_arc_2 _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 @@ class _Conic_arc_2 // 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 --git a/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Conic_intersections_2.h b/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Conic_intersections_2.h index 4827ae4d..64a30e61 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Conic_intersections_2.h +++ b/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Conic_intersections_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Conic_point_2.h b/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Conic_point_2.h index 4a8d4e55..614f8d79 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Conic_point_2.h +++ b/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Conic_point_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Conic_x_monotone_arc_2.h b/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Conic_x_monotone_arc_2.h index 751dad61..f47a5bb6 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Conic_x_monotone_arc_2.h +++ b/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Conic_x_monotone_arc_2.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class _Conic_x_monotone_arc_2 : private Conic_arc_ { _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 @@ class _Conic_x_monotone_arc_2 : private Conic_arc_ { 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 @@ class _Conic_x_monotone_arc_2 : private Conic_arc_ { // 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 @@ class _Conic_x_monotone_arc_2 : private Conic_arc_ { 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 @@ class _Conic_x_monotone_arc_2 : private Conic_arc_ { // 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 --git a/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Consolidated_curve_data_aux.h b/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Consolidated_curve_data_aux.h index a45469d4..94c4c457 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Consolidated_curve_data_aux.h +++ b/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Consolidated_curve_data_aux.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Curve_data_aux.h b/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Curve_data_aux.h index b16446f4..0f7bb098 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Curve_data_aux.h +++ b/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Curve_data_aux.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/IO/Polycurve_2_iostream.h b/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/IO/Polycurve_2_iostream.h index afd5d64f..1f9fa3a8 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/IO/Polycurve_2_iostream.h +++ b/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/IO/Polycurve_2_iostream.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/One_root_number.h b/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/One_root_number.h index 2d803fba..892ab4a4 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/One_root_number.h +++ b/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/One_root_number.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Polycurve_2.h b/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Polycurve_2.h index ed769b72..0151b427 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Polycurve_2.h +++ b/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Polycurve_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Polyline_2.h b/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Polyline_2.h index bc1a3995..07d98f7a 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Polyline_2.h +++ b/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Polyline_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Rational_arc_2.h b/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Rational_arc_2.h index 60dc2451..4ca3fa3b 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Rational_arc_2.h +++ b/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Rational_arc_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Segment_assertions.h b/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Segment_assertions.h index 0a4fc2c6..73628e57 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Segment_assertions.h +++ b/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/Segment_assertions.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/de_Casteljau_2.h b/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/de_Casteljau_2.h index 82934cdd..e2908ca5 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/de_Casteljau_2.h +++ b/thirdparty/CGAL/include/CGAL/Arr_geometry_traits/de_Casteljau_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_landmarks_point_location.h b/thirdparty/CGAL/include/CGAL/Arr_landmarks_point_location.h index f64f05a6..193a5bac 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_landmarks_point_location.h +++ b/thirdparty/CGAL/include/CGAL/Arr_landmarks_point_location.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_line_arc_traits_2.h b/thirdparty/CGAL/include/CGAL/Arr_line_arc_traits_2.h index d05a742a..d14f58fb 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_line_arc_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Arr_line_arc_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_linear_traits_2.h b/thirdparty/CGAL/include/CGAL/Arr_linear_traits_2.h index a276a028..09703a4a 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_linear_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Arr_linear_traits_2.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Arr_linear_traits_2 : public Kernel_ { /*! 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 @@ class Arr_linear_traits_2 : public Kernel_ { 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 --git a/thirdparty/CGAL/include/CGAL/Arr_naive_point_location.h b/thirdparty/CGAL/include/CGAL/Arr_naive_point_location.h index cfb1533f..b077cdaa 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_naive_point_location.h +++ b/thirdparty/CGAL/include/CGAL/Arr_naive_point_location.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_non_caching_segment_basic_traits_2.h b/thirdparty/CGAL/include/CGAL/Arr_non_caching_segment_basic_traits_2.h index e6006f8c..8f9d5f97 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_non_caching_segment_basic_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Arr_non_caching_segment_basic_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_non_caching_segment_traits_2.h b/thirdparty/CGAL/include/CGAL/Arr_non_caching_segment_traits_2.h index c3a7d626..e06d068a 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_non_caching_segment_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Arr_non_caching_segment_traits_2.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Arr_non_caching_segment_traits_2 : 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 --git a/thirdparty/CGAL/include/CGAL/Arr_observer.h b/thirdparty/CGAL/include/CGAL/Arr_observer.h index 87ba27ff..6fea3c5a 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_observer.h +++ b/thirdparty/CGAL/include/CGAL/Arr_observer.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_overlay.h b/thirdparty/CGAL/include/CGAL/Arr_overlay.h index 85eaae08..efb4bb3e 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_overlay.h +++ b/thirdparty/CGAL/include/CGAL/Arr_overlay.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_overlay_2.h b/thirdparty/CGAL/include/CGAL/Arr_overlay_2.h index c6156293..fbc15868 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_overlay_2.h +++ b/thirdparty/CGAL/include/CGAL/Arr_overlay_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_batched_point_location_traits_2.h b/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_batched_point_location_traits_2.h index 059512a2..aaaa6a6b 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_batched_point_location_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_batched_point_location_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_landmarks_pl_impl.h b/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_landmarks_pl_impl.h index 6a8338fd..ae2efb98 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_landmarks_pl_impl.h +++ b/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_landmarks_pl_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_lm_generator_base.h b/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_lm_generator_base.h index 5878b021..8fa5730b 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_lm_generator_base.h +++ b/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_lm_generator_base.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_lm_grid_generator.h b/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_lm_grid_generator.h index 326f8f8e..1f572108 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_lm_grid_generator.h +++ b/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_lm_grid_generator.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_lm_halton_generator.h b/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_lm_halton_generator.h index ca6e3de9..96b61057 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_lm_halton_generator.h +++ b/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_lm_halton_generator.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_lm_middle_edges_generator.h b/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_lm_middle_edges_generator.h index ef92e878..1dced272 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_lm_middle_edges_generator.h +++ b/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_lm_middle_edges_generator.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_lm_nearest_neighbor.h b/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_lm_nearest_neighbor.h index fa4a7452..60115cff 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_lm_nearest_neighbor.h +++ b/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_lm_nearest_neighbor.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_lm_random_generator.h b/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_lm_random_generator.h index 016904a0..50f4e9b5 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_lm_random_generator.h +++ b/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_lm_random_generator.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_lm_specified_points_generator.h b/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_lm_specified_points_generator.h index 5134ed89..ec542850 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_lm_specified_points_generator.h +++ b/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_lm_specified_points_generator.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_lm_vertices_generator.h b/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_lm_vertices_generator.h index a1007eed..2c1b00b7 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_lm_vertices_generator.h +++ b/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_lm_vertices_generator.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_naive_point_location_impl.h b/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_naive_point_location_impl.h index 74b96707..8040f161 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_naive_point_location_impl.h +++ b/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_naive_point_location_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_simple_point_location_impl.h b/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_simple_point_location_impl.h index 05d89293..6931aef8 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_simple_point_location_impl.h +++ b/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_simple_point_location_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_trapezoid_ric_pl_impl.h b/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_trapezoid_ric_pl_impl.h index 9857abb5..a1ef407c 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_trapezoid_ric_pl_impl.h +++ b/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_trapezoid_ric_pl_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_triangulation_pl_functions.h b/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_triangulation_pl_functions.h index 875586ce..b53571b8 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_triangulation_pl_functions.h +++ b/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_triangulation_pl_functions.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_triangulation_pl_impl.h b/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_triangulation_pl_impl.h index 7c607ae2..ec876ec0 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_triangulation_pl_impl.h +++ b/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_triangulation_pl_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_walk_along_line_pl_impl.h b/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_walk_along_line_pl_impl.h index 91fdfe20..0623edbe 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_walk_along_line_pl_impl.h +++ b/thirdparty/CGAL/include/CGAL/Arr_point_location/Arr_walk_along_line_pl_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_point_location/Td_X_trapezoid.h b/thirdparty/CGAL/include/CGAL/Arr_point_location/Td_X_trapezoid.h index 7842f7ce..634429e6 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_point_location/Td_X_trapezoid.h +++ b/thirdparty/CGAL/include/CGAL/Arr_point_location/Td_X_trapezoid.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_point_location/Td_active_edge.h b/thirdparty/CGAL/include/CGAL/Arr_point_location/Td_active_edge.h index 45ad418c..de91cbbe 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_point_location/Td_active_edge.h +++ b/thirdparty/CGAL/include/CGAL/Arr_point_location/Td_active_edge.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_point_location/Td_active_fictitious_vertex.h b/thirdparty/CGAL/include/CGAL/Arr_point_location/Td_active_fictitious_vertex.h index 5bbaf133..abd55a43 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_point_location/Td_active_fictitious_vertex.h +++ b/thirdparty/CGAL/include/CGAL/Arr_point_location/Td_active_fictitious_vertex.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_point_location/Td_active_trapezoid.h b/thirdparty/CGAL/include/CGAL/Arr_point_location/Td_active_trapezoid.h index 9e076ac6..ac03ead9 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_point_location/Td_active_trapezoid.h +++ b/thirdparty/CGAL/include/CGAL/Arr_point_location/Td_active_trapezoid.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_point_location/Td_active_vertex.h b/thirdparty/CGAL/include/CGAL/Arr_point_location/Td_active_vertex.h index 06b7c150..cd69d1ac 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_point_location/Td_active_vertex.h +++ b/thirdparty/CGAL/include/CGAL/Arr_point_location/Td_active_vertex.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_point_location/Td_dag.h b/thirdparty/CGAL/include/CGAL/Arr_point_location/Td_dag.h index 74a93082..47a29a1f 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_point_location/Td_dag.h +++ b/thirdparty/CGAL/include/CGAL/Arr_point_location/Td_dag.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_point_location/Td_dag_node.h b/thirdparty/CGAL/include/CGAL/Arr_point_location/Td_dag_node.h index c7f10ea5..6a1461f6 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_point_location/Td_dag_node.h +++ b/thirdparty/CGAL/include/CGAL/Arr_point_location/Td_dag_node.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_point_location/Td_inactive_edge.h b/thirdparty/CGAL/include/CGAL/Arr_point_location/Td_inactive_edge.h index 4c74f90a..fe7dc759 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_point_location/Td_inactive_edge.h +++ b/thirdparty/CGAL/include/CGAL/Arr_point_location/Td_inactive_edge.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_point_location/Td_inactive_fictitious_vertex.h b/thirdparty/CGAL/include/CGAL/Arr_point_location/Td_inactive_fictitious_vertex.h index 15520c80..ad601da5 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_point_location/Td_inactive_fictitious_vertex.h +++ b/thirdparty/CGAL/include/CGAL/Arr_point_location/Td_inactive_fictitious_vertex.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_point_location/Td_inactive_trapezoid.h b/thirdparty/CGAL/include/CGAL/Arr_point_location/Td_inactive_trapezoid.h index 14d14f30..4fb0f1b3 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_point_location/Td_inactive_trapezoid.h +++ b/thirdparty/CGAL/include/CGAL/Arr_point_location/Td_inactive_trapezoid.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_point_location/Td_inactive_vertex.h b/thirdparty/CGAL/include/CGAL/Arr_point_location/Td_inactive_vertex.h index 4332df5b..c6aec7d7 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_point_location/Td_inactive_vertex.h +++ b/thirdparty/CGAL/include/CGAL/Arr_point_location/Td_inactive_vertex.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_point_location/Td_ninetuple.h b/thirdparty/CGAL/include/CGAL/Arr_point_location/Td_ninetuple.h index e52b41e2..39332e57 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_point_location/Td_ninetuple.h +++ b/thirdparty/CGAL/include/CGAL/Arr_point_location/Td_ninetuple.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_point_location/Td_predicates.h b/thirdparty/CGAL/include/CGAL/Arr_point_location/Td_predicates.h index b416728e..ae5e4d38 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_point_location/Td_predicates.h +++ b/thirdparty/CGAL/include/CGAL/Arr_point_location/Td_predicates.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_point_location/Td_traits.h b/thirdparty/CGAL/include/CGAL/Arr_point_location/Td_traits.h index 4a3cb10d..ff42b7e0 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_point_location/Td_traits.h +++ b/thirdparty/CGAL/include/CGAL/Arr_point_location/Td_traits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_point_location/Trapezoidal_decomposition_2.h b/thirdparty/CGAL/include/CGAL/Arr_point_location/Trapezoidal_decomposition_2.h index 6971367e..4ee48560 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_point_location/Trapezoidal_decomposition_2.h +++ b/thirdparty/CGAL/include/CGAL/Arr_point_location/Trapezoidal_decomposition_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_point_location/Trapezoidal_decomposition_2_impl.h b/thirdparty/CGAL/include/CGAL/Arr_point_location/Trapezoidal_decomposition_2_impl.h index ac1a9255..ab2e179d 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_point_location/Trapezoidal_decomposition_2_impl.h +++ b/thirdparty/CGAL/include/CGAL/Arr_point_location/Trapezoidal_decomposition_2_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_point_location/Trapezoidal_decomposition_2_iostream.h b/thirdparty/CGAL/include/CGAL/Arr_point_location/Trapezoidal_decomposition_2_iostream.h index 8c572b87..3b40b3a7 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_point_location/Trapezoidal_decomposition_2_iostream.h +++ b/thirdparty/CGAL/include/CGAL/Arr_point_location/Trapezoidal_decomposition_2_iostream.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_point_location/Trapezoidal_decomposition_2_misc.h b/thirdparty/CGAL/include/CGAL/Arr_point_location/Trapezoidal_decomposition_2_misc.h index b0df389c..5881205a 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_point_location/Trapezoidal_decomposition_2_misc.h +++ b/thirdparty/CGAL/include/CGAL/Arr_point_location/Trapezoidal_decomposition_2_misc.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_point_location_result.h b/thirdparty/CGAL/include/CGAL/Arr_point_location_result.h index 29ab05ec..5f5e3eab 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_point_location_result.h +++ b/thirdparty/CGAL/include/CGAL/Arr_point_location_result.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_polycurve_basic_traits_2.h b/thirdparty/CGAL/include/CGAL/Arr_polycurve_basic_traits_2.h index 0f8adf5f..f513568f 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_polycurve_basic_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Arr_polycurve_basic_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_polycurve_traits_2.h b/thirdparty/CGAL/include/CGAL/Arr_polycurve_traits_2.h index de46fc0f..ebd006ff 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_polycurve_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Arr_polycurve_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_polyline_traits_2.h b/thirdparty/CGAL/include/CGAL/Arr_polyline_traits_2.h index ac9c7489..81b5f72f 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_polyline_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Arr_polyline_traits_2.h @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Arr_polyline_traits_2 : public Arr_polycurve_traits_2 { // { 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 @@ class Arr_polyline_traits_2 : public Arr_polycurve_traits_2 { 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 @@ class Arr_polyline_traits_2 : public Arr_polycurve_traits_2 { * 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 @@ class Arr_polyline_traits_2 : public Arr_polycurve_traits_2 { // { 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 @@ class Arr_polyline_traits_2 : public Arr_polycurve_traits_2 { 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 @@ class Arr_polyline_traits_2 : public Arr_polycurve_traits_2 { /* 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 @@ class Arr_polyline_traits_2 : public Arr_polycurve_traits_2 { 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 --git a/thirdparty/CGAL/include/CGAL/Arr_rat_arc/Algebraic_point_2.h b/thirdparty/CGAL/include/CGAL/Arr_rat_arc/Algebraic_point_2.h index 22701a07..3fbe4ab0 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_rat_arc/Algebraic_point_2.h +++ b/thirdparty/CGAL/include/CGAL/Arr_rat_arc/Algebraic_point_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_rat_arc/Base_rational_arc_ds_1.h b/thirdparty/CGAL/include/CGAL/Arr_rat_arc/Base_rational_arc_ds_1.h index 38d05faa..db7b97e5 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_rat_arc/Base_rational_arc_ds_1.h +++ b/thirdparty/CGAL/include/CGAL/Arr_rat_arc/Base_rational_arc_ds_1.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_rat_arc/Cache.h b/thirdparty/CGAL/include/CGAL/Arr_rat_arc/Cache.h index d08c64c5..e30ee791 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_rat_arc/Cache.h +++ b/thirdparty/CGAL/include/CGAL/Arr_rat_arc/Cache.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_rat_arc/Rational_arc_d_1.h b/thirdparty/CGAL/include/CGAL/Arr_rat_arc/Rational_arc_d_1.h index 0a3577e8..d178ae4a 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_rat_arc/Rational_arc_d_1.h +++ b/thirdparty/CGAL/include/CGAL/Arr_rat_arc/Rational_arc_d_1.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_rat_arc/Rational_function.h b/thirdparty/CGAL/include/CGAL/Arr_rat_arc/Rational_function.h index 16d3c97b..f02d78ef 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_rat_arc/Rational_function.h +++ b/thirdparty/CGAL/include/CGAL/Arr_rat_arc/Rational_function.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_rat_arc/Rational_function_canonicalized_pair.h b/thirdparty/CGAL/include/CGAL/Arr_rat_arc/Rational_function_canonicalized_pair.h index 19382c5e..6b72145f 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_rat_arc/Rational_function_canonicalized_pair.h +++ b/thirdparty/CGAL/include/CGAL/Arr_rat_arc/Rational_function_canonicalized_pair.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_rat_arc/Rational_function_ordered_pair.h b/thirdparty/CGAL/include/CGAL/Arr_rat_arc/Rational_function_ordered_pair.h index 3a61ae59..2d19e90e 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_rat_arc/Rational_function_ordered_pair.h +++ b/thirdparty/CGAL/include/CGAL/Arr_rat_arc/Rational_function_ordered_pair.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_rat_arc/Rational_function_pair.h b/thirdparty/CGAL/include/CGAL/Arr_rat_arc/Rational_function_pair.h index d1f1949d..1ff5fb14 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_rat_arc/Rational_function_pair.h +++ b/thirdparty/CGAL/include/CGAL/Arr_rat_arc/Rational_function_pair.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_rat_arc/Singleton.h b/thirdparty/CGAL/include/CGAL/Arr_rat_arc/Singleton.h index bb662384..eb6d8ebc 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_rat_arc/Singleton.h +++ b/thirdparty/CGAL/include/CGAL/Arr_rat_arc/Singleton.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_rational_function_traits_2.h b/thirdparty/CGAL/include/CGAL/Arr_rational_function_traits_2.h index 9bb33d93..c98bc5dc 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_rational_function_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Arr_rational_function_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_segment_traits_2.h b/thirdparty/CGAL/include/CGAL/Arr_segment_traits_2.h index 5f1e4ec2..d6eb9e70 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_segment_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Arr_segment_traits_2.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Arr_segment_traits_2 : public Kernel_ { /*! 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 @@ class Arr_segment_traits_2 : public Kernel_ { { 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 --git a/thirdparty/CGAL/include/CGAL/Arr_simple_point_location.h b/thirdparty/CGAL/include/CGAL/Arr_simple_point_location.h index b565fc1e..1b04b9e7 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_simple_point_location.h +++ b/thirdparty/CGAL/include/CGAL/Arr_simple_point_location.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_spherical_gaussian_map_3/Arr_on_sphere_transformation.h b/thirdparty/CGAL/include/CGAL/Arr_spherical_gaussian_map_3/Arr_on_sphere_transformation.h index 19894896..8fc371da 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_spherical_gaussian_map_3/Arr_on_sphere_transformation.h +++ b/thirdparty/CGAL/include/CGAL/Arr_spherical_gaussian_map_3/Arr_on_sphere_transformation.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm.h b/thirdparty/CGAL/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm.h index cf0f36ba..eac267b6 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm.h +++ b/thirdparty/CGAL/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm_arr_dcel.h b/thirdparty/CGAL/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm_arr_dcel.h index 8f7b20d5..b950da5a 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm_arr_dcel.h +++ b/thirdparty/CGAL/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm_arr_dcel.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm_initializer_visitor.h b/thirdparty/CGAL/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm_initializer_visitor.h index 5e0fc66c..328c542c 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm_initializer_visitor.h +++ b/thirdparty/CGAL/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm_initializer_visitor.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm_overlay.h b/thirdparty/CGAL/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm_overlay.h index ca1321a8..e5a1b58b 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm_overlay.h +++ b/thirdparty/CGAL/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm_overlay.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm_polyhedron_3.h b/thirdparty/CGAL/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm_polyhedron_3.h index 387b816e..aaeaab8d 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm_polyhedron_3.h +++ b/thirdparty/CGAL/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm_polyhedron_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm_traits.h b/thirdparty/CGAL/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm_traits.h index a05b3bf7..6f5a164c 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm_traits.h +++ b/thirdparty/CGAL/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm_traits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm_transformation.h b/thirdparty/CGAL/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm_transformation.h index e080df09..4847de5f 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm_transformation.h +++ b/thirdparty/CGAL/include/CGAL/Arr_spherical_gaussian_map_3/Arr_polyhedral_sgm_transformation.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_spherical_gaussian_map_3/Arr_spherical_gaussian_map_3.h b/thirdparty/CGAL/include/CGAL/Arr_spherical_gaussian_map_3/Arr_spherical_gaussian_map_3.h index 957c42c0..217db256 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_spherical_gaussian_map_3/Arr_spherical_gaussian_map_3.h +++ b/thirdparty/CGAL/include/CGAL/Arr_spherical_gaussian_map_3/Arr_spherical_gaussian_map_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_spherical_gaussian_map_3/Arr_transform_on_sphere.h b/thirdparty/CGAL/include/CGAL/Arr_spherical_gaussian_map_3/Arr_transform_on_sphere.h index 3e9f3c30..62cf08b3 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_spherical_gaussian_map_3/Arr_transform_on_sphere.h +++ b/thirdparty/CGAL/include/CGAL/Arr_spherical_gaussian_map_3/Arr_transform_on_sphere.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_spherical_topology_traits_2.h b/thirdparty/CGAL/include/CGAL/Arr_spherical_topology_traits_2.h index 5b0d2d70..322f270b 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_spherical_topology_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Arr_spherical_topology_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_tags.h b/thirdparty/CGAL/include/CGAL/Arr_tags.h index 417b0f6c..87775af9 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_tags.h +++ b/thirdparty/CGAL/include/CGAL/Arr_tags.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_bounded_planar_batched_pl_helper.h b/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_bounded_planar_batched_pl_helper.h index f29f8adf..b37e50b8 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_bounded_planar_batched_pl_helper.h +++ b/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_bounded_planar_batched_pl_helper.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_bounded_planar_construction_helper.h b/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_bounded_planar_construction_helper.h index 34f33df4..9f915dc5 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_bounded_planar_construction_helper.h +++ b/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_bounded_planar_construction_helper.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_bounded_planar_insertion_helper.h b/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_bounded_planar_insertion_helper.h index 6d1a0750..5fce0626 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_bounded_planar_insertion_helper.h +++ b/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_bounded_planar_insertion_helper.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_bounded_planar_overlay_helper.h b/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_bounded_planar_overlay_helper.h index 68f2220c..d55af632 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_bounded_planar_overlay_helper.h +++ b/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_bounded_planar_overlay_helper.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_bounded_planar_topology_traits_2_impl.h b/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_bounded_planar_topology_traits_2_impl.h index aebf06bc..64d30212 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_bounded_planar_topology_traits_2_impl.h +++ b/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_bounded_planar_topology_traits_2_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_bounded_planar_vert_decomp_helper.h b/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_bounded_planar_vert_decomp_helper.h index ad9bb0e3..7d268555 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_bounded_planar_vert_decomp_helper.h +++ b/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_bounded_planar_vert_decomp_helper.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_inc_insertion_zone_visitor.h b/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_inc_insertion_zone_visitor.h index 09522c56..5337a565 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_inc_insertion_zone_visitor.h +++ b/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_inc_insertion_zone_visitor.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_planar_topology_traits_base_2.h b/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_planar_topology_traits_base_2.h index 6dce4fa4..3325bc07 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_planar_topology_traits_base_2.h +++ b/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_planar_topology_traits_base_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_spherical_batched_pl_helper.h b/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_spherical_batched_pl_helper.h index 0e33a45a..63ccb293 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_spherical_batched_pl_helper.h +++ b/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_spherical_batched_pl_helper.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_spherical_construction_helper.h b/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_spherical_construction_helper.h index 3fa3cb4f..768d9f72 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_spherical_construction_helper.h +++ b/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_spherical_construction_helper.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_spherical_insertion_helper.h b/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_spherical_insertion_helper.h index 652f2e66..0c178b41 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_spherical_insertion_helper.h +++ b/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_spherical_insertion_helper.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ before_handle_event(Event* event) */ 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 --git a/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_spherical_overlay_helper.h b/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_spherical_overlay_helper.h index ee9d65dc..75f98acf 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_spherical_overlay_helper.h +++ b/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_spherical_overlay_helper.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_spherical_topology_traits_2_impl.h b/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_spherical_topology_traits_2_impl.h index 631c1a4f..0fe99671 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_spherical_topology_traits_2_impl.h +++ b/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_spherical_topology_traits_2_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_spherical_vert_decomp_helper.h b/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_spherical_vert_decomp_helper.h index ab5d9a28..c7960bfa 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_spherical_vert_decomp_helper.h +++ b/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_spherical_vert_decomp_helper.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_unb_planar_batched_pl_helper.h b/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_unb_planar_batched_pl_helper.h index addd2619..2e08a6af 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_unb_planar_batched_pl_helper.h +++ b/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_unb_planar_batched_pl_helper.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_unb_planar_construction_helper.h b/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_unb_planar_construction_helper.h index def9af7f..02ed9425 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_unb_planar_construction_helper.h +++ b/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_unb_planar_construction_helper.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_unb_planar_insertion_helper.h b/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_unb_planar_insertion_helper.h index 6430d137..fa9b403d 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_unb_planar_insertion_helper.h +++ b/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_unb_planar_insertion_helper.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_unb_planar_overlay_helper.h b/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_unb_planar_overlay_helper.h index 245f70ed..4e41ddf3 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_unb_planar_overlay_helper.h +++ b/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_unb_planar_overlay_helper.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_unb_planar_topology_traits_2_impl.h b/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_unb_planar_topology_traits_2_impl.h index 49022fbc..573046f6 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_unb_planar_topology_traits_2_impl.h +++ b/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_unb_planar_topology_traits_2_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_unb_planar_vert_decomp_helper.h b/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_unb_planar_vert_decomp_helper.h index 335ab19a..83e4f874 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_unb_planar_vert_decomp_helper.h +++ b/thirdparty/CGAL/include/CGAL/Arr_topology_traits/Arr_unb_planar_vert_decomp_helper.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_tracing_traits_2.h b/thirdparty/CGAL/include/CGAL/Arr_tracing_traits_2.h index da8df844..33271124 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_tracing_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Arr_tracing_traits_2.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Arr_tracing_traits_2 : public Base_traits { 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 --git a/thirdparty/CGAL/include/CGAL/Arr_trapezoid_ric_point_location.h b/thirdparty/CGAL/include/CGAL/Arr_trapezoid_ric_point_location.h index 66114b84..5cdd0465 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_trapezoid_ric_point_location.h +++ b/thirdparty/CGAL/include/CGAL/Arr_trapezoid_ric_point_location.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_triangulation_point_location.h b/thirdparty/CGAL/include/CGAL/Arr_triangulation_point_location.h index 7f03f300..cf2a9cad 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_triangulation_point_location.h +++ b/thirdparty/CGAL/include/CGAL/Arr_triangulation_point_location.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_unb_planar_topology_traits_2.h b/thirdparty/CGAL/include/CGAL/Arr_unb_planar_topology_traits_2.h index eb56acbb..93866fb9 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_unb_planar_topology_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Arr_unb_planar_topology_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_vertex_index_map.h b/thirdparty/CGAL/include/CGAL/Arr_vertex_index_map.h index 9b02cab3..58ef1f90 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_vertex_index_map.h +++ b/thirdparty/CGAL/include/CGAL/Arr_vertex_index_map.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_vertex_map.h b/thirdparty/CGAL/include/CGAL/Arr_vertex_map.h index b9b634c3..62911779 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_vertex_map.h +++ b/thirdparty/CGAL/include/CGAL/Arr_vertex_map.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_vertical_decomposition_2.h b/thirdparty/CGAL/include/CGAL/Arr_vertical_decomposition_2.h index a7505451..4ffefd5a 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_vertical_decomposition_2.h +++ b/thirdparty/CGAL/include/CGAL/Arr_vertical_decomposition_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arr_walk_along_line_point_location.h b/thirdparty/CGAL/include/CGAL/Arr_walk_along_line_point_location.h index c67696f5..02f6913b 100644 --- a/thirdparty/CGAL/include/CGAL/Arr_walk_along_line_point_location.h +++ b/thirdparty/CGAL/include/CGAL/Arr_walk_along_line_point_location.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arrangement_2.h b/thirdparty/CGAL/include/CGAL/Arrangement_2.h index ab7faea6..bad3b0d9 100644 --- a/thirdparty/CGAL/include/CGAL/Arrangement_2.h +++ b/thirdparty/CGAL/include/CGAL/Arrangement_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arrangement_2/Arr_compute_zone_visitor.h b/thirdparty/CGAL/include/CGAL/Arrangement_2/Arr_compute_zone_visitor.h index 125a9292..323d6839 100644 --- a/thirdparty/CGAL/include/CGAL/Arrangement_2/Arr_compute_zone_visitor.h +++ b/thirdparty/CGAL/include/CGAL/Arrangement_2/Arr_compute_zone_visitor.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arrangement_2/Arr_default_planar_topology.h b/thirdparty/CGAL/include/CGAL/Arrangement_2/Arr_default_planar_topology.h index e99ac869..7f3c3165 100644 --- a/thirdparty/CGAL/include/CGAL/Arrangement_2/Arr_default_planar_topology.h +++ b/thirdparty/CGAL/include/CGAL/Arrangement_2/Arr_default_planar_topology.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arrangement_2/Arr_do_intersect_zone_visitor.h b/thirdparty/CGAL/include/CGAL/Arrangement_2/Arr_do_intersect_zone_visitor.h index a5922ef4..eb501a1e 100644 --- a/thirdparty/CGAL/include/CGAL/Arrangement_2/Arr_do_intersect_zone_visitor.h +++ b/thirdparty/CGAL/include/CGAL/Arrangement_2/Arr_do_intersect_zone_visitor.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arrangement_2/Arr_on_surface_with_history_2_impl.h b/thirdparty/CGAL/include/CGAL/Arrangement_2/Arr_on_surface_with_history_2_impl.h index 72dd76ba..ac45dc59 100644 --- a/thirdparty/CGAL/include/CGAL/Arrangement_2/Arr_on_surface_with_history_2_impl.h +++ b/thirdparty/CGAL/include/CGAL/Arrangement_2/Arr_on_surface_with_history_2_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arrangement_2/Arr_traits_adaptor_2.h b/thirdparty/CGAL/include/CGAL/Arrangement_2/Arr_traits_adaptor_2.h index e0c8a21d..d2aef3a0 100644 --- a/thirdparty/CGAL/include/CGAL/Arrangement_2/Arr_traits_adaptor_2.h +++ b/thirdparty/CGAL/include/CGAL/Arrangement_2/Arr_traits_adaptor_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arrangement_2/Arr_traits_adaptor_2_dispatching.h b/thirdparty/CGAL/include/CGAL/Arrangement_2/Arr_traits_adaptor_2_dispatching.h index dbfdde22..dd36475a 100644 --- a/thirdparty/CGAL/include/CGAL/Arrangement_2/Arr_traits_adaptor_2_dispatching.h +++ b/thirdparty/CGAL/include/CGAL/Arrangement_2/Arr_traits_adaptor_2_dispatching.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arrangement_2/Arr_with_history_accessor.h b/thirdparty/CGAL/include/CGAL/Arrangement_2/Arr_with_history_accessor.h index 91cba88f..5e725ae9 100644 --- a/thirdparty/CGAL/include/CGAL/Arrangement_2/Arr_with_history_accessor.h +++ b/thirdparty/CGAL/include/CGAL/Arrangement_2/Arr_with_history_accessor.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arrangement_2/Arrangement_2_iterators.h b/thirdparty/CGAL/include/CGAL/Arrangement_2/Arrangement_2_iterators.h index 165bcafd..0e8877c1 100644 --- a/thirdparty/CGAL/include/CGAL/Arrangement_2/Arrangement_2_iterators.h +++ b/thirdparty/CGAL/include/CGAL/Arrangement_2/Arrangement_2_iterators.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arrangement_2/Arrangement_on_surface_2_global.h b/thirdparty/CGAL/include/CGAL/Arrangement_2/Arrangement_on_surface_2_global.h index 2f84fc72..3a82cfc9 100644 --- a/thirdparty/CGAL/include/CGAL/Arrangement_2/Arrangement_on_surface_2_global.h +++ b/thirdparty/CGAL/include/CGAL/Arrangement_2/Arrangement_on_surface_2_global.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arrangement_2/Arrangement_on_surface_2_impl.h b/thirdparty/CGAL/include/CGAL/Arrangement_2/Arrangement_on_surface_2_impl.h index 27e2cefc..6ad13890 100644 --- a/thirdparty/CGAL/include/CGAL/Arrangement_2/Arrangement_on_surface_2_impl.h +++ b/thirdparty/CGAL/include/CGAL/Arrangement_2/Arrangement_on_surface_2_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arrangement_2/Arrangement_zone_2_impl.h b/thirdparty/CGAL/include/CGAL/Arrangement_2/Arrangement_zone_2_impl.h index 98d79562..eadf9aa8 100644 --- a/thirdparty/CGAL/include/CGAL/Arrangement_2/Arrangement_zone_2_impl.h +++ b/thirdparty/CGAL/include/CGAL/Arrangement_2/Arrangement_zone_2_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arrangement_2/arrangement_type_traits.h b/thirdparty/CGAL/include/CGAL/Arrangement_2/arrangement_type_traits.h index fb689ce9..8e22ff62 100644 --- a/thirdparty/CGAL/include/CGAL/Arrangement_2/arrangement_type_traits.h +++ b/thirdparty/CGAL/include/CGAL/Arrangement_2/arrangement_type_traits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arrangement_2/graph_traits_dual.h b/thirdparty/CGAL/include/CGAL/Arrangement_2/graph_traits_dual.h index 1c038602..38c4de3b 100644 --- a/thirdparty/CGAL/include/CGAL/Arrangement_2/graph_traits_dual.h +++ b/thirdparty/CGAL/include/CGAL/Arrangement_2/graph_traits_dual.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arrangement_on_surface_2.h b/thirdparty/CGAL/include/CGAL/Arrangement_on_surface_2.h index 019753d7..f30a9858 100644 --- a/thirdparty/CGAL/include/CGAL/Arrangement_on_surface_2.h +++ b/thirdparty/CGAL/include/CGAL/Arrangement_on_surface_2.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Arrangement_on_surface_2 { 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 --git a/thirdparty/CGAL/include/CGAL/Arrangement_on_surface_with_history_2.h b/thirdparty/CGAL/include/CGAL/Arrangement_on_surface_with_history_2.h index 55d3213a..599f19dc 100644 --- a/thirdparty/CGAL/include/CGAL/Arrangement_on_surface_with_history_2.h +++ b/thirdparty/CGAL/include/CGAL/Arrangement_on_surface_with_history_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arrangement_with_history_2.h b/thirdparty/CGAL/include/CGAL/Arrangement_with_history_2.h index 65b993a0..fe888132 100644 --- a/thirdparty/CGAL/include/CGAL/Arrangement_with_history_2.h +++ b/thirdparty/CGAL/include/CGAL/Arrangement_with_history_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Arrangement_zone_2.h b/thirdparty/CGAL/include/CGAL/Arrangement_zone_2.h index 8ca7bc08..81e23fd3 100644 --- a/thirdparty/CGAL/include/CGAL/Arrangement_zone_2.h +++ b/thirdparty/CGAL/include/CGAL/Arrangement_zone_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/BOOST_MP_arithmetic_kernel.h b/thirdparty/CGAL/include/CGAL/BOOST_MP_arithmetic_kernel.h index 023cbe58..37171110 100644 --- a/thirdparty/CGAL/include/CGAL/BOOST_MP_arithmetic_kernel.h +++ b/thirdparty/CGAL/include/CGAL/BOOST_MP_arithmetic_kernel.h @@ -3,14 +3,14 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Barycentric_coordinates_2.h b/thirdparty/CGAL/include/CGAL/Barycentric_coordinates_2.h index 02b9622e..0e4e7563 100644 --- a/thirdparty/CGAL/include/CGAL/Barycentric_coordinates_2.h +++ b/thirdparty/CGAL/include/CGAL/Barycentric_coordinates_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Barycentric_coordinates_2/Delaunay_domain_2.h b/thirdparty/CGAL/include/CGAL/Barycentric_coordinates_2/Delaunay_domain_2.h index 5e62d594..fdb5b1ec 100644 --- a/thirdparty/CGAL/include/CGAL/Barycentric_coordinates_2/Delaunay_domain_2.h +++ b/thirdparty/CGAL/include/CGAL/Barycentric_coordinates_2/Delaunay_domain_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Barycentric_coordinates_2/Discrete_harmonic_2.h b/thirdparty/CGAL/include/CGAL/Barycentric_coordinates_2/Discrete_harmonic_2.h index 25406d75..4714e628 100644 --- a/thirdparty/CGAL/include/CGAL/Barycentric_coordinates_2/Discrete_harmonic_2.h +++ b/thirdparty/CGAL/include/CGAL/Barycentric_coordinates_2/Discrete_harmonic_2.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ Discrete_harmonic_2 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 @@ Discrete_harmonic_2 ++output; } *output = weight[n-1] * inverted_dh_denominator; + ++output; // Return coordinates. return boost::optional(output); @@ -333,6 +335,7 @@ Discrete_harmonic_2 ++output; } *output = weight[n-1] * inverted_dh_denominator; + ++output; // Return coordinates. return boost::optional(output); diff --git a/thirdparty/CGAL/include/CGAL/Barycentric_coordinates_2/Discrete_harmonic_coordinates_2.h b/thirdparty/CGAL/include/CGAL/Barycentric_coordinates_2/Discrete_harmonic_coordinates_2.h index d9b1c9b5..b43c8345 100644 --- a/thirdparty/CGAL/include/CGAL/Barycentric_coordinates_2/Discrete_harmonic_coordinates_2.h +++ b/thirdparty/CGAL/include/CGAL/Barycentric_coordinates_2/Discrete_harmonic_coordinates_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Barycentric_coordinates_2/Generalized_barycentric_coordinates_2.h b/thirdparty/CGAL/include/CGAL/Barycentric_coordinates_2/Generalized_barycentric_coordinates_2.h index 387b6d3e..da4ed1e8 100644 --- a/thirdparty/CGAL/include/CGAL/Barycentric_coordinates_2/Generalized_barycentric_coordinates_2.h +++ b/thirdparty/CGAL/include/CGAL/Barycentric_coordinates_2/Generalized_barycentric_coordinates_2.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ Generalized_barycentric_coordinates_2 ++output; } *output = coordinate[0]; + ++output; // Return computed coordinates. if(success) return boost::optional(output); diff --git a/thirdparty/CGAL/include/CGAL/Barycentric_coordinates_2/Harmonic_coordinates_2.h b/thirdparty/CGAL/include/CGAL/Barycentric_coordinates_2/Harmonic_coordinates_2.h index dc778d1b..8e2a81dd 100644 --- a/thirdparty/CGAL/include/CGAL/Barycentric_coordinates_2/Harmonic_coordinates_2.h +++ b/thirdparty/CGAL/include/CGAL/Barycentric_coordinates_2/Harmonic_coordinates_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Barycentric_coordinates_2/Mean_value_2.h b/thirdparty/CGAL/include/CGAL/Barycentric_coordinates_2/Mean_value_2.h index 088ca52f..ed51f6b6 100644 --- a/thirdparty/CGAL/include/CGAL/Barycentric_coordinates_2/Mean_value_2.h +++ b/thirdparty/CGAL/include/CGAL/Barycentric_coordinates_2/Mean_value_2.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ Mean_value_2 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 @@ Mean_value_2 ++output; } *output = weight[n-1] * inverted_mv_denominator; + ++output; // Return coordinates. return boost::optional(output); @@ -432,6 +434,7 @@ Mean_value_2 ++output; } *output = weight[n-1] * inverted_mv_denominator; + ++output; // Return coordinates. return boost::optional(output); diff --git a/thirdparty/CGAL/include/CGAL/Barycentric_coordinates_2/Mean_value_coordinates_2.h b/thirdparty/CGAL/include/CGAL/Barycentric_coordinates_2/Mean_value_coordinates_2.h index 24195c60..00a96703 100644 --- a/thirdparty/CGAL/include/CGAL/Barycentric_coordinates_2/Mean_value_coordinates_2.h +++ b/thirdparty/CGAL/include/CGAL/Barycentric_coordinates_2/Mean_value_coordinates_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Barycentric_coordinates_2/Wachspress_2.h b/thirdparty/CGAL/include/CGAL/Barycentric_coordinates_2/Wachspress_2.h index 6d4e7948..ff428d6c 100644 --- a/thirdparty/CGAL/include/CGAL/Barycentric_coordinates_2/Wachspress_2.h +++ b/thirdparty/CGAL/include/CGAL/Barycentric_coordinates_2/Wachspress_2.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ Wachspress_2 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 @@ Wachspress_2 ++output; } *output = weight[n-1] * inverted_wp_denominator; + ++output; // Return coordinates. return boost::optional(output); @@ -314,6 +316,7 @@ Wachspress_2 ++output; } *output = weight[n-1] * inverted_wp_denominator; + ++output; // Return coordinates. return boost::optional(output); diff --git a/thirdparty/CGAL/include/CGAL/Barycentric_coordinates_2/Wachspress_coordinates_2.h b/thirdparty/CGAL/include/CGAL/Barycentric_coordinates_2/Wachspress_coordinates_2.h index fbd46258..4fe6acc7 100644 --- a/thirdparty/CGAL/include/CGAL/Barycentric_coordinates_2/Wachspress_coordinates_2.h +++ b/thirdparty/CGAL/include/CGAL/Barycentric_coordinates_2/Wachspress_coordinates_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Barycentric_coordinates_2/barycentric_enum_2.h b/thirdparty/CGAL/include/CGAL/Barycentric_coordinates_2/barycentric_enum_2.h index 41d280dd..928ac10e 100644 --- a/thirdparty/CGAL/include/CGAL/Barycentric_coordinates_2/barycentric_enum_2.h +++ b/thirdparty/CGAL/include/CGAL/Barycentric_coordinates_2/barycentric_enum_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Barycentric_coordinates_2/boundary_coordinates_2.h b/thirdparty/CGAL/include/CGAL/Barycentric_coordinates_2/boundary_coordinates_2.h index 1d89d374..733f343b 100644 --- a/thirdparty/CGAL/include/CGAL/Barycentric_coordinates_2/boundary_coordinates_2.h +++ b/thirdparty/CGAL/include/CGAL/Barycentric_coordinates_2/boundary_coordinates_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Barycentric_coordinates_2/internal/utils_2.h b/thirdparty/CGAL/include/CGAL/Barycentric_coordinates_2/internal/utils_2.h index 4f3864ae..e946bee7 100644 --- a/thirdparty/CGAL/include/CGAL/Barycentric_coordinates_2/internal/utils_2.h +++ b/thirdparty/CGAL/include/CGAL/Barycentric_coordinates_2/internal/utils_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Barycentric_coordinates_2/segment_coordinates_2.h b/thirdparty/CGAL/include/CGAL/Barycentric_coordinates_2/segment_coordinates_2.h index 9da1b785..17afc64f 100644 --- a/thirdparty/CGAL/include/CGAL/Barycentric_coordinates_2/segment_coordinates_2.h +++ b/thirdparty/CGAL/include/CGAL/Barycentric_coordinates_2/segment_coordinates_2.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace Barycentric_coordinates { */ 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 @@ namespace Barycentric_coordinates { /// 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 @@ namespace Barycentric_coordinates { *output = b_first; ++output; *output = FT(1) - b_first; + ++output; // Output both coordinates. return boost::optional(output); @@ -344,7 +346,6 @@ namespace Barycentric_coordinates { }; /*! - \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 @@ namespace Barycentric_coordinates { 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 --git a/thirdparty/CGAL/include/CGAL/Barycentric_coordinates_2/triangle_coordinates_2.h b/thirdparty/CGAL/include/CGAL/Barycentric_coordinates_2/triangle_coordinates_2.h index e22fc08d..5302c37a 100644 --- a/thirdparty/CGAL/include/CGAL/Barycentric_coordinates_2/triangle_coordinates_2.h +++ b/thirdparty/CGAL/include/CGAL/Barycentric_coordinates_2/triangle_coordinates_2.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace Barycentric_coordinates { */ 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 @@ namespace Barycentric_coordinates { /// 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 @@ namespace Barycentric_coordinates { // 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 @@ namespace Barycentric_coordinates { // 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 --git a/thirdparty/CGAL/include/CGAL/Basic_shaders.h b/thirdparty/CGAL/include/CGAL/Basic_shaders.h index dc9069a3..2f6f2893 100644 --- a/thirdparty/CGAL/include/CGAL/Basic_shaders.h +++ b/thirdparty/CGAL/include/CGAL/Basic_shaders.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Bbox_2.h b/thirdparty/CGAL/include/CGAL/Bbox_2.h index 3a103ca3..8903ed1d 100644 --- a/thirdparty/CGAL/include/CGAL/Bbox_2.h +++ b/thirdparty/CGAL/include/CGAL/Bbox_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Bbox_3.h b/thirdparty/CGAL/include/CGAL/Bbox_3.h index 94bef16d..1d27681a 100644 --- a/thirdparty/CGAL/include/CGAL/Bbox_3.h +++ b/thirdparty/CGAL/include/CGAL/Bbox_3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Bigfloat_interval_traits.h b/thirdparty/CGAL/include/CGAL/Bigfloat_interval_traits.h index 3350af55..f5f27985 100644 --- a/thirdparty/CGAL/include/CGAL/Bigfloat_interval_traits.h +++ b/thirdparty/CGAL/include/CGAL/Bigfloat_interval_traits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2.h b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2.h index 5baf98b0..d3b5a7a3 100644 --- a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2.h +++ b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Bso_internal_functions.h b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Bso_internal_functions.h index f5ff6f57..fd9e25ba 100644 --- a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Bso_internal_functions.h +++ b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Bso_internal_functions.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Ccb_curve_iterator.h b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Ccb_curve_iterator.h index 61a73a2f..2eab2d1b 100644 --- a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Ccb_curve_iterator.h +++ b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Ccb_curve_iterator.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Curve_with_halfedge.h b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Curve_with_halfedge.h index e111ea65..57c9d42f 100644 --- a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Curve_with_halfedge.h +++ b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Curve_with_halfedge.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_agg_meta_traits.h b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_agg_meta_traits.h index 7e14b009..b8797a88 100644 --- a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_agg_meta_traits.h +++ b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_agg_meta_traits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_agg_op.h b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_agg_op.h index bc20eb21..e9c8585a 100644 --- a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_agg_op.h +++ b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_agg_op.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_agg_op_surface_sweep_2.h b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_agg_op_surface_sweep_2.h index 0ee6019c..bbc433c7 100644 --- a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_agg_op_surface_sweep_2.h +++ b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_agg_op_surface_sweep_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_agg_op_visitor.h b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_agg_op_visitor.h index dc51fb15..b767ea4e 100644 --- a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_agg_op_visitor.h +++ b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_agg_op_visitor.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_base_functor.h b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_base_functor.h index f26cd856..ddb27b06 100644 --- a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_base_functor.h +++ b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_base_functor.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_bfs_base_visitor.h b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_bfs_base_visitor.h index 43ce0a0f..33dca38a 100644 --- a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_bfs_base_visitor.h +++ b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_bfs_base_visitor.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_bfs_intersection_visitor.h b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_bfs_intersection_visitor.h index e92210ba..dd8574ff 100644 --- a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_bfs_intersection_visitor.h +++ b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_bfs_intersection_visitor.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_bfs_join_visitor.h b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_bfs_join_visitor.h index ad4c9dcf..9e22b680 100644 --- a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_bfs_join_visitor.h +++ b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_bfs_join_visitor.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_bfs_scanner.h b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_bfs_scanner.h index 19695e8a..7855b1fc 100644 --- a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_bfs_scanner.h +++ b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_bfs_scanner.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_bfs_xor_visitor.h b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_bfs_xor_visitor.h index 14637740..2a4459af 100644 --- a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_bfs_xor_visitor.h +++ b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_bfs_xor_visitor.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_default_dcel.h b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_default_dcel.h index 1e81952f..5f62bd3d 100644 --- a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_default_dcel.h +++ b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_default_dcel.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_default_traits.h b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_default_traits.h index 3a2c84f9..a3870740 100644 --- a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_default_traits.h +++ b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_default_traits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_difference_functor.h b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_difference_functor.h index 0b90e585..00514d14 100644 --- a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_difference_functor.h +++ b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_difference_functor.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_do_intersect_functor.h b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_do_intersect_functor.h index ffe17c55..9c2dbe9d 100644 --- a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_do_intersect_functor.h +++ b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_do_intersect_functor.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_insertion_meta_traits.h b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_insertion_meta_traits.h index 8110001d..c28913ae 100644 --- a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_insertion_meta_traits.h +++ b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_insertion_meta_traits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_intersection_functor.h b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_intersection_functor.h index 8abcad30..5590a0a9 100644 --- a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_intersection_functor.h +++ b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_intersection_functor.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_join_functor.h b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_join_functor.h index b6c63754..b9abca2c 100644 --- a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_join_functor.h +++ b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_join_functor.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_merge.h b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_merge.h index c0037cf6..27e84086 100644 --- a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_merge.h +++ b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_merge.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_on_surface_base_2.h b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_on_surface_base_2.h index 0bc7a661..e74a3919 100644 --- a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_on_surface_base_2.h +++ b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_on_surface_base_2.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Gps_on_surface_base_2 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 --git a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_on_surface_base_2_impl.h b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_on_surface_base_2_impl.h index 3257a93f..a5f87179 100644 --- a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_on_surface_base_2_impl.h +++ b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_on_surface_base_2_impl.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ template 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 @@ template 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 @@ template 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 @@ template _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 --git a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_polygon_simplifier.h b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_polygon_simplifier.h index 48a7b1a9..47f8ae27 100644 --- a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_polygon_simplifier.h +++ b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_polygon_simplifier.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_polygon_validation.h b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_polygon_validation.h index 3f653ebe..f35fa26c 100644 --- a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_polygon_validation.h +++ b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_polygon_validation.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ bool are_holes_and_boundary_pairwise_disjoint 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 @@ bool are_holes_and_boundary_pairwise_disjoint * 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 --git a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_simplifier_traits.h b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_simplifier_traits.h index 6b222b53..d76dc4f7 100644 --- a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_simplifier_traits.h +++ b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_simplifier_traits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_sym_diff_functor.h b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_sym_diff_functor.h index d45e13f6..df046a43 100644 --- a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_sym_diff_functor.h +++ b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_sym_diff_functor.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_traits_adaptor.h b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_traits_adaptor.h index 33744909..26e3b012 100644 --- a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_traits_adaptor.h +++ b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_traits_adaptor.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_traits_decorator.h b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_traits_decorator.h index 3a19e702..36191494 100644 --- a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_traits_decorator.h +++ b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Gps_traits_decorator.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Indexed_event.h b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Indexed_event.h index 5828f30a..b4f35624 100644 --- a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Indexed_event.h +++ b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Indexed_event.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Point_with_vertex.h b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Point_with_vertex.h index 54c47837..6745e017 100644 --- a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Point_with_vertex.h +++ b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Point_with_vertex.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Polygon_2_curve_iterator.h b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Polygon_2_curve_iterator.h index f41e6b49..945087de 100644 --- a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Polygon_2_curve_iterator.h +++ b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Polygon_2_curve_iterator.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Polygon_conversions.h b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Polygon_conversions.h index 1471a439..1025e5f5 100644 --- a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Polygon_conversions.h +++ b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/Polygon_conversions.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/complement.h b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/complement.h index a34de034..ad40532c 100644 --- a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/complement.h +++ b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/complement.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/difference.h b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/difference.h index 934c2022..c5871a3a 100644 --- a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/difference.h +++ b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/difference.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/do_intersect.h b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/do_intersect.h index ee850b63..5df556e3 100644 --- a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/do_intersect.h +++ b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/do_intersect.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ inline bool do_intersect(const General_polygon_with_holes_2& pgn1, // 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 @@ inline bool do_intersect(InputIterator begin, InputIterator end, Traits& traits, 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 @@ inline bool do_intersect(InputIterator begin, InputIterator end, 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 @@ inline bool do_intersect(InputIterator begin, InputIterator end, 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 --git a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/intersection.h b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/intersection.h index 22d828b7..756ed79d 100644 --- a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/intersection.h +++ b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/intersection.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ inline OutputIterator 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 --git a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/join.h b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/join.h index 0dd79b67..349c1608 100644 --- a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/join.h +++ b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/join.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/oriented_side.h b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/oriented_side.h index 8265fdb9..8423282e 100644 --- a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/oriented_side.h +++ b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/oriented_side.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/symmetric_difference.h b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/symmetric_difference.h index a5caccca..c830e02b 100644 --- a/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/symmetric_difference.h +++ b/thirdparty/CGAL/include/CGAL/Boolean_set_operations_2/symmetric_difference.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Bounded_kernel.h b/thirdparty/CGAL/include/CGAL/Bounded_kernel.h index d03dd74b..f80d5a7a 100644 --- a/thirdparty/CGAL/include/CGAL/Bounded_kernel.h +++ b/thirdparty/CGAL/include/CGAL/Bounded_kernel.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Box_intersection_d/Box_d.h b/thirdparty/CGAL/include/CGAL/Box_intersection_d/Box_d.h index 28cc1a61..404f4ba1 100644 --- a/thirdparty/CGAL/include/CGAL/Box_intersection_d/Box_d.h +++ b/thirdparty/CGAL/include/CGAL/Box_intersection_d/Box_d.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Box_intersection_d/Box_traits_d.h b/thirdparty/CGAL/include/CGAL/Box_intersection_d/Box_traits_d.h index 5279891e..9aa248b0 100644 --- a/thirdparty/CGAL/include/CGAL/Box_intersection_d/Box_traits_d.h +++ b/thirdparty/CGAL/include/CGAL/Box_intersection_d/Box_traits_d.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Box_intersection_d/Box_with_handle_d.h b/thirdparty/CGAL/include/CGAL/Box_intersection_d/Box_with_handle_d.h index 868a1ecf..2e756079 100644 --- a/thirdparty/CGAL/include/CGAL/Box_intersection_d/Box_with_handle_d.h +++ b/thirdparty/CGAL/include/CGAL/Box_intersection_d/Box_with_handle_d.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Box_intersection_d/Box_with_info_d.h b/thirdparty/CGAL/include/CGAL/Box_intersection_d/Box_with_info_d.h index efd83a83..f3ad515f 100644 --- a/thirdparty/CGAL/include/CGAL/Box_intersection_d/Box_with_info_d.h +++ b/thirdparty/CGAL/include/CGAL/Box_intersection_d/Box_with_info_d.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Box_intersection_d/box_limits.h b/thirdparty/CGAL/include/CGAL/Box_intersection_d/box_limits.h index 0ee9858c..e9c9f533 100644 --- a/thirdparty/CGAL/include/CGAL/Box_intersection_d/box_limits.h +++ b/thirdparty/CGAL/include/CGAL/Box_intersection_d/box_limits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Box_intersection_d/segment_tree.h b/thirdparty/CGAL/include/CGAL/Box_intersection_d/segment_tree.h index 35607d26..f7dfd037 100644 --- a/thirdparty/CGAL/include/CGAL/Box_intersection_d/segment_tree.h +++ b/thirdparty/CGAL/include/CGAL/Box_intersection_d/segment_tree.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ median_of_three( RandomAccessIter a, RandomAccessIter b, RandomAccessIter c, } -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 @@ RandomAccessIter 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 @@ void dump_box_numbers( ForwardIter begin, ForwardIter end, Traits /* traits */ ) 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 @@ void segment_tree( RandomAccessIter1 p_begin, RandomAccessIter1 p_end, 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 @@ void segment_tree( RandomAccessIter1 p_begin, RandomAccessIter1 p_end, } #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 @@ void segment_tree( RandomAccessIter1 p_begin, RandomAccessIter1 p_end, 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 @@ void segment_tree( RandomAccessIter1 p_begin, RandomAccessIter1 p_end, << 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 --git a/thirdparty/CGAL/include/CGAL/Buffer_for_vao.h b/thirdparty/CGAL/include/CGAL/Buffer_for_vao.h index 98eb64a8..9065ecad 100644 --- a/thirdparty/CGAL/include/CGAL/Buffer_for_vao.h +++ b/thirdparty/CGAL/include/CGAL/Buffer_for_vao.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace internal ++nb; } - assert(nb>0); + CGAL_assertion(nb>0); return (typename Kernel_traits::Kernel::Construct_scaled_vector_3() (normal, 1.0/nb)); } diff --git a/thirdparty/CGAL/include/CGAL/CC_safe_handle.h b/thirdparty/CGAL/include/CGAL/CC_safe_handle.h index e1d104d4..8d7d7ea3 100644 --- a/thirdparty/CGAL/include/CGAL/CC_safe_handle.h +++ b/thirdparty/CGAL/include/CGAL/CC_safe_handle.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/CGAL_Ipelet_base.h b/thirdparty/CGAL/include/CGAL/CGAL_Ipelet_base.h index edce7ac4..a8371432 100644 --- a/thirdparty/CGAL/include/CGAL/CGAL_Ipelet_base.h +++ b/thirdparty/CGAL/include/CGAL/CGAL_Ipelet_base.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/CGAL_Ipelet_base_v6.h b/thirdparty/CGAL/include/CGAL/CGAL_Ipelet_base_v6.h index 37347283..3387a652 100644 --- a/thirdparty/CGAL/include/CGAL/CGAL_Ipelet_base_v6.h +++ b/thirdparty/CGAL/include/CGAL/CGAL_Ipelet_base_v6.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/CGAL_Ipelet_base_v7.h b/thirdparty/CGAL/include/CGAL/CGAL_Ipelet_base_v7.h index 5d881699..1d7f11b9 100644 --- a/thirdparty/CGAL/include/CGAL/CGAL_Ipelet_base_v7.h +++ b/thirdparty/CGAL/include/CGAL/CGAL_Ipelet_base_v7.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/CMap_linear_cell_complex_storages.h b/thirdparty/CGAL/include/CGAL/CMap_linear_cell_complex_storages.h index f63bf851..b6d0cd87 100644 --- a/thirdparty/CGAL/include/CGAL/CMap_linear_cell_complex_storages.h +++ b/thirdparty/CGAL/include/CGAL/CMap_linear_cell_complex_storages.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace CGAL { 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 @@ namespace CGAL { 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 --git a/thirdparty/CGAL/include/CGAL/CORE/BigFloat.h b/thirdparty/CGAL/include/CGAL/CORE/BigFloat.h index b6ae2cca..870c12fb 100644 --- a/thirdparty/CGAL/include/CGAL/CORE/BigFloat.h +++ b/thirdparty/CGAL/include/CGAL/CORE/BigFloat.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/CORE/BigFloatRep.h b/thirdparty/CGAL/include/CGAL/CORE/BigFloatRep.h index 80c2fc04..42607c50 100644 --- a/thirdparty/CGAL/include/CGAL/CORE/BigFloatRep.h +++ b/thirdparty/CGAL/include/CGAL/CORE/BigFloatRep.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/CORE/BigFloat_impl.h b/thirdparty/CGAL/include/CGAL/CORE/BigFloat_impl.h index b5be8a95..5360cd38 100644 --- a/thirdparty/CGAL/include/CGAL/CORE/BigFloat_impl.h +++ b/thirdparty/CGAL/include/CGAL/CORE/BigFloat_impl.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/CORE/BigInt.h b/thirdparty/CGAL/include/CGAL/CORE/BigInt.h index cb9202b1..6e1682a2 100644 --- a/thirdparty/CGAL/include/CGAL/CORE/BigInt.h +++ b/thirdparty/CGAL/include/CGAL/CORE/BigInt.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/CORE/BigRat.h b/thirdparty/CGAL/include/CGAL/CORE/BigRat.h index 8941d053..effd57aa 100644 --- a/thirdparty/CGAL/include/CGAL/CORE/BigRat.h +++ b/thirdparty/CGAL/include/CGAL/CORE/BigRat.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/CORE/CORE.h b/thirdparty/CGAL/include/CGAL/CORE/CORE.h index 2507b8df..f23ce9d6 100644 --- a/thirdparty/CGAL/include/CGAL/CORE/CORE.h +++ b/thirdparty/CGAL/include/CGAL/CORE/CORE.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/CORE/Config.h b/thirdparty/CGAL/include/CGAL/CORE/Config.h index f3afab04..3128e5f6 100644 --- a/thirdparty/CGAL/include/CGAL/CORE/Config.h +++ b/thirdparty/CGAL/include/CGAL/CORE/Config.h @@ -5,7 +5,7 @@ * * This file is part of CGAL (www.cgal.org). * - * $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/CORE/CoreAux.h b/thirdparty/CGAL/include/CGAL/CORE/CoreAux.h index e32a03e2..3c85805a 100644 --- a/thirdparty/CGAL/include/CGAL/CORE/CoreAux.h +++ b/thirdparty/CGAL/include/CGAL/CORE/CoreAux.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/CORE/CoreAux_impl.h b/thirdparty/CGAL/include/CGAL/CORE/CoreAux_impl.h index 249f175a..76783562 100644 --- a/thirdparty/CGAL/include/CGAL/CORE/CoreAux_impl.h +++ b/thirdparty/CGAL/include/CGAL/CORE/CoreAux_impl.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/CORE/CoreDefs.h b/thirdparty/CGAL/include/CGAL/CORE/CoreDefs.h index 2dd0a0ae..7b66ab18 100644 --- a/thirdparty/CGAL/include/CGAL/CORE/CoreDefs.h +++ b/thirdparty/CGAL/include/CGAL/CORE/CoreDefs.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/CORE/CoreDefs_impl.h b/thirdparty/CGAL/include/CGAL/CORE/CoreDefs_impl.h index 7150fb95..2254ac97 100644 --- a/thirdparty/CGAL/include/CGAL/CORE/CoreDefs_impl.h +++ b/thirdparty/CGAL/include/CGAL/CORE/CoreDefs_impl.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/CORE/CoreIO_impl.h b/thirdparty/CGAL/include/CGAL/CORE/CoreIO_impl.h index dc689d35..ee76a1c0 100644 --- a/thirdparty/CGAL/include/CGAL/CORE/CoreIO_impl.h +++ b/thirdparty/CGAL/include/CGAL/CORE/CoreIO_impl.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/CORE/Expr.h b/thirdparty/CGAL/include/CGAL/CORE/Expr.h index 671076dd..82d7c430 100644 --- a/thirdparty/CGAL/include/CGAL/CORE/Expr.h +++ b/thirdparty/CGAL/include/CGAL/CORE/Expr.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/CORE/ExprRep.h b/thirdparty/CGAL/include/CGAL/CORE/ExprRep.h index ac86fec0..de32e726 100644 --- a/thirdparty/CGAL/include/CGAL/CORE/ExprRep.h +++ b/thirdparty/CGAL/include/CGAL/CORE/ExprRep.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/CORE/Expr_impl.h b/thirdparty/CGAL/include/CGAL/CORE/Expr_impl.h index a68c39a7..5734519b 100644 --- a/thirdparty/CGAL/include/CGAL/CORE/Expr_impl.h +++ b/thirdparty/CGAL/include/CGAL/CORE/Expr_impl.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/CORE/Filter.h b/thirdparty/CGAL/include/CGAL/CORE/Filter.h index 93ab405f..214078fa 100644 --- a/thirdparty/CGAL/include/CGAL/CORE/Filter.h +++ b/thirdparty/CGAL/include/CGAL/CORE/Filter.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/CORE/Gmp.h b/thirdparty/CGAL/include/CGAL/CORE/Gmp.h index f9fbb46d..3d113a25 100644 --- a/thirdparty/CGAL/include/CGAL/CORE/Gmp.h +++ b/thirdparty/CGAL/include/CGAL/CORE/Gmp.h @@ -5,7 +5,7 @@ * * This file is part of CGAL (www.cgal.org). * - * $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/CORE/Gmp_impl.h b/thirdparty/CGAL/include/CGAL/CORE/Gmp_impl.h index 74414e9f..d89648bd 100644 --- a/thirdparty/CGAL/include/CGAL/CORE/Gmp_impl.h +++ b/thirdparty/CGAL/include/CGAL/CORE/Gmp_impl.h @@ -8,7 +8,7 @@ * * Zilin Du, 2003 * - * $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/CORE/Impl.h b/thirdparty/CGAL/include/CGAL/CORE/Impl.h index cf620a47..cc2d90a1 100644 --- a/thirdparty/CGAL/include/CGAL/CORE/Impl.h +++ b/thirdparty/CGAL/include/CGAL/CORE/Impl.h @@ -5,7 +5,7 @@ * * This file is part of CGAL (www.cgal.org). * - * $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/CORE/MemoryPool.h b/thirdparty/CGAL/include/CGAL/CORE/MemoryPool.h index 31c7f873..f225f0dd 100644 --- a/thirdparty/CGAL/include/CGAL/CORE/MemoryPool.h +++ b/thirdparty/CGAL/include/CGAL/CORE/MemoryPool.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/CORE/Promote.h b/thirdparty/CGAL/include/CGAL/CORE/Promote.h index a052f950..98a8db9c 100644 --- a/thirdparty/CGAL/include/CGAL/CORE/Promote.h +++ b/thirdparty/CGAL/include/CGAL/CORE/Promote.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/CORE/Real.h b/thirdparty/CGAL/include/CGAL/CORE/Real.h index 602e72ce..a1e46d35 100644 --- a/thirdparty/CGAL/include/CGAL/CORE/Real.h +++ b/thirdparty/CGAL/include/CGAL/CORE/Real.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/CORE/RealRep.h b/thirdparty/CGAL/include/CGAL/CORE/RealRep.h index 2285e4b7..932181eb 100644 --- a/thirdparty/CGAL/include/CGAL/CORE/RealRep.h +++ b/thirdparty/CGAL/include/CGAL/CORE/RealRep.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/CORE/Real_impl.h b/thirdparty/CGAL/include/CGAL/CORE/Real_impl.h index 4d66cddd..1a5062b5 100644 --- a/thirdparty/CGAL/include/CGAL/CORE/Real_impl.h +++ b/thirdparty/CGAL/include/CGAL/CORE/Real_impl.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/CORE/RefCount.h b/thirdparty/CGAL/include/CGAL/CORE/RefCount.h index 7deffa84..47837b44 100644 --- a/thirdparty/CGAL/include/CGAL/CORE/RefCount.h +++ b/thirdparty/CGAL/include/CGAL/CORE/RefCount.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/CORE/Timer.h b/thirdparty/CGAL/include/CGAL/CORE/Timer.h index ddfabeb4..587aaedc 100644 --- a/thirdparty/CGAL/include/CGAL/CORE/Timer.h +++ b/thirdparty/CGAL/include/CGAL/CORE/Timer.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/CORE/extLong.h b/thirdparty/CGAL/include/CGAL/CORE/extLong.h index 3a10ef84..60d9f564 100644 --- a/thirdparty/CGAL/include/CGAL/CORE/extLong.h +++ b/thirdparty/CGAL/include/CGAL/CORE/extLong.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/CORE/extLong_impl.h b/thirdparty/CGAL/include/CGAL/CORE/extLong_impl.h index e1c332c4..63c76080 100644 --- a/thirdparty/CGAL/include/CGAL/CORE/extLong_impl.h +++ b/thirdparty/CGAL/include/CGAL/CORE/extLong_impl.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/CORE/linearAlgebra.h b/thirdparty/CGAL/include/CGAL/CORE/linearAlgebra.h index 16e5f749..65e00b32 100644 --- a/thirdparty/CGAL/include/CGAL/CORE/linearAlgebra.h +++ b/thirdparty/CGAL/include/CGAL/CORE/linearAlgebra.h @@ -5,7 +5,7 @@ * * This file is part of CGAL (www.cgal.org). * - * $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/CORE/poly/Curves.h b/thirdparty/CGAL/include/CGAL/CORE/poly/Curves.h index 58dd5bcf..f92f30ad 100644 --- a/thirdparty/CGAL/include/CGAL/CORE/poly/Curves.h +++ b/thirdparty/CGAL/include/CGAL/CORE/poly/Curves.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/CORE/poly/Poly.h b/thirdparty/CGAL/include/CGAL/CORE/poly/Poly.h index 616d3cbc..9ec12129 100644 --- a/thirdparty/CGAL/include/CGAL/CORE/poly/Poly.h +++ b/thirdparty/CGAL/include/CGAL/CORE/poly/Poly.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/CORE/poly/Sturm.h b/thirdparty/CGAL/include/CGAL/CORE/poly/Sturm.h index ecea5aef..e765b8b8 100644 --- a/thirdparty/CGAL/include/CGAL/CORE/poly/Sturm.h +++ b/thirdparty/CGAL/include/CGAL/CORE/poly/Sturm.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/CORE_BigFloat.h b/thirdparty/CGAL/include/CGAL/CORE_BigFloat.h index 8bbff116..7b073bc6 100644 --- a/thirdparty/CGAL/include/CGAL/CORE_BigFloat.h +++ b/thirdparty/CGAL/include/CGAL/CORE_BigFloat.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/CORE_BigInt.h b/thirdparty/CGAL/include/CGAL/CORE_BigInt.h index 125659d3..87956edb 100644 --- a/thirdparty/CGAL/include/CGAL/CORE_BigInt.h +++ b/thirdparty/CGAL/include/CGAL/CORE_BigInt.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/CORE_BigRat.h b/thirdparty/CGAL/include/CGAL/CORE_BigRat.h index 5a0bf748..260ae213 100644 --- a/thirdparty/CGAL/include/CGAL/CORE_BigRat.h +++ b/thirdparty/CGAL/include/CGAL/CORE_BigRat.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/CORE_Expr.h b/thirdparty/CGAL/include/CGAL/CORE_Expr.h index db25fa22..0d4cc9a5 100644 --- a/thirdparty/CGAL/include/CGAL/CORE_Expr.h +++ b/thirdparty/CGAL/include/CGAL/CORE_Expr.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/CORE_algebraic_number_traits.h b/thirdparty/CGAL/include/CGAL/CORE_algebraic_number_traits.h index 2544dcb0..09d8dc5f 100644 --- a/thirdparty/CGAL/include/CGAL/CORE_algebraic_number_traits.h +++ b/thirdparty/CGAL/include/CGAL/CORE_algebraic_number_traits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/CORE_arithmetic_kernel.h b/thirdparty/CGAL/include/CGAL/CORE_arithmetic_kernel.h index 257d6277..2e80dfe9 100644 --- a/thirdparty/CGAL/include/CGAL/CORE_arithmetic_kernel.h +++ b/thirdparty/CGAL/include/CGAL/CORE_arithmetic_kernel.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/CORE_coercion_traits.h b/thirdparty/CGAL/include/CGAL/CORE_coercion_traits.h index 61458834..fb1cc746 100644 --- a/thirdparty/CGAL/include/CGAL/CORE_coercion_traits.h +++ b/thirdparty/CGAL/include/CGAL/CORE_coercion_traits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Cache.h b/thirdparty/CGAL/include/CGAL/Cache.h index 67ae7a06..10ef1925 100644 --- a/thirdparty/CGAL/include/CGAL/Cache.h +++ b/thirdparty/CGAL/include/CGAL/Cache.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Cartesian.h b/thirdparty/CGAL/include/CGAL/Cartesian.h index d4d093cf..6284509d 100644 --- a/thirdparty/CGAL/include/CGAL/Cartesian.h +++ b/thirdparty/CGAL/include/CGAL/Cartesian.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Cartesian/Aff_transformation_2.h b/thirdparty/CGAL/include/CGAL/Cartesian/Aff_transformation_2.h index a03f3e10..cebe4752 100644 --- a/thirdparty/CGAL/include/CGAL/Cartesian/Aff_transformation_2.h +++ b/thirdparty/CGAL/include/CGAL/Cartesian/Aff_transformation_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Cartesian/Aff_transformation_3.h b/thirdparty/CGAL/include/CGAL/Cartesian/Aff_transformation_3.h index fd767402..1f0ec62a 100644 --- a/thirdparty/CGAL/include/CGAL/Cartesian/Aff_transformation_3.h +++ b/thirdparty/CGAL/include/CGAL/Cartesian/Aff_transformation_3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Cartesian/Aff_transformation_rep_2.h b/thirdparty/CGAL/include/CGAL/Cartesian/Aff_transformation_rep_2.h index 518999cb..327eb8c5 100644 --- a/thirdparty/CGAL/include/CGAL/Cartesian/Aff_transformation_rep_2.h +++ b/thirdparty/CGAL/include/CGAL/Cartesian/Aff_transformation_rep_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Cartesian/Aff_transformation_rep_3.h b/thirdparty/CGAL/include/CGAL/Cartesian/Aff_transformation_rep_3.h index ef48c846..3d6c8631 100644 --- a/thirdparty/CGAL/include/CGAL/Cartesian/Aff_transformation_rep_3.h +++ b/thirdparty/CGAL/include/CGAL/Cartesian/Aff_transformation_rep_3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Cartesian/Cartesian_base.h b/thirdparty/CGAL/include/CGAL/Cartesian/Cartesian_base.h index a4c143b1..f8365edd 100644 --- a/thirdparty/CGAL/include/CGAL/Cartesian/Cartesian_base.h +++ b/thirdparty/CGAL/include/CGAL/Cartesian/Cartesian_base.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Cartesian/Circle_2.h b/thirdparty/CGAL/include/CGAL/Cartesian/Circle_2.h index 52ee46fb..9c17b97e 100644 --- a/thirdparty/CGAL/include/CGAL/Cartesian/Circle_2.h +++ b/thirdparty/CGAL/include/CGAL/Cartesian/Circle_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Cartesian/Circle_3.h b/thirdparty/CGAL/include/CGAL/Cartesian/Circle_3.h index 7674a613..7a79b16b 100644 --- a/thirdparty/CGAL/include/CGAL/Cartesian/Circle_3.h +++ b/thirdparty/CGAL/include/CGAL/Cartesian/Circle_3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Cartesian/ConicCPA2.h b/thirdparty/CGAL/include/CGAL/Cartesian/ConicCPA2.h index 8e509059..b5a88d23 100644 --- a/thirdparty/CGAL/include/CGAL/Cartesian/ConicCPA2.h +++ b/thirdparty/CGAL/include/CGAL/Cartesian/ConicCPA2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Cartesian/Data_accessor_2.h b/thirdparty/CGAL/include/CGAL/Cartesian/Data_accessor_2.h index f26eddbb..990190db 100644 --- a/thirdparty/CGAL/include/CGAL/Cartesian/Data_accessor_2.h +++ b/thirdparty/CGAL/include/CGAL/Cartesian/Data_accessor_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Cartesian/Direction_2.h b/thirdparty/CGAL/include/CGAL/Cartesian/Direction_2.h index aedd8381..83e93147 100644 --- a/thirdparty/CGAL/include/CGAL/Cartesian/Direction_2.h +++ b/thirdparty/CGAL/include/CGAL/Cartesian/Direction_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Cartesian/Direction_3.h b/thirdparty/CGAL/include/CGAL/Cartesian/Direction_3.h index 60d4b3df..6dfb4452 100644 --- a/thirdparty/CGAL/include/CGAL/Cartesian/Direction_3.h +++ b/thirdparty/CGAL/include/CGAL/Cartesian/Direction_3.h @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class DirectionC3 { *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 --git a/thirdparty/CGAL/include/CGAL/Cartesian/Iso_cuboid_3.h b/thirdparty/CGAL/include/CGAL/Cartesian/Iso_cuboid_3.h index 43e12abe..e917cdde 100644 --- a/thirdparty/CGAL/include/CGAL/Cartesian/Iso_cuboid_3.h +++ b/thirdparty/CGAL/include/CGAL/Cartesian/Iso_cuboid_3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Cartesian/Iso_rectangle_2.h b/thirdparty/CGAL/include/CGAL/Cartesian/Iso_rectangle_2.h index 2fd279b7..7b31dcba 100644 --- a/thirdparty/CGAL/include/CGAL/Cartesian/Iso_rectangle_2.h +++ b/thirdparty/CGAL/include/CGAL/Cartesian/Iso_rectangle_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Cartesian/Line_2.h b/thirdparty/CGAL/include/CGAL/Cartesian/Line_2.h index 6171dcf1..2327541d 100644 --- a/thirdparty/CGAL/include/CGAL/Cartesian/Line_2.h +++ b/thirdparty/CGAL/include/CGAL/Cartesian/Line_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Cartesian/Line_3.h b/thirdparty/CGAL/include/CGAL/Cartesian/Line_3.h index 58ff7e73..b212b478 100644 --- a/thirdparty/CGAL/include/CGAL/Cartesian/Line_3.h +++ b/thirdparty/CGAL/include/CGAL/Cartesian/Line_3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Cartesian/MatrixC33.h b/thirdparty/CGAL/include/CGAL/Cartesian/MatrixC33.h index b0dd7d99..e8b50440 100644 --- a/thirdparty/CGAL/include/CGAL/Cartesian/MatrixC33.h +++ b/thirdparty/CGAL/include/CGAL/Cartesian/MatrixC33.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Cartesian/Plane_3.h b/thirdparty/CGAL/include/CGAL/Cartesian/Plane_3.h index bd111bce..ab56f7a3 100644 --- a/thirdparty/CGAL/include/CGAL/Cartesian/Plane_3.h +++ b/thirdparty/CGAL/include/CGAL/Cartesian/Plane_3.h @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class PlaneC3 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 --git a/thirdparty/CGAL/include/CGAL/Cartesian/Point_2.h b/thirdparty/CGAL/include/CGAL/Cartesian/Point_2.h index e106cc1f..0e0d76bb 100644 --- a/thirdparty/CGAL/include/CGAL/Cartesian/Point_2.h +++ b/thirdparty/CGAL/include/CGAL/Cartesian/Point_2.h @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Cartesian_kernel/include/CGAL/Cartesian/Point_2.h $ -// $Id: Point_2.h 8bb22d5 2020-03-26T14:23:37+01:00 Sébastien Loriot +// $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 // // @@ -51,7 +51,7 @@ class PointC2 : base(hx, hy, hw) {} friend void swap(Self& a, Self& b) -#ifdef __cpp_lib_is_swappable +#if !defined(__INTEL_COMPILER) && defined(__cpp_lib_is_swappable) noexcept(std::is_nothrow_swappable_v) #endif { diff --git a/thirdparty/CGAL/include/CGAL/Cartesian/Point_3.h b/thirdparty/CGAL/include/CGAL/Cartesian/Point_3.h index b192649d..5bd42a1c 100644 --- a/thirdparty/CGAL/include/CGAL/Cartesian/Point_3.h +++ b/thirdparty/CGAL/include/CGAL/Cartesian/Point_3.h @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Cartesian_kernel/include/CGAL/Cartesian/Point_3.h $ -// $Id: Point_3.h 8bb22d5 2020-03-26T14:23:37+01:00 Sébastien Loriot +// $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 // // @@ -49,7 +49,7 @@ class PointC3 : base(x, y, z, w) {} friend void swap(Self& a, Self& b) -#ifdef __cpp_lib_is_swappable +#if !defined(__INTEL_COMPILER) && defined(__cpp_lib_is_swappable) noexcept(std::is_nothrow_swappable_v) #endif { diff --git a/thirdparty/CGAL/include/CGAL/Cartesian/Ray_2.h b/thirdparty/CGAL/include/CGAL/Cartesian/Ray_2.h index 7c9c0201..2155e8e4 100644 --- a/thirdparty/CGAL/include/CGAL/Cartesian/Ray_2.h +++ b/thirdparty/CGAL/include/CGAL/Cartesian/Ray_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Cartesian/Ray_3.h b/thirdparty/CGAL/include/CGAL/Cartesian/Ray_3.h index 954227ef..ea0bf2f2 100644 --- a/thirdparty/CGAL/include/CGAL/Cartesian/Ray_3.h +++ b/thirdparty/CGAL/include/CGAL/Cartesian/Ray_3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Cartesian/Reflection_rep_2.h b/thirdparty/CGAL/include/CGAL/Cartesian/Reflection_rep_2.h index cb320944..57b8cce6 100644 --- a/thirdparty/CGAL/include/CGAL/Cartesian/Reflection_rep_2.h +++ b/thirdparty/CGAL/include/CGAL/Cartesian/Reflection_rep_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Cartesian/Rotation_rep_2.h b/thirdparty/CGAL/include/CGAL/Cartesian/Rotation_rep_2.h index ea093aba..7a4c2082 100644 --- a/thirdparty/CGAL/include/CGAL/Cartesian/Rotation_rep_2.h +++ b/thirdparty/CGAL/include/CGAL/Cartesian/Rotation_rep_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Cartesian/Scaling_rep_2.h b/thirdparty/CGAL/include/CGAL/Cartesian/Scaling_rep_2.h index 3b36b5c5..866c0866 100644 --- a/thirdparty/CGAL/include/CGAL/Cartesian/Scaling_rep_2.h +++ b/thirdparty/CGAL/include/CGAL/Cartesian/Scaling_rep_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Cartesian/Scaling_rep_3.h b/thirdparty/CGAL/include/CGAL/Cartesian/Scaling_rep_3.h index 106ea0c5..fd7a8541 100644 --- a/thirdparty/CGAL/include/CGAL/Cartesian/Scaling_rep_3.h +++ b/thirdparty/CGAL/include/CGAL/Cartesian/Scaling_rep_3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Cartesian/Segment_2.h b/thirdparty/CGAL/include/CGAL/Cartesian/Segment_2.h index 46f084c9..9540e3b9 100644 --- a/thirdparty/CGAL/include/CGAL/Cartesian/Segment_2.h +++ b/thirdparty/CGAL/include/CGAL/Cartesian/Segment_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Cartesian/Segment_3.h b/thirdparty/CGAL/include/CGAL/Cartesian/Segment_3.h index cece0cbb..a6e1047b 100644 --- a/thirdparty/CGAL/include/CGAL/Cartesian/Segment_3.h +++ b/thirdparty/CGAL/include/CGAL/Cartesian/Segment_3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Cartesian/Sphere_3.h b/thirdparty/CGAL/include/CGAL/Cartesian/Sphere_3.h index 907fa269..5c02d581 100644 --- a/thirdparty/CGAL/include/CGAL/Cartesian/Sphere_3.h +++ b/thirdparty/CGAL/include/CGAL/Cartesian/Sphere_3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Cartesian/Tetrahedron_3.h b/thirdparty/CGAL/include/CGAL/Cartesian/Tetrahedron_3.h index d730d26e..a74ae71b 100644 --- a/thirdparty/CGAL/include/CGAL/Cartesian/Tetrahedron_3.h +++ b/thirdparty/CGAL/include/CGAL/Cartesian/Tetrahedron_3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Cartesian/Translation_rep_2.h b/thirdparty/CGAL/include/CGAL/Cartesian/Translation_rep_2.h index f49a82f9..0f03424d 100644 --- a/thirdparty/CGAL/include/CGAL/Cartesian/Translation_rep_2.h +++ b/thirdparty/CGAL/include/CGAL/Cartesian/Translation_rep_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Cartesian/Translation_rep_3.h b/thirdparty/CGAL/include/CGAL/Cartesian/Translation_rep_3.h index de075bca..3265eeb9 100644 --- a/thirdparty/CGAL/include/CGAL/Cartesian/Translation_rep_3.h +++ b/thirdparty/CGAL/include/CGAL/Cartesian/Translation_rep_3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Cartesian/Triangle_2.h b/thirdparty/CGAL/include/CGAL/Cartesian/Triangle_2.h index fdd7ecfc..d9c07a88 100644 --- a/thirdparty/CGAL/include/CGAL/Cartesian/Triangle_2.h +++ b/thirdparty/CGAL/include/CGAL/Cartesian/Triangle_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Cartesian/Triangle_3.h b/thirdparty/CGAL/include/CGAL/Cartesian/Triangle_3.h index b5dc5c1a..382ca865 100644 --- a/thirdparty/CGAL/include/CGAL/Cartesian/Triangle_3.h +++ b/thirdparty/CGAL/include/CGAL/Cartesian/Triangle_3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Cartesian/Vector_2.h b/thirdparty/CGAL/include/CGAL/Cartesian/Vector_2.h index 542e4877..309a0a75 100644 --- a/thirdparty/CGAL/include/CGAL/Cartesian/Vector_2.h +++ b/thirdparty/CGAL/include/CGAL/Cartesian/Vector_2.h @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Cartesian_kernel/include/CGAL/Cartesian/Vector_2.h $ -// $Id: Vector_2.h 8bb22d5 2020-03-26T14:23:37+01:00 Sébastien Loriot +// $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 // // @@ -57,7 +57,7 @@ class VectorC2 : CGAL::make_array(hx, hy) ) {} friend void swap(Self& a, Self& b) -#ifdef __cpp_lib_is_swappable +#if !defined(__INTEL_COMPILER) && defined(__cpp_lib_is_swappable) noexcept(std::is_nothrow_swappable_v) #endif { diff --git a/thirdparty/CGAL/include/CGAL/Cartesian/Vector_3.h b/thirdparty/CGAL/include/CGAL/Cartesian/Vector_3.h index 77375bd4..0edacb05 100644 --- a/thirdparty/CGAL/include/CGAL/Cartesian/Vector_3.h +++ b/thirdparty/CGAL/include/CGAL/Cartesian/Vector_3.h @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Cartesian_kernel/include/CGAL/Cartesian/Vector_3.h $ -// $Id: Vector_3.h 8bb22d5 2020-03-26T14:23:37+01:00 Sébastien Loriot +// $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 // // @@ -72,7 +72,7 @@ class VectorC3 : CGAL::make_array(x, y, z) ) {} friend void swap(Self& a, Self& b) -#ifdef __cpp_lib_is_swappable +#if !defined(__INTEL_COMPILER) && defined(__cpp_lib_is_swappable) noexcept(std::is_nothrow_swappable_v) #endif { diff --git a/thirdparty/CGAL/include/CGAL/Cartesian/Weighted_point_2.h b/thirdparty/CGAL/include/CGAL/Cartesian/Weighted_point_2.h index 4e6ee2f8..bf0a08d1 100644 --- a/thirdparty/CGAL/include/CGAL/Cartesian/Weighted_point_2.h +++ b/thirdparty/CGAL/include/CGAL/Cartesian/Weighted_point_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Cartesian/Weighted_point_3.h b/thirdparty/CGAL/include/CGAL/Cartesian/Weighted_point_3.h index 6ae33b44..eed77008 100644 --- a/thirdparty/CGAL/include/CGAL/Cartesian/Weighted_point_3.h +++ b/thirdparty/CGAL/include/CGAL/Cartesian/Weighted_point_3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Cartesian/basic_constructions_2.h b/thirdparty/CGAL/include/CGAL/Cartesian/basic_constructions_2.h index 19e5103f..1e9e4aa2 100644 --- a/thirdparty/CGAL/include/CGAL/Cartesian/basic_constructions_2.h +++ b/thirdparty/CGAL/include/CGAL/Cartesian/basic_constructions_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Cartesian/basic_constructions_3.h b/thirdparty/CGAL/include/CGAL/Cartesian/basic_constructions_3.h index d26523b5..7e6863ee 100644 --- a/thirdparty/CGAL/include/CGAL/Cartesian/basic_constructions_3.h +++ b/thirdparty/CGAL/include/CGAL/Cartesian/basic_constructions_3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Cartesian/ft_constructions_2.h b/thirdparty/CGAL/include/CGAL/Cartesian/ft_constructions_2.h index 9f6bbc0c..4b4ebb71 100644 --- a/thirdparty/CGAL/include/CGAL/Cartesian/ft_constructions_2.h +++ b/thirdparty/CGAL/include/CGAL/Cartesian/ft_constructions_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Cartesian/ft_constructions_3.h b/thirdparty/CGAL/include/CGAL/Cartesian/ft_constructions_3.h index 44daed47..544f6035 100644 --- a/thirdparty/CGAL/include/CGAL/Cartesian/ft_constructions_3.h +++ b/thirdparty/CGAL/include/CGAL/Cartesian/ft_constructions_3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Cartesian/function_objects.h b/thirdparty/CGAL/include/CGAL/Cartesian/function_objects.h index 6d4bfa2c..a18badfa 100644 --- a/thirdparty/CGAL/include/CGAL/Cartesian/function_objects.h +++ b/thirdparty/CGAL/include/CGAL/Cartesian/function_objects.h @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Cartesian_kernel/include/CGAL/Cartesian/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/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 @@ namespace CartesianKernelFunctors { 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 @@ namespace CartesianKernelFunctors { 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 @@ namespace CartesianKernelFunctors { } }; - - - template class Construct_cross_product_vector_3 { @@ -3031,6 +2965,18 @@ namespace CartesianKernelFunctors { return construct_vector(vx, vy, vz); } + + Vector_3 + operator()( Origin, const Point_3& q, const Point_3& r ) const + { + // Cross product oq * or + FT vx = q.y()*r.z() - r.y()*q.z(); + FT vy = q.z()*r.x() - r.z()*q.x(); + FT vz = q.x()*r.y() - r.x()*q.y(); + typename K::Construct_vector_3 construct_vector; + + return construct_vector(vx, vy, vz); + } }; template @@ -3988,7 +3934,7 @@ namespace CartesianKernelFunctors { 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 @@ -4307,6 +4253,15 @@ namespace CartesianKernelFunctors { w.x(), w.y(), w.z()); } + result_type + operator()( Origin, const Point_3& u, + const Point_3& v, const Point_3& w) const + { + return orientationC3(u.x(), u.y(), u.z(), + v.x(), v.y(), v.z(), + w.x(), w.y(), w.z()); + } + result_type operator()( const Tetrahedron_3& t) const { diff --git a/thirdparty/CGAL/include/CGAL/Cartesian/line_constructions_2.h b/thirdparty/CGAL/include/CGAL/Cartesian/line_constructions_2.h index 6eb38ca8..84b3a217 100644 --- a/thirdparty/CGAL/include/CGAL/Cartesian/line_constructions_2.h +++ b/thirdparty/CGAL/include/CGAL/Cartesian/line_constructions_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Cartesian/plane_constructions_3.h b/thirdparty/CGAL/include/CGAL/Cartesian/plane_constructions_3.h index 88bf17cd..98febf82 100644 --- a/thirdparty/CGAL/include/CGAL/Cartesian/plane_constructions_3.h +++ b/thirdparty/CGAL/include/CGAL/Cartesian/plane_constructions_3.h @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ plane_from_point_direction(const typename R::Point_3 &p, 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 --git a/thirdparty/CGAL/include/CGAL/Cartesian/point_constructions_2.h b/thirdparty/CGAL/include/CGAL/Cartesian/point_constructions_2.h index 0110d4ea..404e414f 100644 --- a/thirdparty/CGAL/include/CGAL/Cartesian/point_constructions_2.h +++ b/thirdparty/CGAL/include/CGAL/Cartesian/point_constructions_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Cartesian/point_constructions_3.h b/thirdparty/CGAL/include/CGAL/Cartesian/point_constructions_3.h index 45b605a1..10604487 100644 --- a/thirdparty/CGAL/include/CGAL/Cartesian/point_constructions_3.h +++ b/thirdparty/CGAL/include/CGAL/Cartesian/point_constructions_3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Cartesian/predicates_on_directions_2.h b/thirdparty/CGAL/include/CGAL/Cartesian/predicates_on_directions_2.h index c04198ae..e2568081 100644 --- a/thirdparty/CGAL/include/CGAL/Cartesian/predicates_on_directions_2.h +++ b/thirdparty/CGAL/include/CGAL/Cartesian/predicates_on_directions_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Cartesian/predicates_on_planes_3.h b/thirdparty/CGAL/include/CGAL/Cartesian/predicates_on_planes_3.h index 50304574..a7976752 100644 --- a/thirdparty/CGAL/include/CGAL/Cartesian/predicates_on_planes_3.h +++ b/thirdparty/CGAL/include/CGAL/Cartesian/predicates_on_planes_3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Cartesian/predicates_on_points_2.h b/thirdparty/CGAL/include/CGAL/Cartesian/predicates_on_points_2.h index 26ece623..8ad18268 100644 --- a/thirdparty/CGAL/include/CGAL/Cartesian/predicates_on_points_2.h +++ b/thirdparty/CGAL/include/CGAL/Cartesian/predicates_on_points_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Cartesian/predicates_on_points_3.h b/thirdparty/CGAL/include/CGAL/Cartesian/predicates_on_points_3.h index fb716ddd..f6208b69 100644 --- a/thirdparty/CGAL/include/CGAL/Cartesian/predicates_on_points_3.h +++ b/thirdparty/CGAL/include/CGAL/Cartesian/predicates_on_points_3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Cartesian/solve_3.h b/thirdparty/CGAL/include/CGAL/Cartesian/solve_3.h index 05cc2d82..76102605 100644 --- a/thirdparty/CGAL/include/CGAL/Cartesian/solve_3.h +++ b/thirdparty/CGAL/include/CGAL/Cartesian/solve_3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Cartesian_converter.h b/thirdparty/CGAL/include/CGAL/Cartesian_converter.h index 6cef19bb..9858e563 100644 --- a/thirdparty/CGAL/include/CGAL/Cartesian_converter.h +++ b/thirdparty/CGAL/include/CGAL/Cartesian_converter.h @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ struct Converting_visitor : boost::static_visitor<> { } // 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 @@ class Cartesian_converter : public Enum_converter 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 @@ class Cartesian_converter : public Enum_converter 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 @@ class Cartesian_converter : public Enum_converter 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 - { - 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)); + operator()(const typename K1::Aff_transformation_3& a) const + { + 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 --git a/thirdparty/CGAL/include/CGAL/Cartesian_converter_fwd.h b/thirdparty/CGAL/include/CGAL/Cartesian_converter_fwd.h index 8c1e95f3..4bc32fb7 100644 --- a/thirdparty/CGAL/include/CGAL/Cartesian_converter_fwd.h +++ b/thirdparty/CGAL/include/CGAL/Cartesian_converter_fwd.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Cartesian_d.h b/thirdparty/CGAL/include/CGAL/Cartesian_d.h index e7311962..7171acd9 100644 --- a/thirdparty/CGAL/include/CGAL/Cartesian_d.h +++ b/thirdparty/CGAL/include/CGAL/Cartesian_d.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Cartesian_matrix.h b/thirdparty/CGAL/include/CGAL/Cartesian_matrix.h index 6c4accfe..ef221b47 100644 --- a/thirdparty/CGAL/include/CGAL/Cartesian_matrix.h +++ b/thirdparty/CGAL/include/CGAL/Cartesian_matrix.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Cell_attribute.h b/thirdparty/CGAL/include/CGAL/Cell_attribute.h index fb0b5882..c5047538 100644 --- a/thirdparty/CGAL/include/CGAL/Cell_attribute.h +++ b/thirdparty/CGAL/include/CGAL/Cell_attribute.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace CGAL { { 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 --git a/thirdparty/CGAL/include/CGAL/Cell_attribute_with_id.h b/thirdparty/CGAL/include/CGAL/Cell_attribute_with_id.h index 309702cb..985649ed 100644 --- a/thirdparty/CGAL/include/CGAL/Cell_attribute_with_id.h +++ b/thirdparty/CGAL/include/CGAL/Cell_attribute_with_id.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Cell_attribute_with_point.h b/thirdparty/CGAL/include/CGAL/Cell_attribute_with_point.h index b4abb625..63f2fef2 100644 --- a/thirdparty/CGAL/include/CGAL/Cell_attribute_with_point.h +++ b/thirdparty/CGAL/include/CGAL/Cell_attribute_with_point.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Cell_attribute_with_point_and_id.h b/thirdparty/CGAL/include/CGAL/Cell_attribute_with_point_and_id.h index a4069530..07d3b6a5 100644 --- a/thirdparty/CGAL/include/CGAL/Cell_attribute_with_point_and_id.h +++ b/thirdparty/CGAL/include/CGAL/Cell_attribute_with_point_and_id.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Cell_const_iterators.h b/thirdparty/CGAL/include/CGAL/Cell_const_iterators.h index 8eb2a0a9..3284ab4f 100644 --- a/thirdparty/CGAL/include/CGAL/Cell_const_iterators.h +++ b/thirdparty/CGAL/include/CGAL/Cell_const_iterators.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Cell_iterators.h b/thirdparty/CGAL/include/CGAL/Cell_iterators.h index 62e2eae3..13c6e583 100644 --- a/thirdparty/CGAL/include/CGAL/Cell_iterators.h +++ b/thirdparty/CGAL/include/CGAL/Cell_iterators.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Chinese_remainder_traits.h b/thirdparty/CGAL/include/CGAL/Chinese_remainder_traits.h index ceed745e..6f49a0d8 100644 --- a/thirdparty/CGAL/include/CGAL/Chinese_remainder_traits.h +++ b/thirdparty/CGAL/include/CGAL/Chinese_remainder_traits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Circle_2.h b/thirdparty/CGAL/include/CGAL/Circle_2.h index b784cf08..34a837e1 100644 --- a/thirdparty/CGAL/include/CGAL/Circle_2.h +++ b/thirdparty/CGAL/include/CGAL/Circle_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Circle_3.h b/thirdparty/CGAL/include/CGAL/Circle_3.h index f608fbc3..bf72fa12 100644 --- a/thirdparty/CGAL/include/CGAL/Circle_3.h +++ b/thirdparty/CGAL/include/CGAL/Circle_3.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/Circle_type.h b/thirdparty/CGAL/include/CGAL/Circle_type.h index c4177136..e59254f5 100644 --- a/thirdparty/CGAL/include/CGAL/Circle_type.h +++ b/thirdparty/CGAL/include/CGAL/Circle_type.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Circular_arc_2.h b/thirdparty/CGAL/include/CGAL/Circular_arc_2.h index 6fb49f57..cee297d5 100644 --- a/thirdparty/CGAL/include/CGAL/Circular_arc_2.h +++ b/thirdparty/CGAL/include/CGAL/Circular_arc_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Circular_arc_3.h b/thirdparty/CGAL/include/CGAL/Circular_arc_3.h index 23064632..5c1b8681 100644 --- a/thirdparty/CGAL/include/CGAL/Circular_arc_3.h +++ b/thirdparty/CGAL/include/CGAL/Circular_arc_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Circular_arc_point_2.h b/thirdparty/CGAL/include/CGAL/Circular_arc_point_2.h index c8fbdb8c..44c7446b 100644 --- a/thirdparty/CGAL/include/CGAL/Circular_arc_point_2.h +++ b/thirdparty/CGAL/include/CGAL/Circular_arc_point_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Circular_arc_point_3.h b/thirdparty/CGAL/include/CGAL/Circular_arc_point_3.h index 97339361..f880b7cd 100644 --- a/thirdparty/CGAL/include/CGAL/Circular_arc_point_3.h +++ b/thirdparty/CGAL/include/CGAL/Circular_arc_point_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Circular_kernel_2.h b/thirdparty/CGAL/include/CGAL/Circular_kernel_2.h index 8a8cc434..fd8d91dc 100644 --- a/thirdparty/CGAL/include/CGAL/Circular_kernel_2.h +++ b/thirdparty/CGAL/include/CGAL/Circular_kernel_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Circular_kernel_2/Circular_arc_2.h b/thirdparty/CGAL/include/CGAL/Circular_kernel_2/Circular_arc_2.h index ad91643b..b94363db 100644 --- a/thirdparty/CGAL/include/CGAL/Circular_kernel_2/Circular_arc_2.h +++ b/thirdparty/CGAL/include/CGAL/Circular_kernel_2/Circular_arc_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Circular_kernel_2/Circular_arc_point_2.h b/thirdparty/CGAL/include/CGAL/Circular_kernel_2/Circular_arc_point_2.h index 7edcf533..6df7c8a1 100644 --- a/thirdparty/CGAL/include/CGAL/Circular_kernel_2/Circular_arc_point_2.h +++ b/thirdparty/CGAL/include/CGAL/Circular_kernel_2/Circular_arc_point_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Circular_kernel_2/Intersection_traits.h b/thirdparty/CGAL/include/CGAL/Circular_kernel_2/Intersection_traits.h index d05c3bd9..670a5546 100644 --- a/thirdparty/CGAL/include/CGAL/Circular_kernel_2/Intersection_traits.h +++ b/thirdparty/CGAL/include/CGAL/Circular_kernel_2/Intersection_traits.h @@ -3,11 +3,11 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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/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 --git a/thirdparty/CGAL/include/CGAL/Circular_kernel_2/Line_arc_2.h b/thirdparty/CGAL/include/CGAL/Circular_kernel_2/Line_arc_2.h index 21fea1ad..7f4ce754 100644 --- a/thirdparty/CGAL/include/CGAL/Circular_kernel_2/Line_arc_2.h +++ b/thirdparty/CGAL/include/CGAL/Circular_kernel_2/Line_arc_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Circular_kernel_2/function_objects_on_circle_2.h b/thirdparty/CGAL/include/CGAL/Circular_kernel_2/function_objects_on_circle_2.h index b26a8e42..fd0ea95a 100644 --- a/thirdparty/CGAL/include/CGAL/Circular_kernel_2/function_objects_on_circle_2.h +++ b/thirdparty/CGAL/include/CGAL/Circular_kernel_2/function_objects_on_circle_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Circular_kernel_2/function_objects_on_line_2.h b/thirdparty/CGAL/include/CGAL/Circular_kernel_2/function_objects_on_line_2.h index 23276ee2..a50a7ce2 100644 --- a/thirdparty/CGAL/include/CGAL/Circular_kernel_2/function_objects_on_line_2.h +++ b/thirdparty/CGAL/include/CGAL/Circular_kernel_2/function_objects_on_line_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Circular_kernel_2/function_objects_polynomial_circular.h b/thirdparty/CGAL/include/CGAL/Circular_kernel_2/function_objects_polynomial_circular.h index d7b8f5cc..90e6569a 100644 --- a/thirdparty/CGAL/include/CGAL/Circular_kernel_2/function_objects_polynomial_circular.h +++ b/thirdparty/CGAL/include/CGAL/Circular_kernel_2/function_objects_polynomial_circular.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Circular_kernel_2/interface_macros.h b/thirdparty/CGAL/include/CGAL/Circular_kernel_2/interface_macros.h index b4bba699..a967a935 100644 --- a/thirdparty/CGAL/include/CGAL/Circular_kernel_2/interface_macros.h +++ b/thirdparty/CGAL/include/CGAL/Circular_kernel_2/interface_macros.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Circular_kernel_2/internal_functions_on_circle_2.h b/thirdparty/CGAL/include/CGAL/Circular_kernel_2/internal_functions_on_circle_2.h index b0711a29..37f5d5d4 100644 --- a/thirdparty/CGAL/include/CGAL/Circular_kernel_2/internal_functions_on_circle_2.h +++ b/thirdparty/CGAL/include/CGAL/Circular_kernel_2/internal_functions_on_circle_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Circular_kernel_2/internal_functions_on_circular_arc_2.h b/thirdparty/CGAL/include/CGAL/Circular_kernel_2/internal_functions_on_circular_arc_2.h index e885fc51..54f69c46 100644 --- a/thirdparty/CGAL/include/CGAL/Circular_kernel_2/internal_functions_on_circular_arc_2.h +++ b/thirdparty/CGAL/include/CGAL/Circular_kernel_2/internal_functions_on_circular_arc_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Circular_kernel_2/internal_functions_on_line_2.h b/thirdparty/CGAL/include/CGAL/Circular_kernel_2/internal_functions_on_line_2.h index 4515574e..415f9f76 100644 --- a/thirdparty/CGAL/include/CGAL/Circular_kernel_2/internal_functions_on_line_2.h +++ b/thirdparty/CGAL/include/CGAL/Circular_kernel_2/internal_functions_on_line_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Circular_kernel_2/internal_functions_on_line_arc_2.h b/thirdparty/CGAL/include/CGAL/Circular_kernel_2/internal_functions_on_line_arc_2.h index 778be980..26ac9c17 100644 --- a/thirdparty/CGAL/include/CGAL/Circular_kernel_2/internal_functions_on_line_arc_2.h +++ b/thirdparty/CGAL/include/CGAL/Circular_kernel_2/internal_functions_on_line_arc_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Circular_kernel_2/intersection_line_2_circle_2_map.h b/thirdparty/CGAL/include/CGAL/Circular_kernel_2/intersection_line_2_circle_2_map.h index 25572515..316de895 100644 --- a/thirdparty/CGAL/include/CGAL/Circular_kernel_2/intersection_line_2_circle_2_map.h +++ b/thirdparty/CGAL/include/CGAL/Circular_kernel_2/intersection_line_2_circle_2_map.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Circular_kernel_3/Circular_arc_3.h b/thirdparty/CGAL/include/CGAL/Circular_kernel_3/Circular_arc_3.h index 8fb7e405..89eba025 100644 --- a/thirdparty/CGAL/include/CGAL/Circular_kernel_3/Circular_arc_3.h +++ b/thirdparty/CGAL/include/CGAL/Circular_kernel_3/Circular_arc_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Circular_kernel_3/Circular_arc_point_3.h b/thirdparty/CGAL/include/CGAL/Circular_kernel_3/Circular_arc_point_3.h index 2d4fa4d9..41aa6cec 100644 --- a/thirdparty/CGAL/include/CGAL/Circular_kernel_3/Circular_arc_point_3.h +++ b/thirdparty/CGAL/include/CGAL/Circular_kernel_3/Circular_arc_point_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Circular_kernel_3/Intersection_traits.h b/thirdparty/CGAL/include/CGAL/Circular_kernel_3/Intersection_traits.h index f1903f46..5eecac3a 100644 --- a/thirdparty/CGAL/include/CGAL/Circular_kernel_3/Intersection_traits.h +++ b/thirdparty/CGAL/include/CGAL/Circular_kernel_3/Intersection_traits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Circular_kernel_3/Line_arc_3.h b/thirdparty/CGAL/include/CGAL/Circular_kernel_3/Line_arc_3.h index 90f4f17e..85fb63ce 100644 --- a/thirdparty/CGAL/include/CGAL/Circular_kernel_3/Line_arc_3.h +++ b/thirdparty/CGAL/include/CGAL/Circular_kernel_3/Line_arc_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Circular_kernel_3/function_objects_polynomial_sphere.h b/thirdparty/CGAL/include/CGAL/Circular_kernel_3/function_objects_polynomial_sphere.h index 2abf57e8..4edf88dc 100644 --- a/thirdparty/CGAL/include/CGAL/Circular_kernel_3/function_objects_polynomial_sphere.h +++ b/thirdparty/CGAL/include/CGAL/Circular_kernel_3/function_objects_polynomial_sphere.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Circular_kernel_3/get_equation_object_on_curved_kernel_3.h b/thirdparty/CGAL/include/CGAL/Circular_kernel_3/get_equation_object_on_curved_kernel_3.h index 6651e498..8db08ebf 100644 --- a/thirdparty/CGAL/include/CGAL/Circular_kernel_3/get_equation_object_on_curved_kernel_3.h +++ b/thirdparty/CGAL/include/CGAL/Circular_kernel_3/get_equation_object_on_curved_kernel_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Circular_kernel_3/interface_macros.h b/thirdparty/CGAL/include/CGAL/Circular_kernel_3/interface_macros.h index f2285d8e..fe925a52 100644 --- a/thirdparty/CGAL/include/CGAL/Circular_kernel_3/interface_macros.h +++ b/thirdparty/CGAL/include/CGAL/Circular_kernel_3/interface_macros.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Circular_kernel_3/internal_function_compare_spherical_kernel.h b/thirdparty/CGAL/include/CGAL/Circular_kernel_3/internal_function_compare_spherical_kernel.h index c45cfb6f..e12625b3 100644 --- a/thirdparty/CGAL/include/CGAL/Circular_kernel_3/internal_function_compare_spherical_kernel.h +++ b/thirdparty/CGAL/include/CGAL/Circular_kernel_3/internal_function_compare_spherical_kernel.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Circular_kernel_3/internal_function_compare_to_right_spherical_kernel.h b/thirdparty/CGAL/include/CGAL/Circular_kernel_3/internal_function_compare_to_right_spherical_kernel.h index 1f81e71f..d9afe732 100644 --- a/thirdparty/CGAL/include/CGAL/Circular_kernel_3/internal_function_compare_to_right_spherical_kernel.h +++ b/thirdparty/CGAL/include/CGAL/Circular_kernel_3/internal_function_compare_to_right_spherical_kernel.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/Circular_kernel_3/internal_function_has_on_spherical_kernel.h b/thirdparty/CGAL/include/CGAL/Circular_kernel_3/internal_function_has_on_spherical_kernel.h index f85c7a9c..f29a72c3 100644 --- a/thirdparty/CGAL/include/CGAL/Circular_kernel_3/internal_function_has_on_spherical_kernel.h +++ b/thirdparty/CGAL/include/CGAL/Circular_kernel_3/internal_function_has_on_spherical_kernel.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Circular_kernel_3/internal_functions_on_circle_3.h b/thirdparty/CGAL/include/CGAL/Circular_kernel_3/internal_functions_on_circle_3.h index ddc24c00..787b1dde 100644 --- a/thirdparty/CGAL/include/CGAL/Circular_kernel_3/internal_functions_on_circle_3.h +++ b/thirdparty/CGAL/include/CGAL/Circular_kernel_3/internal_functions_on_circle_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Circular_kernel_3/internal_functions_on_circular_arc_3.h b/thirdparty/CGAL/include/CGAL/Circular_kernel_3/internal_functions_on_circular_arc_3.h index 2afcd259..c9428c6c 100644 --- a/thirdparty/CGAL/include/CGAL/Circular_kernel_3/internal_functions_on_circular_arc_3.h +++ b/thirdparty/CGAL/include/CGAL/Circular_kernel_3/internal_functions_on_circular_arc_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Circular_kernel_3/internal_functions_on_circular_arc_point_3.h b/thirdparty/CGAL/include/CGAL/Circular_kernel_3/internal_functions_on_circular_arc_point_3.h index e60ad0ff..7b576542 100644 --- a/thirdparty/CGAL/include/CGAL/Circular_kernel_3/internal_functions_on_circular_arc_point_3.h +++ b/thirdparty/CGAL/include/CGAL/Circular_kernel_3/internal_functions_on_circular_arc_point_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Circular_kernel_3/internal_functions_on_line_3.h b/thirdparty/CGAL/include/CGAL/Circular_kernel_3/internal_functions_on_line_3.h index 1b70f577..c86bffdf 100644 --- a/thirdparty/CGAL/include/CGAL/Circular_kernel_3/internal_functions_on_line_3.h +++ b/thirdparty/CGAL/include/CGAL/Circular_kernel_3/internal_functions_on_line_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Circular_kernel_3/internal_functions_on_line_arc_3.h b/thirdparty/CGAL/include/CGAL/Circular_kernel_3/internal_functions_on_line_arc_3.h index 745dd6c1..965896a8 100644 --- a/thirdparty/CGAL/include/CGAL/Circular_kernel_3/internal_functions_on_line_arc_3.h +++ b/thirdparty/CGAL/include/CGAL/Circular_kernel_3/internal_functions_on_line_arc_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Circular_kernel_3/internal_functions_on_plane_3.h b/thirdparty/CGAL/include/CGAL/Circular_kernel_3/internal_functions_on_plane_3.h index f647e815..f5e438ee 100644 --- a/thirdparty/CGAL/include/CGAL/Circular_kernel_3/internal_functions_on_plane_3.h +++ b/thirdparty/CGAL/include/CGAL/Circular_kernel_3/internal_functions_on_plane_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Circular_kernel_3/internal_functions_on_sphere_3.h b/thirdparty/CGAL/include/CGAL/Circular_kernel_3/internal_functions_on_sphere_3.h index a1a549d7..6d0355a6 100644 --- a/thirdparty/CGAL/include/CGAL/Circular_kernel_3/internal_functions_on_sphere_3.h +++ b/thirdparty/CGAL/include/CGAL/Circular_kernel_3/internal_functions_on_sphere_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Circular_kernel_converter.h b/thirdparty/CGAL/include/CGAL/Circular_kernel_converter.h index 3a79b9e6..4bf3b41b 100644 --- a/thirdparty/CGAL/include/CGAL/Circular_kernel_converter.h +++ b/thirdparty/CGAL/include/CGAL/Circular_kernel_converter.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Circular_kernel_intersections.h b/thirdparty/CGAL/include/CGAL/Circular_kernel_intersections.h index b2a6bf51..3093da6e 100644 --- a/thirdparty/CGAL/include/CGAL/Circular_kernel_intersections.h +++ b/thirdparty/CGAL/include/CGAL/Circular_kernel_intersections.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Circular_kernel_type_equality_wrapper.h b/thirdparty/CGAL/include/CGAL/Circular_kernel_type_equality_wrapper.h index 86dcaf3d..6673e419 100644 --- a/thirdparty/CGAL/include/CGAL/Circular_kernel_type_equality_wrapper.h +++ b/thirdparty/CGAL/include/CGAL/Circular_kernel_type_equality_wrapper.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Circulator/Circulator_adapters.h b/thirdparty/CGAL/include/CGAL/Circulator/Circulator_adapters.h index 80b056e1..d0cdd430 100644 --- a/thirdparty/CGAL/include/CGAL/Circulator/Circulator_adapters.h +++ b/thirdparty/CGAL/include/CGAL/Circulator/Circulator_adapters.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Circulator/Circulator_concepts.h b/thirdparty/CGAL/include/CGAL/Circulator/Circulator_concepts.h index f0666520..53465e15 100644 --- a/thirdparty/CGAL/include/CGAL/Circulator/Circulator_concepts.h +++ b/thirdparty/CGAL/include/CGAL/Circulator/Circulator_concepts.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Circulator/Safe_circulator_from_iterator.h b/thirdparty/CGAL/include/CGAL/Circulator/Safe_circulator_from_iterator.h index a74989d4..31aab601 100644 --- a/thirdparty/CGAL/include/CGAL/Circulator/Safe_circulator_from_iterator.h +++ b/thirdparty/CGAL/include/CGAL/Circulator/Safe_circulator_from_iterator.h @@ -8,7 +8,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Circulator_identity.h b/thirdparty/CGAL/include/CGAL/Circulator_identity.h index 6928f479..39454e7c 100644 --- a/thirdparty/CGAL/include/CGAL/Circulator_identity.h +++ b/thirdparty/CGAL/include/CGAL/Circulator_identity.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Circulator_on_node.h b/thirdparty/CGAL/include/CGAL/Circulator_on_node.h index 67190631..54da4684 100644 --- a/thirdparty/CGAL/include/CGAL/Circulator_on_node.h +++ b/thirdparty/CGAL/include/CGAL/Circulator_on_node.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Circulator_project.h b/thirdparty/CGAL/include/CGAL/Circulator_project.h index 6747f853..eb4d87e6 100644 --- a/thirdparty/CGAL/include/CGAL/Circulator_project.h +++ b/thirdparty/CGAL/include/CGAL/Circulator_project.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Classification.h b/thirdparty/CGAL/include/CGAL/Classification.h index 0935aaae..3216bdb0 100644 --- a/thirdparty/CGAL/include/CGAL/Classification.h +++ b/thirdparty/CGAL/include/CGAL/Classification.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Classification/Cluster.h b/thirdparty/CGAL/include/CGAL/Classification/Cluster.h index a4ad7349..37a097df 100644 --- a/thirdparty/CGAL/include/CGAL/Classification/Cluster.h +++ b/thirdparty/CGAL/include/CGAL/Classification/Cluster.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Classification/ETHZ/Random_forest_classifier.h b/thirdparty/CGAL/include/CGAL/Classification/ETHZ/Random_forest_classifier.h index 544f63a2..cfdcaa5c 100644 --- a/thirdparty/CGAL/include/CGAL/Classification/ETHZ/Random_forest_classifier.h +++ b/thirdparty/CGAL/include/CGAL/Classification/ETHZ/Random_forest_classifier.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Classification/ETHZ/internal/dataview.h b/thirdparty/CGAL/include/CGAL/Classification/ETHZ/internal/dataview.h index 53f107c3..96e6f70c 100644 --- a/thirdparty/CGAL/include/CGAL/Classification/ETHZ/internal/dataview.h +++ b/thirdparty/CGAL/include/CGAL/Classification/ETHZ/internal/dataview.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Classification/ETHZ/internal/random-forest/common-libraries.hpp b/thirdparty/CGAL/include/CGAL/Classification/ETHZ/internal/random-forest/common-libraries.hpp index 7769210c..13f7b113 100644 --- a/thirdparty/CGAL/include/CGAL/Classification/ETHZ/internal/random-forest/common-libraries.hpp +++ b/thirdparty/CGAL/include/CGAL/Classification/ETHZ/internal/random-forest/common-libraries.hpp @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ inline void init_feature_class_data(FeatureClassDataFloat& /*data*/, int /*n_cla { // 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 --git a/thirdparty/CGAL/include/CGAL/Classification/ETHZ/internal/random-forest/forest.hpp b/thirdparty/CGAL/include/CGAL/Classification/ETHZ/internal/random-forest/forest.hpp index b246349c..8c12bbed 100644 --- a/thirdparty/CGAL/include/CGAL/Classification/ETHZ/internal/random-forest/forest.hpp +++ b/thirdparty/CGAL/include/CGAL/Classification/ETHZ/internal/random-forest/forest.hpp @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Classification/ETHZ/internal/random-forest/node-gini.hpp b/thirdparty/CGAL/include/CGAL/Classification/ETHZ/internal/random-forest/node-gini.hpp index 21d23360..a810a404 100644 --- a/thirdparty/CGAL/include/CGAL/Classification/ETHZ/internal/random-forest/node-gini.hpp +++ b/thirdparty/CGAL/include/CGAL/Classification/ETHZ/internal/random-forest/node-gini.hpp @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Classification/ETHZ/internal/random-forest/node.hpp b/thirdparty/CGAL/include/CGAL/Classification/ETHZ/internal/random-forest/node.hpp index 1ed98bc6..e974e481 100644 --- a/thirdparty/CGAL/include/CGAL/Classification/ETHZ/internal/random-forest/node.hpp +++ b/thirdparty/CGAL/include/CGAL/Classification/ETHZ/internal/random-forest/node.hpp @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Classification/ETHZ/internal/random-forest/tree.hpp b/thirdparty/CGAL/include/CGAL/Classification/ETHZ/internal/random-forest/tree.hpp index 5643ed8e..a960a685 100644 --- a/thirdparty/CGAL/include/CGAL/Classification/ETHZ/internal/random-forest/tree.hpp +++ b/thirdparty/CGAL/include/CGAL/Classification/ETHZ/internal/random-forest/tree.hpp @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Classification/Evaluation.h b/thirdparty/CGAL/include/CGAL/Classification/Evaluation.h index b433ac3f..b7b67283 100644 --- a/thirdparty/CGAL/include/CGAL/Classification/Evaluation.h +++ b/thirdparty/CGAL/include/CGAL/Classification/Evaluation.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Classification/Feature/Cluster_mean_of_feature.h b/thirdparty/CGAL/include/CGAL/Classification/Feature/Cluster_mean_of_feature.h index 2e674f5c..13e9e0b5 100644 --- a/thirdparty/CGAL/include/CGAL/Classification/Feature/Cluster_mean_of_feature.h +++ b/thirdparty/CGAL/include/CGAL/Classification/Feature/Cluster_mean_of_feature.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Classification/Feature/Cluster_size.h b/thirdparty/CGAL/include/CGAL/Classification/Feature/Cluster_size.h index 34845035..a10f1063 100644 --- a/thirdparty/CGAL/include/CGAL/Classification/Feature/Cluster_size.h +++ b/thirdparty/CGAL/include/CGAL/Classification/Feature/Cluster_size.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Classification/Feature/Cluster_variance_of_feature.h b/thirdparty/CGAL/include/CGAL/Classification/Feature/Cluster_variance_of_feature.h index e0dfeaca..e1318927 100644 --- a/thirdparty/CGAL/include/CGAL/Classification/Feature/Cluster_variance_of_feature.h +++ b/thirdparty/CGAL/include/CGAL/Classification/Feature/Cluster_variance_of_feature.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Classification/Feature/Cluster_vertical_extent.h b/thirdparty/CGAL/include/CGAL/Classification/Feature/Cluster_vertical_extent.h index c79c3604..0b55e1d4 100644 --- a/thirdparty/CGAL/include/CGAL/Classification/Feature/Cluster_vertical_extent.h +++ b/thirdparty/CGAL/include/CGAL/Classification/Feature/Cluster_vertical_extent.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Classification/Feature/Color_channel.h b/thirdparty/CGAL/include/CGAL/Classification/Feature/Color_channel.h index 5930ca36..09ae1dd5 100644 --- a/thirdparty/CGAL/include/CGAL/Classification/Feature/Color_channel.h +++ b/thirdparty/CGAL/include/CGAL/Classification/Feature/Color_channel.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Classification/Feature/Distance_to_plane.h b/thirdparty/CGAL/include/CGAL/Classification/Feature/Distance_to_plane.h index 23957d04..85f95061 100644 --- a/thirdparty/CGAL/include/CGAL/Classification/Feature/Distance_to_plane.h +++ b/thirdparty/CGAL/include/CGAL/Classification/Feature/Distance_to_plane.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Classification/Feature/Echo_scatter.h b/thirdparty/CGAL/include/CGAL/Classification/Feature/Echo_scatter.h index f05466fd..92e1df13 100644 --- a/thirdparty/CGAL/include/CGAL/Classification/Feature/Echo_scatter.h +++ b/thirdparty/CGAL/include/CGAL/Classification/Feature/Echo_scatter.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Classification/Feature/Eigenvalue.h b/thirdparty/CGAL/include/CGAL/Classification/Feature/Eigenvalue.h index 6d5a3a6d..a7e29cda 100644 --- a/thirdparty/CGAL/include/CGAL/Classification/Feature/Eigenvalue.h +++ b/thirdparty/CGAL/include/CGAL/Classification/Feature/Eigenvalue.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Classification/Feature/Elevation.h b/thirdparty/CGAL/include/CGAL/Classification/Feature/Elevation.h index 30200410..b6c63554 100644 --- a/thirdparty/CGAL/include/CGAL/Classification/Feature/Elevation.h +++ b/thirdparty/CGAL/include/CGAL/Classification/Feature/Elevation.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Classification/Feature/Gradient_of_feature.h b/thirdparty/CGAL/include/CGAL/Classification/Feature/Gradient_of_feature.h index 35e1fb8e..b8263334 100644 --- a/thirdparty/CGAL/include/CGAL/Classification/Feature/Gradient_of_feature.h +++ b/thirdparty/CGAL/include/CGAL/Classification/Feature/Gradient_of_feature.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Classification/Feature/Height_above.h b/thirdparty/CGAL/include/CGAL/Classification/Feature/Height_above.h index e56129f2..c9d359cf 100644 --- a/thirdparty/CGAL/include/CGAL/Classification/Feature/Height_above.h +++ b/thirdparty/CGAL/include/CGAL/Classification/Feature/Height_above.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Classification/Feature/Height_below.h b/thirdparty/CGAL/include/CGAL/Classification/Feature/Height_below.h index d39fe21a..ad8ee384 100644 --- a/thirdparty/CGAL/include/CGAL/Classification/Feature/Height_below.h +++ b/thirdparty/CGAL/include/CGAL/Classification/Feature/Height_below.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Classification/Feature/Simple_feature.h b/thirdparty/CGAL/include/CGAL/Classification/Feature/Simple_feature.h index dec6ee97..7eb4d20d 100644 --- a/thirdparty/CGAL/include/CGAL/Classification/Feature/Simple_feature.h +++ b/thirdparty/CGAL/include/CGAL/Classification/Feature/Simple_feature.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Classification/Feature/Vertical_dispersion.h b/thirdparty/CGAL/include/CGAL/Classification/Feature/Vertical_dispersion.h index 1459ae7d..8e3848cd 100644 --- a/thirdparty/CGAL/include/CGAL/Classification/Feature/Vertical_dispersion.h +++ b/thirdparty/CGAL/include/CGAL/Classification/Feature/Vertical_dispersion.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Classification/Feature/Vertical_range.h b/thirdparty/CGAL/include/CGAL/Classification/Feature/Vertical_range.h index 317d1b33..729abcc4 100644 --- a/thirdparty/CGAL/include/CGAL/Classification/Feature/Vertical_range.h +++ b/thirdparty/CGAL/include/CGAL/Classification/Feature/Vertical_range.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Classification/Feature/Verticality.h b/thirdparty/CGAL/include/CGAL/Classification/Feature/Verticality.h index 76fe6b5f..5b5833bd 100644 --- a/thirdparty/CGAL/include/CGAL/Classification/Feature/Verticality.h +++ b/thirdparty/CGAL/include/CGAL/Classification/Feature/Verticality.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Classification/Feature_base.h b/thirdparty/CGAL/include/CGAL/Classification/Feature_base.h index f6ae6ca9..5323da65 100644 --- a/thirdparty/CGAL/include/CGAL/Classification/Feature_base.h +++ b/thirdparty/CGAL/include/CGAL/Classification/Feature_base.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Classification/Feature_set.h b/thirdparty/CGAL/include/CGAL/Classification/Feature_set.h index a0c2a2e6..6037712a 100644 --- a/thirdparty/CGAL/include/CGAL/Classification/Feature_set.h +++ b/thirdparty/CGAL/include/CGAL/Classification/Feature_set.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Classification/Image.h b/thirdparty/CGAL/include/CGAL/Classification/Image.h index 56407f0c..67522062 100644 --- a/thirdparty/CGAL/include/CGAL/Classification/Image.h +++ b/thirdparty/CGAL/include/CGAL/Classification/Image.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Classification/Label.h b/thirdparty/CGAL/include/CGAL/Classification/Label.h index 4ee51937..5160a76f 100644 --- a/thirdparty/CGAL/include/CGAL/Classification/Label.h +++ b/thirdparty/CGAL/include/CGAL/Classification/Label.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Classification/Label_set.h b/thirdparty/CGAL/include/CGAL/Classification/Label_set.h index 07cc919f..9715e234 100644 --- a/thirdparty/CGAL/include/CGAL/Classification/Label_set.h +++ b/thirdparty/CGAL/include/CGAL/Classification/Label_set.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Classification/Local_eigen_analysis.h b/thirdparty/CGAL/include/CGAL/Classification/Local_eigen_analysis.h index 7fad30a1..0257094a 100644 --- a/thirdparty/CGAL/include/CGAL/Classification/Local_eigen_analysis.h +++ b/thirdparty/CGAL/include/CGAL/Classification/Local_eigen_analysis.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Classification/Mesh_feature_generator.h b/thirdparty/CGAL/include/CGAL/Classification/Mesh_feature_generator.h index 01ffab29..c124a2b2 100644 --- a/thirdparty/CGAL/include/CGAL/Classification/Mesh_feature_generator.h +++ b/thirdparty/CGAL/include/CGAL/Classification/Mesh_feature_generator.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Classification/Mesh_neighborhood.h b/thirdparty/CGAL/include/CGAL/Classification/Mesh_neighborhood.h index 8b82904e..473620bb 100644 --- a/thirdparty/CGAL/include/CGAL/Classification/Mesh_neighborhood.h +++ b/thirdparty/CGAL/include/CGAL/Classification/Mesh_neighborhood.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Classification/OpenCV/Random_forest_classifier.h b/thirdparty/CGAL/include/CGAL/Classification/OpenCV/Random_forest_classifier.h index f32d338f..521a0d77 100644 --- a/thirdparty/CGAL/include/CGAL/Classification/OpenCV/Random_forest_classifier.h +++ b/thirdparty/CGAL/include/CGAL/Classification/OpenCV/Random_forest_classifier.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Classification/Planimetric_grid.h b/thirdparty/CGAL/include/CGAL/Classification/Planimetric_grid.h index 217e7ffb..99f3ebf0 100644 --- a/thirdparty/CGAL/include/CGAL/Classification/Planimetric_grid.h +++ b/thirdparty/CGAL/include/CGAL/Classification/Planimetric_grid.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Classification/Point_set_feature_generator.h b/thirdparty/CGAL/include/CGAL/Classification/Point_set_feature_generator.h index 96689eef..8e3defc9 100644 --- a/thirdparty/CGAL/include/CGAL/Classification/Point_set_feature_generator.h +++ b/thirdparty/CGAL/include/CGAL/Classification/Point_set_feature_generator.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Classification/Point_set_neighborhood.h b/thirdparty/CGAL/include/CGAL/Classification/Point_set_neighborhood.h index 10a73a4f..a26f249f 100644 --- a/thirdparty/CGAL/include/CGAL/Classification/Point_set_neighborhood.h +++ b/thirdparty/CGAL/include/CGAL/Classification/Point_set_neighborhood.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Classification/Sum_of_weighted_features_classifier.h b/thirdparty/CGAL/include/CGAL/Classification/Sum_of_weighted_features_classifier.h index e1989c59..a8b15a43 100644 --- a/thirdparty/CGAL/include/CGAL/Classification/Sum_of_weighted_features_classifier.h +++ b/thirdparty/CGAL/include/CGAL/Classification/Sum_of_weighted_features_classifier.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Classification/classify.h b/thirdparty/CGAL/include/CGAL/Classification/classify.h index ce579986..676951f1 100644 --- a/thirdparty/CGAL/include/CGAL/Classification/classify.h +++ b/thirdparty/CGAL/include/CGAL/Classification/classify.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Classification/compressed_float.h b/thirdparty/CGAL/include/CGAL/Classification/compressed_float.h index bb2fa75e..2b5ddb65 100644 --- a/thirdparty/CGAL/include/CGAL/Classification/compressed_float.h +++ b/thirdparty/CGAL/include/CGAL/Classification/compressed_float.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Classification/internal/verbosity.h b/thirdparty/CGAL/include/CGAL/Classification/internal/verbosity.h index 4681de7a..3fd7e19d 100644 --- a/thirdparty/CGAL/include/CGAL/Classification/internal/verbosity.h +++ b/thirdparty/CGAL/include/CGAL/Classification/internal/verbosity.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Classification/property_maps.h b/thirdparty/CGAL/include/CGAL/Classification/property_maps.h index 5ef15258..eaccd883 100644 --- a/thirdparty/CGAL/include/CGAL/Classification/property_maps.h +++ b/thirdparty/CGAL/include/CGAL/Classification/property_maps.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Coercion_traits.h b/thirdparty/CGAL/include/CGAL/Coercion_traits.h index 4b7f69d2..d8558f81 100644 --- a/thirdparty/CGAL/include/CGAL/Coercion_traits.h +++ b/thirdparty/CGAL/include/CGAL/Coercion_traits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Combination_enumerator.h b/thirdparty/CGAL/include/CGAL/Combination_enumerator.h index 1093f825..25507fc8 100644 --- a/thirdparty/CGAL/include/CGAL/Combination_enumerator.h +++ b/thirdparty/CGAL/include/CGAL/Combination_enumerator.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Combinatorial_map.h b/thirdparty/CGAL/include/CGAL/Combinatorial_map.h index 4e41ff2b..021ea9c7 100644 --- a/thirdparty/CGAL/include/CGAL/Combinatorial_map.h +++ b/thirdparty/CGAL/include/CGAL/Combinatorial_map.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Combinatorial_map/include/CGAL/Combinatorial_map.h $ -// $Id: Combinatorial_map.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.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 @@ namespace CGAL { */ 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 @@ namespace CGAL { 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 @@ namespace CGAL { 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 @@ namespace CGAL { 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 @@ namespace CGAL { 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 @@ namespace CGAL { /** 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 @@ namespace CGAL { // 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 @@ namespace CGAL { } } - 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 @@ namespace CGAL { } } - CGAL_assertion (is_valid()); + CGAL_expensive_assertion(is_valid()); } /** Clear the combinatorial map. Remove all darts and all attributes. @@ -2626,7 +2643,7 @@ namespace CGAL { 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]])); } } @@ -3376,7 +3393,7 @@ namespace CGAL { CGAL_assertion( is_without_boundary(dimension) ); CGAL::Unique_hash_map< Dart_handle, Dart_handle, - typename Self::Hash_function > dual; + typename Self::Hash_function > dual(Dart_handle(), darts().size()); Dart_handle d, d2, res = amap.null_handle; // We clear amap. TODO return a new amap ? @@ -3423,8 +3440,6 @@ namespace CGAL { } } - // CGAL_postcondition(amap2.is_valid()); - if ( res==amap.null_handle ) res = amap.darts().begin(); return res; } @@ -3457,10 +3472,6 @@ namespace CGAL { 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 @@ namespace CGAL { 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 @@ namespace CGAL { } } - 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 @@ namespace CGAL { } // 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 @@ namespace CGAL { 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 @@ namespace CGAL { Combinatorial_map(const Self & amap) : Base(amap) {} + Combinatorial_map(Self && amap) : Base(amap) + {} + template Combinatorial_map(const Combinatorial_map_base& diff --git a/thirdparty/CGAL/include/CGAL/Combinatorial_map/internal/Combinatorial_map_copy_functors.h b/thirdparty/CGAL/include/CGAL/Combinatorial_map/internal/Combinatorial_map_copy_functors.h index 207046d3..d20d66f2 100644 --- a/thirdparty/CGAL/include/CGAL/Combinatorial_map/internal/Combinatorial_map_copy_functors.h +++ b/thirdparty/CGAL/include/CGAL/Combinatorial_map/internal/Combinatorial_map_copy_functors.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Combinatorial_map/internal/Combinatorial_map_group_functors.h b/thirdparty/CGAL/include/CGAL/Combinatorial_map/internal/Combinatorial_map_group_functors.h index 1245403a..79a8ea2a 100644 --- a/thirdparty/CGAL/include/CGAL/Combinatorial_map/internal/Combinatorial_map_group_functors.h +++ b/thirdparty/CGAL/include/CGAL/Combinatorial_map/internal/Combinatorial_map_group_functors.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Combinatorial_map/internal/Combinatorial_map_internal_functors.h b/thirdparty/CGAL/include/CGAL/Combinatorial_map/internal/Combinatorial_map_internal_functors.h index 9a606db3..a35a8312 100644 --- a/thirdparty/CGAL/include/CGAL/Combinatorial_map/internal/Combinatorial_map_internal_functors.h +++ b/thirdparty/CGAL/include/CGAL/Combinatorial_map/internal/Combinatorial_map_internal_functors.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Combinatorial_map/internal/Combinatorial_map_sewable.h b/thirdparty/CGAL/include/CGAL/Combinatorial_map/internal/Combinatorial_map_sewable.h index 531b6e40..f14dd7cd 100644 --- a/thirdparty/CGAL/include/CGAL/Combinatorial_map/internal/Combinatorial_map_sewable.h +++ b/thirdparty/CGAL/include/CGAL/Combinatorial_map/internal/Combinatorial_map_sewable.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Combinatorial_map/internal/Combinatorial_map_utility.h b/thirdparty/CGAL/include/CGAL/Combinatorial_map/internal/Combinatorial_map_utility.h index 76c0aed5..f1932a96 100644 --- a/thirdparty/CGAL/include/CGAL/Combinatorial_map/internal/Combinatorial_map_utility.h +++ b/thirdparty/CGAL/include/CGAL/Combinatorial_map/internal/Combinatorial_map_utility.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Combinatorial_map_basic_operations.h b/thirdparty/CGAL/include/CGAL/Combinatorial_map_basic_operations.h index 3eb86e0c..f4db549a 100644 --- a/thirdparty/CGAL/include/CGAL/Combinatorial_map_basic_operations.h +++ b/thirdparty/CGAL/include/CGAL/Combinatorial_map_basic_operations.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Combinatorial_map_constructors.h b/thirdparty/CGAL/include/CGAL/Combinatorial_map_constructors.h deleted file mode 100644 index fc456ea8..00000000 --- a/thirdparty/CGAL/include/CGAL/Combinatorial_map_constructors.h +++ /dev/null @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/Combinatorial_map_functors.h b/thirdparty/CGAL/include/CGAL/Combinatorial_map_functors.h index a550edd7..d9885e65 100644 --- a/thirdparty/CGAL/include/CGAL/Combinatorial_map_functors.h +++ b/thirdparty/CGAL/include/CGAL/Combinatorial_map_functors.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ struct Test_is_valid_attribute_functor 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 --git a/thirdparty/CGAL/include/CGAL/Combinatorial_map_fwd.h b/thirdparty/CGAL/include/CGAL/Combinatorial_map_fwd.h index 4fa0316e..f698355b 100644 --- a/thirdparty/CGAL/include/CGAL/Combinatorial_map_fwd.h +++ b/thirdparty/CGAL/include/CGAL/Combinatorial_map_fwd.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Combinatorial_map_insertions.h b/thirdparty/CGAL/include/CGAL/Combinatorial_map_insertions.h deleted file mode 100644 index 1a79de8b..00000000 --- a/thirdparty/CGAL/include/CGAL/Combinatorial_map_insertions.h +++ /dev/null @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/Combinatorial_map_iterators_base.h b/thirdparty/CGAL/include/CGAL/Combinatorial_map_iterators_base.h index b0d6f0af..2f24c602 100644 --- a/thirdparty/CGAL/include/CGAL/Combinatorial_map_iterators_base.h +++ b/thirdparty/CGAL/include/CGAL/Combinatorial_map_iterators_base.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Combinatorial_map_min_items.h b/thirdparty/CGAL/include/CGAL/Combinatorial_map_min_items.h deleted file mode 100644 index 802d5938..00000000 --- a/thirdparty/CGAL/include/CGAL/Combinatorial_map_min_items.h +++ /dev/null @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/Combinatorial_map_operations.h b/thirdparty/CGAL/include/CGAL/Combinatorial_map_operations.h index b15a2fe3..df08c04c 100644 --- a/thirdparty/CGAL/include/CGAL/Combinatorial_map_operations.h +++ b/thirdparty/CGAL/include/CGAL/Combinatorial_map_operations.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace CGAL 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 @@ namespace CGAL 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 --git a/thirdparty/CGAL/include/CGAL/Combinatorial_map_save_load.h b/thirdparty/CGAL/include/CGAL/Combinatorial_map_save_load.h index 2117a603..808a2bef 100644 --- a/thirdparty/CGAL/include/CGAL/Combinatorial_map_save_load.h +++ b/thirdparty/CGAL/include/CGAL/Combinatorial_map_save_load.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace CGAL { 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 @@ namespace CGAL { 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 @@ namespace CGAL { 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 @@ namespace CGAL { 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 @@ namespace CGAL { 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 @@ namespace CGAL { 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 @@ namespace CGAL { 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 @@ namespace CGAL { 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 @@ namespace CGAL { { 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 @@ namespace CGAL { 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 @@ namespace CGAL { 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 @@ namespace CGAL { f(tree); // map dart => number - std::map myDarts; + std::unordered_map myDarts; // Save darts ptree pt_darts=cmap_save_darts(amap, myDarts); diff --git a/thirdparty/CGAL/include/CGAL/Combinatorial_map_storages.h b/thirdparty/CGAL/include/CGAL/Combinatorial_map_storages.h index 78913fcb..5635be7f 100644 --- a/thirdparty/CGAL/include/CGAL/Combinatorial_map_storages.h +++ b/thirdparty/CGAL/include/CGAL/Combinatorial_map_storages.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace CGAL { 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 @@ namespace CGAL { 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 --git a/thirdparty/CGAL/include/CGAL/Compact_container.h b/thirdparty/CGAL/include/CGAL/Compact_container.h index f85b710b..94ff02e0 100644 --- a/thirdparty/CGAL/include/CGAL/Compact_container.h +++ b/thirdparty/CGAL/include/CGAL/Compact_container.h @@ -4,8 +4,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Compact_container // 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 @@ namespace internal { 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 @@ namespace internal { 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 @@ namespace internal { 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 @@ namespace internal { 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 --git a/thirdparty/CGAL/include/CGAL/Compact_mesh_cell_base_3.h b/thirdparty/CGAL/include/CGAL/Compact_mesh_cell_base_3.h index 3b3f9ead..781f6aeb 100644 --- a/thirdparty/CGAL/include/CGAL/Compact_mesh_cell_base_3.h +++ b/thirdparty/CGAL/include/CGAL/Compact_mesh_cell_base_3.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Compare_handles_with_or_without_timestamps.h b/thirdparty/CGAL/include/CGAL/Compare_handles_with_or_without_timestamps.h index 5ef4a8bf..df0819e0 100644 --- a/thirdparty/CGAL/include/CGAL/Compare_handles_with_or_without_timestamps.h +++ b/thirdparty/CGAL/include/CGAL/Compare_handles_with_or_without_timestamps.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Complex_2_in_triangulation_3.h b/thirdparty/CGAL/include/CGAL/Complex_2_in_triangulation_3.h index e987339a..9aab0db3 100644 --- a/thirdparty/CGAL/include/CGAL/Complex_2_in_triangulation_3.h +++ b/thirdparty/CGAL/include/CGAL/Complex_2_in_triangulation_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Complex_2_in_triangulation_cell_base_3.h b/thirdparty/CGAL/include/CGAL/Complex_2_in_triangulation_cell_base_3.h index b4fd1443..20dff02e 100644 --- a/thirdparty/CGAL/include/CGAL/Complex_2_in_triangulation_cell_base_3.h +++ b/thirdparty/CGAL/include/CGAL/Complex_2_in_triangulation_cell_base_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Complex_2_in_triangulation_vertex_base_3.h b/thirdparty/CGAL/include/CGAL/Complex_2_in_triangulation_vertex_base_3.h index 2486647a..a4290753 100644 --- a/thirdparty/CGAL/include/CGAL/Complex_2_in_triangulation_vertex_base_3.h +++ b/thirdparty/CGAL/include/CGAL/Complex_2_in_triangulation_vertex_base_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Complexity_tags.h b/thirdparty/CGAL/include/CGAL/Complexity_tags.h index f2094020..8a9f402a 100644 --- a/thirdparty/CGAL/include/CGAL/Complexity_tags.h +++ b/thirdparty/CGAL/include/CGAL/Complexity_tags.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Compute_anchor_3.h b/thirdparty/CGAL/include/CGAL/Compute_anchor_3.h index b4d4d7ed..fddcf4ed 100644 --- a/thirdparty/CGAL/include/CGAL/Compute_anchor_3.h +++ b/thirdparty/CGAL/include/CGAL/Compute_anchor_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Compute_cone_boundaries_2.h b/thirdparty/CGAL/include/CGAL/Compute_cone_boundaries_2.h index 9e7ca35d..a37f53de 100644 --- a/thirdparty/CGAL/include/CGAL/Compute_cone_boundaries_2.h +++ b/thirdparty/CGAL/include/CGAL/Compute_cone_boundaries_2.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Compute_cone_boundaries_2 +#include #include #include #include @@ -481,7 +482,7 @@ class Concurrent_compact_container // 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 --git a/thirdparty/CGAL/include/CGAL/Cone_spanners_2/Less_by_direction_2.h b/thirdparty/CGAL/include/CGAL/Cone_spanners_2/Less_by_direction_2.h index cb81a02b..88d62060 100644 --- a/thirdparty/CGAL/include/CGAL/Cone_spanners_2/Less_by_direction_2.h +++ b/thirdparty/CGAL/include/CGAL/Cone_spanners_2/Less_by_direction_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Cone_spanners_2/Plane_scan_tree.h b/thirdparty/CGAL/include/CGAL/Cone_spanners_2/Plane_scan_tree.h index 7587ac4e..1ad58bda 100644 --- a/thirdparty/CGAL/include/CGAL/Cone_spanners_2/Plane_scan_tree.h +++ b/thirdparty/CGAL/include/CGAL/Cone_spanners_2/Plane_scan_tree.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Cone_spanners_2/Plane_scan_tree_impl.h b/thirdparty/CGAL/include/CGAL/Cone_spanners_2/Plane_scan_tree_impl.h index 57ec1f45..c0dc3910 100644 --- a/thirdparty/CGAL/include/CGAL/Cone_spanners_2/Plane_scan_tree_impl.h +++ b/thirdparty/CGAL/include/CGAL/Cone_spanners_2/Plane_scan_tree_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Cone_spanners_enum_2.h b/thirdparty/CGAL/include/CGAL/Cone_spanners_enum_2.h index 1b3abc75..aa2dfc84 100644 --- a/thirdparty/CGAL/include/CGAL/Cone_spanners_enum_2.h +++ b/thirdparty/CGAL/include/CGAL/Cone_spanners_enum_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Conic_2.h b/thirdparty/CGAL/include/CGAL/Conic_2.h index bb10105f..0f0a193f 100644 --- a/thirdparty/CGAL/include/CGAL/Conic_2.h +++ b/thirdparty/CGAL/include/CGAL/Conic_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Constrained_Delaunay_triangulation_2.h b/thirdparty/CGAL/include/CGAL/Constrained_Delaunay_triangulation_2.h index 4478c7e4..1ac2cd12 100644 --- a/thirdparty/CGAL/include/CGAL/Constrained_Delaunay_triangulation_2.h +++ b/thirdparty/CGAL/include/CGAL/Constrained_Delaunay_triangulation_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Constrained_Delaunay_triangulation_face_base_2.h b/thirdparty/CGAL/include/CGAL/Constrained_Delaunay_triangulation_face_base_2.h index 8b00f113..9a983085 100644 --- a/thirdparty/CGAL/include/CGAL/Constrained_Delaunay_triangulation_face_base_2.h +++ b/thirdparty/CGAL/include/CGAL/Constrained_Delaunay_triangulation_face_base_2.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Constrained_triangulation_2.h b/thirdparty/CGAL/include/CGAL/Constrained_triangulation_2.h index 1de240d9..23fa3e98 100644 --- a/thirdparty/CGAL/include/CGAL/Constrained_triangulation_2.h +++ b/thirdparty/CGAL/include/CGAL/Constrained_triangulation_2.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ insert_constraint(Vertex_handle vaa, Vertex_handle vbb, OutputIterator out) // 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 @@ insert_constraint(Vertex_handle vaa, Vertex_handle vbb, OutputIterator out) 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 @@ insert(const Point& a, Locate_type lt, Face_handle loc, int li) } 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 @@ insert_constraint(Vertex_handle vaa, Vertex_handle vbb) // 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 @@ Constrained_triangulation_2:: 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 @@ intersect(Face_handle f, int i, 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 @@ intersect(Face_handle f, int i, 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 @@ intersect(Face_handle f, int i, << " , #" << 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 @@ intersection(const Gt& gt, #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 @@ intersection(const Gt& gt, 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 @@ compute_intersection(const Gt& gt, 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 @@ compute_intersection(const Gt& gt, 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 @@ limit_intersection(const Gt& gt, 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 --git a/thirdparty/CGAL/include/CGAL/Constrained_triangulation_face_base_2.h b/thirdparty/CGAL/include/CGAL/Constrained_triangulation_face_base_2.h index 2474f8ce..4f9b36bc 100644 --- a/thirdparty/CGAL/include/CGAL/Constrained_triangulation_face_base_2.h +++ b/thirdparty/CGAL/include/CGAL/Constrained_triangulation_face_base_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Constrained_triangulation_plus_2.h b/thirdparty/CGAL/include/CGAL/Constrained_triangulation_plus_2.h index cbb82035..bb58d0c1 100644 --- a/thirdparty/CGAL/include/CGAL/Constrained_triangulation_plus_2.h +++ b/thirdparty/CGAL/include/CGAL/Constrained_triangulation_plus_2.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Triangulation_2/include/CGAL/Constrained_triangulation_plus_2.h $ -// $Id: Constrained_triangulation_plus_2.h 393ae7d 2021-05-12T15:03:53+02:00 Maxime Gimeno +// $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 // // @@ -633,7 +633,7 @@ Default::Get< Tr_, Constrained_Delaunay_triangulation_2< file_output(std::ostream& os) const { os << static_cast(*this); - Unique_hash_map V; + Unique_hash_map V(0, number_of_vertices()); int inum = 0; for(Vertex_iterator vit = vertices_begin(); vit != vertices_end() ; ++vit){ if(! is_infinite(vit)){ @@ -1186,7 +1186,8 @@ intersect(Face_handle f, int i, << " , #" << vd->time_stamp() << "= " << vd->point() << " , Exact_intersections_tag)\n"; #endif // CGAL_CDT_2_DEBUG_INTERSECTIONS - Point pi; + Point pi(ORIGIN); // initialize although we are sure that it will be + // set by the intersection, but to quiet a warning Intersection_tag itag = Intersection_tag(); CGAL_triangulation_assertion_code( bool ok = ) intersection(geom_traits(), pa, pb, pc, pd, pi, itag ); @@ -1207,7 +1208,7 @@ Constrained_triangulation_plus_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)); @@ -1226,32 +1227,8 @@ intersect(Face_handle f, int i, << " , 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 --git a/thirdparty/CGAL/include/CGAL/Constrained_voronoi_diagram_2.h b/thirdparty/CGAL/include/CGAL/Constrained_voronoi_diagram_2.h index 27e82952..de406d60 100644 --- a/thirdparty/CGAL/include/CGAL/Constrained_voronoi_diagram_2.h +++ b/thirdparty/CGAL/include/CGAL/Constrained_voronoi_diagram_2.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Construct_theta_graph_2.h b/thirdparty/CGAL/include/CGAL/Construct_theta_graph_2.h index 9e978759..d43432e5 100644 --- a/thirdparty/CGAL/include/CGAL/Construct_theta_graph_2.h +++ b/thirdparty/CGAL/include/CGAL/Construct_theta_graph_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Construct_yao_graph_2.h b/thirdparty/CGAL/include/CGAL/Construct_yao_graph_2.h index 846288bf..e485ff44 100644 --- a/thirdparty/CGAL/include/CGAL/Construct_yao_graph_2.h +++ b/thirdparty/CGAL/include/CGAL/Construct_yao_graph_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Container_helper.h b/thirdparty/CGAL/include/CGAL/Container_helper.h index e141ab24..feb92507 100644 --- a/thirdparty/CGAL/include/CGAL/Container_helper.h +++ b/thirdparty/CGAL/include/CGAL/Container_helper.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Convex_decomposition_3/Edge_sorter.h b/thirdparty/CGAL/include/CGAL/Convex_decomposition_3/Edge_sorter.h index d6eb2c85..874664bd 100644 --- a/thirdparty/CGAL/include/CGAL/Convex_decomposition_3/Edge_sorter.h +++ b/thirdparty/CGAL/include/CGAL/Convex_decomposition_3/Edge_sorter.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Convex_decomposition_3/External_structure_builder.h b/thirdparty/CGAL/include/CGAL/Convex_decomposition_3/External_structure_builder.h index d0c3bb00..84e6413d 100644 --- a/thirdparty/CGAL/include/CGAL/Convex_decomposition_3/External_structure_builder.h +++ b/thirdparty/CGAL/include/CGAL/Convex_decomposition_3/External_structure_builder.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Convex_decomposition_3/Insert_vertex_into_edge.h b/thirdparty/CGAL/include/CGAL/Convex_decomposition_3/Insert_vertex_into_edge.h index 5b874d90..6fdf4ab9 100644 --- a/thirdparty/CGAL/include/CGAL/Convex_decomposition_3/Insert_vertex_into_edge.h +++ b/thirdparty/CGAL/include/CGAL/Convex_decomposition_3/Insert_vertex_into_edge.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Convex_decomposition_3/Ray_hit_generator.h b/thirdparty/CGAL/include/CGAL/Convex_decomposition_3/Ray_hit_generator.h index 1f6fd64c..b3f6173c 100644 --- a/thirdparty/CGAL/include/CGAL/Convex_decomposition_3/Ray_hit_generator.h +++ b/thirdparty/CGAL/include/CGAL/Convex_decomposition_3/Ray_hit_generator.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace CGAL { 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 @@ class Ray_hit_generator : public Modifier_base { 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 @@ class Ray_hit_generator : public Modifier_base { 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 @@ class Ray_hit_generator : public Modifier_base { 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 @@ class Ray_hit_generator : public Modifier_base { #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 @@ class Ray_hit_generator : public Modifier_base { 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 --git a/thirdparty/CGAL/include/CGAL/Convex_decomposition_3/Ray_hit_generator2.h b/thirdparty/CGAL/include/CGAL/Convex_decomposition_3/Ray_hit_generator2.h index df3b204a..1f580b34 100644 --- a/thirdparty/CGAL/include/CGAL/Convex_decomposition_3/Ray_hit_generator2.h +++ b/thirdparty/CGAL/include/CGAL/Convex_decomposition_3/Ray_hit_generator2.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Ray_hit_generator2 : public Modifier_base { 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 @@ class Ray_hit_generator2 : public Modifier_base { << "->" << 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 @@ class Ray_hit_generator2 : public Modifier_base { << " (" << 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 --git a/thirdparty/CGAL/include/CGAL/Convex_decomposition_3/Reflex_edge_searcher.h b/thirdparty/CGAL/include/CGAL/Convex_decomposition_3/Reflex_edge_searcher.h index 92cf626b..7792229e 100644 --- a/thirdparty/CGAL/include/CGAL/Convex_decomposition_3/Reflex_edge_searcher.h +++ b/thirdparty/CGAL/include/CGAL/Convex_decomposition_3/Reflex_edge_searcher.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Convex_decomposition_3/Reflex_vertex_searcher.h b/thirdparty/CGAL/include/CGAL/Convex_decomposition_3/Reflex_vertex_searcher.h index c923b608..034afdb0 100644 --- a/thirdparty/CGAL/include/CGAL/Convex_decomposition_3/Reflex_vertex_searcher.h +++ b/thirdparty/CGAL/include/CGAL/Convex_decomposition_3/Reflex_vertex_searcher.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Convex_decomposition_3/SFace_separator.h b/thirdparty/CGAL/include/CGAL/Convex_decomposition_3/SFace_separator.h index bd4fdbed..42c39c9f 100644 --- a/thirdparty/CGAL/include/CGAL/Convex_decomposition_3/SFace_separator.h +++ b/thirdparty/CGAL/include/CGAL/Convex_decomposition_3/SFace_separator.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Convex_decomposition_3/SM_walls.h b/thirdparty/CGAL/include/CGAL/Convex_decomposition_3/SM_walls.h index 6b9fa041..80df70da 100644 --- a/thirdparty/CGAL/include/CGAL/Convex_decomposition_3/SM_walls.h +++ b/thirdparty/CGAL/include/CGAL/Convex_decomposition_3/SM_walls.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Convex_decomposition_3/Single_wall_creator.h b/thirdparty/CGAL/include/CGAL/Convex_decomposition_3/Single_wall_creator.h index 9b81304c..1c266487 100644 --- a/thirdparty/CGAL/include/CGAL/Convex_decomposition_3/Single_wall_creator.h +++ b/thirdparty/CGAL/include/CGAL/Convex_decomposition_3/Single_wall_creator.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Convex_decomposition_3/Single_wall_creator2.h b/thirdparty/CGAL/include/CGAL/Convex_decomposition_3/Single_wall_creator2.h index 0e4dfc3c..4911035a 100644 --- a/thirdparty/CGAL/include/CGAL/Convex_decomposition_3/Single_wall_creator2.h +++ b/thirdparty/CGAL/include/CGAL/Convex_decomposition_3/Single_wall_creator2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Convex_decomposition_3/Single_wall_creator3.h b/thirdparty/CGAL/include/CGAL/Convex_decomposition_3/Single_wall_creator3.h index 5d52f886..4732213b 100644 --- a/thirdparty/CGAL/include/CGAL/Convex_decomposition_3/Single_wall_creator3.h +++ b/thirdparty/CGAL/include/CGAL/Convex_decomposition_3/Single_wall_creator3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Convex_decomposition_3/YVertical_wall_builder.h b/thirdparty/CGAL/include/CGAL/Convex_decomposition_3/YVertical_wall_builder.h index 8c9c5ff0..164c33c3 100644 --- a/thirdparty/CGAL/include/CGAL/Convex_decomposition_3/YVertical_wall_builder.h +++ b/thirdparty/CGAL/include/CGAL/Convex_decomposition_3/YVertical_wall_builder.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Convex_decomposition_3/is_reflex_sedge.h b/thirdparty/CGAL/include/CGAL/Convex_decomposition_3/is_reflex_sedge.h index 6b04e48c..addc97d6 100644 --- a/thirdparty/CGAL/include/CGAL/Convex_decomposition_3/is_reflex_sedge.h +++ b/thirdparty/CGAL/include/CGAL/Convex_decomposition_3/is_reflex_sedge.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Convex_hull_2/ch_akl_toussaint_impl.h b/thirdparty/CGAL/include/CGAL/Convex_hull_2/ch_akl_toussaint_impl.h index aaf05f94..e41f9b21 100644 --- a/thirdparty/CGAL/include/CGAL/Convex_hull_2/ch_akl_toussaint_impl.h +++ b/thirdparty/CGAL/include/CGAL/Convex_hull_2/ch_akl_toussaint_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Convex_hull_2/ch_assertions.h b/thirdparty/CGAL/include/CGAL/Convex_hull_2/ch_assertions.h index 0a1ed146..99794af8 100644 --- a/thirdparty/CGAL/include/CGAL/Convex_hull_2/ch_assertions.h +++ b/thirdparty/CGAL/include/CGAL/Convex_hull_2/ch_assertions.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Convex_hull_2/ch_bykat_impl.h b/thirdparty/CGAL/include/CGAL/Convex_hull_2/ch_bykat_impl.h index e310fd72..d8c159f1 100644 --- a/thirdparty/CGAL/include/CGAL/Convex_hull_2/ch_bykat_impl.h +++ b/thirdparty/CGAL/include/CGAL/Convex_hull_2/ch_bykat_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Convex_hull_2/ch_eddy_impl.h b/thirdparty/CGAL/include/CGAL/Convex_hull_2/ch_eddy_impl.h index ee41a012..9bc6a574 100644 --- a/thirdparty/CGAL/include/CGAL/Convex_hull_2/ch_eddy_impl.h +++ b/thirdparty/CGAL/include/CGAL/Convex_hull_2/ch_eddy_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Convex_hull_2/ch_graham_andrew_impl.h b/thirdparty/CGAL/include/CGAL/Convex_hull_2/ch_graham_andrew_impl.h index 3dfc97ea..5436d70e 100644 --- a/thirdparty/CGAL/include/CGAL/Convex_hull_2/ch_graham_andrew_impl.h +++ b/thirdparty/CGAL/include/CGAL/Convex_hull_2/ch_graham_andrew_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Convex_hull_2/ch_jarvis_impl.h b/thirdparty/CGAL/include/CGAL/Convex_hull_2/ch_jarvis_impl.h index 6a95026b..a290963e 100644 --- a/thirdparty/CGAL/include/CGAL/Convex_hull_2/ch_jarvis_impl.h +++ b/thirdparty/CGAL/include/CGAL/Convex_hull_2/ch_jarvis_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Convex_hull_2/ch_melkman_impl.h b/thirdparty/CGAL/include/CGAL/Convex_hull_2/ch_melkman_impl.h index 931797c6..c55fc9db 100644 --- a/thirdparty/CGAL/include/CGAL/Convex_hull_2/ch_melkman_impl.h +++ b/thirdparty/CGAL/include/CGAL/Convex_hull_2/ch_melkman_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Convex_hull_2/ch_selected_extreme_points_2_impl.h b/thirdparty/CGAL/include/CGAL/Convex_hull_2/ch_selected_extreme_points_2_impl.h index bf678bec..9d0e5561 100644 --- a/thirdparty/CGAL/include/CGAL/Convex_hull_2/ch_selected_extreme_points_2_impl.h +++ b/thirdparty/CGAL/include/CGAL/Convex_hull_2/ch_selected_extreme_points_2_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Convex_hull_2/convexity_check_2_impl.h b/thirdparty/CGAL/include/CGAL/Convex_hull_2/convexity_check_2_impl.h index afcb23d5..8aaf6fe9 100644 --- a/thirdparty/CGAL/include/CGAL/Convex_hull_2/convexity_check_2_impl.h +++ b/thirdparty/CGAL/include/CGAL/Convex_hull_2/convexity_check_2_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Convex_hull_3/dual/Convex_hull_traits_dual_2.h b/thirdparty/CGAL/include/CGAL/Convex_hull_3/dual/Convex_hull_traits_dual_2.h index cb3be47f..0b12f2ac 100644 --- a/thirdparty/CGAL/include/CGAL/Convex_hull_3/dual/Convex_hull_traits_dual_2.h +++ b/thirdparty/CGAL/include/CGAL/Convex_hull_3/dual/Convex_hull_traits_dual_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Convex_hull_3/dual/Convex_hull_traits_dual_3.h b/thirdparty/CGAL/include/CGAL/Convex_hull_3/dual/Convex_hull_traits_dual_3.h index c3bab282..ad78c641 100644 --- a/thirdparty/CGAL/include/CGAL/Convex_hull_3/dual/Convex_hull_traits_dual_3.h +++ b/thirdparty/CGAL/include/CGAL/Convex_hull_3/dual/Convex_hull_traits_dual_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Convex_hull_3/dual/halfspace_intersection_3.h b/thirdparty/CGAL/include/CGAL/Convex_hull_3/dual/halfspace_intersection_3.h index 96d0fa6a..66a589fe 100644 --- a/thirdparty/CGAL/include/CGAL/Convex_hull_3/dual/halfspace_intersection_3.h +++ b/thirdparty/CGAL/include/CGAL/Convex_hull_3/dual/halfspace_intersection_3.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace CGAL Plane_3 > > result_inter; - boost::unordered_map primal_vertices; + std::unordered_map primal_vertices; size_t n = 0; // First, computing the primal vertices diff --git a/thirdparty/CGAL/include/CGAL/Convex_hull_3/dual/halfspace_intersection_interior_point_3.h b/thirdparty/CGAL/include/CGAL/Convex_hull_3/dual/halfspace_intersection_interior_point_3.h index 12fb01e0..04e19ad7 100644 --- a/thirdparty/CGAL/include/CGAL/Convex_hull_3/dual/halfspace_intersection_interior_point_3.h +++ b/thirdparty/CGAL/include/CGAL/Convex_hull_3/dual/halfspace_intersection_interior_point_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Convex_hull_3/dual/halfspace_intersection_with_constructions_3.h b/thirdparty/CGAL/include/CGAL/Convex_hull_3/dual/halfspace_intersection_with_constructions_3.h index 1378f4f1..774ec274 100644 --- a/thirdparty/CGAL/include/CGAL/Convex_hull_3/dual/halfspace_intersection_with_constructions_3.h +++ b/thirdparty/CGAL/include/CGAL/Convex_hull_3/dual/halfspace_intersection_with_constructions_3.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace CGAL 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 --git a/thirdparty/CGAL/include/CGAL/Convex_hull_3/dual/predicates.h b/thirdparty/CGAL/include/CGAL/Convex_hull_3/dual/predicates.h index d287bdf2..2d9a6278 100644 --- a/thirdparty/CGAL/include/CGAL/Convex_hull_3/dual/predicates.h +++ b/thirdparty/CGAL/include/CGAL/Convex_hull_3/dual/predicates.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Convex_hull_3/include/CGAL/Convex_hull_3/dual/predicates.h $ -// $Id: predicates.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot +// $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 // // @@ -70,7 +70,7 @@ namespace CGAL typedef typename K::RT RT; typedef typename K::Plane_3 Plane_3; typedef typename K::Point_3 Point_3; - typedef bool result_type; + typedef typename K::Boolean result_type; Equal_3_dual_point (Point_3 const& o = Point_3(0, 0, 0)) : origin(o) @@ -104,7 +104,7 @@ namespace CGAL typedef typename K::RT RT; typedef typename K::Plane_3 Plane_3; typedef typename K::Point_3 Point_3; - typedef bool result_type; + typedef typename K::Boolean result_type; Collinear_3_dual_point (Point_3 const& o = Point_3(0, 0, 0)) : origin(o) @@ -151,7 +151,7 @@ namespace CGAL typedef typename K::RT RT; typedef typename K::Plane_3 Plane_3; typedef typename K::Point_3 Point_3; - typedef bool result_type; + typedef typename K::Boolean result_type; Coplanar_3_dual_point (Point_3 const& o = Point_3(0, 0, 0)) : origin(o) @@ -200,8 +200,8 @@ namespace CGAL { typedef typename K::RT RT; typedef typename K::Plane_3 Plane_3; - typedef typename K::Point_3 Point_3; - typedef bool result_type; + typedef typename K::Point_3 Point_3; + typedef typename K::Boolean result_type; Has_on_positive_side_3_dual_point (Point_3 const& o = Point_3(0, 0, 0)) : @@ -263,7 +263,7 @@ namespace CGAL typedef typename K::RT RT; typedef typename K::Plane_3 Plane_3; typedef typename K::Point_3 Point_3; - typedef bool result_type; + typedef typename K::Boolean result_type; Less_distance_to_point_3_dual_point (Point_3 const& o = Point_3(0, 0, 0)) : @@ -312,8 +312,8 @@ namespace CGAL { typedef typename K::RT RT; typedef typename K::Plane_3 Plane_3; - typedef typename K::Point_3 Point_3; - typedef bool result_type; + typedef typename K::Point_3 Point_3; + typedef typename K::Boolean result_type; Less_signed_distance_to_plane_3_dual_point (Point_3 const& o = Point_3(0, 0, 0)) : @@ -377,7 +377,7 @@ namespace CGAL { typedef typename K::RT RT; typedef typename K::Plane_3 Plane_3; - typedef typename K::Point_3 Point_3; + typedef typename K::Point_3 Point_3; typedef CGAL::Oriented_side result_type; Oriented_side_3_dual_point (Point_3 const& o = @@ -449,4 +449,3 @@ namespace CGAL } // namespace CGAL #endif // CGAL_CH3_DUAL_PREDICATES_H - diff --git a/thirdparty/CGAL/include/CGAL/Convex_hull_3/internal/Indexed_triangle_set.h b/thirdparty/CGAL/include/CGAL/Convex_hull_3/internal/Indexed_triangle_set.h new file mode 100644 index 00000000..67b222a3 --- /dev/null +++ b/thirdparty/CGAL/include/CGAL/Convex_hull_3/internal/Indexed_triangle_set.h @@ -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 --git a/thirdparty/CGAL/include/CGAL/Convex_hull_d.h b/thirdparty/CGAL/include/CGAL/Convex_hull_d.h index effdf8b6..b0ecd27f 100644 --- a/thirdparty/CGAL/include/CGAL/Convex_hull_d.h +++ b/thirdparty/CGAL/include/CGAL/Convex_hull_d.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Convex_hull_d_to_polyhedron_3.h b/thirdparty/CGAL/include/CGAL/Convex_hull_d_to_polyhedron_3.h index 4674b4f4..5c65ca96 100644 --- a/thirdparty/CGAL/include/CGAL/Convex_hull_d_to_polyhedron_3.h +++ b/thirdparty/CGAL/include/CGAL/Convex_hull_d_to_polyhedron_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Convex_hull_d_traits_3.h b/thirdparty/CGAL/include/CGAL/Convex_hull_d_traits_3.h index ae3f03ba..b704931b 100644 --- a/thirdparty/CGAL/include/CGAL/Convex_hull_d_traits_3.h +++ b/thirdparty/CGAL/include/CGAL/Convex_hull_d_traits_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Convex_hull_face_base_2.h b/thirdparty/CGAL/include/CGAL/Convex_hull_face_base_2.h index 2b935e53..f49019a1 100644 --- a/thirdparty/CGAL/include/CGAL/Convex_hull_face_base_2.h +++ b/thirdparty/CGAL/include/CGAL/Convex_hull_face_base_2.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Convex_hull_3/include/CGAL/Convex_hull_face_base_2.h $ -// $Id: Convex_hull_face_base_2.h 61d42c3 2021-12-16T13:49:45+01:00 Mael Rouxel-Labbé +// $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 // // @@ -23,17 +23,16 @@ namespace CGAL { -template < typename Info_, typename GT, +template < typename GT, typename Fb = Triangulation_ds_face_base_2< > > class Convex_hull_face_base_2 : public Fb { - Info_ _info; + int _info = 0; public: typedef typename Fb::Vertex_handle Vertex_handle; typedef typename Fb::Face_handle Face_handle; - typedef Info_ Info; typename std::list::iterator it; std::list points; @@ -41,7 +40,7 @@ class Convex_hull_face_base_2 template < typename TDS2 > struct Rebind_TDS { typedef typename Fb::template Rebind_TDS::Other Fb2; - typedef Convex_hull_face_base_2 Other; + typedef Convex_hull_face_base_2 Other; }; Convex_hull_face_base_2() @@ -60,8 +59,8 @@ class Convex_hull_face_base_2 Face_handle n2 ) : Fb(v0, v1, v2, n0, n1, n2), _info(0) {} - const Info& info() const { return _info; } - Info& info() { return _info; } + const int& info() const { return _info; } + int& info() { return _info; } static int ccw(int i) {return Triangulation_cw_ccw_2::ccw(i);} static int cw(int i) {return Triangulation_cw_ccw_2::cw(i);} diff --git a/thirdparty/CGAL/include/CGAL/Convex_hull_projective_xy_traits_2.h b/thirdparty/CGAL/include/CGAL/Convex_hull_projective_xy_traits_2.h index b53ff8d0..c674c6c3 100644 --- a/thirdparty/CGAL/include/CGAL/Convex_hull_projective_xy_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Convex_hull_projective_xy_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Convex_hull_projective_xz_traits_2.h b/thirdparty/CGAL/include/CGAL/Convex_hull_projective_xz_traits_2.h index 04e49daf..d7ed219a 100644 --- a/thirdparty/CGAL/include/CGAL/Convex_hull_projective_xz_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Convex_hull_projective_xz_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Convex_hull_projective_yz_traits_2.h b/thirdparty/CGAL/include/CGAL/Convex_hull_projective_yz_traits_2.h index 4a9bb31b..d215824c 100644 --- a/thirdparty/CGAL/include/CGAL/Convex_hull_projective_yz_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Convex_hull_projective_yz_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Convex_hull_traits_3.h b/thirdparty/CGAL/include/CGAL/Convex_hull_traits_3.h index dd182d0b..c4903b33 100644 --- a/thirdparty/CGAL/include/CGAL/Convex_hull_traits_3.h +++ b/thirdparty/CGAL/include/CGAL/Convex_hull_traits_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Convex_hull_traits_adapter_2.h b/thirdparty/CGAL/include/CGAL/Convex_hull_traits_adapter_2.h index 1fd036e9..ea0335e3 100644 --- a/thirdparty/CGAL/include/CGAL/Convex_hull_traits_adapter_2.h +++ b/thirdparty/CGAL/include/CGAL/Convex_hull_traits_adapter_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Convex_hull_vertex_base_2.h b/thirdparty/CGAL/include/CGAL/Convex_hull_vertex_base_2.h index fbefabba..f8401f28 100644 --- a/thirdparty/CGAL/include/CGAL/Convex_hull_vertex_base_2.h +++ b/thirdparty/CGAL/include/CGAL/Convex_hull_vertex_base_2.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Convex_hull_3/include/CGAL/Convex_hull_vertex_base_2.h $ -// $Id: Convex_hull_vertex_base_2.h 00e3f85 2021-12-16T14:10:51+01:00 Mael Rouxel-Labbé +// $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 // // @@ -23,20 +23,19 @@ namespace CGAL { -template < typename Info_, typename GT, +template < typename GT, typename Vb = Triangulation_ds_vertex_base_2< > > class Convex_hull_vertex_base_2 : public Vb { public: - typedef Info_ Info; typedef typename GT::Point_2 Point; - typedef typename Vb::Face_handle Face_handle; + typedef typename Vb::Face_handle Face_handle; typedef typename Vb::Vertex_handle Vertex_handle; private: - Info _info; + int _info = 0; Point _p; public: @@ -44,7 +43,7 @@ class Convex_hull_vertex_base_2 struct Rebind_TDS { typedef typename Vb::template Rebind_TDS::Other Vb2; - typedef Convex_hull_vertex_base_2 Other; + typedef Convex_hull_vertex_base_2 Other; }; Convex_hull_vertex_base_2() @@ -63,8 +62,8 @@ class Convex_hull_vertex_base_2 const Point& point() const { return _p; } Point& point() { return _p; } - const Info& info() const { return _info; } - Info& info() { return _info; } + const int& info() const { return _info; } + int& info() { return _info; } }; template diff --git a/thirdparty/CGAL/include/CGAL/Counted_number.h b/thirdparty/CGAL/include/CGAL/Counted_number.h index 84b6f02b..533c1bb7 100644 --- a/thirdparty/CGAL/include/CGAL/Counted_number.h +++ b/thirdparty/CGAL/include/CGAL/Counted_number.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Counting_iterator.h b/thirdparty/CGAL/include/CGAL/Counting_iterator.h index 335c521d..beb5fd0a 100644 --- a/thirdparty/CGAL/include/CGAL/Counting_iterator.h +++ b/thirdparty/CGAL/include/CGAL/Counting_iterator.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/Arc_2.h b/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/Arc_2.h index d149935a..c4a308df 100644 --- a/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/Arc_2.h +++ b/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/Arc_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Arrangement_on_surface_2/include/CGAL/Curved_kernel_via_analysis_2/Arc_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Curved_kernel_via_analysis_2/Arc_2.h $ // $Id: Arc_2.h bfc5b7e 2021-08-10T10:49:11+03:00 Efi Fogel // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff --git a/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/Curve_interval_arcno_cache.h b/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/Curve_interval_arcno_cache.h index f0716325..0a687130 100644 --- a/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/Curve_interval_arcno_cache.h +++ b/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/Curve_interval_arcno_cache.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Arrangement_on_surface_2/include/CGAL/Curved_kernel_via_analysis_2/Curve_interval_arcno_cache.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Curved_kernel_via_analysis_2/Curve_interval_arcno_cache.h $ // $Id: Curve_interval_arcno_cache.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff --git a/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/Curve_renderer_facade.h b/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/Curve_renderer_facade.h index db62a490..eaba94df 100644 --- a/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/Curve_renderer_facade.h +++ b/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/Curve_renderer_facade.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Arrangement_on_surface_2/include/CGAL/Curved_kernel_via_analysis_2/Curve_renderer_facade.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Curved_kernel_via_analysis_2/Curve_renderer_facade.h $ // $Id: Curve_renderer_facade.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff --git a/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/Curved_kernel_via_analysis_2_functors.h b/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/Curved_kernel_via_analysis_2_functors.h index 46a80dba..faae45e7 100644 --- a/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/Curved_kernel_via_analysis_2_functors.h +++ b/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/Curved_kernel_via_analysis_2_functors.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Arrangement_on_surface_2/include/CGAL/Curved_kernel_via_analysis_2/Curved_kernel_via_analysis_2_functors.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Curved_kernel_via_analysis_2/Curved_kernel_via_analysis_2_functors.h $ // $Id: Curved_kernel_via_analysis_2_functors.h 5e73fe1 2021-08-04T12:22:09+03:00 Efi Fogel // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff --git a/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/Curved_kernel_via_analysis_2_impl.h b/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/Curved_kernel_via_analysis_2_impl.h index 56a0a2bb..57b5f5e6 100644 --- a/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/Curved_kernel_via_analysis_2_impl.h +++ b/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/Curved_kernel_via_analysis_2_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Arrangement_on_surface_2/include/CGAL/Curved_kernel_via_analysis_2/Curved_kernel_via_analysis_2_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Curved_kernel_via_analysis_2/Curved_kernel_via_analysis_2_impl.h $ // $Id: Curved_kernel_via_analysis_2_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 --git a/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/Fig_stream_Curve_renderer_2.h b/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/Fig_stream_Curve_renderer_2.h index 35ae0938..2cb5f1bd 100644 --- a/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/Fig_stream_Curve_renderer_2.h +++ b/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/Fig_stream_Curve_renderer_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Arrangement_on_surface_2/include/CGAL/Curved_kernel_via_analysis_2/Fig_stream_Curve_renderer_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Curved_kernel_via_analysis_2/Fig_stream_Curve_renderer_2.h $ // $Id: Fig_stream_Curve_renderer_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 --git a/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/Filtered_curved_kernel_via_analysis_2_impl.h b/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/Filtered_curved_kernel_via_analysis_2_impl.h index 6b264b1f..f9922ffe 100644 --- a/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/Filtered_curved_kernel_via_analysis_2_impl.h +++ b/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/Filtered_curved_kernel_via_analysis_2_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Arrangement_on_surface_2/include/CGAL/Curved_kernel_via_analysis_2/Filtered_curved_kernel_via_analysis_2_impl.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Curved_kernel_via_analysis_2/Filtered_curved_kernel_via_analysis_2_impl.h $ // $Id: Filtered_curved_kernel_via_analysis_2_impl.h bfc5b7e 2021-08-10T10:49:11+03:00 Efi Fogel // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff --git a/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/Generic_arc_2.h b/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/Generic_arc_2.h index 5a812388..1f2cb6af 100644 --- a/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/Generic_arc_2.h +++ b/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/Generic_arc_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Arrangement_on_surface_2/include/CGAL/Curved_kernel_via_analysis_2/Generic_arc_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Curved_kernel_via_analysis_2/Generic_arc_2.h $ // $Id: Generic_arc_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 --git a/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/Generic_point_2.h b/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/Generic_point_2.h index ab0ba9b9..fb502461 100644 --- a/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/Generic_point_2.h +++ b/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/Generic_point_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Arrangement_on_surface_2/include/CGAL/Curved_kernel_via_analysis_2/Generic_point_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Curved_kernel_via_analysis_2/Generic_point_2.h $ // $Id: Generic_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 --git a/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/Make_x_monotone_2.h b/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/Make_x_monotone_2.h index 5e998735..843a3905 100644 --- a/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/Make_x_monotone_2.h +++ b/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/Make_x_monotone_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Arrangement_on_surface_2/include/CGAL/Curved_kernel_via_analysis_2/Make_x_monotone_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Curved_kernel_via_analysis_2/Make_x_monotone_2.h $ // $Id: Make_x_monotone_2.h f55ef7d 2020-10-09T18:36:17+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff --git a/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/Non_x_monotone_arc_2.h b/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/Non_x_monotone_arc_2.h index aa1f8ec3..3e09b576 100644 --- a/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/Non_x_monotone_arc_2.h +++ b/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/Non_x_monotone_arc_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Arrangement_on_surface_2/include/CGAL/Curved_kernel_via_analysis_2/Non_x_monotone_arc_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Curved_kernel_via_analysis_2/Non_x_monotone_arc_2.h $ // $Id: Non_x_monotone_arc_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 --git a/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/Point_2.h b/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/Point_2.h index 86c8253b..da83c96d 100644 --- a/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/Point_2.h +++ b/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/Point_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Arrangement_on_surface_2/include/CGAL/Curved_kernel_via_analysis_2/Point_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Curved_kernel_via_analysis_2/Point_2.h $ // $Id: Point_2.h a3d1765 2021-07-19T14:18:40+02:00 Maxime Gimeno // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff --git a/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/Sweep_curves_adapter_2.h b/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/Sweep_curves_adapter_2.h index 5100e8f7..a4cb6925 100644 --- a/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/Sweep_curves_adapter_2.h +++ b/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/Sweep_curves_adapter_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Arrangement_on_surface_2/include/CGAL/Curved_kernel_via_analysis_2/Sweep_curves_adapter_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Curved_kernel_via_analysis_2/Sweep_curves_adapter_2.h $ // $Id: Sweep_curves_adapter_2.h 2aa0c9c 2020-07-02T19:11:30+03:00 Efi Fogel // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff --git a/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/gfx/Curve_renderer_2.h b/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/gfx/Curve_renderer_2.h index 8a154bf1..a5b85023 100644 --- a/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/gfx/Curve_renderer_2.h +++ b/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/gfx/Curve_renderer_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Arrangement_on_surface_2/include/CGAL/Curved_kernel_via_analysis_2/gfx/Curve_renderer_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Curved_kernel_via_analysis_2/gfx/Curve_renderer_2.h $ // $Id: Curve_renderer_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 --git a/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/gfx/Curve_renderer_internals.h b/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/gfx/Curve_renderer_internals.h index 899ce6bf..7b95d873 100644 --- a/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/gfx/Curve_renderer_internals.h +++ b/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/gfx/Curve_renderer_internals.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Arrangement_on_surface_2/include/CGAL/Curved_kernel_via_analysis_2/gfx/Curve_renderer_internals.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Curved_kernel_via_analysis_2/gfx/Curve_renderer_internals.h $ // $Id: Curve_renderer_internals.h 32b31fd 2021-02-02T11:09:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff --git a/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/gfx/Curve_renderer_traits.h b/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/gfx/Curve_renderer_traits.h index 86c3b74c..6be7dcef 100644 --- a/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/gfx/Curve_renderer_traits.h +++ b/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/gfx/Curve_renderer_traits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Arrangement_on_surface_2/include/CGAL/Curved_kernel_via_analysis_2/gfx/Curve_renderer_traits.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Curved_kernel_via_analysis_2/gfx/Curve_renderer_traits.h $ // $Id: Curve_renderer_traits.h 32b31fd 2021-02-02T11:09:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff --git a/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/gfx/Subdivision_1.h b/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/gfx/Subdivision_1.h index 9b1560e4..83bba9de 100644 --- a/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/gfx/Subdivision_1.h +++ b/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/gfx/Subdivision_1.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Arrangement_on_surface_2/include/CGAL/Curved_kernel_via_analysis_2/gfx/Subdivision_1.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Curved_kernel_via_analysis_2/gfx/Subdivision_1.h $ // $Id: Subdivision_1.h 0d66e19 2020-07-24T17:05:10+02:00 Mael Rouxel-Labbé // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff --git a/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/gfx/Subdivision_2.h b/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/gfx/Subdivision_2.h index d7d56696..7bb81f29 100644 --- a/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/gfx/Subdivision_2.h +++ b/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/gfx/Subdivision_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Arrangement_on_surface_2/include/CGAL/Curved_kernel_via_analysis_2/gfx/Subdivision_2.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Curved_kernel_via_analysis_2/gfx/Subdivision_2.h $ // $Id: Subdivision_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 --git a/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/test/simple_models.h b/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/test/simple_models.h index 89a1ec9a..4e081666 100644 --- a/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/test/simple_models.h +++ b/thirdparty/CGAL/include/CGAL/Curved_kernel_via_analysis_2/test/simple_models.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Arrangement_on_surface_2/include/CGAL/Curved_kernel_via_analysis_2/test/simple_models.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Arrangement_on_surface_2/include/CGAL/Curved_kernel_via_analysis_2/test/simple_models.h $ // $Id: simple_models.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // diff --git a/thirdparty/CGAL/include/CGAL/Curves_on_surface_topology.h b/thirdparty/CGAL/include/CGAL/Curves_on_surface_topology.h index 71e5dc86..2a7f69c5 100644 --- a/thirdparty/CGAL/include/CGAL/Curves_on_surface_topology.h +++ b/thirdparty/CGAL/include/CGAL/Curves_on_surface_topology.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Surface_mesh_topology/include/CGAL/Curves_on_surface_topology.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_topology/include/CGAL/Curves_on_surface_topology.h $ // $Id: Curves_on_surface_topology.h b58c05e 2020-08-13T17:59:32-04:00 Youmu // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff --git a/thirdparty/CGAL/include/CGAL/Dart.h b/thirdparty/CGAL/include/CGAL/Dart.h index a737aa4f..2ff3e414 100644 --- a/thirdparty/CGAL/include/CGAL/Dart.h +++ b/thirdparty/CGAL/include/CGAL/Dart.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Combinatorial_map/include/CGAL/Dart.h $ -// $Id: Dart.h d6306be 2020-10-22T10:30:38+02:00 Guillaume Damiand +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Combinatorial_map/include/CGAL/Dart.h $ +// $Id: Dart.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 @@ -200,109 +200,6 @@ namespace CGAL { 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 --git a/thirdparty/CGAL/include/CGAL/Deformation_Eigen_polar_closest_rotation_traits_3.h b/thirdparty/CGAL/include/CGAL/Deformation_Eigen_polar_closest_rotation_traits_3.h index dbbb206d..67717f54 100644 --- a/thirdparty/CGAL/include/CGAL/Deformation_Eigen_polar_closest_rotation_traits_3.h +++ b/thirdparty/CGAL/include/CGAL/Deformation_Eigen_polar_closest_rotation_traits_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Delaunay_d.h b/thirdparty/CGAL/include/CGAL/Delaunay_d.h index e756633a..51b67882 100644 --- a/thirdparty/CGAL/include/CGAL/Delaunay_d.h +++ b/thirdparty/CGAL/include/CGAL/Delaunay_d.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Delaunay_mesh_area_criteria_2.h b/thirdparty/CGAL/include/CGAL/Delaunay_mesh_area_criteria_2.h index edfe61ed..27c4cb59 100644 --- a/thirdparty/CGAL/include/CGAL/Delaunay_mesh_area_criteria_2.h +++ b/thirdparty/CGAL/include/CGAL/Delaunay_mesh_area_criteria_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Delaunay_mesh_criteria_2.h b/thirdparty/CGAL/include/CGAL/Delaunay_mesh_criteria_2.h index d6a1257f..04a46dbf 100644 --- a/thirdparty/CGAL/include/CGAL/Delaunay_mesh_criteria_2.h +++ b/thirdparty/CGAL/include/CGAL/Delaunay_mesh_criteria_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Delaunay_mesh_face_base_2.h b/thirdparty/CGAL/include/CGAL/Delaunay_mesh_face_base_2.h index fe63c2eb..1b58b594 100644 --- a/thirdparty/CGAL/include/CGAL/Delaunay_mesh_face_base_2.h +++ b/thirdparty/CGAL/include/CGAL/Delaunay_mesh_face_base_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Delaunay_mesh_local_size_criteria_2.h b/thirdparty/CGAL/include/CGAL/Delaunay_mesh_local_size_criteria_2.h index 5b2b96dd..109ef600 100644 --- a/thirdparty/CGAL/include/CGAL/Delaunay_mesh_local_size_criteria_2.h +++ b/thirdparty/CGAL/include/CGAL/Delaunay_mesh_local_size_criteria_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Delaunay_mesh_size_criteria_2.h b/thirdparty/CGAL/include/CGAL/Delaunay_mesh_size_criteria_2.h index ac171a2e..da7b34c9 100644 --- a/thirdparty/CGAL/include/CGAL/Delaunay_mesh_size_criteria_2.h +++ b/thirdparty/CGAL/include/CGAL/Delaunay_mesh_size_criteria_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Delaunay_mesh_vertex_base_2.h b/thirdparty/CGAL/include/CGAL/Delaunay_mesh_vertex_base_2.h index 1ee47718..82f65354 100644 --- a/thirdparty/CGAL/include/CGAL/Delaunay_mesh_vertex_base_2.h +++ b/thirdparty/CGAL/include/CGAL/Delaunay_mesh_vertex_base_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Delaunay_mesher_2.h b/thirdparty/CGAL/include/CGAL/Delaunay_mesher_2.h index 01f2fc85..7daadc77 100644 --- a/thirdparty/CGAL/include/CGAL/Delaunay_mesher_2.h +++ b/thirdparty/CGAL/include/CGAL/Delaunay_mesher_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Delaunay_mesher_no_edge_refinement_2.h b/thirdparty/CGAL/include/CGAL/Delaunay_mesher_no_edge_refinement_2.h index 781b5db2..8d1b27be 100644 --- a/thirdparty/CGAL/include/CGAL/Delaunay_mesher_no_edge_refinement_2.h +++ b/thirdparty/CGAL/include/CGAL/Delaunay_mesher_no_edge_refinement_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Delaunay_triangulation.h b/thirdparty/CGAL/include/CGAL/Delaunay_triangulation.h index b38744f7..6b88549a 100644 --- a/thirdparty/CGAL/include/CGAL/Delaunay_triangulation.h +++ b/thirdparty/CGAL/include/CGAL/Delaunay_triangulation.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Delaunay_triangulation_2.h b/thirdparty/CGAL/include/CGAL/Delaunay_triangulation_2.h index 41127086..83b3c862 100644 --- a/thirdparty/CGAL/include/CGAL/Delaunay_triangulation_2.h +++ b/thirdparty/CGAL/include/CGAL/Delaunay_triangulation_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Delaunay_triangulation_3.h b/thirdparty/CGAL/include/CGAL/Delaunay_triangulation_3.h index 827db23e..1d219a5c 100644 --- a/thirdparty/CGAL/include/CGAL/Delaunay_triangulation_3.h +++ b/thirdparty/CGAL/include/CGAL/Delaunay_triangulation_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Delaunay_triangulation_adaptation_policies_2.h b/thirdparty/CGAL/include/CGAL/Delaunay_triangulation_adaptation_policies_2.h index de627302..324b9d6a 100644 --- a/thirdparty/CGAL/include/CGAL/Delaunay_triangulation_adaptation_policies_2.h +++ b/thirdparty/CGAL/include/CGAL/Delaunay_triangulation_adaptation_policies_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Delaunay_triangulation_adaptation_traits_2.h b/thirdparty/CGAL/include/CGAL/Delaunay_triangulation_adaptation_traits_2.h index c38a40d8..a8427cb0 100644 --- a/thirdparty/CGAL/include/CGAL/Delaunay_triangulation_adaptation_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Delaunay_triangulation_adaptation_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Delaunay_triangulation_cell_base_3.h b/thirdparty/CGAL/include/CGAL/Delaunay_triangulation_cell_base_3.h index 2c4954f5..8095e68e 100644 --- a/thirdparty/CGAL/include/CGAL/Delaunay_triangulation_cell_base_3.h +++ b/thirdparty/CGAL/include/CGAL/Delaunay_triangulation_cell_base_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Delaunay_triangulation_cell_base_with_circumcenter_3.h b/thirdparty/CGAL/include/CGAL/Delaunay_triangulation_cell_base_with_circumcenter_3.h index 40385fcc..d7fd271f 100644 --- a/thirdparty/CGAL/include/CGAL/Delaunay_triangulation_cell_base_with_circumcenter_3.h +++ b/thirdparty/CGAL/include/CGAL/Delaunay_triangulation_cell_base_with_circumcenter_3.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Delaunay_triangulation_cell_base_with_circumcenter_3 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 --git a/thirdparty/CGAL/include/CGAL/Delaunay_triangulation_on_sphere_2.h b/thirdparty/CGAL/include/CGAL/Delaunay_triangulation_on_sphere_2.h index 6954a323..4ddba484 100644 --- a/thirdparty/CGAL/include/CGAL/Delaunay_triangulation_on_sphere_2.h +++ b/thirdparty/CGAL/include/CGAL/Delaunay_triangulation_on_sphere_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Delaunay_triangulation_on_sphere_adaptation_policies_2.h b/thirdparty/CGAL/include/CGAL/Delaunay_triangulation_on_sphere_adaptation_policies_2.h index 01f5cc07..d08eb432 100644 --- a/thirdparty/CGAL/include/CGAL/Delaunay_triangulation_on_sphere_adaptation_policies_2.h +++ b/thirdparty/CGAL/include/CGAL/Delaunay_triangulation_on_sphere_adaptation_policies_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Delaunay_triangulation_on_sphere_adaptation_traits_2.h b/thirdparty/CGAL/include/CGAL/Delaunay_triangulation_on_sphere_adaptation_traits_2.h index 6cc3e7d5..0c9dec2e 100644 --- a/thirdparty/CGAL/include/CGAL/Delaunay_triangulation_on_sphere_adaptation_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Delaunay_triangulation_on_sphere_adaptation_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Delaunay_triangulation_on_sphere_traits_2.h b/thirdparty/CGAL/include/CGAL/Delaunay_triangulation_on_sphere_traits_2.h index 500a0f21..b8a5bfd9 100644 --- a/thirdparty/CGAL/include/CGAL/Delaunay_triangulation_on_sphere_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Delaunay_triangulation_on_sphere_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Diagonalize_traits.h b/thirdparty/CGAL/include/CGAL/Diagonalize_traits.h index c46db3af..9553895a 100644 --- a/thirdparty/CGAL/include/CGAL/Diagonalize_traits.h +++ b/thirdparty/CGAL/include/CGAL/Diagonalize_traits.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Dimension.h b/thirdparty/CGAL/include/CGAL/Dimension.h index cfeee54d..9e3e013b 100644 --- a/thirdparty/CGAL/include/CGAL/Dimension.h +++ b/thirdparty/CGAL/include/CGAL/Dimension.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Direction_2.h b/thirdparty/CGAL/include/CGAL/Direction_2.h index 474e9c27..78dec78d 100644 --- a/thirdparty/CGAL/include/CGAL/Direction_2.h +++ b/thirdparty/CGAL/include/CGAL/Direction_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Direction_3.h b/thirdparty/CGAL/include/CGAL/Direction_3.h index 3cdb2d7f..10c9a6ed 100644 --- a/thirdparty/CGAL/include/CGAL/Direction_3.h +++ b/thirdparty/CGAL/include/CGAL/Direction_3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Distance_2/Line_2_Line_2.h b/thirdparty/CGAL/include/CGAL/Distance_2/Line_2_Line_2.h index ed039155..abef5ccb 100644 --- a/thirdparty/CGAL/include/CGAL/Distance_2/Line_2_Line_2.h +++ b/thirdparty/CGAL/include/CGAL/Distance_2/Line_2_Line_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Distance_2/Line_2_Triangle_2.h b/thirdparty/CGAL/include/CGAL/Distance_2/Line_2_Triangle_2.h index 587dbb5f..767a40cb 100644 --- a/thirdparty/CGAL/include/CGAL/Distance_2/Line_2_Triangle_2.h +++ b/thirdparty/CGAL/include/CGAL/Distance_2/Line_2_Triangle_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Distance_2/Point_2_Line_2.h b/thirdparty/CGAL/include/CGAL/Distance_2/Point_2_Line_2.h index fbe6b7ff..cca0c837 100644 --- a/thirdparty/CGAL/include/CGAL/Distance_2/Point_2_Line_2.h +++ b/thirdparty/CGAL/include/CGAL/Distance_2/Point_2_Line_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Distance_2/Point_2_Point_2.h b/thirdparty/CGAL/include/CGAL/Distance_2/Point_2_Point_2.h index 8ad37262..0a4e621f 100644 --- a/thirdparty/CGAL/include/CGAL/Distance_2/Point_2_Point_2.h +++ b/thirdparty/CGAL/include/CGAL/Distance_2/Point_2_Point_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Distance_2/Point_2_Ray_2.h b/thirdparty/CGAL/include/CGAL/Distance_2/Point_2_Ray_2.h index fa9ab256..eb9ca9dd 100644 --- a/thirdparty/CGAL/include/CGAL/Distance_2/Point_2_Ray_2.h +++ b/thirdparty/CGAL/include/CGAL/Distance_2/Point_2_Ray_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Distance_2/Point_2_Segment_2.h b/thirdparty/CGAL/include/CGAL/Distance_2/Point_2_Segment_2.h index a9a70683..e5b74ac7 100644 --- a/thirdparty/CGAL/include/CGAL/Distance_2/Point_2_Segment_2.h +++ b/thirdparty/CGAL/include/CGAL/Distance_2/Point_2_Segment_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Distance_2/Point_2_Triangle_2.h b/thirdparty/CGAL/include/CGAL/Distance_2/Point_2_Triangle_2.h index 579257d8..d4cb77b1 100644 --- a/thirdparty/CGAL/include/CGAL/Distance_2/Point_2_Triangle_2.h +++ b/thirdparty/CGAL/include/CGAL/Distance_2/Point_2_Triangle_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Distance_2/Ray_2_Line_2.h b/thirdparty/CGAL/include/CGAL/Distance_2/Ray_2_Line_2.h index 0c96cefa..02821d5c 100644 --- a/thirdparty/CGAL/include/CGAL/Distance_2/Ray_2_Line_2.h +++ b/thirdparty/CGAL/include/CGAL/Distance_2/Ray_2_Line_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Distance_2/Ray_2_Ray_2.h b/thirdparty/CGAL/include/CGAL/Distance_2/Ray_2_Ray_2.h index ce075062..18a6c794 100644 --- a/thirdparty/CGAL/include/CGAL/Distance_2/Ray_2_Ray_2.h +++ b/thirdparty/CGAL/include/CGAL/Distance_2/Ray_2_Ray_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Distance_2/Ray_2_Triangle_2.h b/thirdparty/CGAL/include/CGAL/Distance_2/Ray_2_Triangle_2.h index f9989310..8597f04c 100644 --- a/thirdparty/CGAL/include/CGAL/Distance_2/Ray_2_Triangle_2.h +++ b/thirdparty/CGAL/include/CGAL/Distance_2/Ray_2_Triangle_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Distance_2/Segment_2_Line_2.h b/thirdparty/CGAL/include/CGAL/Distance_2/Segment_2_Line_2.h index 8d79658f..85584841 100644 --- a/thirdparty/CGAL/include/CGAL/Distance_2/Segment_2_Line_2.h +++ b/thirdparty/CGAL/include/CGAL/Distance_2/Segment_2_Line_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Distance_2/Segment_2_Ray_2.h b/thirdparty/CGAL/include/CGAL/Distance_2/Segment_2_Ray_2.h index 524b1b93..4b47a466 100644 --- a/thirdparty/CGAL/include/CGAL/Distance_2/Segment_2_Ray_2.h +++ b/thirdparty/CGAL/include/CGAL/Distance_2/Segment_2_Ray_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Distance_2/Segment_2_Segment_2.h b/thirdparty/CGAL/include/CGAL/Distance_2/Segment_2_Segment_2.h index d21ae4ed..534b8f40 100644 --- a/thirdparty/CGAL/include/CGAL/Distance_2/Segment_2_Segment_2.h +++ b/thirdparty/CGAL/include/CGAL/Distance_2/Segment_2_Segment_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Distance_2/Segment_2_Triangle_2.h b/thirdparty/CGAL/include/CGAL/Distance_2/Segment_2_Triangle_2.h index d65be282..79ce7a52 100644 --- a/thirdparty/CGAL/include/CGAL/Distance_2/Segment_2_Triangle_2.h +++ b/thirdparty/CGAL/include/CGAL/Distance_2/Segment_2_Triangle_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Distance_2/Triangle_2_Triangle_2.h b/thirdparty/CGAL/include/CGAL/Distance_2/Triangle_2_Triangle_2.h index f05ea150..bf734309 100644 --- a/thirdparty/CGAL/include/CGAL/Distance_2/Triangle_2_Triangle_2.h +++ b/thirdparty/CGAL/include/CGAL/Distance_2/Triangle_2_Triangle_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Distance_2/internal/squared_distance_utils_2.h b/thirdparty/CGAL/include/CGAL/Distance_2/internal/squared_distance_utils_2.h index d95496c9..cda4df1c 100644 --- a/thirdparty/CGAL/include/CGAL/Distance_2/internal/squared_distance_utils_2.h +++ b/thirdparty/CGAL/include/CGAL/Distance_2/internal/squared_distance_utils_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Distance_3/Line_3_Line_3.h b/thirdparty/CGAL/include/CGAL/Distance_3/Line_3_Line_3.h index e22c548f..b8601ab2 100644 --- a/thirdparty/CGAL/include/CGAL/Distance_3/Line_3_Line_3.h +++ b/thirdparty/CGAL/include/CGAL/Distance_3/Line_3_Line_3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Distance_3/Line_3_Plane_3.h b/thirdparty/CGAL/include/CGAL/Distance_3/Line_3_Plane_3.h index 130599c2..a96c06ff 100644 --- a/thirdparty/CGAL/include/CGAL/Distance_3/Line_3_Plane_3.h +++ b/thirdparty/CGAL/include/CGAL/Distance_3/Line_3_Plane_3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Distance_3/Plane_3_Plane_3.h b/thirdparty/CGAL/include/CGAL/Distance_3/Plane_3_Plane_3.h index 1ba57b36..f473fecb 100644 --- a/thirdparty/CGAL/include/CGAL/Distance_3/Plane_3_Plane_3.h +++ b/thirdparty/CGAL/include/CGAL/Distance_3/Plane_3_Plane_3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Distance_3/Point_3_Line_3.h b/thirdparty/CGAL/include/CGAL/Distance_3/Point_3_Line_3.h index 1208c5d2..9071b9ca 100644 --- a/thirdparty/CGAL/include/CGAL/Distance_3/Point_3_Line_3.h +++ b/thirdparty/CGAL/include/CGAL/Distance_3/Point_3_Line_3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Distance_3/Point_3_Plane_3.h b/thirdparty/CGAL/include/CGAL/Distance_3/Point_3_Plane_3.h index f6038e33..a8cbc4b6 100644 --- a/thirdparty/CGAL/include/CGAL/Distance_3/Point_3_Plane_3.h +++ b/thirdparty/CGAL/include/CGAL/Distance_3/Point_3_Plane_3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Distance_3/Point_3_Point_3.h b/thirdparty/CGAL/include/CGAL/Distance_3/Point_3_Point_3.h index 676b4025..2fcc182f 100644 --- a/thirdparty/CGAL/include/CGAL/Distance_3/Point_3_Point_3.h +++ b/thirdparty/CGAL/include/CGAL/Distance_3/Point_3_Point_3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Distance_3/Point_3_Ray_3.h b/thirdparty/CGAL/include/CGAL/Distance_3/Point_3_Ray_3.h index 904e473f..8f16c510 100644 --- a/thirdparty/CGAL/include/CGAL/Distance_3/Point_3_Ray_3.h +++ b/thirdparty/CGAL/include/CGAL/Distance_3/Point_3_Ray_3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Distance_3/Point_3_Segment_3.h b/thirdparty/CGAL/include/CGAL/Distance_3/Point_3_Segment_3.h index d84aa636..379e7738 100644 --- a/thirdparty/CGAL/include/CGAL/Distance_3/Point_3_Segment_3.h +++ b/thirdparty/CGAL/include/CGAL/Distance_3/Point_3_Segment_3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Distance_3/Point_3_Tetrahedron_3.h b/thirdparty/CGAL/include/CGAL/Distance_3/Point_3_Tetrahedron_3.h index 6809d7e1..c625e1c0 100644 --- a/thirdparty/CGAL/include/CGAL/Distance_3/Point_3_Tetrahedron_3.h +++ b/thirdparty/CGAL/include/CGAL/Distance_3/Point_3_Tetrahedron_3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Distance_3/Point_3_Triangle_3.h b/thirdparty/CGAL/include/CGAL/Distance_3/Point_3_Triangle_3.h index 10717dc2..b09861bf 100644 --- a/thirdparty/CGAL/include/CGAL/Distance_3/Point_3_Triangle_3.h +++ b/thirdparty/CGAL/include/CGAL/Distance_3/Point_3_Triangle_3.h @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Distance_3/include/CGAL/Distance_3/Point_3_Triangle_3.h $ -// $Id: Point_3_Triangle_3.h a4a00d9 2021-06-23T22:30:23+02:00 Mael Rouxel-Labbé +// $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 // // @@ -93,30 +93,75 @@ squared_distance_to_triangle_RT(const typename K::Point_3& pt, return; } - const bool b01 = on_left_of_triangle_edge(pt, normal, t0, t1, k); - if(!b01) + if(!on_left_of_triangle_edge(pt, normal, t0, t1, k)) { - squared_distance_RT(pt, segment(t0, t1), num, den, k); - return; - } - - const bool b12 = on_left_of_triangle_edge(pt, normal, t1, t2, k); - if(!b12) - { - squared_distance_RT(pt, segment(t1, t2), num, den, k); - return; + if(!on_left_of_triangle_edge(pt, normal, t1, t2, k)) + { + // can't be to the right of all three segments + squared_distance_RT(pt, segment(t0, t1), num, den, k); + + typename K::RT num2, den2; + squared_distance_RT(pt, segment(t1, t2), num2, den2, k); + if(compare_quotients(num2,den2, num,den) == SMALLER) + { + num = num2; + den = den2; + } + } + else // on_left_of_triangle_edge(pt, normal, t1, t2, k) + { + if(!on_left_of_triangle_edge(pt, normal, t2, t0, k)) + { + squared_distance_RT(pt, segment(t0, t1), num, den, k); + + typename K::RT num2, den2; + squared_distance_RT(pt, segment(t2, t0), num2, den2, k); + if(compare_quotients(num2,den2, num,den) == SMALLER) + { + num = num2; + den = den2; + } + } + else // on_left_of_triangle_edge(pt, normal, t2, t0, k) + { + return squared_distance_RT(pt, segment(t0, t1), num, den, k); + } + } } - - const bool b20 = on_left_of_triangle_edge(pt, normal, t2, t0, k); - if(!b20) + else // on_left_of_triangle_edge(pt, normal, t0, t1, k) { - squared_distance_RT(pt, segment(t2, t0), num, den, k); - return; + if(!on_left_of_triangle_edge(pt, normal, t1, t2, k)) + { + if(!on_left_of_triangle_edge(pt, normal, t2, t0, k)) + { + squared_distance_RT(pt, segment(t1, t2), num, den, k); + + typename K::RT num2, den2; + squared_distance_RT(pt, segment(t2, t0), num2, den2, k); + if(compare_quotients(num2,den2, num,den) == SMALLER) + { + num = num2; + den = den2; + } + } + else // on_left_of_triangle_edge(pt, normal, t2, t0, k) + { + return squared_distance_RT(pt, segment(t1, t2), num, den, k); + } + } + else // on_left_of_triangle_edge(pt, normal, t1, t2, k) + { + if(!on_left_of_triangle_edge(pt, normal, t2, t0, k)) + { + return squared_distance_RT(pt, segment(t2, t0), num, den, k); + } + else // on_left_of_triangle_edge(pt, normal, t2, t0, k) + { + inside = true; + return squared_distance_to_plane_RT(normal, vector(t0, pt), num, den, k); + } + } } - - // The projection of pt is inside the triangle - inside = true; - squared_distance_to_plane_RT(normal, vector(t0, pt), num, den, k); } template @@ -174,21 +219,51 @@ squared_distance_to_triangle(const typename K::Point_3& pt, return (std::min)((std::min)(d1, d2), d3); } - const bool b01 = on_left_of_triangle_edge(pt, normal, t0, t1, k); - if(!b01) - return sq_dist(pt, segment(t0, t1)); - - const bool b12 = on_left_of_triangle_edge(pt, normal, t1, t2, k); - if(!b12) - return sq_dist(pt, segment(t1, t2)); - - const bool b20 = on_left_of_triangle_edge(pt, normal, t2, t0, k); - if(!b20) - return sq_dist(pt, segment(t2, t0)); - - // The projection of pt is inside the triangle - inside = true; - return squared_distance_to_plane(normal, vector(t0, pt), k); + if(!on_left_of_triangle_edge(pt, normal, t0, t1, k)) + { + if(!on_left_of_triangle_edge(pt, normal, t1, t2, k)) + { + // can't be to the right of all three segments + return (std::min)(sq_dist(pt, segment(t0, t1)), sq_dist(pt, segment(t1, t2))); + } + else // on_left_of_triangle_edge(pt, normal, t1, t2, k) + { + if(!on_left_of_triangle_edge(pt, normal, t2, t0, k)) + { + return (std::min)(sq_dist(pt, segment(t0, t1)), sq_dist(pt, segment(t2, t0))); + } + else // on_left_of_triangle_edge(pt, normal, t2, t0, k) + { + return sq_dist(pt, segment(t0, t1)); + } + } + } + else // on_left_of_triangle_edge(pt, normal, t0, t1, k) + { + if(!on_left_of_triangle_edge(pt, normal, t1, t2, k)) + { + if(!on_left_of_triangle_edge(pt, normal, t2, t0, k)) + { + return (std::min)(sq_dist(pt, segment(t1, t2)), sq_dist(pt, segment(t2, t0))); + } + else // on_left_of_triangle_edge(pt, normal, t2, t0, k) + { + return sq_dist(pt, segment(t1, t2)); + } + } + else // on_left_of_triangle_edge(pt, normal, t1, t2, k) + { + if(!on_left_of_triangle_edge(pt, normal, t2, t0, k)) + { + return sq_dist(pt, segment(t2, t0)); + } + else // on_left_of_triangle_edge(pt, normal, t2, t0, k) + { + inside = true; + return squared_distance_to_plane(normal, vector(t0, pt), k); + } + } + } } template diff --git a/thirdparty/CGAL/include/CGAL/Distance_3/Point_3_Weighted_point_3.h b/thirdparty/CGAL/include/CGAL/Distance_3/Point_3_Weighted_point_3.h index 6a6b767b..c2b83aba 100644 --- a/thirdparty/CGAL/include/CGAL/Distance_3/Point_3_Weighted_point_3.h +++ b/thirdparty/CGAL/include/CGAL/Distance_3/Point_3_Weighted_point_3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Distance_3/Ray_3_Line_3.h b/thirdparty/CGAL/include/CGAL/Distance_3/Ray_3_Line_3.h index 47cfb06e..de0b9c2a 100644 --- a/thirdparty/CGAL/include/CGAL/Distance_3/Ray_3_Line_3.h +++ b/thirdparty/CGAL/include/CGAL/Distance_3/Ray_3_Line_3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Distance_3/Ray_3_Plane_3.h b/thirdparty/CGAL/include/CGAL/Distance_3/Ray_3_Plane_3.h index 8fa68cd0..a936616b 100644 --- a/thirdparty/CGAL/include/CGAL/Distance_3/Ray_3_Plane_3.h +++ b/thirdparty/CGAL/include/CGAL/Distance_3/Ray_3_Plane_3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Distance_3/Ray_3_Ray_3.h b/thirdparty/CGAL/include/CGAL/Distance_3/Ray_3_Ray_3.h index 162504ce..33fb0b08 100644 --- a/thirdparty/CGAL/include/CGAL/Distance_3/Ray_3_Ray_3.h +++ b/thirdparty/CGAL/include/CGAL/Distance_3/Ray_3_Ray_3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Distance_3/Segment_3_Line_3.h b/thirdparty/CGAL/include/CGAL/Distance_3/Segment_3_Line_3.h index d4a1b193..3e5a5ead 100644 --- a/thirdparty/CGAL/include/CGAL/Distance_3/Segment_3_Line_3.h +++ b/thirdparty/CGAL/include/CGAL/Distance_3/Segment_3_Line_3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Distance_3/Segment_3_Plane_3.h b/thirdparty/CGAL/include/CGAL/Distance_3/Segment_3_Plane_3.h index 68efb2c9..329ac96d 100644 --- a/thirdparty/CGAL/include/CGAL/Distance_3/Segment_3_Plane_3.h +++ b/thirdparty/CGAL/include/CGAL/Distance_3/Segment_3_Plane_3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Distance_3/Segment_3_Ray_3.h b/thirdparty/CGAL/include/CGAL/Distance_3/Segment_3_Ray_3.h index 1a09c48e..fea87eac 100644 --- a/thirdparty/CGAL/include/CGAL/Distance_3/Segment_3_Ray_3.h +++ b/thirdparty/CGAL/include/CGAL/Distance_3/Segment_3_Ray_3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Distance_3/Segment_3_Segment_3.h b/thirdparty/CGAL/include/CGAL/Distance_3/Segment_3_Segment_3.h index ad5a4d6f..e4899b9a 100644 --- a/thirdparty/CGAL/include/CGAL/Distance_3/Segment_3_Segment_3.h +++ b/thirdparty/CGAL/include/CGAL/Distance_3/Segment_3_Segment_3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Distance_3/Triangle_3_Triangle_3.h b/thirdparty/CGAL/include/CGAL/Distance_3/Triangle_3_Triangle_3.h index 6db05daa..7ff47da6 100644 --- a/thirdparty/CGAL/include/CGAL/Distance_3/Triangle_3_Triangle_3.h +++ b/thirdparty/CGAL/include/CGAL/Distance_3/Triangle_3_Triangle_3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Distance_3/Weighted_point_3_Weighted_point_3.h b/thirdparty/CGAL/include/CGAL/Distance_3/Weighted_point_3_Weighted_point_3.h index 33eeebf4..1664cdca 100644 --- a/thirdparty/CGAL/include/CGAL/Distance_3/Weighted_point_3_Weighted_point_3.h +++ b/thirdparty/CGAL/include/CGAL/Distance_3/Weighted_point_3_Weighted_point_3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Distance_3/internal/squared_distance_utils_3.h b/thirdparty/CGAL/include/CGAL/Distance_3/internal/squared_distance_utils_3.h index 33cdbbe5..1281ce32 100644 --- a/thirdparty/CGAL/include/CGAL/Distance_3/internal/squared_distance_utils_3.h +++ b/thirdparty/CGAL/include/CGAL/Distance_3/internal/squared_distance_utils_3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Double_map.h b/thirdparty/CGAL/include/CGAL/Double_map.h index 8568bdce..108faceb 100644 --- a/thirdparty/CGAL/include/CGAL/Double_map.h +++ b/thirdparty/CGAL/include/CGAL/Double_map.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Dummy_tds_2.h b/thirdparty/CGAL/include/CGAL/Dummy_tds_2.h index 82f29d53..21c5c06c 100644 --- a/thirdparty/CGAL/include/CGAL/Dummy_tds_2.h +++ b/thirdparty/CGAL/include/CGAL/Dummy_tds_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Dynamic_matrix.h b/thirdparty/CGAL/include/CGAL/Dynamic_matrix.h index e4d74645..2d6cad0a 100644 --- a/thirdparty/CGAL/include/CGAL/Dynamic_matrix.h +++ b/thirdparty/CGAL/include/CGAL/Dynamic_matrix.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Dynamic_property_map.h b/thirdparty/CGAL/include/CGAL/Dynamic_property_map.h index 2be01e1a..37d64707 100644 --- a/thirdparty/CGAL/include/CGAL/Dynamic_property_map.h +++ b/thirdparty/CGAL/include/CGAL/Dynamic_property_map.h @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ struct Dynamic_property_map { } - typedef boost::unordered_map Map; + typedef std::unordered_map Map; std::shared_ptr map_; V default_value_; }; diff --git a/thirdparty/CGAL/include/CGAL/Eigen_diagonalize_traits.h b/thirdparty/CGAL/include/CGAL/Eigen_diagonalize_traits.h index e6d61b86..8e7dc749 100644 --- a/thirdparty/CGAL/include/CGAL/Eigen_diagonalize_traits.h +++ b/thirdparty/CGAL/include/CGAL/Eigen_diagonalize_traits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Eigen_matrix.h b/thirdparty/CGAL/include/CGAL/Eigen_matrix.h index 45c8ad29..2787ad00 100644 --- a/thirdparty/CGAL/include/CGAL/Eigen_matrix.h +++ b/thirdparty/CGAL/include/CGAL/Eigen_matrix.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Eigen_solver_traits.h b/thirdparty/CGAL/include/CGAL/Eigen_solver_traits.h index fef60837..a7bc456a 100644 --- a/thirdparty/CGAL/include/CGAL/Eigen_solver_traits.h +++ b/thirdparty/CGAL/include/CGAL/Eigen_solver_traits.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Eigen_sparse_matrix.h b/thirdparty/CGAL/include/CGAL/Eigen_sparse_matrix.h index 3c5457d3..e09c66de 100644 --- a/thirdparty/CGAL/include/CGAL/Eigen_sparse_matrix.h +++ b/thirdparty/CGAL/include/CGAL/Eigen_sparse_matrix.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Eigen_svd.h b/thirdparty/CGAL/include/CGAL/Eigen_svd.h index ed02453b..d2feeb8c 100644 --- a/thirdparty/CGAL/include/CGAL/Eigen_svd.h +++ b/thirdparty/CGAL/include/CGAL/Eigen_svd.h @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Eigen_svd /// \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 --git a/thirdparty/CGAL/include/CGAL/Eigen_vector.h b/thirdparty/CGAL/include/CGAL/Eigen_vector.h index 35908060..16862211 100644 --- a/thirdparty/CGAL/include/CGAL/Eigen_vector.h +++ b/thirdparty/CGAL/include/CGAL/Eigen_vector.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Enum_converter.h b/thirdparty/CGAL/include/CGAL/Enum_converter.h index f2f8fe4d..5e6a8cc1 100644 --- a/thirdparty/CGAL/include/CGAL/Enum_converter.h +++ b/thirdparty/CGAL/include/CGAL/Enum_converter.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Env_default_diagram_1.h b/thirdparty/CGAL/include/CGAL/Env_default_diagram_1.h index 890c3b6a..b66423d7 100644 --- a/thirdparty/CGAL/include/CGAL/Env_default_diagram_1.h +++ b/thirdparty/CGAL/include/CGAL/Env_default_diagram_1.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Env_plane_traits_3.h b/thirdparty/CGAL/include/CGAL/Env_plane_traits_3.h index b3e2eef6..3e8e361e 100644 --- a/thirdparty/CGAL/include/CGAL/Env_plane_traits_3.h +++ b/thirdparty/CGAL/include/CGAL/Env_plane_traits_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Env_sphere_traits_3.h b/thirdparty/CGAL/include/CGAL/Env_sphere_traits_3.h index 3f0d4b6d..cca4107e 100644 --- a/thirdparty/CGAL/include/CGAL/Env_sphere_traits_3.h +++ b/thirdparty/CGAL/include/CGAL/Env_sphere_traits_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Env_surface_data_traits_3.h b/thirdparty/CGAL/include/CGAL/Env_surface_data_traits_3.h index ac21c37d..bd53ede4 100644 --- a/thirdparty/CGAL/include/CGAL/Env_surface_data_traits_3.h +++ b/thirdparty/CGAL/include/CGAL/Env_surface_data_traits_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Env_tracing_traits_3.h b/thirdparty/CGAL/include/CGAL/Env_tracing_traits_3.h index 1e48e785..c403f43d 100644 --- a/thirdparty/CGAL/include/CGAL/Env_tracing_traits_3.h +++ b/thirdparty/CGAL/include/CGAL/Env_tracing_traits_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Env_triangle_traits_3.h b/thirdparty/CGAL/include/CGAL/Env_triangle_traits_3.h index 48fdfc91..2e1ffa10 100644 --- a/thirdparty/CGAL/include/CGAL/Env_triangle_traits_3.h +++ b/thirdparty/CGAL/include/CGAL/Env_triangle_traits_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Envelope_2/Env_divide_and_conquer_2.h b/thirdparty/CGAL/include/CGAL/Envelope_2/Env_divide_and_conquer_2.h index 9b3d02bb..b7e9ad52 100644 --- a/thirdparty/CGAL/include/CGAL/Envelope_2/Env_divide_and_conquer_2.h +++ b/thirdparty/CGAL/include/CGAL/Envelope_2/Env_divide_and_conquer_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Envelope_2/Env_divide_and_conquer_2_impl.h b/thirdparty/CGAL/include/CGAL/Envelope_2/Env_divide_and_conquer_2_impl.h index ba056c09..03b7a5e8 100644 --- a/thirdparty/CGAL/include/CGAL/Envelope_2/Env_divide_and_conquer_2_impl.h +++ b/thirdparty/CGAL/include/CGAL/Envelope_2/Env_divide_and_conquer_2_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Envelope_3/Env_plane_traits_3_functions.h b/thirdparty/CGAL/include/CGAL/Envelope_3/Env_plane_traits_3_functions.h index 532594af..5940aef2 100644 --- a/thirdparty/CGAL/include/CGAL/Envelope_3/Env_plane_traits_3_functions.h +++ b/thirdparty/CGAL/include/CGAL/Envelope_3/Env_plane_traits_3_functions.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Envelope_3/Envelope_base.h b/thirdparty/CGAL/include/CGAL/Envelope_3/Envelope_base.h index 470bc255..43220210 100644 --- a/thirdparty/CGAL/include/CGAL/Envelope_3/Envelope_base.h +++ b/thirdparty/CGAL/include/CGAL/Envelope_3/Envelope_base.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Envelope_3/Envelope_diagram_on_surface_2.h b/thirdparty/CGAL/include/CGAL/Envelope_3/Envelope_diagram_on_surface_2.h index 9c993aee..8825fd5f 100644 --- a/thirdparty/CGAL/include/CGAL/Envelope_3/Envelope_diagram_on_surface_2.h +++ b/thirdparty/CGAL/include/CGAL/Envelope_3/Envelope_diagram_on_surface_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Envelope_3/Envelope_divide_and_conquer_3.h b/thirdparty/CGAL/include/CGAL/Envelope_3/Envelope_divide_and_conquer_3.h index a260bd7a..07cf5ae5 100644 --- a/thirdparty/CGAL/include/CGAL/Envelope_3/Envelope_divide_and_conquer_3.h +++ b/thirdparty/CGAL/include/CGAL/Envelope_3/Envelope_divide_and_conquer_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Envelope_3/Envelope_element_visitor_3.h b/thirdparty/CGAL/include/CGAL/Envelope_3/Envelope_element_visitor_3.h index 412ea623..cef55350 100644 --- a/thirdparty/CGAL/include/CGAL/Envelope_3/Envelope_element_visitor_3.h +++ b/thirdparty/CGAL/include/CGAL/Envelope_3/Envelope_element_visitor_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Envelope_3/Envelope_overlay_2.h b/thirdparty/CGAL/include/CGAL/Envelope_3/Envelope_overlay_2.h index d6315234..e7c49608 100644 --- a/thirdparty/CGAL/include/CGAL/Envelope_3/Envelope_overlay_2.h +++ b/thirdparty/CGAL/include/CGAL/Envelope_3/Envelope_overlay_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Envelope_3/Envelope_overlay_functor.h b/thirdparty/CGAL/include/CGAL/Envelope_3/Envelope_overlay_functor.h index 5e4879d3..2d7f8a29 100644 --- a/thirdparty/CGAL/include/CGAL/Envelope_3/Envelope_overlay_functor.h +++ b/thirdparty/CGAL/include/CGAL/Envelope_3/Envelope_overlay_functor.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Envelope_3/Envelope_pm_dcel.h b/thirdparty/CGAL/include/CGAL/Envelope_3/Envelope_pm_dcel.h index cda93b77..c2837c69 100644 --- a/thirdparty/CGAL/include/CGAL/Envelope_3/Envelope_pm_dcel.h +++ b/thirdparty/CGAL/include/CGAL/Envelope_3/Envelope_pm_dcel.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Envelope_3/set_dividors.h b/thirdparty/CGAL/include/CGAL/Envelope_3/set_dividors.h index 6a62238c..ce70276f 100644 --- a/thirdparty/CGAL/include/CGAL/Envelope_3/set_dividors.h +++ b/thirdparty/CGAL/include/CGAL/Envelope_3/set_dividors.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Envelope_diagram_1.h b/thirdparty/CGAL/include/CGAL/Envelope_diagram_1.h index 3ee22129..7caaa62e 100644 --- a/thirdparty/CGAL/include/CGAL/Envelope_diagram_1.h +++ b/thirdparty/CGAL/include/CGAL/Envelope_diagram_1.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Epeck_d.h b/thirdparty/CGAL/include/CGAL/Epeck_d.h index 5612303d..77355750 100644 --- a/thirdparty/CGAL/include/CGAL/Epeck_d.h +++ b/thirdparty/CGAL/include/CGAL/Epeck_d.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Epic_converter.h b/thirdparty/CGAL/include/CGAL/Epic_converter.h index cd464d25..51624957 100644 --- a/thirdparty/CGAL/include/CGAL/Epic_converter.h +++ b/thirdparty/CGAL/include/CGAL/Epic_converter.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Filtered_kernel/include/CGAL/Epic_converter.h $ -// $Id: Epic_converter.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot +// $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 // // @@ -49,7 +49,15 @@ class Epic_converter { typedef typename IK::FT IK_FT; public: + std::pair operator()(Origin o) const + { + return std::make_pair(o, true); + } + std::pair operator()(Null_vector n) const + { + return std::make_pair(n, true); + } std::pair operator()(const typename IK::FT n) const { diff --git a/thirdparty/CGAL/include/CGAL/Epick_d.h b/thirdparty/CGAL/include/CGAL/Epick_d.h index 22f09408..a9e652da 100644 --- a/thirdparty/CGAL/include/CGAL/Epick_d.h +++ b/thirdparty/CGAL/include/CGAL/Epick_d.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Euclidean_distance.h b/thirdparty/CGAL/include/CGAL/Euclidean_distance.h index f488f573..73a8cba9 100644 --- a/thirdparty/CGAL/include/CGAL/Euclidean_distance.h +++ b/thirdparty/CGAL/include/CGAL/Euclidean_distance.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Euclidean_distance_sphere_point.h b/thirdparty/CGAL/include/CGAL/Euclidean_distance_sphere_point.h index 40517954..6b31a199 100644 --- a/thirdparty/CGAL/include/CGAL/Euclidean_distance_sphere_point.h +++ b/thirdparty/CGAL/include/CGAL/Euclidean_distance_sphere_point.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Euler_integrator_2.h b/thirdparty/CGAL/include/CGAL/Euler_integrator_2.h index 4b088b8d..e15ef446 100644 --- a/thirdparty/CGAL/include/CGAL/Euler_integrator_2.h +++ b/thirdparty/CGAL/include/CGAL/Euler_integrator_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Exact_algebraic.h b/thirdparty/CGAL/include/CGAL/Exact_algebraic.h index aaaace0f..18d5180c 100644 --- a/thirdparty/CGAL/include/CGAL/Exact_algebraic.h +++ b/thirdparty/CGAL/include/CGAL/Exact_algebraic.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Exact_circular_kernel_2.h b/thirdparty/CGAL/include/CGAL/Exact_circular_kernel_2.h index 7f3c3b54..9a06fe6c 100644 --- a/thirdparty/CGAL/include/CGAL/Exact_circular_kernel_2.h +++ b/thirdparty/CGAL/include/CGAL/Exact_circular_kernel_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Exact_integer.h b/thirdparty/CGAL/include/CGAL/Exact_integer.h index 160d7d25..61857312 100644 --- a/thirdparty/CGAL/include/CGAL/Exact_integer.h +++ b/thirdparty/CGAL/include/CGAL/Exact_integer.h @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ typedef unspecified_type Exact_integer; #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 --git a/thirdparty/CGAL/include/CGAL/Exact_kernel_selector.h b/thirdparty/CGAL/include/CGAL/Exact_kernel_selector.h index 34849c35..a77b53fa 100644 --- a/thirdparty/CGAL/include/CGAL/Exact_kernel_selector.h +++ b/thirdparty/CGAL/include/CGAL/Exact_kernel_selector.h @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Exact_predicates_exact_constructions_kernel.h b/thirdparty/CGAL/include/CGAL/Exact_predicates_exact_constructions_kernel.h index f3e71c95..603556bc 100644 --- a/thirdparty/CGAL/include/CGAL/Exact_predicates_exact_constructions_kernel.h +++ b/thirdparty/CGAL/include/CGAL/Exact_predicates_exact_constructions_kernel.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Exact_predicates_exact_constructions_kernel_with_kth_root.h b/thirdparty/CGAL/include/CGAL/Exact_predicates_exact_constructions_kernel_with_kth_root.h index 67b7d669..210bf642 100644 --- a/thirdparty/CGAL/include/CGAL/Exact_predicates_exact_constructions_kernel_with_kth_root.h +++ b/thirdparty/CGAL/include/CGAL/Exact_predicates_exact_constructions_kernel_with_kth_root.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Exact_predicates_exact_constructions_kernel_with_root_of.h b/thirdparty/CGAL/include/CGAL/Exact_predicates_exact_constructions_kernel_with_root_of.h index 4ebf1484..61c9909e 100644 --- a/thirdparty/CGAL/include/CGAL/Exact_predicates_exact_constructions_kernel_with_root_of.h +++ b/thirdparty/CGAL/include/CGAL/Exact_predicates_exact_constructions_kernel_with_root_of.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Exact_predicates_exact_constructions_kernel_with_sqrt.h b/thirdparty/CGAL/include/CGAL/Exact_predicates_exact_constructions_kernel_with_sqrt.h index ee7d4363..53a9809d 100644 --- a/thirdparty/CGAL/include/CGAL/Exact_predicates_exact_constructions_kernel_with_sqrt.h +++ b/thirdparty/CGAL/include/CGAL/Exact_predicates_exact_constructions_kernel_with_sqrt.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Exact_predicates_inexact_constructions_kernel.h b/thirdparty/CGAL/include/CGAL/Exact_predicates_inexact_constructions_kernel.h index 9957c943..81d7c220 100644 --- a/thirdparty/CGAL/include/CGAL/Exact_predicates_inexact_constructions_kernel.h +++ b/thirdparty/CGAL/include/CGAL/Exact_predicates_inexact_constructions_kernel.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Exact_rational.h b/thirdparty/CGAL/include/CGAL/Exact_rational.h index daef56eb..1a6a0331 100644 --- a/thirdparty/CGAL/include/CGAL/Exact_rational.h +++ b/thirdparty/CGAL/include/CGAL/Exact_rational.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Exact_spherical_kernel_3.h b/thirdparty/CGAL/include/CGAL/Exact_spherical_kernel_3.h index 8c3a30ca..82cae90f 100644 --- a/thirdparty/CGAL/include/CGAL/Exact_spherical_kernel_3.h +++ b/thirdparty/CGAL/include/CGAL/Exact_spherical_kernel_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Exponent_vector.h b/thirdparty/CGAL/include/CGAL/Exponent_vector.h index 579c5e60..44356a14 100644 --- a/thirdparty/CGAL/include/CGAL/Exponent_vector.h +++ b/thirdparty/CGAL/include/CGAL/Exponent_vector.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Extended_cartesian.h b/thirdparty/CGAL/include/CGAL/Extended_cartesian.h index 1ac6f785..9e9eca4f 100644 --- a/thirdparty/CGAL/include/CGAL/Extended_cartesian.h +++ b/thirdparty/CGAL/include/CGAL/Extended_cartesian.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Extended_homogeneous.h b/thirdparty/CGAL/include/CGAL/Extended_homogeneous.h index 839d3456..bcba3779 100644 --- a/thirdparty/CGAL/include/CGAL/Extended_homogeneous.h +++ b/thirdparty/CGAL/include/CGAL/Extended_homogeneous.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Extremal_polygon_traits_2.h b/thirdparty/CGAL/include/CGAL/Extremal_polygon_traits_2.h index c7e4d902..9805db61 100644 --- a/thirdparty/CGAL/include/CGAL/Extremal_polygon_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Extremal_polygon_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Extreme_points_traits_adapter_3.h b/thirdparty/CGAL/include/CGAL/Extreme_points_traits_adapter_3.h index c433f7d4..4610517e 100644 --- a/thirdparty/CGAL/include/CGAL/Extreme_points_traits_adapter_3.h +++ b/thirdparty/CGAL/include/CGAL/Extreme_points_traits_adapter_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/FPU.h b/thirdparty/CGAL/include/CGAL/FPU.h index 8efab963..c65a3af4 100644 --- a/thirdparty/CGAL/include/CGAL/FPU.h +++ b/thirdparty/CGAL/include/CGAL/FPU.h @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ inline __m128d swap_m128d(__m128d x){ # 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 --git a/thirdparty/CGAL/include/CGAL/FPU_extension.h b/thirdparty/CGAL/include/CGAL/FPU_extension.h index b86d1c61..ec130b45 100644 --- a/thirdparty/CGAL/include/CGAL/FPU_extension.h +++ b/thirdparty/CGAL/include/CGAL/FPU_extension.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/FPU_gcc_i386.h b/thirdparty/CGAL/include/CGAL/FPU_gcc_i386.h index ca3251ef..c0d7f04c 100644 --- a/thirdparty/CGAL/include/CGAL/FPU_gcc_i386.h +++ b/thirdparty/CGAL/include/CGAL/FPU_gcc_i386.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/FPU_gcc_i386_sse2.h b/thirdparty/CGAL/include/CGAL/FPU_gcc_i386_sse2.h index 578351fc..5946275c 100644 --- a/thirdparty/CGAL/include/CGAL/FPU_gcc_i386_sse2.h +++ b/thirdparty/CGAL/include/CGAL/FPU_gcc_i386_sse2.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/FPU_msvc.h b/thirdparty/CGAL/include/CGAL/FPU_msvc.h index ebe64a8d..7b500d26 100644 --- a/thirdparty/CGAL/include/CGAL/FPU_msvc.h +++ b/thirdparty/CGAL/include/CGAL/FPU_msvc.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/Face_graph_wrapper.h b/thirdparty/CGAL/include/CGAL/Face_graph_wrapper.h index 7e957b9b..b2cce187 100644 --- a/thirdparty/CGAL/include/CGAL/Face_graph_wrapper.h +++ b/thirdparty/CGAL/include/CGAL/Face_graph_wrapper.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Face_graph_wrapper 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 --git a/thirdparty/CGAL/include/CGAL/Filter_circulator.h b/thirdparty/CGAL/include/CGAL/Filter_circulator.h index 561e806a..c29e9592 100644 --- a/thirdparty/CGAL/include/CGAL/Filter_circulator.h +++ b/thirdparty/CGAL/include/CGAL/Filter_circulator.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Filtered_bbox_circular_kernel_2.h b/thirdparty/CGAL/include/CGAL/Filtered_bbox_circular_kernel_2.h index 5ed090c2..378786a3 100644 --- a/thirdparty/CGAL/include/CGAL/Filtered_bbox_circular_kernel_2.h +++ b/thirdparty/CGAL/include/CGAL/Filtered_bbox_circular_kernel_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Filtered_bbox_circular_kernel_2/bbox_filtered_predicates.h b/thirdparty/CGAL/include/CGAL/Filtered_bbox_circular_kernel_2/bbox_filtered_predicates.h index a4a6b7d0..3d85f224 100644 --- a/thirdparty/CGAL/include/CGAL/Filtered_bbox_circular_kernel_2/bbox_filtered_predicates.h +++ b/thirdparty/CGAL/include/CGAL/Filtered_bbox_circular_kernel_2/bbox_filtered_predicates.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Filtered_bbox_circular_kernel_2/interface_macros.h b/thirdparty/CGAL/include/CGAL/Filtered_bbox_circular_kernel_2/interface_macros.h index e62262f9..3f58ef19 100644 --- a/thirdparty/CGAL/include/CGAL/Filtered_bbox_circular_kernel_2/interface_macros.h +++ b/thirdparty/CGAL/include/CGAL/Filtered_bbox_circular_kernel_2/interface_macros.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Filtered_construction.h b/thirdparty/CGAL/include/CGAL/Filtered_construction.h index 7d0ca29c..89be6035 100644 --- a/thirdparty/CGAL/include/CGAL/Filtered_construction.h +++ b/thirdparty/CGAL/include/CGAL/Filtered_construction.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Filtered_extended_homogeneous.h b/thirdparty/CGAL/include/CGAL/Filtered_extended_homogeneous.h index fb3edf16..138d8b3a 100644 --- a/thirdparty/CGAL/include/CGAL/Filtered_extended_homogeneous.h +++ b/thirdparty/CGAL/include/CGAL/Filtered_extended_homogeneous.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Filtered_kernel.h b/thirdparty/CGAL/include/CGAL/Filtered_kernel.h index 0f51bedf..d48a9041 100644 --- a/thirdparty/CGAL/include/CGAL/Filtered_kernel.h +++ b/thirdparty/CGAL/include/CGAL/Filtered_kernel.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ struct Filtered_kernel_base 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 --git a/thirdparty/CGAL/include/CGAL/Filtered_kernel/Cartesian_coordinate_iterator_2.h b/thirdparty/CGAL/include/CGAL/Filtered_kernel/Cartesian_coordinate_iterator_2.h index 75cafc29..347e700e 100644 --- a/thirdparty/CGAL/include/CGAL/Filtered_kernel/Cartesian_coordinate_iterator_2.h +++ b/thirdparty/CGAL/include/CGAL/Filtered_kernel/Cartesian_coordinate_iterator_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Filtered_kernel/Cartesian_coordinate_iterator_3.h b/thirdparty/CGAL/include/CGAL/Filtered_kernel/Cartesian_coordinate_iterator_3.h index e16bdb17..8142317d 100644 --- a/thirdparty/CGAL/include/CGAL/Filtered_kernel/Cartesian_coordinate_iterator_3.h +++ b/thirdparty/CGAL/include/CGAL/Filtered_kernel/Cartesian_coordinate_iterator_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Angle_3.h b/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Angle_3.h index 2e0a475f..95380f90 100644 --- a/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Angle_3.h +++ b/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Angle_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Collinear_3.h b/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Collinear_3.h index d752f282..3ae3dd20 100644 --- a/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Collinear_3.h +++ b/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Collinear_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Compare_distance_3.h b/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Compare_distance_3.h index 18427f97..f335ab52 100644 --- a/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Compare_distance_3.h +++ b/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Compare_distance_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Compare_squared_radius_3.h b/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Compare_squared_radius_3.h index 2ae8e1bd..be29e354 100644 --- a/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Compare_squared_radius_3.h +++ b/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Compare_squared_radius_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Compare_weighted_squared_radius_3.h b/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Compare_weighted_squared_radius_3.h index bded15d0..1322b858 100644 --- a/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Compare_weighted_squared_radius_3.h +++ b/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Compare_weighted_squared_radius_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Compare_x_2.h b/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Compare_x_2.h index 54b75a4b..2af6820e 100644 --- a/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Compare_x_2.h +++ b/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Compare_x_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Compare_y_2.h b/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Compare_y_2.h index f9eff4a0..55a72e50 100644 --- a/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Compare_y_2.h +++ b/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Compare_y_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Compare_y_at_x_2.h b/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Compare_y_at_x_2.h index a002a339..b424664e 100644 --- a/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Compare_y_at_x_2.h +++ b/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Compare_y_at_x_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Coplanar_3.h b/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Coplanar_3.h index 3892fbd4..82011276 100644 --- a/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Coplanar_3.h +++ b/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Coplanar_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Coplanar_orientation_3.h b/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Coplanar_orientation_3.h index 1c3ca266..123a2e68 100644 --- a/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Coplanar_orientation_3.h +++ b/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Coplanar_orientation_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Coplanar_side_of_bounded_circle_3.h b/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Coplanar_side_of_bounded_circle_3.h index d10e3db7..097bf86a 100644 --- a/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Coplanar_side_of_bounded_circle_3.h +++ b/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Coplanar_side_of_bounded_circle_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Do_intersect_2.h b/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Do_intersect_2.h index 8b95aa7a..b4e32fb0 100644 --- a/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Do_intersect_2.h +++ b/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Do_intersect_2.h @@ -5,7 +5,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Do_intersect_3.h b/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Do_intersect_3.h index 68b2f369..11e18ffc 100644 --- a/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Do_intersect_3.h +++ b/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Do_intersect_3.h @@ -5,7 +5,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Equal_2.h b/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Equal_2.h index bd5072f3..1ddaafcb 100644 --- a/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Equal_2.h +++ b/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Equal_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Equal_3.h b/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Equal_3.h index b3cc659c..26256a06 100644 --- a/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Equal_3.h +++ b/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Equal_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Is_degenerate_3.h b/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Is_degenerate_3.h index 5625be31..642dfbaf 100644 --- a/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Is_degenerate_3.h +++ b/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Is_degenerate_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Orientation_2.h b/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Orientation_2.h index b977bb2d..419b20d1 100644 --- a/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Orientation_2.h +++ b/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Orientation_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Orientation_3.h b/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Orientation_3.h index 4b5c5602..fb3dacc2 100644 --- a/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Orientation_3.h +++ b/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Orientation_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Power_side_of_oriented_power_sphere_3.h b/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Power_side_of_oriented_power_sphere_3.h index fbfafa57..3a90085b 100644 --- a/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Power_side_of_oriented_power_sphere_3.h +++ b/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Power_side_of_oriented_power_sphere_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Side_of_oriented_circle_2.h b/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Side_of_oriented_circle_2.h index 543660be..b45d84ae 100644 --- a/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Side_of_oriented_circle_2.h +++ b/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Side_of_oriented_circle_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Side_of_oriented_sphere_3.h b/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Side_of_oriented_sphere_3.h index ed09c4ea..a25e8fb0 100644 --- a/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Side_of_oriented_sphere_3.h +++ b/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Side_of_oriented_sphere_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Static_filter_error.h b/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Static_filter_error.h index 86aeb22d..1bc33cbd 100644 --- a/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Static_filter_error.h +++ b/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Static_filter_error.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Static_filters.h b/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Static_filters.h index c2b70968..9761cc7c 100644 --- a/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Static_filters.h +++ b/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/Static_filters.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/tools.h b/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/tools.h index d49d134e..d69a3c54 100644 --- a/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/tools.h +++ b/thirdparty/CGAL/include/CGAL/Filtered_kernel/internal/Static_filters/tools.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Filtered_kernel_d.h b/thirdparty/CGAL/include/CGAL/Filtered_kernel_d.h index 8fee8c73..49b91801 100644 --- a/thirdparty/CGAL/include/CGAL/Filtered_kernel_d.h +++ b/thirdparty/CGAL/include/CGAL/Filtered_kernel_d.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Filtered_kernel_fwd.h b/thirdparty/CGAL/include/CGAL/Filtered_kernel_fwd.h index b594d163..b04affa8 100644 --- a/thirdparty/CGAL/include/CGAL/Filtered_kernel_fwd.h +++ b/thirdparty/CGAL/include/CGAL/Filtered_kernel_fwd.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Filtered_predicate.h b/thirdparty/CGAL/include/CGAL/Filtered_predicate.h index 8fe43763..f7ecfe98 100644 --- a/thirdparty/CGAL/include/CGAL/Filtered_predicate.h +++ b/thirdparty/CGAL/include/CGAL/Filtered_predicate.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Filtered_predicate_with_state.h b/thirdparty/CGAL/include/CGAL/Filtered_predicate_with_state.h index f155ee5d..b552c912 100644 --- a/thirdparty/CGAL/include/CGAL/Filtered_predicate_with_state.h +++ b/thirdparty/CGAL/include/CGAL/Filtered_predicate_with_state.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Fixed_alpha_shape_3.h b/thirdparty/CGAL/include/CGAL/Fixed_alpha_shape_3.h index 12a444b7..4b87ea98 100644 --- a/thirdparty/CGAL/include/CGAL/Fixed_alpha_shape_3.h +++ b/thirdparty/CGAL/include/CGAL/Fixed_alpha_shape_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Fixed_alpha_shape_cell_base_3.h b/thirdparty/CGAL/include/CGAL/Fixed_alpha_shape_cell_base_3.h index 52fbe05d..9226f3ca 100644 --- a/thirdparty/CGAL/include/CGAL/Fixed_alpha_shape_cell_base_3.h +++ b/thirdparty/CGAL/include/CGAL/Fixed_alpha_shape_cell_base_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Fixed_alpha_shape_vertex_base_3.h b/thirdparty/CGAL/include/CGAL/Fixed_alpha_shape_vertex_base_3.h index b984f9e0..1bb5ef1a 100644 --- a/thirdparty/CGAL/include/CGAL/Fixed_alpha_shape_vertex_base_3.h +++ b/thirdparty/CGAL/include/CGAL/Fixed_alpha_shape_vertex_base_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Flattening_iterator.h b/thirdparty/CGAL/include/CGAL/Flattening_iterator.h index 53cb3b8a..ba69dcc4 100644 --- a/thirdparty/CGAL/include/CGAL/Flattening_iterator.h +++ b/thirdparty/CGAL/include/CGAL/Flattening_iterator.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Fourtuple.h b/thirdparty/CGAL/include/CGAL/Fourtuple.h index 62186cc9..190e20a5 100644 --- a/thirdparty/CGAL/include/CGAL/Fourtuple.h +++ b/thirdparty/CGAL/include/CGAL/Fourtuple.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Fraction_traits.h b/thirdparty/CGAL/include/CGAL/Fraction_traits.h index 362ea4ab..343799db 100644 --- a/thirdparty/CGAL/include/CGAL/Fraction_traits.h +++ b/thirdparty/CGAL/include/CGAL/Fraction_traits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Fuzzy_iso_box.h b/thirdparty/CGAL/include/CGAL/Fuzzy_iso_box.h index 102ca1e1..821b18bf 100644 --- a/thirdparty/CGAL/include/CGAL/Fuzzy_iso_box.h +++ b/thirdparty/CGAL/include/CGAL/Fuzzy_iso_box.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Fuzzy_sphere.h b/thirdparty/CGAL/include/CGAL/Fuzzy_sphere.h index a94bcbb7..793b66fa 100644 --- a/thirdparty/CGAL/include/CGAL/Fuzzy_sphere.h +++ b/thirdparty/CGAL/include/CGAL/Fuzzy_sphere.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/GLPK_mixed_integer_program_traits.h b/thirdparty/CGAL/include/CGAL/GLPK_mixed_integer_program_traits.h index da8f4e63..36a6a61e 100644 --- a/thirdparty/CGAL/include/CGAL/GLPK_mixed_integer_program_traits.h +++ b/thirdparty/CGAL/include/CGAL/GLPK_mixed_integer_program_traits.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/GMP/Gmpfi_type.h b/thirdparty/CGAL/include/CGAL/GMP/Gmpfi_type.h index a6de9006..48ef89eb 100644 --- a/thirdparty/CGAL/include/CGAL/GMP/Gmpfi_type.h +++ b/thirdparty/CGAL/include/CGAL/GMP/Gmpfi_type.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/GMP/Gmpfi_type_static.h b/thirdparty/CGAL/include/CGAL/GMP/Gmpfi_type_static.h index 5fe5251f..33f9b868 100644 --- a/thirdparty/CGAL/include/CGAL/GMP/Gmpfi_type_static.h +++ b/thirdparty/CGAL/include/CGAL/GMP/Gmpfi_type_static.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/GMP/Gmpfr_type.h b/thirdparty/CGAL/include/CGAL/GMP/Gmpfr_type.h index f8af01e5..c06b4749 100644 --- a/thirdparty/CGAL/include/CGAL/GMP/Gmpfr_type.h +++ b/thirdparty/CGAL/include/CGAL/GMP/Gmpfr_type.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/GMP/Gmpfr_type_static.h b/thirdparty/CGAL/include/CGAL/GMP/Gmpfr_type_static.h index c19cba1a..c57d3137 100644 --- a/thirdparty/CGAL/include/CGAL/GMP/Gmpfr_type_static.h +++ b/thirdparty/CGAL/include/CGAL/GMP/Gmpfr_type_static.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/GMP/Gmpq_type.h b/thirdparty/CGAL/include/CGAL/GMP/Gmpq_type.h index e6486803..83063da7 100644 --- a/thirdparty/CGAL/include/CGAL/GMP/Gmpq_type.h +++ b/thirdparty/CGAL/include/CGAL/GMP/Gmpq_type.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/GMP/Gmpz_type.h b/thirdparty/CGAL/include/CGAL/GMP/Gmpz_type.h index afdd6e47..d5d83a6a 100644 --- a/thirdparty/CGAL/include/CGAL/GMP/Gmpz_type.h +++ b/thirdparty/CGAL/include/CGAL/GMP/Gmpz_type.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/GMP/Gmpzf_type.h b/thirdparty/CGAL/include/CGAL/GMP/Gmpzf_type.h index f42d193d..48210b44 100644 --- a/thirdparty/CGAL/include/CGAL/GMP/Gmpzf_type.h +++ b/thirdparty/CGAL/include/CGAL/GMP/Gmpzf_type.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Gmpzf : 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 --git a/thirdparty/CGAL/include/CGAL/GMPXX_arithmetic_kernel.h b/thirdparty/CGAL/include/CGAL/GMPXX_arithmetic_kernel.h index 3c50cbd0..94bf7b3c 100644 --- a/thirdparty/CGAL/include/CGAL/GMPXX_arithmetic_kernel.h +++ b/thirdparty/CGAL/include/CGAL/GMPXX_arithmetic_kernel.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/GMP_arithmetic_kernel.h b/thirdparty/CGAL/include/CGAL/GMP_arithmetic_kernel.h index 30367cfd..417885af 100644 --- a/thirdparty/CGAL/include/CGAL/GMP_arithmetic_kernel.h +++ b/thirdparty/CGAL/include/CGAL/GMP_arithmetic_kernel.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/GMap_cell_const_iterators.h b/thirdparty/CGAL/include/CGAL/GMap_cell_const_iterators.h index 04f528e1..2be4653c 100644 --- a/thirdparty/CGAL/include/CGAL/GMap_cell_const_iterators.h +++ b/thirdparty/CGAL/include/CGAL/GMap_cell_const_iterators.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/GMap_cell_iterators.h b/thirdparty/CGAL/include/CGAL/GMap_cell_iterators.h index d6a12081..ac94329e 100644 --- a/thirdparty/CGAL/include/CGAL/GMap_cell_iterators.h +++ b/thirdparty/CGAL/include/CGAL/GMap_cell_iterators.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/GMap_dart_const_iterators.h b/thirdparty/CGAL/include/CGAL/GMap_dart_const_iterators.h index ee018916..260097fd 100644 --- a/thirdparty/CGAL/include/CGAL/GMap_dart_const_iterators.h +++ b/thirdparty/CGAL/include/CGAL/GMap_dart_const_iterators.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/GMap_dart_iterators.h b/thirdparty/CGAL/include/CGAL/GMap_dart_iterators.h index 05ba05d2..d85abb3e 100644 --- a/thirdparty/CGAL/include/CGAL/GMap_dart_iterators.h +++ b/thirdparty/CGAL/include/CGAL/GMap_dart_iterators.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/GMap_linear_cell_complex_storages.h b/thirdparty/CGAL/include/CGAL/GMap_linear_cell_complex_storages.h index 407ebbef..c7e7f107 100644 --- a/thirdparty/CGAL/include/CGAL/GMap_linear_cell_complex_storages.h +++ b/thirdparty/CGAL/include/CGAL/GMap_linear_cell_complex_storages.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/General_polygon_2.h b/thirdparty/CGAL/include/CGAL/General_polygon_2.h index 9a3335b7..e6cde69e 100644 --- a/thirdparty/CGAL/include/CGAL/General_polygon_2.h +++ b/thirdparty/CGAL/include/CGAL/General_polygon_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/General_polygon_set_2.h b/thirdparty/CGAL/include/CGAL/General_polygon_set_2.h index 0c5c1692..9a6a3cbd 100644 --- a/thirdparty/CGAL/include/CGAL/General_polygon_set_2.h +++ b/thirdparty/CGAL/include/CGAL/General_polygon_set_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/General_polygon_set_on_surface_2.h b/thirdparty/CGAL/include/CGAL/General_polygon_set_on_surface_2.h index bafbec88..aef7e6df 100644 --- a/thirdparty/CGAL/include/CGAL/General_polygon_set_on_surface_2.h +++ b/thirdparty/CGAL/include/CGAL/General_polygon_set_on_surface_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/General_polygon_with_holes_2.h b/thirdparty/CGAL/include/CGAL/General_polygon_with_holes_2.h index c7148483..37a35fa2 100644 --- a/thirdparty/CGAL/include/CGAL/General_polygon_with_holes_2.h +++ b/thirdparty/CGAL/include/CGAL/General_polygon_with_holes_2.h @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ boundary is exported followed by the curves themselves. \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 @@ outer boundary is followed by the curves themselves. \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 --git a/thirdparty/CGAL/include/CGAL/Generalized_map.h b/thirdparty/CGAL/include/CGAL/Generalized_map.h index c20fa881..efe95e69 100644 --- a/thirdparty/CGAL/include/CGAL/Generalized_map.h +++ b/thirdparty/CGAL/include/CGAL/Generalized_map.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace CGAL { 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 @@ namespace CGAL { 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 @@ namespace CGAL { 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 @@ namespace CGAL { 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 @@ namespace CGAL { 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 @@ namespace CGAL { 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 @@ namespace CGAL { 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 @@ namespace CGAL { 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 @@ namespace CGAL { 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 @@ namespace CGAL { 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 @@ namespace CGAL { } } - // CGAL_postcondition(amap2.is_valid()); - if ( res==amap.null_handle ) res = amap.darts().begin(); return res; } @@ -2632,9 +2660,9 @@ namespace CGAL { } } - 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 @@ namespace CGAL { 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 @@ namespace CGAL { 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 @@ namespace CGAL { Generalized_map(const Self & amap) : Base(amap) {} + Generalized_map(Self && amap) : Base(amap) + {} + template Generalized_map(const Generalized_map_base& amap) : diff --git a/thirdparty/CGAL/include/CGAL/Generalized_map/internal/Generalized_map_group_functors.h b/thirdparty/CGAL/include/CGAL/Generalized_map/internal/Generalized_map_group_functors.h index ca232936..375dd263 100644 --- a/thirdparty/CGAL/include/CGAL/Generalized_map/internal/Generalized_map_group_functors.h +++ b/thirdparty/CGAL/include/CGAL/Generalized_map/internal/Generalized_map_group_functors.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Generalized_map/internal/Generalized_map_internal_functors.h b/thirdparty/CGAL/include/CGAL/Generalized_map/internal/Generalized_map_internal_functors.h index d52081d1..c4c609e1 100644 --- a/thirdparty/CGAL/include/CGAL/Generalized_map/internal/Generalized_map_internal_functors.h +++ b/thirdparty/CGAL/include/CGAL/Generalized_map/internal/Generalized_map_internal_functors.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Generalized_map/internal/Generalized_map_sewable.h b/thirdparty/CGAL/include/CGAL/Generalized_map/internal/Generalized_map_sewable.h index 2f83fda5..33aa6a60 100644 --- a/thirdparty/CGAL/include/CGAL/Generalized_map/internal/Generalized_map_sewable.h +++ b/thirdparty/CGAL/include/CGAL/Generalized_map/internal/Generalized_map_sewable.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Generalized_map_fwd.h b/thirdparty/CGAL/include/CGAL/Generalized_map_fwd.h index ac977cec..9cdb602b 100644 --- a/thirdparty/CGAL/include/CGAL/Generalized_map_fwd.h +++ b/thirdparty/CGAL/include/CGAL/Generalized_map_fwd.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Generalized_map_iterators_base.h b/thirdparty/CGAL/include/CGAL/Generalized_map_iterators_base.h index 7f59000d..bd483dd5 100644 --- a/thirdparty/CGAL/include/CGAL/Generalized_map_iterators_base.h +++ b/thirdparty/CGAL/include/CGAL/Generalized_map_iterators_base.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Generalized_map_operations.h b/thirdparty/CGAL/include/CGAL/Generalized_map_operations.h index 012cf7a1..c5c7b462 100644 --- a/thirdparty/CGAL/include/CGAL/Generalized_map_operations.h +++ b/thirdparty/CGAL/include/CGAL/Generalized_map_operations.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Generalized_map_save_load.h b/thirdparty/CGAL/include/CGAL/Generalized_map_save_load.h index 1e43ba23..b106cc6a 100644 --- a/thirdparty/CGAL/include/CGAL/Generalized_map_save_load.h +++ b/thirdparty/CGAL/include/CGAL/Generalized_map_save_load.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace CGAL { 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 @@ namespace CGAL { ptree tree; // map dart => number - std::map myDarts; + std::unordered_map myDarts; // Save darts ptree pt_darts=gmap_save_darts(amap, myDarts); diff --git a/thirdparty/CGAL/include/CGAL/Generalized_map_storages.h b/thirdparty/CGAL/include/CGAL/Generalized_map_storages.h index 0cb4c289..ebdd1e73 100644 --- a/thirdparty/CGAL/include/CGAL/Generalized_map_storages.h +++ b/thirdparty/CGAL/include/CGAL/Generalized_map_storages.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Generator/internal/Generic_random_point_generator.h b/thirdparty/CGAL/include/CGAL/Generator/internal/Generic_random_point_generator.h index 8bbe2f41..c1d4ffc0 100644 --- a/thirdparty/CGAL/include/CGAL/Generator/internal/Generic_random_point_generator.h +++ b/thirdparty/CGAL/include/CGAL/Generator/internal/Generic_random_point_generator.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Generic_map_min_items.h b/thirdparty/CGAL/include/CGAL/Generic_map_min_items.h index becd597c..ea66f5ca 100644 --- a/thirdparty/CGAL/include/CGAL/Generic_map_min_items.h +++ b/thirdparty/CGAL/include/CGAL/Generic_map_min_items.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Geographical_coordinates_traits_2.h b/thirdparty/CGAL/include/CGAL/Geographical_coordinates_traits_2.h index 89fe7d11..f0c17533 100644 --- a/thirdparty/CGAL/include/CGAL/Geographical_coordinates_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Geographical_coordinates_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Get_arithmetic_kernel.h b/thirdparty/CGAL/include/CGAL/Get_arithmetic_kernel.h index 6e735880..d6df664a 100644 --- a/thirdparty/CGAL/include/CGAL/Get_arithmetic_kernel.h +++ b/thirdparty/CGAL/include/CGAL/Get_arithmetic_kernel.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Gmp_coercion_traits.h b/thirdparty/CGAL/include/CGAL/Gmp_coercion_traits.h index e7551fdd..c87031fb 100644 --- a/thirdparty/CGAL/include/CGAL/Gmp_coercion_traits.h +++ b/thirdparty/CGAL/include/CGAL/Gmp_coercion_traits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Gmpfi.h b/thirdparty/CGAL/include/CGAL/Gmpfi.h index c8ae82fc..4f21c6de 100644 --- a/thirdparty/CGAL/include/CGAL/Gmpfi.h +++ b/thirdparty/CGAL/include/CGAL/Gmpfi.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Gmpfr.h b/thirdparty/CGAL/include/CGAL/Gmpfr.h index dabbd564..478327e2 100644 --- a/thirdparty/CGAL/include/CGAL/Gmpfr.h +++ b/thirdparty/CGAL/include/CGAL/Gmpfr.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Gmpq.h b/thirdparty/CGAL/include/CGAL/Gmpq.h index 0d0d8390..2489987f 100644 --- a/thirdparty/CGAL/include/CGAL/Gmpq.h +++ b/thirdparty/CGAL/include/CGAL/Gmpq.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Gmpz.h b/thirdparty/CGAL/include/CGAL/Gmpz.h index b1cc1b9f..cd69e434 100644 --- a/thirdparty/CGAL/include/CGAL/Gmpz.h +++ b/thirdparty/CGAL/include/CGAL/Gmpz.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Gmpzf.h b/thirdparty/CGAL/include/CGAL/Gmpzf.h index 5eb6654f..cc34033a 100644 --- a/thirdparty/CGAL/include/CGAL/Gmpzf.h +++ b/thirdparty/CGAL/include/CGAL/Gmpzf.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Gps_circle_segment_traits_2.h b/thirdparty/CGAL/include/CGAL/Gps_circle_segment_traits_2.h index 29522748..0326b48e 100644 --- a/thirdparty/CGAL/include/CGAL/Gps_circle_segment_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Gps_circle_segment_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Gps_segment_traits_2.h b/thirdparty/CGAL/include/CGAL/Gps_segment_traits_2.h index 7d3df759..e2ed258a 100644 --- a/thirdparty/CGAL/include/CGAL/Gps_segment_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Gps_segment_traits_2.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Gps_segment_traits_2 : public Arr_seg_traits_ // 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 @@ class Gps_segment_traits_2 : public Arr_seg_traits_ * 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 Gps_segment_traits_2 : public Arr_seg_traits_ 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 Gps_segment_traits_2 : public Arr_seg_traits_ */ 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 @@ class Gps_segment_traits_2 : public Arr_seg_traits_ * 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 --git a/thirdparty/CGAL/include/CGAL/Gps_traits_2.h b/thirdparty/CGAL/include/CGAL/Gps_traits_2.h index 2f0986f1..0ed1f920 100644 --- a/thirdparty/CGAL/include/CGAL/Gps_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Gps_traits_2.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 Gps_traits_2 : public Arr_traits */ 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 @@ class Gps_traits_2 : public Arr_traits /*! * 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 @@ class Gps_traits_2 : public Arr_traits /*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 @@ class Gps_traits_2 : public Arr_traits * 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 @@ class Gps_traits_2 : public Arr_traits { 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 @@ class Gps_traits_2 : public Arr_traits } //! 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 --git a/thirdparty/CGAL/include/CGAL/Gray_image_mesh_domain_3.h b/thirdparty/CGAL/include/CGAL/Gray_image_mesh_domain_3.h index 23b389be..c4c96819 100644 --- a/thirdparty/CGAL/include/CGAL/Gray_image_mesh_domain_3.h +++ b/thirdparty/CGAL/include/CGAL/Gray_image_mesh_domain_3.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Gray_level_image_3.h b/thirdparty/CGAL/include/CGAL/Gray_level_image_3.h index 077065ce..6ecbe635 100644 --- a/thirdparty/CGAL/include/CGAL/Gray_level_image_3.h +++ b/thirdparty/CGAL/include/CGAL/Gray_level_image_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/HalfedgeDS_const_decorator.h b/thirdparty/CGAL/include/CGAL/HalfedgeDS_const_decorator.h index cf453564..e7c1d833 100644 --- a/thirdparty/CGAL/include/CGAL/HalfedgeDS_const_decorator.h +++ b/thirdparty/CGAL/include/CGAL/HalfedgeDS_const_decorator.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/HalfedgeDS_decorator.h b/thirdparty/CGAL/include/CGAL/HalfedgeDS_decorator.h index baa5c414..20698b5f 100644 --- a/thirdparty/CGAL/include/CGAL/HalfedgeDS_decorator.h +++ b/thirdparty/CGAL/include/CGAL/HalfedgeDS_decorator.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/HalfedgeDS_default.h b/thirdparty/CGAL/include/CGAL/HalfedgeDS_default.h index 936a8a7f..053470aa 100644 --- a/thirdparty/CGAL/include/CGAL/HalfedgeDS_default.h +++ b/thirdparty/CGAL/include/CGAL/HalfedgeDS_default.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/HalfedgeDS_face_base.h b/thirdparty/CGAL/include/CGAL/HalfedgeDS_face_base.h index 8e7ff358..379307ee 100644 --- a/thirdparty/CGAL/include/CGAL/HalfedgeDS_face_base.h +++ b/thirdparty/CGAL/include/CGAL/HalfedgeDS_face_base.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/HalfedgeDS_face_max_base_with_id.h b/thirdparty/CGAL/include/CGAL/HalfedgeDS_face_max_base_with_id.h index deb6cc41..d652a0b1 100644 --- a/thirdparty/CGAL/include/CGAL/HalfedgeDS_face_max_base_with_id.h +++ b/thirdparty/CGAL/include/CGAL/HalfedgeDS_face_max_base_with_id.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/HalfedgeDS_face_min_base.h b/thirdparty/CGAL/include/CGAL/HalfedgeDS_face_min_base.h index 572b0fcb..104e6433 100644 --- a/thirdparty/CGAL/include/CGAL/HalfedgeDS_face_min_base.h +++ b/thirdparty/CGAL/include/CGAL/HalfedgeDS_face_min_base.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/HalfedgeDS_halfedge_base.h b/thirdparty/CGAL/include/CGAL/HalfedgeDS_halfedge_base.h index 79ea9dbe..2ddcb8ed 100644 --- a/thirdparty/CGAL/include/CGAL/HalfedgeDS_halfedge_base.h +++ b/thirdparty/CGAL/include/CGAL/HalfedgeDS_halfedge_base.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/HalfedgeDS_halfedge_max_base_with_id.h b/thirdparty/CGAL/include/CGAL/HalfedgeDS_halfedge_max_base_with_id.h index 46badc30..14b446cf 100644 --- a/thirdparty/CGAL/include/CGAL/HalfedgeDS_halfedge_max_base_with_id.h +++ b/thirdparty/CGAL/include/CGAL/HalfedgeDS_halfedge_max_base_with_id.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/HalfedgeDS_halfedge_min_base.h b/thirdparty/CGAL/include/CGAL/HalfedgeDS_halfedge_min_base.h index 8517fe89..ba3a9838 100644 --- a/thirdparty/CGAL/include/CGAL/HalfedgeDS_halfedge_min_base.h +++ b/thirdparty/CGAL/include/CGAL/HalfedgeDS_halfedge_min_base.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/HalfedgeDS_items_2.h b/thirdparty/CGAL/include/CGAL/HalfedgeDS_items_2.h index d37a5af8..459ad06c 100644 --- a/thirdparty/CGAL/include/CGAL/HalfedgeDS_items_2.h +++ b/thirdparty/CGAL/include/CGAL/HalfedgeDS_items_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/HalfedgeDS_items_decorator.h b/thirdparty/CGAL/include/CGAL/HalfedgeDS_items_decorator.h index 006e8138..d52a3ce2 100644 --- a/thirdparty/CGAL/include/CGAL/HalfedgeDS_items_decorator.h +++ b/thirdparty/CGAL/include/CGAL/HalfedgeDS_items_decorator.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/HalfedgeDS_iterator.h b/thirdparty/CGAL/include/CGAL/HalfedgeDS_iterator.h index a8913d18..49384034 100644 --- a/thirdparty/CGAL/include/CGAL/HalfedgeDS_iterator.h +++ b/thirdparty/CGAL/include/CGAL/HalfedgeDS_iterator.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/HalfedgeDS_iterator_adaptor.h b/thirdparty/CGAL/include/CGAL/HalfedgeDS_iterator_adaptor.h index 1b9779f5..04bcfead 100644 --- a/thirdparty/CGAL/include/CGAL/HalfedgeDS_iterator_adaptor.h +++ b/thirdparty/CGAL/include/CGAL/HalfedgeDS_iterator_adaptor.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/HalfedgeDS_list.h b/thirdparty/CGAL/include/CGAL/HalfedgeDS_list.h index 977841b3..23b2e857 100644 --- a/thirdparty/CGAL/include/CGAL/HalfedgeDS_list.h +++ b/thirdparty/CGAL/include/CGAL/HalfedgeDS_list.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/HalfedgeDS_min_items.h b/thirdparty/CGAL/include/CGAL/HalfedgeDS_min_items.h index 99ac728b..0a38316a 100644 --- a/thirdparty/CGAL/include/CGAL/HalfedgeDS_min_items.h +++ b/thirdparty/CGAL/include/CGAL/HalfedgeDS_min_items.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/HalfedgeDS_vector.h b/thirdparty/CGAL/include/CGAL/HalfedgeDS_vector.h index 1f9a671a..87c71320 100644 --- a/thirdparty/CGAL/include/CGAL/HalfedgeDS_vector.h +++ b/thirdparty/CGAL/include/CGAL/HalfedgeDS_vector.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/HalfedgeDS_vertex_base.h b/thirdparty/CGAL/include/CGAL/HalfedgeDS_vertex_base.h index 3cbfde06..5951e6fd 100644 --- a/thirdparty/CGAL/include/CGAL/HalfedgeDS_vertex_base.h +++ b/thirdparty/CGAL/include/CGAL/HalfedgeDS_vertex_base.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/HalfedgeDS_vertex_max_base_with_id.h b/thirdparty/CGAL/include/CGAL/HalfedgeDS_vertex_max_base_with_id.h index 5872c80a..aa0aa538 100644 --- a/thirdparty/CGAL/include/CGAL/HalfedgeDS_vertex_max_base_with_id.h +++ b/thirdparty/CGAL/include/CGAL/HalfedgeDS_vertex_max_base_with_id.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/HalfedgeDS_vertex_min_base.h b/thirdparty/CGAL/include/CGAL/HalfedgeDS_vertex_min_base.h index ec510192..4ef49d9b 100644 --- a/thirdparty/CGAL/include/CGAL/HalfedgeDS_vertex_min_base.h +++ b/thirdparty/CGAL/include/CGAL/HalfedgeDS_vertex_min_base.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Handle.h b/thirdparty/CGAL/include/CGAL/Handle.h index 04dc41d7..54a8940b 100644 --- a/thirdparty/CGAL/include/CGAL/Handle.h +++ b/thirdparty/CGAL/include/CGAL/Handle.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Handle_for.h b/thirdparty/CGAL/include/CGAL/Handle_for.h index 9562258e..5de205ff 100644 --- a/thirdparty/CGAL/include/CGAL/Handle_for.h +++ b/thirdparty/CGAL/include/CGAL/Handle_for.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Handle_for_virtual.h b/thirdparty/CGAL/include/CGAL/Handle_for_virtual.h index 907e87f3..95a70eae 100644 --- a/thirdparty/CGAL/include/CGAL/Handle_for_virtual.h +++ b/thirdparty/CGAL/include/CGAL/Handle_for_virtual.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Handle_hash_function.h b/thirdparty/CGAL/include/CGAL/Handle_hash_function.h index 2ff2b519..8d417ca3 100644 --- a/thirdparty/CGAL/include/CGAL/Handle_hash_function.h +++ b/thirdparty/CGAL/include/CGAL/Handle_hash_function.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Handle_with_policy.h b/thirdparty/CGAL/include/CGAL/Handle_with_policy.h index a52fc715..252ce04b 100644 --- a/thirdparty/CGAL/include/CGAL/Handle_with_policy.h +++ b/thirdparty/CGAL/include/CGAL/Handle_with_policy.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Has_conversion.h b/thirdparty/CGAL/include/CGAL/Has_conversion.h index ec6eab3f..604319c1 100644 --- a/thirdparty/CGAL/include/CGAL/Has_conversion.h +++ b/thirdparty/CGAL/include/CGAL/Has_conversion.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Has_member.h b/thirdparty/CGAL/include/CGAL/Has_member.h index 6bfe640e..790fe47e 100644 --- a/thirdparty/CGAL/include/CGAL/Has_member.h +++ b/thirdparty/CGAL/include/CGAL/Has_member.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Has_timestamp.h b/thirdparty/CGAL/include/CGAL/Has_timestamp.h index 01c74636..46b35bfe 100644 --- a/thirdparty/CGAL/include/CGAL/Has_timestamp.h +++ b/thirdparty/CGAL/include/CGAL/Has_timestamp.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Hash_map/internal/chained_map.h b/thirdparty/CGAL/include/CGAL/Hash_map/internal/chained_map.h new file mode 100644 index 00000000..c72a2170 --- /dev/null +++ b/thirdparty/CGAL/include/CGAL/Hash_map/internal/chained_map.h @@ -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 --git a/thirdparty/CGAL/include/CGAL/Heat_method_3/Surface_mesh_geodesic_distances_3.h b/thirdparty/CGAL/include/CGAL/Heat_method_3/Surface_mesh_geodesic_distances_3.h index 9b1eeebe..7bccb73a 100644 --- a/thirdparty/CGAL/include/CGAL/Heat_method_3/Surface_mesh_geodesic_distances_3.h +++ b/thirdparty/CGAL/include/CGAL/Heat_method_3/Surface_mesh_geodesic_distances_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Heat_method_3/internal/Intrinsic_Delaunay_triangulation_3.h b/thirdparty/CGAL/include/CGAL/Heat_method_3/internal/Intrinsic_Delaunay_triangulation_3.h index b48ff2f9..11917052 100644 --- a/thirdparty/CGAL/include/CGAL/Heat_method_3/internal/Intrinsic_Delaunay_triangulation_3.h +++ b/thirdparty/CGAL/include/CGAL/Heat_method_3/internal/Intrinsic_Delaunay_triangulation_3.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Intrinsic_Delaunay_triangulation_3 std::vector mark_edges; public: - boost::unordered_map v2v, vtov; + std::unordered_map v2v, vtov; }; } // namespace Heat_method_3 diff --git a/thirdparty/CGAL/include/CGAL/Heat_method_3/internal/V2V.h b/thirdparty/CGAL/include/CGAL/Heat_method_3/internal/V2V.h index dd07d02f..154f41a8 100644 --- a/thirdparty/CGAL/include/CGAL/Heat_method_3/internal/V2V.h +++ b/thirdparty/CGAL/include/CGAL/Heat_method_3/internal/V2V.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Hidden_point_memory_policy.h b/thirdparty/CGAL/include/CGAL/Hidden_point_memory_policy.h index 857e5256..e7bb5eb7 100644 --- a/thirdparty/CGAL/include/CGAL/Hidden_point_memory_policy.h +++ b/thirdparty/CGAL/include/CGAL/Hidden_point_memory_policy.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Hilbert_policy_tags.h b/thirdparty/CGAL/include/CGAL/Hilbert_policy_tags.h index 73e30cb7..8a19b4a9 100644 --- a/thirdparty/CGAL/include/CGAL/Hilbert_policy_tags.h +++ b/thirdparty/CGAL/include/CGAL/Hilbert_policy_tags.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Hilbert_sort_2.h b/thirdparty/CGAL/include/CGAL/Hilbert_sort_2.h index 6d020e2e..276265bb 100644 --- a/thirdparty/CGAL/include/CGAL/Hilbert_sort_2.h +++ b/thirdparty/CGAL/include/CGAL/Hilbert_sort_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Hilbert_sort_3.h b/thirdparty/CGAL/include/CGAL/Hilbert_sort_3.h index 50e67d96..0abd8017 100644 --- a/thirdparty/CGAL/include/CGAL/Hilbert_sort_3.h +++ b/thirdparty/CGAL/include/CGAL/Hilbert_sort_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Hilbert_sort_base.h b/thirdparty/CGAL/include/CGAL/Hilbert_sort_base.h index c7a6a057..13d4cdce 100644 --- a/thirdparty/CGAL/include/CGAL/Hilbert_sort_base.h +++ b/thirdparty/CGAL/include/CGAL/Hilbert_sort_base.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Hilbert_sort_d.h b/thirdparty/CGAL/include/CGAL/Hilbert_sort_d.h index a46bf361..85bdfff1 100644 --- a/thirdparty/CGAL/include/CGAL/Hilbert_sort_d.h +++ b/thirdparty/CGAL/include/CGAL/Hilbert_sort_d.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Hilbert_sort_median_2.h b/thirdparty/CGAL/include/CGAL/Hilbert_sort_median_2.h index 47c81779..81f598c3 100644 --- a/thirdparty/CGAL/include/CGAL/Hilbert_sort_median_2.h +++ b/thirdparty/CGAL/include/CGAL/Hilbert_sort_median_2.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Spatial_sorting/include/CGAL/Hilbert_sort_median_2.h $ -// $Id: Hilbert_sort_median_2.h 4eeb7f1 2020-02-06T11:57:04+01:00 Mael Rouxel-Labbé +// $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 // // Author(s) : Christophe Delage @@ -38,7 +38,7 @@ struct Hilbert_cmp_2 { typedef typename K::Point_2 Point; K k; - Hilbert_cmp_2 (const K &_k = K()) : k(_k) {} + Hilbert_cmp_2 (const K &_k) : k(_k) {} bool operator() (const Point &p, const Point &q) const { return Hilbert_cmp_2 (k) (q, p); @@ -51,7 +51,7 @@ struct Hilbert_cmp_2 { typedef typename K::Point_2 Point; K k; - Hilbert_cmp_2 (const K &_k = K()) : k(_k) {} + Hilbert_cmp_2 (const K &_k) : k(_k) {} bool operator() (const Point &p, const Point &q) const { return k.less_x_2_object() (p, q); @@ -64,7 +64,7 @@ struct Hilbert_cmp_2 { typedef typename K::Point_2 Point; K k; - Hilbert_cmp_2 (const K &_k = K()) : k(_k) {} + Hilbert_cmp_2 (const K &_k) : k(_k) {} bool operator() (const Point &p, const Point &q) const { return k.less_y_2_object() (p, q); @@ -93,7 +93,7 @@ class Hilbert_sort_median_2 }; public: - Hilbert_sort_median_2 (const Kernel &k = Kernel(), std::ptrdiff_t limit = 1) + Hilbert_sort_median_2 (const Kernel &k, std::ptrdiff_t limit = 1) : _k(k), _limit (limit) {} diff --git a/thirdparty/CGAL/include/CGAL/Hilbert_sort_median_3.h b/thirdparty/CGAL/include/CGAL/Hilbert_sort_median_3.h index b6787924..8da3cfcc 100644 --- a/thirdparty/CGAL/include/CGAL/Hilbert_sort_median_3.h +++ b/thirdparty/CGAL/include/CGAL/Hilbert_sort_median_3.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Spatial_sorting/include/CGAL/Hilbert_sort_median_3.h $ -// $Id: Hilbert_sort_median_3.h 6b5e04a 2021-02-12T15:52:47+01:00 Dmitry Anisimov +// $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 // // Author(s) : Christophe Delage @@ -35,7 +35,7 @@ struct Hilbert_cmp_3 { typedef typename K::Point_3 Point; K k; - Hilbert_cmp_3 (const K &_k = K()) : k(_k) {} + Hilbert_cmp_3 (const K &_k) : k(_k) {} bool operator() (const Point &p, const Point &q) const { return Hilbert_cmp_3 (k) (q, p); @@ -48,7 +48,7 @@ struct Hilbert_cmp_3 { typedef typename K::Point_3 Point; K k; - Hilbert_cmp_3 (const K &_k = K()) : k(_k) {} + Hilbert_cmp_3 (const K &_k) : k(_k) {} bool operator() (const Point &p, const Point &q) const { return k.less_x_3_object() (p, q); @@ -61,7 +61,7 @@ struct Hilbert_cmp_3 { typedef typename K::Point_3 Point; K k; - Hilbert_cmp_3 (const K &_k = K()) : k(_k) {} + Hilbert_cmp_3 (const K &_k) : k(_k) {} bool operator() (const Point &p, const Point &q) const { return k.less_y_3_object() (p, q); @@ -74,7 +74,7 @@ struct Hilbert_cmp_3 { typedef typename K::Point_3 Point; K k; - Hilbert_cmp_3 (const K &_k = K()) : k(_k) {} + Hilbert_cmp_3 (const K &_k) : k(_k) {} bool operator() (const Point &p, const Point &q) const { return k.less_z_3_object() (p, q); @@ -109,7 +109,7 @@ class CGAL_VISIBILITY_MACRO Hilbert_sort_median_3 }; public: - Hilbert_sort_median_3 (const Kernel &k = Kernel(), std::ptrdiff_t limit = 1) + Hilbert_sort_median_3 (const Kernel &k, std::ptrdiff_t limit = 1) : _k(k), _limit (limit) {} diff --git a/thirdparty/CGAL/include/CGAL/Hilbert_sort_median_d.h b/thirdparty/CGAL/include/CGAL/Hilbert_sort_median_d.h index b8082bbd..9f087c73 100644 --- a/thirdparty/CGAL/include/CGAL/Hilbert_sort_median_d.h +++ b/thirdparty/CGAL/include/CGAL/Hilbert_sort_median_d.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Spatial_sorting/include/CGAL/Hilbert_sort_median_d.h $ -// $Id: Hilbert_sort_median_d.h 6b87fe3 2020-12-05T11:11:33+01:00 Mael Rouxel-Labbé +// $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 // // Author(s) : Olivier Devillers @@ -32,7 +32,7 @@ struct Hilbert_cmp_d K k; int axe; bool orient; - Hilbert_cmp_d (int a, bool o, const K &_k = K()) : k(_k), axe(a), orient(o) {} + Hilbert_cmp_d (int a, bool o, const K &_k) : k(_k), axe(a), orient(o) {} bool operator() (const Point &p, const Point &q) const { @@ -64,7 +64,7 @@ class Hilbert_sort_median_d }; public: - Hilbert_sort_median_d(const Kernel &k = Kernel(), std::ptrdiff_t limit = 1) + Hilbert_sort_median_d(const Kernel &k, std::ptrdiff_t limit = 1) : _k(k), _limit (limit) {} diff --git a/thirdparty/CGAL/include/CGAL/Hilbert_sort_middle_2.h b/thirdparty/CGAL/include/CGAL/Hilbert_sort_middle_2.h index 07396105..791900f5 100644 --- a/thirdparty/CGAL/include/CGAL/Hilbert_sort_middle_2.h +++ b/thirdparty/CGAL/include/CGAL/Hilbert_sort_middle_2.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Spatial_sorting/include/CGAL/Hilbert_sort_middle_2.h $ -// $Id: Hilbert_sort_middle_2.h f5d2fb2 2021-09-01T16:41:36+02:00 Sébastien Loriot +// $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 @@ -31,7 +31,7 @@ struct Fixed_hilbert_cmp_2 typedef typename K::Point_2 Point; K k; double value; - Fixed_hilbert_cmp_2 (double v, const K &_k = K()) : k(_k),value(v) {} + Fixed_hilbert_cmp_2 (double v, const K &_k) : k(_k),value(v) {} bool operator() (const Point &p) const { return ! Fixed_hilbert_cmp_2 (value, k) (p); @@ -46,7 +46,7 @@ struct Fixed_hilbert_cmp_2 typedef typename K::Point_2 Point; K k; double value; - Fixed_hilbert_cmp_2 (double v, const K &_k = K()) : k(_k),value(v) {} + Fixed_hilbert_cmp_2 (double v, const K &_k) : k(_k),value(v) {} bool operator() (const Point &p) const { return to_double(k.compute_x_2_object()(p)) < value; @@ -61,7 +61,7 @@ struct Fixed_hilbert_cmp_2 typedef typename K::Point_2 Point; K k; double value; - Fixed_hilbert_cmp_2 (double v, const K &_k = K()) : k(_k),value(v) {} + Fixed_hilbert_cmp_2 (double v, const K &_k) : k(_k),value(v) {} bool operator() (const Point &p) const { return to_double(k.compute_y_2_object()(p)) < value; @@ -89,7 +89,7 @@ class Hilbert_sort_middle_2 }; public: - Hilbert_sort_middle_2 (const Kernel &k = Kernel(), std::ptrdiff_t limit = 1) + Hilbert_sort_middle_2 (const Kernel &k, std::ptrdiff_t limit = 1) : _k(k), _limit (limit) {} @@ -123,22 +123,20 @@ class Hilbert_sort_middle_2 void operator() (RandomAccessIterator begin, RandomAccessIterator end) const { //Bbox_2 box=bbox_2(begin, end); BUG: WE NEED TO FIX THIS - - K k; - double xmin=to_double(k.compute_x_2_object()(*begin)), - ymin=to_double(k.compute_y_2_object()(*begin)), + double xmin=to_double(_k.compute_x_2_object()(*begin)), + ymin=to_double(_k.compute_y_2_object()(*begin)), xmax=xmin, ymax=ymin; for(RandomAccessIterator it=begin+1; it xmax) - xmax = to_double(k.compute_x_2_object()(*it)); - if ( to_double(k.compute_y_2_object()(*it)) > ymax) - ymax = to_double(k.compute_y_2_object()(*it)); + if ( to_double(_k.compute_x_2_object()(*it)) < xmin) + xmin = to_double(_k.compute_x_2_object()(*it)); + if ( to_double(_k.compute_y_2_object()(*it)) < ymin) + ymin = to_double(_k.compute_y_2_object()(*it)); + if ( to_double(_k.compute_x_2_object()(*it)) > xmax) + xmax = to_double(_k.compute_x_2_object()(*it)); + if ( to_double(_k.compute_y_2_object()(*it)) > ymax) + ymax = to_double(_k.compute_y_2_object()(*it)); } sort <0, false, false> (begin, end, xmin, ymin, xmax, ymax); diff --git a/thirdparty/CGAL/include/CGAL/Hilbert_sort_middle_3.h b/thirdparty/CGAL/include/CGAL/Hilbert_sort_middle_3.h index 61e2402c..196a9eae 100644 --- a/thirdparty/CGAL/include/CGAL/Hilbert_sort_middle_3.h +++ b/thirdparty/CGAL/include/CGAL/Hilbert_sort_middle_3.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Spatial_sorting/include/CGAL/Hilbert_sort_middle_3.h $ -// $Id: Hilbert_sort_middle_3.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot +// $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 // // Author(s) : Olivier Devillers @@ -30,7 +30,7 @@ namespace internal { typedef typename K::Point_3 Point; K k; double value; - Fixed_hilbert_cmp_3 (double v, const K &_k = K()) : k(_k),value(v) {} + Fixed_hilbert_cmp_3 (double v, const K &_k) : k(_k),value(v) {} bool operator() (const Point &p) const { return ! Fixed_hilbert_cmp_3 (value,k) (p); @@ -45,7 +45,7 @@ namespace internal { typedef typename K::Point_3 Point; K k; double value; - Fixed_hilbert_cmp_3 (double v, const K &_k = K()) : k(_k),value(v) {} + Fixed_hilbert_cmp_3 (double v, const K &_k) : k(_k),value(v) {} bool operator() (const Point &p) const { return to_double(k.compute_x_3_object()(p)) < value; @@ -60,7 +60,7 @@ namespace internal { typedef typename K::Point_3 Point; K k; double value; - Fixed_hilbert_cmp_3 (double v, const K &_k = K()) : k(_k),value(v) {} + Fixed_hilbert_cmp_3 (double v, const K &_k) : k(_k),value(v) {} bool operator() (const Point &p) const { return to_double(k.compute_y_3_object()(p)) < value; @@ -75,7 +75,7 @@ namespace internal { typedef typename K::Point_3 Point; K k; double value; - Fixed_hilbert_cmp_3 (double v, const K &_k = K()) : k(_k),value(v) {} + Fixed_hilbert_cmp_3 (double v, const K &_k) : k(_k),value(v) {} bool operator() (const Point &p) const { return to_double(k.compute_z_3_object()(p)) < value ; @@ -98,7 +98,7 @@ class Hilbert_sort_middle_3 { Cmp (double v,const Kernel &k) : internal::Fixed_hilbert_cmp_3 (v,k) {} }; public: - Hilbert_sort_middle_3 (const Kernel &k = Kernel(), std::ptrdiff_t limit = 1) + Hilbert_sort_middle_3 (const Kernel &k, std::ptrdiff_t limit = 1) : _k(k), _limit (limit) {} @@ -154,26 +154,25 @@ class Hilbert_sort_middle_3 template void operator() (RandomAccessIterator begin, RandomAccessIterator end) const { - K k; - double xmin=to_double(k.compute_x_3_object()(*begin)), - ymin=to_double(k.compute_y_3_object()(*begin)), - zmin=to_double(k.compute_z_3_object()(*begin)), + double xmin=to_double(_k.compute_x_3_object()(*begin)), + ymin=to_double(_k.compute_y_3_object()(*begin)), + zmin=to_double(_k.compute_z_3_object()(*begin)), xmax=xmin, ymax=ymin, zmax=zmin; for(RandomAccessIterator it=begin+1; it xmax) - xmax = to_double(k.compute_x_3_object()(*it)); - if ( to_double(k.compute_y_3_object()(*it)) > ymax) - ymax = to_double(k.compute_y_3_object()(*it)); - if ( to_double(k.compute_z_3_object()(*it)) > zmax) - zmax = to_double(k.compute_z_3_object()(*it)); + if ( to_double(_k.compute_x_3_object()(*it)) < xmin) + xmin = to_double(_k.compute_x_3_object()(*it)); + if ( to_double(_k.compute_y_3_object()(*it)) < ymin) + ymin = to_double(_k.compute_y_3_object()(*it)); + if ( to_double(_k.compute_z_3_object()(*it)) < zmin) + zmin = to_double(_k.compute_z_3_object()(*it)); + if ( to_double(_k.compute_x_3_object()(*it)) > xmax) + xmax = to_double(_k.compute_x_3_object()(*it)); + if ( to_double(_k.compute_y_3_object()(*it)) > ymax) + ymax = to_double(_k.compute_y_3_object()(*it)); + if ( to_double(_k.compute_z_3_object()(*it)) > zmax) + zmax = to_double(_k.compute_z_3_object()(*it)); } sort <0, false, false, false> (begin, end, xmin,ymin,zmin,xmax,ymax,zmax); diff --git a/thirdparty/CGAL/include/CGAL/Hilbert_sort_middle_base.h b/thirdparty/CGAL/include/CGAL/Hilbert_sort_middle_base.h index dbc533bd..121dae35 100644 --- a/thirdparty/CGAL/include/CGAL/Hilbert_sort_middle_base.h +++ b/thirdparty/CGAL/include/CGAL/Hilbert_sort_middle_base.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Hilbert_sort_middle_d.h b/thirdparty/CGAL/include/CGAL/Hilbert_sort_middle_d.h index 5c9b5759..e0595259 100644 --- a/thirdparty/CGAL/include/CGAL/Hilbert_sort_middle_d.h +++ b/thirdparty/CGAL/include/CGAL/Hilbert_sort_middle_d.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Spatial_sorting/include/CGAL/Hilbert_sort_middle_d.h $ -// $Id: Hilbert_sort_middle_d.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot +// $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 // // Author(s) : Olivier Devillers @@ -32,7 +32,7 @@ namespace internal { int axe; bool orient; double value; - Fixed_hilbert_cmp_d (int a, bool o, double v, const K &_k = K()) + Fixed_hilbert_cmp_d (int a, bool o, double v, const K &_k) : k(_k), axe(a), orient(o), value(v) {} bool operator() (const Point &p) const { @@ -64,7 +64,7 @@ class Hilbert_sort_middle_d : internal::Fixed_hilbert_cmp_d (a,dir,v,k) {} }; public: - Hilbert_sort_middle_d (const Kernel &k = Kernel(), std::ptrdiff_t limit = 1) + Hilbert_sort_middle_d (const Kernel &k, std::ptrdiff_t limit = 1) : _k(k), _limit (limit) {} diff --git a/thirdparty/CGAL/include/CGAL/Hilbert_sort_on_sphere_3.h b/thirdparty/CGAL/include/CGAL/Hilbert_sort_on_sphere_3.h index 2a1781bc..af7d2e44 100644 --- a/thirdparty/CGAL/include/CGAL/Hilbert_sort_on_sphere_3.h +++ b/thirdparty/CGAL/include/CGAL/Hilbert_sort_on_sphere_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Homogeneous.h b/thirdparty/CGAL/include/CGAL/Homogeneous.h index 7ad61f04..42ce171b 100644 --- a/thirdparty/CGAL/include/CGAL/Homogeneous.h +++ b/thirdparty/CGAL/include/CGAL/Homogeneous.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Homogeneous/Aff_transformationH2.h b/thirdparty/CGAL/include/CGAL/Homogeneous/Aff_transformationH2.h index df830616..8b991951 100644 --- a/thirdparty/CGAL/include/CGAL/Homogeneous/Aff_transformationH2.h +++ b/thirdparty/CGAL/include/CGAL/Homogeneous/Aff_transformationH2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Homogeneous/Aff_transformationH3.h b/thirdparty/CGAL/include/CGAL/Homogeneous/Aff_transformationH3.h index 33fe82b0..57b8e521 100644 --- a/thirdparty/CGAL/include/CGAL/Homogeneous/Aff_transformationH3.h +++ b/thirdparty/CGAL/include/CGAL/Homogeneous/Aff_transformationH3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Homogeneous/CircleH2.h b/thirdparty/CGAL/include/CGAL/Homogeneous/CircleH2.h index bc8bd2bc..bf0a1a74 100644 --- a/thirdparty/CGAL/include/CGAL/Homogeneous/CircleH2.h +++ b/thirdparty/CGAL/include/CGAL/Homogeneous/CircleH2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Homogeneous/ConicHPA2.h b/thirdparty/CGAL/include/CGAL/Homogeneous/ConicHPA2.h index 1f284779..705f160a 100644 --- a/thirdparty/CGAL/include/CGAL/Homogeneous/ConicHPA2.h +++ b/thirdparty/CGAL/include/CGAL/Homogeneous/ConicHPA2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Homogeneous/Data_accessorH2.h b/thirdparty/CGAL/include/CGAL/Homogeneous/Data_accessorH2.h index 143b2231..a53040d4 100644 --- a/thirdparty/CGAL/include/CGAL/Homogeneous/Data_accessorH2.h +++ b/thirdparty/CGAL/include/CGAL/Homogeneous/Data_accessorH2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Homogeneous/DirectionH2.h b/thirdparty/CGAL/include/CGAL/Homogeneous/DirectionH2.h index f5f37861..c2529d6b 100644 --- a/thirdparty/CGAL/include/CGAL/Homogeneous/DirectionH2.h +++ b/thirdparty/CGAL/include/CGAL/Homogeneous/DirectionH2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Homogeneous/DirectionH3.h b/thirdparty/CGAL/include/CGAL/Homogeneous/DirectionH3.h index 1d37f006..b5d92047 100644 --- a/thirdparty/CGAL/include/CGAL/Homogeneous/DirectionH3.h +++ b/thirdparty/CGAL/include/CGAL/Homogeneous/DirectionH3.h @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class DirectionH3 //: 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 --git a/thirdparty/CGAL/include/CGAL/Homogeneous/Homogeneous_base.h b/thirdparty/CGAL/include/CGAL/Homogeneous/Homogeneous_base.h index cb4dddb7..7cb73782 100644 --- a/thirdparty/CGAL/include/CGAL/Homogeneous/Homogeneous_base.h +++ b/thirdparty/CGAL/include/CGAL/Homogeneous/Homogeneous_base.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Homogeneous/Iso_cuboidH3.h b/thirdparty/CGAL/include/CGAL/Homogeneous/Iso_cuboidH3.h index 059598d1..363a9cd5 100644 --- a/thirdparty/CGAL/include/CGAL/Homogeneous/Iso_cuboidH3.h +++ b/thirdparty/CGAL/include/CGAL/Homogeneous/Iso_cuboidH3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Homogeneous/Iso_rectangleH2.h b/thirdparty/CGAL/include/CGAL/Homogeneous/Iso_rectangleH2.h index 8703633e..d56da840 100644 --- a/thirdparty/CGAL/include/CGAL/Homogeneous/Iso_rectangleH2.h +++ b/thirdparty/CGAL/include/CGAL/Homogeneous/Iso_rectangleH2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Homogeneous/LineH2.h b/thirdparty/CGAL/include/CGAL/Homogeneous/LineH2.h index 2ba30f2e..334bdc88 100644 --- a/thirdparty/CGAL/include/CGAL/Homogeneous/LineH2.h +++ b/thirdparty/CGAL/include/CGAL/Homogeneous/LineH2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Homogeneous/PlaneH3.h b/thirdparty/CGAL/include/CGAL/Homogeneous/PlaneH3.h index 6bbe66bb..25476668 100644 --- a/thirdparty/CGAL/include/CGAL/Homogeneous/PlaneH3.h +++ b/thirdparty/CGAL/include/CGAL/Homogeneous/PlaneH3.h @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class PlaneH3 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; @@ -239,6 +240,17 @@ PlaneH3::PlaneH3(const typename PlaneH3::Point_3& p, -(ov.hx()*p.hx() + ov.hy()*p.hy() + ov.hz()*p.hz() ) ); } +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, diff --git a/thirdparty/CGAL/include/CGAL/Homogeneous/PointH2.h b/thirdparty/CGAL/include/CGAL/Homogeneous/PointH2.h index 25bb8d29..d67e4a4f 100644 --- a/thirdparty/CGAL/include/CGAL/Homogeneous/PointH2.h +++ b/thirdparty/CGAL/include/CGAL/Homogeneous/PointH2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Homogeneous/PointH3.h b/thirdparty/CGAL/include/CGAL/Homogeneous/PointH3.h index 0605e304..15f72e8e 100644 --- a/thirdparty/CGAL/include/CGAL/Homogeneous/PointH3.h +++ b/thirdparty/CGAL/include/CGAL/Homogeneous/PointH3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Homogeneous/RayH3.h b/thirdparty/CGAL/include/CGAL/Homogeneous/RayH3.h index 4b80ea9e..ad8fa6c3 100644 --- a/thirdparty/CGAL/include/CGAL/Homogeneous/RayH3.h +++ b/thirdparty/CGAL/include/CGAL/Homogeneous/RayH3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Homogeneous/SphereH3.h b/thirdparty/CGAL/include/CGAL/Homogeneous/SphereH3.h index 35a1f8aa..d8861f2b 100644 --- a/thirdparty/CGAL/include/CGAL/Homogeneous/SphereH3.h +++ b/thirdparty/CGAL/include/CGAL/Homogeneous/SphereH3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Homogeneous/VectorH2.h b/thirdparty/CGAL/include/CGAL/Homogeneous/VectorH2.h index 8d4a3d89..45c81320 100644 --- a/thirdparty/CGAL/include/CGAL/Homogeneous/VectorH2.h +++ b/thirdparty/CGAL/include/CGAL/Homogeneous/VectorH2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Homogeneous/VectorH3.h b/thirdparty/CGAL/include/CGAL/Homogeneous/VectorH3.h index 2b996ac7..f4a145f2 100644 --- a/thirdparty/CGAL/include/CGAL/Homogeneous/VectorH3.h +++ b/thirdparty/CGAL/include/CGAL/Homogeneous/VectorH3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Homogeneous/Weighted_point_2.h b/thirdparty/CGAL/include/CGAL/Homogeneous/Weighted_point_2.h index f28ebdd4..9312a05d 100644 --- a/thirdparty/CGAL/include/CGAL/Homogeneous/Weighted_point_2.h +++ b/thirdparty/CGAL/include/CGAL/Homogeneous/Weighted_point_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Homogeneous/Weighted_point_3.h b/thirdparty/CGAL/include/CGAL/Homogeneous/Weighted_point_3.h index d4c2a1ee..df37e535 100644 --- a/thirdparty/CGAL/include/CGAL/Homogeneous/Weighted_point_3.h +++ b/thirdparty/CGAL/include/CGAL/Homogeneous/Weighted_point_3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Homogeneous/basic_constructionsH2.h b/thirdparty/CGAL/include/CGAL/Homogeneous/basic_constructionsH2.h index 83ecd402..0255ef55 100644 --- a/thirdparty/CGAL/include/CGAL/Homogeneous/basic_constructionsH2.h +++ b/thirdparty/CGAL/include/CGAL/Homogeneous/basic_constructionsH2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Homogeneous/basic_constructionsH3.h b/thirdparty/CGAL/include/CGAL/Homogeneous/basic_constructionsH3.h index 38712fc8..d1db8928 100644 --- a/thirdparty/CGAL/include/CGAL/Homogeneous/basic_constructionsH3.h +++ b/thirdparty/CGAL/include/CGAL/Homogeneous/basic_constructionsH3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Homogeneous/distance_predicatesH2.h b/thirdparty/CGAL/include/CGAL/Homogeneous/distance_predicatesH2.h index 49413742..f722d5fe 100644 --- a/thirdparty/CGAL/include/CGAL/Homogeneous/distance_predicatesH2.h +++ b/thirdparty/CGAL/include/CGAL/Homogeneous/distance_predicatesH2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Homogeneous/distance_predicatesH3.h b/thirdparty/CGAL/include/CGAL/Homogeneous/distance_predicatesH3.h index d67d0424..b5b8304b 100644 --- a/thirdparty/CGAL/include/CGAL/Homogeneous/distance_predicatesH3.h +++ b/thirdparty/CGAL/include/CGAL/Homogeneous/distance_predicatesH3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Homogeneous/function_objects.h b/thirdparty/CGAL/include/CGAL/Homogeneous/function_objects.h index c3b9367d..3f745179 100644 --- a/thirdparty/CGAL/include/CGAL/Homogeneous/function_objects.h +++ b/thirdparty/CGAL/include/CGAL/Homogeneous/function_objects.h @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace HomogeneousKernelFunctors { 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 --git a/thirdparty/CGAL/include/CGAL/Homogeneous/predicates_on_directionsH2.h b/thirdparty/CGAL/include/CGAL/Homogeneous/predicates_on_directionsH2.h index 68d7ce48..c4786fbc 100644 --- a/thirdparty/CGAL/include/CGAL/Homogeneous/predicates_on_directionsH2.h +++ b/thirdparty/CGAL/include/CGAL/Homogeneous/predicates_on_directionsH2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Homogeneous/predicates_on_pointsH2.h b/thirdparty/CGAL/include/CGAL/Homogeneous/predicates_on_pointsH2.h index f1acc8d2..be386707 100644 --- a/thirdparty/CGAL/include/CGAL/Homogeneous/predicates_on_pointsH2.h +++ b/thirdparty/CGAL/include/CGAL/Homogeneous/predicates_on_pointsH2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Homogeneous/predicates_on_pointsH3.h b/thirdparty/CGAL/include/CGAL/Homogeneous/predicates_on_pointsH3.h index c98a793f..1a76313c 100644 --- a/thirdparty/CGAL/include/CGAL/Homogeneous/predicates_on_pointsH3.h +++ b/thirdparty/CGAL/include/CGAL/Homogeneous/predicates_on_pointsH3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Homogeneous_converter.h b/thirdparty/CGAL/include/CGAL/Homogeneous_converter.h index 6977ad97..8616ce73 100644 --- a/thirdparty/CGAL/include/CGAL/Homogeneous_converter.h +++ b/thirdparty/CGAL/include/CGAL/Homogeneous_converter.h @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Homogeneous_converter : public Enum_converter 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 @@ class Homogeneous_converter : public Enum_converter 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 --git a/thirdparty/CGAL/include/CGAL/Homogeneous_d.h b/thirdparty/CGAL/include/CGAL/Homogeneous_d.h index fbe1d865..8f9337ec 100644 --- a/thirdparty/CGAL/include/CGAL/Homogeneous_d.h +++ b/thirdparty/CGAL/include/CGAL/Homogeneous_d.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Hyperbola_2.h b/thirdparty/CGAL/include/CGAL/Hyperbola_2.h index 172c24c5..421d2bea 100644 --- a/thirdparty/CGAL/include/CGAL/Hyperbola_2.h +++ b/thirdparty/CGAL/include/CGAL/Hyperbola_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Hyperbola_ray_2.h b/thirdparty/CGAL/include/CGAL/Hyperbola_ray_2.h index 39352aa4..f12d2771 100644 --- a/thirdparty/CGAL/include/CGAL/Hyperbola_ray_2.h +++ b/thirdparty/CGAL/include/CGAL/Hyperbola_ray_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Hyperbola_segment_2.h b/thirdparty/CGAL/include/CGAL/Hyperbola_segment_2.h index c9c0a909..cb4f7fa6 100644 --- a/thirdparty/CGAL/include/CGAL/Hyperbola_segment_2.h +++ b/thirdparty/CGAL/include/CGAL/Hyperbola_segment_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Hyperbolic_Delaunay_triangulation_2.h b/thirdparty/CGAL/include/CGAL/Hyperbolic_Delaunay_triangulation_2.h index 206d0c7c..9e568ae5 100644 --- a/thirdparty/CGAL/include/CGAL/Hyperbolic_Delaunay_triangulation_2.h +++ b/thirdparty/CGAL/include/CGAL/Hyperbolic_Delaunay_triangulation_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Hyperbolic_Delaunay_triangulation_CK_traits_2.h b/thirdparty/CGAL/include/CGAL/Hyperbolic_Delaunay_triangulation_CK_traits_2.h index 0f025b55..ea090b06 100644 --- a/thirdparty/CGAL/include/CGAL/Hyperbolic_Delaunay_triangulation_CK_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Hyperbolic_Delaunay_triangulation_CK_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Hyperbolic_Delaunay_triangulation_traits_2.h b/thirdparty/CGAL/include/CGAL/Hyperbolic_Delaunay_triangulation_traits_2.h index 3cf2ed0e..c411e598 100644 --- a/thirdparty/CGAL/include/CGAL/Hyperbolic_Delaunay_triangulation_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Hyperbolic_Delaunay_triangulation_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Hyperbolic_octagon_translation.h b/thirdparty/CGAL/include/CGAL/Hyperbolic_octagon_translation.h index 5e966abb..8f479d93 100644 --- a/thirdparty/CGAL/include/CGAL/Hyperbolic_octagon_translation.h +++ b/thirdparty/CGAL/include/CGAL/Hyperbolic_octagon_translation.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Hyperbolic_triangulation_2/internal/Exact_complex.h b/thirdparty/CGAL/include/CGAL/Hyperbolic_triangulation_2/internal/Exact_complex.h index f9040e56..2fd3e1f0 100644 --- a/thirdparty/CGAL/include/CGAL/Hyperbolic_triangulation_2/internal/Exact_complex.h +++ b/thirdparty/CGAL/include/CGAL/Hyperbolic_triangulation_2/internal/Exact_complex.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Hyperbolic_triangulation_2/internal/Hyperbolic_Delaunay_triangulation_traits_2_functions.h b/thirdparty/CGAL/include/CGAL/Hyperbolic_triangulation_2/internal/Hyperbolic_Delaunay_triangulation_traits_2_functions.h index 53cd5931..9fd53ef1 100644 --- a/thirdparty/CGAL/include/CGAL/Hyperbolic_triangulation_2/internal/Hyperbolic_Delaunay_triangulation_traits_2_functions.h +++ b/thirdparty/CGAL/include/CGAL/Hyperbolic_triangulation_2/internal/Hyperbolic_Delaunay_triangulation_traits_2_functions.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Construct_hyperbolic_segment_2 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 --git a/thirdparty/CGAL/include/CGAL/Hyperbolic_triangulation_face_base_2.h b/thirdparty/CGAL/include/CGAL/Hyperbolic_triangulation_face_base_2.h index 373da4b0..869ac521 100644 --- a/thirdparty/CGAL/include/CGAL/Hyperbolic_triangulation_face_base_2.h +++ b/thirdparty/CGAL/include/CGAL/Hyperbolic_triangulation_face_base_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IEEE_754_unions.h b/thirdparty/CGAL/include/CGAL/IEEE_754_unions.h index 2765490a..dc0f4c94 100644 --- a/thirdparty/CGAL/include/CGAL/IEEE_754_unions.h +++ b/thirdparty/CGAL/include/CGAL/IEEE_754_unions.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/3MF.h b/thirdparty/CGAL/include/CGAL/IO/3MF.h index 6fe4f166..1fa56ec5 100644 --- a/thirdparty/CGAL/include/CGAL/IO/3MF.h +++ b/thirdparty/CGAL/include/CGAL/IO/3MF.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org); // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/3MF/read_3mf.h b/thirdparty/CGAL/include/CGAL/IO/3MF/read_3mf.h index 024368ec..96509d29 100644 --- a/thirdparty/CGAL/include/CGAL/IO/3MF/read_3mf.h +++ b/thirdparty/CGAL/include/CGAL/IO/3MF/read_3mf.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/3MF/write_3mf.h b/thirdparty/CGAL/include/CGAL/IO/3MF/write_3mf.h index a3c726f2..8e0a4afc 100644 --- a/thirdparty/CGAL/include/CGAL/IO/3MF/write_3mf.h +++ b/thirdparty/CGAL/include/CGAL/IO/3MF/write_3mf.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/Arr_iostream.h b/thirdparty/CGAL/include/CGAL/IO/Arr_iostream.h index 1ff174b1..3a80a0dc 100644 --- a/thirdparty/CGAL/include/CGAL/IO/Arr_iostream.h +++ b/thirdparty/CGAL/include/CGAL/IO/Arr_iostream.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/Arr_text_formatter.h b/thirdparty/CGAL/include/CGAL/IO/Arr_text_formatter.h index cae5311f..6c79cd4d 100644 --- a/thirdparty/CGAL/include/CGAL/IO/Arr_text_formatter.h +++ b/thirdparty/CGAL/include/CGAL/IO/Arr_text_formatter.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/Arr_with_history_2_reader.h b/thirdparty/CGAL/include/CGAL/IO/Arr_with_history_2_reader.h index ae1f5855..a0ce852d 100644 --- a/thirdparty/CGAL/include/CGAL/IO/Arr_with_history_2_reader.h +++ b/thirdparty/CGAL/include/CGAL/IO/Arr_with_history_2_reader.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/Arr_with_history_2_writer.h b/thirdparty/CGAL/include/CGAL/IO/Arr_with_history_2_writer.h index e9e5f3fc..fd9800c6 100644 --- a/thirdparty/CGAL/include/CGAL/IO/Arr_with_history_2_writer.h +++ b/thirdparty/CGAL/include/CGAL/IO/Arr_with_history_2_writer.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/Arr_with_history_iostream.h b/thirdparty/CGAL/include/CGAL/IO/Arr_with_history_iostream.h index 81984328..4a6ddb75 100644 --- a/thirdparty/CGAL/include/CGAL/IO/Arr_with_history_iostream.h +++ b/thirdparty/CGAL/include/CGAL/IO/Arr_with_history_iostream.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/Arr_with_history_text_formatter.h b/thirdparty/CGAL/include/CGAL/IO/Arr_with_history_text_formatter.h index c4b458b5..63998e77 100644 --- a/thirdparty/CGAL/include/CGAL/IO/Arr_with_history_text_formatter.h +++ b/thirdparty/CGAL/include/CGAL/IO/Arr_with_history_text_formatter.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/Arrangement_2_reader.h b/thirdparty/CGAL/include/CGAL/IO/Arrangement_2_reader.h index 4a004d4f..497ea398 100644 --- a/thirdparty/CGAL/include/CGAL/IO/Arrangement_2_reader.h +++ b/thirdparty/CGAL/include/CGAL/IO/Arrangement_2_reader.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/Arrangement_2_writer.h b/thirdparty/CGAL/include/CGAL/IO/Arrangement_2_writer.h index 039a5d1d..77749369 100644 --- a/thirdparty/CGAL/include/CGAL/IO/Arrangement_2_writer.h +++ b/thirdparty/CGAL/include/CGAL/IO/Arrangement_2_writer.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/Color.h b/thirdparty/CGAL/include/CGAL/IO/Color.h index aad2c2e2..f3a59176 100644 --- a/thirdparty/CGAL/include/CGAL/IO/Color.h +++ b/thirdparty/CGAL/include/CGAL/IO/Color.h @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Color 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 @@ class Color /*! 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 @@ class Color 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 @@ class Color m_data[1] = (unsigned char)g; m_data[2] = (unsigned char)b; m_data[3] = alpha; + + return *this; } /// @} diff --git a/thirdparty/CGAL/include/CGAL/IO/Complex_2_in_triangulation_3_file_writer.h b/thirdparty/CGAL/include/CGAL/IO/Complex_2_in_triangulation_3_file_writer.h index 9863de31..1793a677 100644 --- a/thirdparty/CGAL/include/CGAL/IO/Complex_2_in_triangulation_3_file_writer.h +++ b/thirdparty/CGAL/include/CGAL/IO/Complex_2_in_triangulation_3_file_writer.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/Complex_2_in_triangulation_3_polyhedron_builder.h b/thirdparty/CGAL/include/CGAL/IO/Complex_2_in_triangulation_3_polyhedron_builder.h index 37c3b3ea..69f2b674 100644 --- a/thirdparty/CGAL/include/CGAL/IO/Complex_2_in_triangulation_3_polyhedron_builder.h +++ b/thirdparty/CGAL/include/CGAL/IO/Complex_2_in_triangulation_3_polyhedron_builder.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/Complex_2_in_triangulation_3_to_medit.h b/thirdparty/CGAL/include/CGAL/IO/Complex_2_in_triangulation_3_to_medit.h index c7263560..78fcaf9e 100644 --- a/thirdparty/CGAL/include/CGAL/IO/Complex_2_in_triangulation_3_to_medit.h +++ b/thirdparty/CGAL/include/CGAL/IO/Complex_2_in_triangulation_3_to_medit.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/Complex_2_in_triangulation_3_to_vtk.h b/thirdparty/CGAL/include/CGAL/IO/Complex_2_in_triangulation_3_to_vtk.h index 698bd6eb..6c7cc8f8 100644 --- a/thirdparty/CGAL/include/CGAL/IO/Complex_2_in_triangulation_3_to_vtk.h +++ b/thirdparty/CGAL/include/CGAL/IO/Complex_2_in_triangulation_3_to_vtk.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/Complex_3_in_triangulation_3_to_vtk.h b/thirdparty/CGAL/include/CGAL/IO/Complex_3_in_triangulation_3_to_vtk.h index 42eee664..270cab8a 100644 --- a/thirdparty/CGAL/include/CGAL/IO/Complex_3_in_triangulation_3_to_vtk.h +++ b/thirdparty/CGAL/include/CGAL/IO/Complex_3_in_triangulation_3_to_vtk.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/Dxf_bsop_reader.h b/thirdparty/CGAL/include/CGAL/IO/Dxf_bsop_reader.h index b8fa1a67..6e7e3823 100644 --- a/thirdparty/CGAL/include/CGAL/IO/Dxf_bsop_reader.h +++ b/thirdparty/CGAL/include/CGAL/IO/Dxf_bsop_reader.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/Dxf_reader.h b/thirdparty/CGAL/include/CGAL/IO/Dxf_reader.h index af90eb87..6b6eee22 100644 --- a/thirdparty/CGAL/include/CGAL/IO/Dxf_reader.h +++ b/thirdparty/CGAL/include/CGAL/IO/Dxf_reader.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/Dxf_reader_doubles.h b/thirdparty/CGAL/include/CGAL/IO/Dxf_reader_doubles.h index c9f448d9..d61bfd52 100644 --- a/thirdparty/CGAL/include/CGAL/IO/Dxf_reader_doubles.h +++ b/thirdparty/CGAL/include/CGAL/IO/Dxf_reader_doubles.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/Dxf_stream.h b/thirdparty/CGAL/include/CGAL/IO/Dxf_stream.h index bf0843c1..e8e41435 100644 --- a/thirdparty/CGAL/include/CGAL/IO/Dxf_stream.h +++ b/thirdparty/CGAL/include/CGAL/IO/Dxf_stream.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/Dxf_variant_reader.h b/thirdparty/CGAL/include/CGAL/IO/Dxf_variant_reader.h index e571c62f..4224224f 100644 --- a/thirdparty/CGAL/include/CGAL/IO/Dxf_variant_reader.h +++ b/thirdparty/CGAL/include/CGAL/IO/Dxf_variant_reader.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/Dxf_writer.h b/thirdparty/CGAL/include/CGAL/IO/Dxf_writer.h index 5dc9a158..b1697c46 100644 --- a/thirdparty/CGAL/include/CGAL/IO/Dxf_writer.h +++ b/thirdparty/CGAL/include/CGAL/IO/Dxf_writer.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/Fig_stream.h b/thirdparty/CGAL/include/CGAL/IO/Fig_stream.h index f12ada03..58318691 100644 --- a/thirdparty/CGAL/include/CGAL/IO/Fig_stream.h +++ b/thirdparty/CGAL/include/CGAL/IO/Fig_stream.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/Fig_stream_Conic_arc_2.h b/thirdparty/CGAL/include/CGAL/IO/Fig_stream_Conic_arc_2.h index 43b63d1f..b0a9355f 100644 --- a/thirdparty/CGAL/include/CGAL/IO/Fig_stream_Conic_arc_2.h +++ b/thirdparty/CGAL/include/CGAL/IO/Fig_stream_Conic_arc_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/File_avizo.h b/thirdparty/CGAL/include/CGAL/IO/File_avizo.h index b103f0d3..2d4be3ed 100644 --- a/thirdparty/CGAL/include/CGAL/IO/File_avizo.h +++ b/thirdparty/CGAL/include/CGAL/IO/File_avizo.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/File_binary_mesh_3.h b/thirdparty/CGAL/include/CGAL/IO/File_binary_mesh_3.h index 8a9020cf..43bd35ee 100644 --- a/thirdparty/CGAL/include/CGAL/IO/File_binary_mesh_3.h +++ b/thirdparty/CGAL/include/CGAL/IO/File_binary_mesh_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/File_maya.h b/thirdparty/CGAL/include/CGAL/IO/File_maya.h index cae8affc..1634a29a 100644 --- a/thirdparty/CGAL/include/CGAL/IO/File_maya.h +++ b/thirdparty/CGAL/include/CGAL/IO/File_maya.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/File_medit.h b/thirdparty/CGAL/include/CGAL/IO/File_medit.h index c9311867..cba1e8ef 100644 --- a/thirdparty/CGAL/include/CGAL/IO/File_medit.h +++ b/thirdparty/CGAL/include/CGAL/IO/File_medit.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/File_poly.h b/thirdparty/CGAL/include/CGAL/IO/File_poly.h index 14e2faa2..74ad82e8 100644 --- a/thirdparty/CGAL/include/CGAL/IO/File_poly.h +++ b/thirdparty/CGAL/include/CGAL/IO/File_poly.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/File_tetgen.h b/thirdparty/CGAL/include/CGAL/IO/File_tetgen.h index 34cbb44a..798bc8ae 100644 --- a/thirdparty/CGAL/include/CGAL/IO/File_tetgen.h +++ b/thirdparty/CGAL/include/CGAL/IO/File_tetgen.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/GOCAD.h b/thirdparty/CGAL/include/CGAL/IO/GOCAD.h index 2f2410b5..dfc589b6 100644 --- a/thirdparty/CGAL/include/CGAL/IO/GOCAD.h +++ b/thirdparty/CGAL/include/CGAL/IO/GOCAD.h @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org); // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace IO { /// \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 @@ bool read_GOCAD(std::istream& is, * * \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 @@ bool read_GOCAD(std::istream& is, 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 @@ bool read_GOCAD(std::istream& is, PointRange& points, PolygonRange& polygons, * * \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 @@ bool read_GOCAD(const std::string& fname, 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 @@ namespace internal { 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 @@ bool write_GOCAD(std::ostream& os, */ 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 @@ bool write_GOCAD(std::ostream& os, 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 @@ bool write_GOCAD(std::ostream& os, const PointRange& points, const PolygonRange& */ 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 @@ bool write_GOCAD(const std::string& fname, 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 --git a/thirdparty/CGAL/include/CGAL/IO/Generic_writer.h b/thirdparty/CGAL/include/CGAL/IO/Generic_writer.h index 7c8f3dac..05b4ed32 100644 --- a/thirdparty/CGAL/include/CGAL/IO/Generic_writer.h +++ b/thirdparty/CGAL/include/CGAL/IO/Generic_writer.h @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Generic_writer 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 @@ class Generic_writer 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 --git a/thirdparty/CGAL/include/CGAL/IO/Gps_iostream.h b/thirdparty/CGAL/include/CGAL/IO/Gps_iostream.h index 304cfb14..6a56f421 100644 --- a/thirdparty/CGAL/include/CGAL/IO/Gps_iostream.h +++ b/thirdparty/CGAL/include/CGAL/IO/Gps_iostream.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/Istream_iterator.h b/thirdparty/CGAL/include/CGAL/IO/Istream_iterator.h index 6c3baf6a..7520b74f 100644 --- a/thirdparty/CGAL/include/CGAL/IO/Istream_iterator.h +++ b/thirdparty/CGAL/include/CGAL/IO/Istream_iterator.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/Nef_polyhedron_2_PS_stream.h b/thirdparty/CGAL/include/CGAL/IO/Nef_polyhedron_2_PS_stream.h index 2cc2157d..58fae87d 100644 --- a/thirdparty/CGAL/include/CGAL/IO/Nef_polyhedron_2_PS_stream.h +++ b/thirdparty/CGAL/include/CGAL/IO/Nef_polyhedron_2_PS_stream.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/Nef_polyhedron_iostream_3.h b/thirdparty/CGAL/include/CGAL/IO/Nef_polyhedron_iostream_3.h index 6e8a3d10..9d6b708c 100644 --- a/thirdparty/CGAL/include/CGAL/IO/Nef_polyhedron_iostream_3.h +++ b/thirdparty/CGAL/include/CGAL/IO/Nef_polyhedron_iostream_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/OBJ.h b/thirdparty/CGAL/include/CGAL/IO/OBJ.h index 67a8e782..83ee9b97 100644 --- a/thirdparty/CGAL/include/CGAL/IO/OBJ.h +++ b/thirdparty/CGAL/include/CGAL/IO/OBJ.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ bool read_OBJ(std::istream& is, /// \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 @@ bool read_OBJ(std::istream& is, 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 @@ bool read_OBJ(std::istream& is, PointRange& points, PolygonRange& polygons, /// \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 @@ bool read_OBJ(const std::string& fname, 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 @@ bool read_OBJ(const std::string& fname, PointRange& points, PolygonRange& polygo */ 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 @@ bool write_OBJ(std::ostream& os, 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 @@ bool write_OBJ(std::ostream& os, const PointRange& points, const PolygonRange& p */ 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 @@ bool write_OBJ(const std::string& fname, 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 --git a/thirdparty/CGAL/include/CGAL/IO/OBJ/File_writer_wavefront.h b/thirdparty/CGAL/include/CGAL/IO/OBJ/File_writer_wavefront.h index 8159f9fb..f91c2c6b 100644 --- a/thirdparty/CGAL/include/CGAL/IO/OBJ/File_writer_wavefront.h +++ b/thirdparty/CGAL/include/CGAL/IO/OBJ/File_writer_wavefront.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org); // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/OFF.h b/thirdparty/CGAL/include/CGAL/IO/OFF.h index c2b7d67d..de0f30bf 100644 --- a/thirdparty/CGAL/include/CGAL/IO/OFF.h +++ b/thirdparty/CGAL/include/CGAL/IO/OFF.h @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org); // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ bool read_OFF(std::istream& is, * * \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 @@ bool read_OFF(std::istream& is, 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 @@ bool read_OFF(std::istream& is, PointRange& points, PolygonRange& polygons, * * \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 @@ bool read_OFF(const std::string& fname, 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 @@ bool read_OFF(const std::string& fname, PointRange& points, PolygonRange& polygo * * \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 @@ bool write_OFF(std::ostream& os, 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 @@ bool write_OFF(std::ostream& os, const PointRange& points, const PolygonRange& p * * \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 @@ bool write_OFF(const std::string& fname, 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 --git a/thirdparty/CGAL/include/CGAL/IO/OFF/File_header_OFF.h b/thirdparty/CGAL/include/CGAL/IO/OFF/File_header_OFF.h index 4af944a6..591b7729 100644 --- a/thirdparty/CGAL/include/CGAL/IO/OFF/File_header_OFF.h +++ b/thirdparty/CGAL/include/CGAL/IO/OFF/File_header_OFF.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org); // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/OFF/File_header_OFF_impl.h b/thirdparty/CGAL/include/CGAL/IO/OFF/File_header_OFF_impl.h index 432ad59d..b1afe94f 100644 --- a/thirdparty/CGAL/include/CGAL/IO/OFF/File_header_OFF_impl.h +++ b/thirdparty/CGAL/include/CGAL/IO/OFF/File_header_OFF_impl.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/OFF/File_header_extended_OFF.h b/thirdparty/CGAL/include/CGAL/IO/OFF/File_header_extended_OFF.h index c2a93e05..5a7f6030 100644 --- a/thirdparty/CGAL/include/CGAL/IO/OFF/File_header_extended_OFF.h +++ b/thirdparty/CGAL/include/CGAL/IO/OFF/File_header_extended_OFF.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/OFF/File_header_extended_OFF_impl.h b/thirdparty/CGAL/include/CGAL/IO/OFF/File_header_extended_OFF_impl.h index c7ce94e8..063ccd5f 100644 --- a/thirdparty/CGAL/include/CGAL/IO/OFF/File_header_extended_OFF_impl.h +++ b/thirdparty/CGAL/include/CGAL/IO/OFF/File_header_extended_OFF_impl.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/OFF/File_scanner_OFF.h b/thirdparty/CGAL/include/CGAL/IO/OFF/File_scanner_OFF.h index 4d41c044..fbf029f7 100644 --- a/thirdparty/CGAL/include/CGAL/IO/OFF/File_scanner_OFF.h +++ b/thirdparty/CGAL/include/CGAL/IO/OFF/File_scanner_OFF.h @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org); // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class File_scanner_OFF 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 @@ class File_scanner_OFF 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 @@ class File_scanner_OFF 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 @@ class File_scanner_OFF if(entries.empty()) { m_in.clear(std::ios::badbit); + size = 0; return; } size = static_cast(entries[0]); diff --git a/thirdparty/CGAL/include/CGAL/IO/OFF/File_writer_OFF.h b/thirdparty/CGAL/include/CGAL/IO/OFF/File_writer_OFF.h index 04d1543c..2831f568 100644 --- a/thirdparty/CGAL/include/CGAL/IO/OFF/File_writer_OFF.h +++ b/thirdparty/CGAL/include/CGAL/IO/OFF/File_writer_OFF.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org); // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/OFF/Scanner_OFF.h b/thirdparty/CGAL/include/CGAL/IO/OFF/Scanner_OFF.h index a49c6072..0e4e2983 100644 --- a/thirdparty/CGAL/include/CGAL/IO/OFF/Scanner_OFF.h +++ b/thirdparty/CGAL/include/CGAL/IO/OFF/Scanner_OFF.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/OFF/generic_copy_OFF.h b/thirdparty/CGAL/include/CGAL/IO/OFF/generic_copy_OFF.h index 790603ab..2a5a9f56 100644 --- a/thirdparty/CGAL/include/CGAL/IO/OFF/generic_copy_OFF.h +++ b/thirdparty/CGAL/include/CGAL/IO/OFF/generic_copy_OFF.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org); // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/OI.h b/thirdparty/CGAL/include/CGAL/IO/OI.h index c4b90de0..2a9a4673 100644 --- a/thirdparty/CGAL/include/CGAL/IO/OI.h +++ b/thirdparty/CGAL/include/CGAL/IO/OI.h @@ -6,7 +6,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/OI/File_writer_inventor.h b/thirdparty/CGAL/include/CGAL/IO/OI/File_writer_inventor.h index 59723b07..15dfaacb 100644 --- a/thirdparty/CGAL/include/CGAL/IO/OI/File_writer_inventor.h +++ b/thirdparty/CGAL/include/CGAL/IO/OI/File_writer_inventor.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/OI/Inventor_ostream.h b/thirdparty/CGAL/include/CGAL/IO/OI/Inventor_ostream.h index b6683a32..24c2a0a5 100644 --- a/thirdparty/CGAL/include/CGAL/IO/OI/Inventor_ostream.h +++ b/thirdparty/CGAL/include/CGAL/IO/OI/Inventor_ostream.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org); // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/Ostream_iterator.h b/thirdparty/CGAL/include/CGAL/IO/Ostream_iterator.h index 2251e384..48797c6e 100644 --- a/thirdparty/CGAL/include/CGAL/IO/Ostream_iterator.h +++ b/thirdparty/CGAL/include/CGAL/IO/Ostream_iterator.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/PLY.h b/thirdparty/CGAL/include/CGAL/IO/PLY.h index 304d1e8e..bb0328a6 100644 --- a/thirdparty/CGAL/include/CGAL/IO/PLY.h +++ b/thirdparty/CGAL/include/CGAL/IO/PLY.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ bool read_PLY(std::istream& is, * * \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 @@ bool read_PLY(std::istream& is, 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 @@ bool read_PLY(std::istream& is, PointRange& points, PolygonRange& polygons, * * \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 @@ bool read_PLY(const std::string& fname, } } -/// \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 @@ bool read_PLY(const std::string& fname, PointRange& points, PolygonRange& polygo * * \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 @@ bool write_PLY(std::ostream& out, 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 @@ bool write_PLY(std::ostream& out, const PointRange& points, const PolygonRange& * * \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 @@ bool write_PLY(const std::string& fname, } } -/// \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 --git a/thirdparty/CGAL/include/CGAL/IO/PLY/PLY_reader.h b/thirdparty/CGAL/include/CGAL/IO/PLY/PLY_reader.h index cac1d539..e906a05e 100644 --- a/thirdparty/CGAL/include/CGAL/IO/PLY/PLY_reader.h +++ b/thirdparty/CGAL/include/CGAL/IO/PLY/PLY_reader.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org); // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/PLY/PLY_writer.h b/thirdparty/CGAL/include/CGAL/IO/PLY/PLY_writer.h index 5be391bb..c03d4f5c 100644 --- a/thirdparty/CGAL/include/CGAL/IO/PLY/PLY_writer.h +++ b/thirdparty/CGAL/include/CGAL/IO/PLY/PLY_writer.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org); // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/Polyhedron_OFF_iostream.h b/thirdparty/CGAL/include/CGAL/IO/Polyhedron_OFF_iostream.h index 88457667..a25e040a 100644 --- a/thirdparty/CGAL/include/CGAL/IO/Polyhedron_OFF_iostream.h +++ b/thirdparty/CGAL/include/CGAL/IO/Polyhedron_OFF_iostream.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace IO { 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 @@ bool read_OFF(std::istream& in, 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 @@ bool read_OFF(std::istream& in, 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 @@ bool read_OFF(std::istream& in, 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 @@ -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,18 +68,17 @@ namespace IO { * * \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 ) { const bool verbose = parameters::choose_parameter(parameters::get_parameter(np, internal_np::verbose), false); - const bool binary = CGAL::parameters::choose_parameter(CGAL::parameters::get_parameter(np, internal_np::use_binary_mode), true); if(!is.good()) { @@ -93,7 +87,6 @@ bool read_STL(std::istream& is, return false; } - int pos = 0; // Ignore all initial whitespace unsigned char c; @@ -104,23 +97,11 @@ bool read_STL(std::istream& is, is.unget(); // move back to the first interesting char break; } - ++pos; } if(!is.good()) // reached the end return true; - // If we have gone beyond 80 characters and have not read anything yet, - // then this must be an ASCII file. - if(pos > 80) - { - if(binary) - return false; - return internal::parse_ASCII_STL(is, points, facets, verbose); - } - - // We are within the first 80 characters, both ASCII and binary are possible - // Read the 5 first characters to check if the first word is "solid" std::string s; @@ -133,7 +114,6 @@ bool read_STL(std::istream& is, is.read(reinterpret_cast(&word[5]), sizeof(c))) { s = std::string(word, 5); - pos += 5; } else { @@ -172,17 +152,6 @@ bool read_STL(std::istream& is, } } -/// \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 * @@ -218,11 +187,11 @@ bool read_STL(std::istream& is, PointRange& points, TriangleRange& facets, * * \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 @@ -249,20 +218,32 @@ bool read_STL(const std::string& fname, return read_STL(is, points, facets, CGAL::parameters::verbose(v).use_binary_mode(false)); } -/// \cond SKIP_IN_MANUAL +//////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////////////// +// Write + +namespace internal { -template -bool read_STL(const std::string& fname, PointRange& points, TriangleRange& facets, - typename boost::enable_if >::type* = nullptr) +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 @@ -295,11 +276,11 @@ bool read_STL(const std::string& fname, PointRange& points, TriangleRange& facet * * \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 @@ -310,13 +291,15 @@ bool write_STL(std::ostream& os, 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; @@ -355,7 +338,7 @@ bool write_STL(std::ostream& os, 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"; @@ -368,17 +351,6 @@ bool write_STL(std::ostream& os, 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 * @@ -414,11 +386,11 @@ bool write_STL(std::ostream& os, const PointRange& points, const TriangleRange& * * \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 @@ -439,17 +411,6 @@ bool write_STL(const std::string& fname, } } -/// \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 --git a/thirdparty/CGAL/include/CGAL/IO/STL/STL_reader.h b/thirdparty/CGAL/include/CGAL/IO/STL/STL_reader.h index a2357d48..bc0ade15 100644 --- a/thirdparty/CGAL/include/CGAL/IO/STL/STL_reader.h +++ b/thirdparty/CGAL/include/CGAL/IO/STL/STL_reader.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org); // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/Tee_for_output_iterator.h b/thirdparty/CGAL/include/CGAL/IO/Tee_for_output_iterator.h index 01aca312..72843569 100644 --- a/thirdparty/CGAL/include/CGAL/IO/Tee_for_output_iterator.h +++ b/thirdparty/CGAL/include/CGAL/IO/Tee_for_output_iterator.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/Triangulation_off_ostream.h b/thirdparty/CGAL/include/CGAL/IO/Triangulation_off_ostream.h index a2c3c10a..dc486ffd 100644 --- a/thirdparty/CGAL/include/CGAL/IO/Triangulation_off_ostream.h +++ b/thirdparty/CGAL/include/CGAL/IO/Triangulation_off_ostream.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/Triangulation_off_ostream_2.h b/thirdparty/CGAL/include/CGAL/IO/Triangulation_off_ostream_2.h index 96a2c5e2..3d151d0e 100644 --- a/thirdparty/CGAL/include/CGAL/IO/Triangulation_off_ostream_2.h +++ b/thirdparty/CGAL/include/CGAL/IO/Triangulation_off_ostream_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/Triangulation_off_ostream_3.h b/thirdparty/CGAL/include/CGAL/IO/Triangulation_off_ostream_3.h index 4cd87c60..a0cd2801 100644 --- a/thirdparty/CGAL/include/CGAL/IO/Triangulation_off_ostream_3.h +++ b/thirdparty/CGAL/include/CGAL/IO/Triangulation_off_ostream_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/Triangulation_ps_stream.h b/thirdparty/CGAL/include/CGAL/IO/Triangulation_ps_stream.h index ce2dc55f..6cd03b05 100644 --- a/thirdparty/CGAL/include/CGAL/IO/Triangulation_ps_stream.h +++ b/thirdparty/CGAL/include/CGAL/IO/Triangulation_ps_stream.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/VRML.h b/thirdparty/CGAL/include/CGAL/IO/VRML.h index 2ed6673d..4f55ac7c 100644 --- a/thirdparty/CGAL/include/CGAL/IO/VRML.h +++ b/thirdparty/CGAL/include/CGAL/IO/VRML.h @@ -6,7 +6,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/VRML/File_writer_VRML_2.h b/thirdparty/CGAL/include/CGAL/IO/VRML/File_writer_VRML_2.h index de31b821..c75150ad 100644 --- a/thirdparty/CGAL/include/CGAL/IO/VRML/File_writer_VRML_2.h +++ b/thirdparty/CGAL/include/CGAL/IO/VRML/File_writer_VRML_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/VRML/VRML_1_ostream.h b/thirdparty/CGAL/include/CGAL/IO/VRML/VRML_1_ostream.h index 1857a208..aec0cbae 100644 --- a/thirdparty/CGAL/include/CGAL/IO/VRML/VRML_1_ostream.h +++ b/thirdparty/CGAL/include/CGAL/IO/VRML/VRML_1_ostream.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org); // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/VRML/VRML_2_ostream.h b/thirdparty/CGAL/include/CGAL/IO/VRML/VRML_2_ostream.h index c669695b..8bc2ac56 100644 --- a/thirdparty/CGAL/include/CGAL/IO/VRML/VRML_2_ostream.h +++ b/thirdparty/CGAL/include/CGAL/IO/VRML/VRML_2_ostream.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org); // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/VTK.h b/thirdparty/CGAL/include/CGAL/IO/VTK.h index 31b989ad..935b2265 100644 --- a/thirdparty/CGAL/include/CGAL/IO/VTK.h +++ b/thirdparty/CGAL/include/CGAL/IO/VTK.h @@ -6,8 +6,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ bool read_VTP(const std::string& fname, 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 @@ void write_soup_polys_points(std::ostream& os, */ 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 @@ bool write_VTP(std::ostream& os, 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 @@ bool write_VTP(std::ostream& os, const PointRange& points, const PolygonRange& p * * \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 @@ bool write_VTP(const std::string& fname, } } -/// \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 --git a/thirdparty/CGAL/include/CGAL/IO/VTK/VTK_reader.h b/thirdparty/CGAL/include/CGAL/IO/VTK/VTK_reader.h index 8154776b..795ea168 100644 --- a/thirdparty/CGAL/include/CGAL/IO/VTK/VTK_reader.h +++ b/thirdparty/CGAL/include/CGAL/IO/VTK/VTK_reader.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/VTK/VTK_writer.h b/thirdparty/CGAL/include/CGAL/IO/VTK/VTK_writer.h index 8c4ea80c..8854fd10 100644 --- a/thirdparty/CGAL/include/CGAL/IO/VTK/VTK_writer.h +++ b/thirdparty/CGAL/include/CGAL/IO/VTK/VTK_writer.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/Verbose_ostream.h b/thirdparty/CGAL/include/CGAL/IO/Verbose_ostream.h index 8653f716..12b30dbe 100644 --- a/thirdparty/CGAL/include/CGAL/IO/Verbose_ostream.h +++ b/thirdparty/CGAL/include/CGAL/IO/Verbose_ostream.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/WKT.h b/thirdparty/CGAL/include/CGAL/IO/WKT.h index dc26ac00..d9a8b02e 100644 --- a/thirdparty/CGAL/include/CGAL/IO/WKT.h +++ b/thirdparty/CGAL/include/CGAL/IO/WKT.h @@ -6,7 +6,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/WKT/traits_linestring.h b/thirdparty/CGAL/include/CGAL/IO/WKT/traits_linestring.h index 7d46fb9b..e7666a7b 100644 --- a/thirdparty/CGAL/include/CGAL/IO/WKT/traits_linestring.h +++ b/thirdparty/CGAL/include/CGAL/IO/WKT/traits_linestring.h @@ -6,7 +6,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/WKT/traits_multilinestring.h b/thirdparty/CGAL/include/CGAL/IO/WKT/traits_multilinestring.h index e9126acc..f965c69f 100644 --- a/thirdparty/CGAL/include/CGAL/IO/WKT/traits_multilinestring.h +++ b/thirdparty/CGAL/include/CGAL/IO/WKT/traits_multilinestring.h @@ -6,7 +6,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/WKT/traits_multipoint.h b/thirdparty/CGAL/include/CGAL/IO/WKT/traits_multipoint.h index 1588ac34..e7ca4df7 100644 --- a/thirdparty/CGAL/include/CGAL/IO/WKT/traits_multipoint.h +++ b/thirdparty/CGAL/include/CGAL/IO/WKT/traits_multipoint.h @@ -6,7 +6,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/WKT/traits_multipolygon.h b/thirdparty/CGAL/include/CGAL/IO/WKT/traits_multipolygon.h index a0e20be2..6e05e4d2 100644 --- a/thirdparty/CGAL/include/CGAL/IO/WKT/traits_multipolygon.h +++ b/thirdparty/CGAL/include/CGAL/IO/WKT/traits_multipolygon.h @@ -6,7 +6,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/WKT/traits_point.h b/thirdparty/CGAL/include/CGAL/IO/WKT/traits_point.h index b388eb03..1c512af9 100644 --- a/thirdparty/CGAL/include/CGAL/IO/WKT/traits_point.h +++ b/thirdparty/CGAL/include/CGAL/IO/WKT/traits_point.h @@ -6,7 +6,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/WKT/traits_point_3.h b/thirdparty/CGAL/include/CGAL/IO/WKT/traits_point_3.h index 2454e13f..ceec18a7 100644 --- a/thirdparty/CGAL/include/CGAL/IO/WKT/traits_point_3.h +++ b/thirdparty/CGAL/include/CGAL/IO/WKT/traits_point_3.h @@ -6,7 +6,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/WKT/traits_polygon.h b/thirdparty/CGAL/include/CGAL/IO/WKT/traits_polygon.h index c0e8040d..c5e09ef2 100644 --- a/thirdparty/CGAL/include/CGAL/IO/WKT/traits_polygon.h +++ b/thirdparty/CGAL/include/CGAL/IO/WKT/traits_polygon.h @@ -6,7 +6,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/binary_file_io.h b/thirdparty/CGAL/include/CGAL/IO/binary_file_io.h index 5cb5432e..62bb74fb 100644 --- a/thirdparty/CGAL/include/CGAL/IO/binary_file_io.h +++ b/thirdparty/CGAL/include/CGAL/IO/binary_file_io.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/facets_in_complex_2_to_triangle_mesh.h b/thirdparty/CGAL/include/CGAL/IO/facets_in_complex_2_to_triangle_mesh.h index 1a5fe7a5..6197e166 100644 --- a/thirdparty/CGAL/include/CGAL/IO/facets_in_complex_2_to_triangle_mesh.h +++ b/thirdparty/CGAL/include/CGAL/IO/facets_in_complex_2_to_triangle_mesh.h @@ -4,8 +4,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/facets_in_complex_3_to_triangle_mesh.h b/thirdparty/CGAL/include/CGAL/IO/facets_in_complex_3_to_triangle_mesh.h index bbd12c88..8c1be9b0 100644 --- a/thirdparty/CGAL/include/CGAL/IO/facets_in_complex_3_to_triangle_mesh.h +++ b/thirdparty/CGAL/include/CGAL/IO/facets_in_complex_3_to_triangle_mesh.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/helpers.h b/thirdparty/CGAL/include/CGAL/IO/helpers.h index 49a99aa9..30c1e006 100644 --- a/thirdparty/CGAL/include/CGAL/IO/helpers.h +++ b/thirdparty/CGAL/include/CGAL/IO/helpers.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/io.h b/thirdparty/CGAL/include/CGAL/IO/io.h index 531c164b..9e99d9e8 100644 --- a/thirdparty/CGAL/include/CGAL/IO/io.h +++ b/thirdparty/CGAL/include/CGAL/IO/io.h @@ -8,7 +8,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/io_tags.h b/thirdparty/CGAL/include/CGAL/IO/io_tags.h index 6d092030..d28bb2dc 100644 --- a/thirdparty/CGAL/include/CGAL/IO/io_tags.h +++ b/thirdparty/CGAL/include/CGAL/IO/io_tags.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/output_surface_facets_to_polyhedron.h b/thirdparty/CGAL/include/CGAL/IO/output_surface_facets_to_polyhedron.h index cd4b3888..6e88b6bb 100644 --- a/thirdparty/CGAL/include/CGAL/IO/output_surface_facets_to_polyhedron.h +++ b/thirdparty/CGAL/include/CGAL/IO/output_surface_facets_to_polyhedron.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/output_surface_facets_to_triangle_soup.h b/thirdparty/CGAL/include/CGAL/IO/output_surface_facets_to_triangle_soup.h index d4348954..6b986386 100644 --- a/thirdparty/CGAL/include/CGAL/IO/output_surface_facets_to_triangle_soup.h +++ b/thirdparty/CGAL/include/CGAL/IO/output_surface_facets_to_triangle_soup.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace CGAL { /// /// 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 --git a/thirdparty/CGAL/include/CGAL/IO/output_to_vtu.h b/thirdparty/CGAL/include/CGAL/IO/output_to_vtu.h index b6139044..bd35d266 100644 --- a/thirdparty/CGAL/include/CGAL/IO/output_to_vtu.h +++ b/thirdparty/CGAL/include/CGAL/IO/output_to_vtu.h @@ -5,7 +5,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/polygon_soup_io.h b/thirdparty/CGAL/include/CGAL/IO/polygon_soup_io.h index 1a1a61dd..00ed53e5 100644 --- a/thirdparty/CGAL/include/CGAL/IO/polygon_soup_io.h +++ b/thirdparty/CGAL/include/CGAL/IO/polygon_soup_io.h @@ -6,8 +6,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace IO { * 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 @@ namespace IO { * * \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 @@ bool read_polygon_soup(const std::string& fname, 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 @@ bool read_polygon_soup(const std::string& fname, PointRange& points, PolygonRang * * \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 @@ bool write_polygon_soup(const std::string& fname, 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 --git a/thirdparty/CGAL/include/CGAL/IO/print_OFF.h b/thirdparty/CGAL/include/CGAL/IO/print_OFF.h index 484d62fd..77bc9979 100644 --- a/thirdparty/CGAL/include/CGAL/IO/print_OFF.h +++ b/thirdparty/CGAL/include/CGAL/IO/print_OFF.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Polyhedron/include/CGAL/IO/print_OFF.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Polyhedron/include/CGAL/IO/print_OFF.h $ // $Id: print_OFF.h 4e519a3 2021-05-05T13:15:37+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff --git a/thirdparty/CGAL/include/CGAL/IO/read_las_points.h b/thirdparty/CGAL/include/CGAL/IO/read_las_points.h index 58737cea..a2701b96 100644 --- a/thirdparty/CGAL/include/CGAL/IO/read_las_points.h +++ b/thirdparty/CGAL/include/CGAL/IO/read_las_points.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Point_set_processing_3/include/CGAL/IO/read_las_points.h $ -// $Id: read_las_points.h c8cc074 2021-09-27T15:33:42+02:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Point_set_processing_3/include/CGAL/IO/read_las_points.h $ +// $Id: read_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 @@ -21,7 +21,7 @@ #include #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 @@ bool read_LAS_with_properties(std::istream& is, */ 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 @@ bool read_LAS(std::istream& is, /// \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 @@ bool read_LAS(std::istream& is, OutputIterator output, */ 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 @@ bool read_LAS(const std::string& filename, /// \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 @@ CGAL_DEPRECATED bool read_las_points_with_properties(std::istream& is, */ 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 --git a/thirdparty/CGAL/include/CGAL/IO/read_off_points.h b/thirdparty/CGAL/include/CGAL/IO/read_off_points.h index 75aa3209..cba516df 100644 --- a/thirdparty/CGAL/include/CGAL/IO/read_off_points.h +++ b/thirdparty/CGAL/include/CGAL/IO/read_off_points.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace IO { */ 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 @@ bool read_OFF(std::istream& is, 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 @@ bool read_OFF(std::istream& is, */ 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 @@ bool read_OFF(const std::string& fname, /// \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 @@ bool read_off_points(std::istream& is, ///< input stream. */ 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 @@ CGAL_DEPRECATED bool read_off_points(std::istream& is, OutputIterator output) } // 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 --git a/thirdparty/CGAL/include/CGAL/IO/read_ply_points.h b/thirdparty/CGAL/include/CGAL/IO/read_ply_points.h index b95a8907..bfa85024 100644 --- a/thirdparty/CGAL/include/CGAL/IO/read_ply_points.h +++ b/thirdparty/CGAL/include/CGAL/IO/read_ply_points.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ bool read_PLY_with_properties(std::istream& is, */ 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 @@ bool read_PLY(std::istream& is, 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 @@ bool read_PLY(std::istream& is, */ 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 @@ bool read_PLY(const std::string& fname, /// \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 @@ CGAL_DEPRECATED bool read_ply_points_with_properties(std::istream& is, OutputIte \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 @@ CGAL_DEPRECATED bool read_ply_points_with_properties(std::istream& is, OutputIte 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 --git a/thirdparty/CGAL/include/CGAL/IO/read_points.h b/thirdparty/CGAL/include/CGAL/IO/read_points.h index 10c4ef84..b2bd4d50 100644 --- a/thirdparty/CGAL/include/CGAL/IO/read_points.h +++ b/thirdparty/CGAL/include/CGAL/IO/read_points.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace IO { */ 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 @@ bool read_points(const std::string& fname, /// \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 --git a/thirdparty/CGAL/include/CGAL/IO/read_vtk_image_data.h b/thirdparty/CGAL/include/CGAL/IO/read_vtk_image_data.h index 2cead2a2..8bf5588e 100644 --- a/thirdparty/CGAL/include/CGAL/IO/read_vtk_image_data.h +++ b/thirdparty/CGAL/include/CGAL/IO/read_vtk_image_data.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/read_xyz_points.h b/thirdparty/CGAL/include/CGAL/IO/read_xyz_points.h index 92e97494..68439ab9 100644 --- a/thirdparty/CGAL/include/CGAL/IO/read_xyz_points.h +++ b/thirdparty/CGAL/include/CGAL/IO/read_xyz_points.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace IO { */ 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 @@ bool read_XYZ(std::istream& is, 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 @@ bool read_XYZ(std::istream& is, */ 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 @@ bool read_XYZ(const std::string& fname, /// \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 @@ bool read_xyz_points(std::istream& is, ///< input stream. */ 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 --git a/thirdparty/CGAL/include/CGAL/IO/scan_OFF.h b/thirdparty/CGAL/include/CGAL/IO/scan_OFF.h index 131197c4..dd1e0aa2 100644 --- a/thirdparty/CGAL/include/CGAL/IO/scan_OFF.h +++ b/thirdparty/CGAL/include/CGAL/IO/scan_OFF.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/trace.h b/thirdparty/CGAL/include/CGAL/IO/trace.h index 80ef15d3..48b831cb 100644 --- a/thirdparty/CGAL/include/CGAL/IO/trace.h +++ b/thirdparty/CGAL/include/CGAL/IO/trace.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/IO/write_VTU.h b/thirdparty/CGAL/include/CGAL/IO/write_VTU.h index 90008844..1301bf72 100644 --- a/thirdparty/CGAL/include/CGAL/IO/write_VTU.h +++ b/thirdparty/CGAL/include/CGAL/IO/write_VTU.h @@ -5,7 +5,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/IO/write_las_points.h b/thirdparty/CGAL/include/CGAL/IO/write_las_points.h index 400934cb..0a67f575 100644 --- a/thirdparty/CGAL/include/CGAL/IO/write_las_points.h +++ b/thirdparty/CGAL/include/CGAL/IO/write_las_points.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ bool write_LAS_with_properties(std::ostream& os, ///< output stream. \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 @@ bool write_LAS(std::ostream& os, 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 @@ bool write_LAS(std::ostream& os, \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 @@ bool write_LAS(const std::string& filename, 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 @@ CGAL_DEPRECATED bool write_las_points_with_properties(std::ostream& os, \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 --git a/thirdparty/CGAL/include/CGAL/IO/write_off_points.h b/thirdparty/CGAL/include/CGAL/IO/write_off_points.h index 0aa0228a..86fa48e7 100644 --- a/thirdparty/CGAL/include/CGAL/IO/write_off_points.h +++ b/thirdparty/CGAL/include/CGAL/IO/write_off_points.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace IO { \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 @@ bool write_OFF(std::ostream& os, 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 @@ bool write_OFF(std::ostream& os, const PointRange& points, \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 @@ bool write_OFF(const std::string& filename, 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 @@ bool write_off_points(std::ostream& os, ///< output stream. \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 --git a/thirdparty/CGAL/include/CGAL/IO/write_ply_points.h b/thirdparty/CGAL/include/CGAL/IO/write_ply_points.h index fdede1ee..16626f34 100644 --- a/thirdparty/CGAL/include/CGAL/IO/write_ply_points.h +++ b/thirdparty/CGAL/include/CGAL/IO/write_ply_points.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ 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 @@ bool write_PLY(std::ostream& os, 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 @@ bool write_PLY(std::ostream& os, 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 @@ bool write_PLY(std::ostream& os, const PointRange& points, \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 @@ bool write_PLY(const std::string& filename, } } -/// \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 @@ CGAL_DEPRECATED bool write_ply_points_with_properties(std::ostream& os, ///< out \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 --git a/thirdparty/CGAL/include/CGAL/IO/write_points.h b/thirdparty/CGAL/include/CGAL/IO/write_points.h index e4d089e5..1c098fae 100644 --- a/thirdparty/CGAL/include/CGAL/IO/write_points.h +++ b/thirdparty/CGAL/include/CGAL/IO/write_points.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace IO { \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 @@ bool write_points(const std::string& fname, 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 --git a/thirdparty/CGAL/include/CGAL/IO/write_xyz_points.h b/thirdparty/CGAL/include/CGAL/IO/write_xyz_points.h index 042893ad..97c3d91f 100644 --- a/thirdparty/CGAL/include/CGAL/IO/write_xyz_points.h +++ b/thirdparty/CGAL/include/CGAL/IO/write_xyz_points.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace IO { \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 @@ bool write_XYZ(std::ostream& os, 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 @@ bool write_XYZ(std::ostream& os, const PointRange& points, \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 @@ bool write_XYZ(const std::string& filename, 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 @@ bool write_xyz_points(std::ostream& os, ///< output stream. \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 --git a/thirdparty/CGAL/include/CGAL/Identity_policy_2.h b/thirdparty/CGAL/include/CGAL/Identity_policy_2.h index 7b1f26df..bc000bf8 100644 --- a/thirdparty/CGAL/include/CGAL/Identity_policy_2.h +++ b/thirdparty/CGAL/include/CGAL/Identity_policy_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/ImageIO.h b/thirdparty/CGAL/include/CGAL/ImageIO.h index 4bda3e25..a42343d2 100644 --- a/thirdparty/CGAL/include/CGAL/ImageIO.h +++ b/thirdparty/CGAL/include/CGAL/ImageIO.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/ImageIO/analyze.h b/thirdparty/CGAL/include/CGAL/ImageIO/analyze.h index dea93897..fefe31f4 100644 --- a/thirdparty/CGAL/include/CGAL/ImageIO/analyze.h +++ b/thirdparty/CGAL/include/CGAL/ImageIO/analyze.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/ImageIO/analyze_impl.h b/thirdparty/CGAL/include/CGAL/ImageIO/analyze_impl.h index 07c859a5..0c11c992 100644 --- a/thirdparty/CGAL/include/CGAL/ImageIO/analyze_impl.h +++ b/thirdparty/CGAL/include/CGAL/ImageIO/analyze_impl.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/ImageIO/bmp.h b/thirdparty/CGAL/include/CGAL/ImageIO/bmp.h index 214ebb3a..1ccd26b8 100644 --- a/thirdparty/CGAL/include/CGAL/ImageIO/bmp.h +++ b/thirdparty/CGAL/include/CGAL/ImageIO/bmp.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/ImageIO/bmp_impl.h b/thirdparty/CGAL/include/CGAL/ImageIO/bmp_impl.h index d6bc1b75..f988b89d 100644 --- a/thirdparty/CGAL/include/CGAL/ImageIO/bmp_impl.h +++ b/thirdparty/CGAL/include/CGAL/ImageIO/bmp_impl.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/ImageIO/bmpendian.h b/thirdparty/CGAL/include/CGAL/ImageIO/bmpendian.h index 5d75aa6c..9efd774c 100644 --- a/thirdparty/CGAL/include/CGAL/ImageIO/bmpendian.h +++ b/thirdparty/CGAL/include/CGAL/ImageIO/bmpendian.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/ImageIO/bmpendian_impl.h b/thirdparty/CGAL/include/CGAL/ImageIO/bmpendian_impl.h index e43d9b2f..f746c89d 100644 --- a/thirdparty/CGAL/include/CGAL/ImageIO/bmpendian_impl.h +++ b/thirdparty/CGAL/include/CGAL/ImageIO/bmpendian_impl.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/ImageIO/bmpread.h b/thirdparty/CGAL/include/CGAL/ImageIO/bmpread.h index ab966910..c19aedc3 100644 --- a/thirdparty/CGAL/include/CGAL/ImageIO/bmpread.h +++ b/thirdparty/CGAL/include/CGAL/ImageIO/bmpread.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/ImageIO/bmpread_impl.h b/thirdparty/CGAL/include/CGAL/ImageIO/bmpread_impl.h index 1dd23bf1..3d5c241d 100644 --- a/thirdparty/CGAL/include/CGAL/ImageIO/bmpread_impl.h +++ b/thirdparty/CGAL/include/CGAL/ImageIO/bmpread_impl.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/ImageIO/bmptypes.h b/thirdparty/CGAL/include/CGAL/ImageIO/bmptypes.h index ece8fd45..c2b9d66f 100644 --- a/thirdparty/CGAL/include/CGAL/ImageIO/bmptypes.h +++ b/thirdparty/CGAL/include/CGAL/ImageIO/bmptypes.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/ImageIO/convert.h b/thirdparty/CGAL/include/CGAL/ImageIO/convert.h index 67c8c3bf..f72b7b3e 100644 --- a/thirdparty/CGAL/include/CGAL/ImageIO/convert.h +++ b/thirdparty/CGAL/include/CGAL/ImageIO/convert.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/ImageIO/convert_impl.h b/thirdparty/CGAL/include/CGAL/ImageIO/convert_impl.h index 350cd27b..48463125 100644 --- a/thirdparty/CGAL/include/CGAL/ImageIO/convert_impl.h +++ b/thirdparty/CGAL/include/CGAL/ImageIO/convert_impl.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/ImageIO/fgetns.h b/thirdparty/CGAL/include/CGAL/ImageIO/fgetns.h index c7081c39..443d3b99 100644 --- a/thirdparty/CGAL/include/CGAL/ImageIO/fgetns.h +++ b/thirdparty/CGAL/include/CGAL/ImageIO/fgetns.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/ImageIO/fgetns_impl.h b/thirdparty/CGAL/include/CGAL/ImageIO/fgetns_impl.h index 30bc4a8c..d069fa08 100644 --- a/thirdparty/CGAL/include/CGAL/ImageIO/fgetns_impl.h +++ b/thirdparty/CGAL/include/CGAL/ImageIO/fgetns_impl.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/ImageIO/gif.h b/thirdparty/CGAL/include/CGAL/ImageIO/gif.h index 8506b877..e266adea 100644 --- a/thirdparty/CGAL/include/CGAL/ImageIO/gif.h +++ b/thirdparty/CGAL/include/CGAL/ImageIO/gif.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/ImageIO/gif_impl.h b/thirdparty/CGAL/include/CGAL/ImageIO/gif_impl.h index 14cbbc4d..b4a5f1bf 100644 --- a/thirdparty/CGAL/include/CGAL/ImageIO/gif_impl.h +++ b/thirdparty/CGAL/include/CGAL/ImageIO/gif_impl.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/ImageIO/gis.h b/thirdparty/CGAL/include/CGAL/ImageIO/gis.h index 0aa0e8bb..966bb3e4 100644 --- a/thirdparty/CGAL/include/CGAL/ImageIO/gis.h +++ b/thirdparty/CGAL/include/CGAL/ImageIO/gis.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/ImageIO/gis_impl.h b/thirdparty/CGAL/include/CGAL/ImageIO/gis_impl.h index 8f5e2bbc..a122895c 100644 --- a/thirdparty/CGAL/include/CGAL/ImageIO/gis_impl.h +++ b/thirdparty/CGAL/include/CGAL/ImageIO/gis_impl.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/ImageIO/inr.h b/thirdparty/CGAL/include/CGAL/ImageIO/inr.h index 8b5fa80b..f31ac0c6 100644 --- a/thirdparty/CGAL/include/CGAL/ImageIO/inr.h +++ b/thirdparty/CGAL/include/CGAL/ImageIO/inr.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/ImageIO/inr_impl.h b/thirdparty/CGAL/include/CGAL/ImageIO/inr_impl.h index ed824181..dd0d67ff 100644 --- a/thirdparty/CGAL/include/CGAL/ImageIO/inr_impl.h +++ b/thirdparty/CGAL/include/CGAL/ImageIO/inr_impl.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/ImageIO/iris.h b/thirdparty/CGAL/include/CGAL/ImageIO/iris.h index daae9338..5d110699 100644 --- a/thirdparty/CGAL/include/CGAL/ImageIO/iris.h +++ b/thirdparty/CGAL/include/CGAL/ImageIO/iris.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/ImageIO/iris_impl.h b/thirdparty/CGAL/include/CGAL/ImageIO/iris_impl.h index b0188aa5..03d97ccf 100644 --- a/thirdparty/CGAL/include/CGAL/ImageIO/iris_impl.h +++ b/thirdparty/CGAL/include/CGAL/ImageIO/iris_impl.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/ImageIO/mincio.h b/thirdparty/CGAL/include/CGAL/ImageIO/mincio.h index c6e7e735..223b30e9 100644 --- a/thirdparty/CGAL/include/CGAL/ImageIO/mincio.h +++ b/thirdparty/CGAL/include/CGAL/ImageIO/mincio.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/ImageIO/mincio_impl.h b/thirdparty/CGAL/include/CGAL/ImageIO/mincio_impl.h index 1ae08c15..1d8892a6 100644 --- a/thirdparty/CGAL/include/CGAL/ImageIO/mincio_impl.h +++ b/thirdparty/CGAL/include/CGAL/ImageIO/mincio_impl.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/ImageIO/pnm.h b/thirdparty/CGAL/include/CGAL/ImageIO/pnm.h index ce05113c..8b6e888b 100644 --- a/thirdparty/CGAL/include/CGAL/ImageIO/pnm.h +++ b/thirdparty/CGAL/include/CGAL/ImageIO/pnm.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/ImageIO/pnm_impl.h b/thirdparty/CGAL/include/CGAL/ImageIO/pnm_impl.h index c3811221..b7ed50e0 100644 --- a/thirdparty/CGAL/include/CGAL/ImageIO/pnm_impl.h +++ b/thirdparty/CGAL/include/CGAL/ImageIO/pnm_impl.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/ImageIO/recbuffer.h b/thirdparty/CGAL/include/CGAL/ImageIO/recbuffer.h index 1054d468..a9ec5baf 100644 --- a/thirdparty/CGAL/include/CGAL/ImageIO/recbuffer.h +++ b/thirdparty/CGAL/include/CGAL/ImageIO/recbuffer.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/ImageIO/recbuffer_impl.h b/thirdparty/CGAL/include/CGAL/ImageIO/recbuffer_impl.h index 53b7a14f..9af3975d 100644 --- a/thirdparty/CGAL/include/CGAL/ImageIO/recbuffer_impl.h +++ b/thirdparty/CGAL/include/CGAL/ImageIO/recbuffer_impl.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/ImageIO/recline.h b/thirdparty/CGAL/include/CGAL/ImageIO/recline.h index 45a131e4..5694e4c7 100644 --- a/thirdparty/CGAL/include/CGAL/ImageIO/recline.h +++ b/thirdparty/CGAL/include/CGAL/ImageIO/recline.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/ImageIO/recline_impl.h b/thirdparty/CGAL/include/CGAL/ImageIO/recline_impl.h index bb8bd079..123f7502 100644 --- a/thirdparty/CGAL/include/CGAL/ImageIO/recline_impl.h +++ b/thirdparty/CGAL/include/CGAL/ImageIO/recline_impl.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/ImageIO/reech4x4.h b/thirdparty/CGAL/include/CGAL/ImageIO/reech4x4.h index f1beeaf3..dd6dfa5a 100644 --- a/thirdparty/CGAL/include/CGAL/ImageIO/reech4x4.h +++ b/thirdparty/CGAL/include/CGAL/ImageIO/reech4x4.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/ImageIO/reech4x4_impl.h b/thirdparty/CGAL/include/CGAL/ImageIO/reech4x4_impl.h index 86256e2c..a72354f1 100644 --- a/thirdparty/CGAL/include/CGAL/ImageIO/reech4x4_impl.h +++ b/thirdparty/CGAL/include/CGAL/ImageIO/reech4x4_impl.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/ImageIO/typedefs.h b/thirdparty/CGAL/include/CGAL/ImageIO/typedefs.h index 61d929fd..8d988805 100644 --- a/thirdparty/CGAL/include/CGAL/ImageIO/typedefs.h +++ b/thirdparty/CGAL/include/CGAL/ImageIO/typedefs.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/ImageIO_impl.h b/thirdparty/CGAL/include/CGAL/ImageIO_impl.h index befbec11..7d37e5c4 100644 --- a/thirdparty/CGAL/include/CGAL/ImageIO_impl.h +++ b/thirdparty/CGAL/include/CGAL/ImageIO_impl.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/Image_3.h b/thirdparty/CGAL/include/CGAL/Image_3.h index f9fa7c1e..4555bcd3 100644 --- a/thirdparty/CGAL/include/CGAL/Image_3.h +++ b/thirdparty/CGAL/include/CGAL/Image_3.h @@ -4,8 +4,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Image_3_impl.h b/thirdparty/CGAL/include/CGAL/Image_3_impl.h index e1fc4e01..e952f03e 100644 --- a/thirdparty/CGAL/include/CGAL/Image_3_impl.h +++ b/thirdparty/CGAL/include/CGAL/Image_3_impl.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Image_3_vtk_interface.h b/thirdparty/CGAL/include/CGAL/Image_3_vtk_interface.h index 069cbfe1..c922e091 100644 --- a/thirdparty/CGAL/include/CGAL/Image_3_vtk_interface.h +++ b/thirdparty/CGAL/include/CGAL/Image_3_vtk_interface.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Implicit_mesh_domain_3.h b/thirdparty/CGAL/include/CGAL/Implicit_mesh_domain_3.h index 3dc8fb27..f30142cf 100644 --- a/thirdparty/CGAL/include/CGAL/Implicit_mesh_domain_3.h +++ b/thirdparty/CGAL/include/CGAL/Implicit_mesh_domain_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Implicit_surface_3.h b/thirdparty/CGAL/include/CGAL/Implicit_surface_3.h index bb007b88..ce004a27 100644 --- a/thirdparty/CGAL/include/CGAL/Implicit_surface_3.h +++ b/thirdparty/CGAL/include/CGAL/Implicit_surface_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Implicit_to_labeled_subdomains_function_wrapper.h b/thirdparty/CGAL/include/CGAL/Implicit_to_labeled_subdomains_function_wrapper.h index 0ec12848..8d71a080 100644 --- a/thirdparty/CGAL/include/CGAL/Implicit_to_labeled_subdomains_function_wrapper.h +++ b/thirdparty/CGAL/include/CGAL/Implicit_to_labeled_subdomains_function_wrapper.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Implicit_to_labeling_function_wrapper.h b/thirdparty/CGAL/include/CGAL/Implicit_to_labeling_function_wrapper.h index 8af571a1..e624fe11 100644 --- a/thirdparty/CGAL/include/CGAL/Implicit_to_labeling_function_wrapper.h +++ b/thirdparty/CGAL/include/CGAL/Implicit_to_labeling_function_wrapper.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/In_place_list.h b/thirdparty/CGAL/include/CGAL/In_place_list.h index b3bdd084..d8d1dca1 100644 --- a/thirdparty/CGAL/include/CGAL/In_place_list.h +++ b/thirdparty/CGAL/include/CGAL/In_place_list.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Incremental_neighbor_search.h b/thirdparty/CGAL/include/CGAL/Incremental_neighbor_search.h index 973960f3..b6fd536b 100644 --- a/thirdparty/CGAL/include/CGAL/Incremental_neighbor_search.h +++ b/thirdparty/CGAL/include/CGAL/Incremental_neighbor_search.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Spatial_searching/include/CGAL/Incremental_neighbor_search.h $ -// $Id: Incremental_neighbor_search.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/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 // // @@ -17,6 +17,7 @@ #include #include +#include #include #include #include @@ -342,7 +343,8 @@ namespace CGAL { typename SearchTraits::Construct_cartesian_const_iterator_d construct_it = m_tree.traits().construct_cartesian_const_iterator_d_object(); - m_dim = static_cast(std::distance(construct_it(q), construct_it(q, 0))); + const Point_d& p = *m_tree.begin(); + m_dim = static_cast(std::distance(construct_it(p), construct_it(p, 0))); multiplication_factor= distance.transformed_distance(FT(1)+Eps); diff --git a/thirdparty/CGAL/include/CGAL/Index_property_map.h b/thirdparty/CGAL/include/CGAL/Index_property_map.h index 5f9ba912..128c94bb 100644 --- a/thirdparty/CGAL/include/CGAL/Index_property_map.h +++ b/thirdparty/CGAL/include/CGAL/Index_property_map.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Installation/internal/deprecation_warning.h b/thirdparty/CGAL/include/CGAL/Installation/internal/deprecation_warning.h index 4989d503..59718a2a 100644 --- a/thirdparty/CGAL/include/CGAL/Installation/internal/deprecation_warning.h +++ b/thirdparty/CGAL/include/CGAL/Installation/internal/deprecation_warning.h @@ -6,7 +6,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Installation/internal/disable_deprecation_warnings_and_errors.h b/thirdparty/CGAL/include/CGAL/Installation/internal/disable_deprecation_warnings_and_errors.h index 749ca38f..1b2c72cd 100644 --- a/thirdparty/CGAL/include/CGAL/Installation/internal/disable_deprecation_warnings_and_errors.h +++ b/thirdparty/CGAL/include/CGAL/Installation/internal/disable_deprecation_warnings_and_errors.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Installation/internal/enable_third_party_libraries.h b/thirdparty/CGAL/include/CGAL/Installation/internal/enable_third_party_libraries.h index 62059765..01f663e4 100644 --- a/thirdparty/CGAL/include/CGAL/Installation/internal/enable_third_party_libraries.h +++ b/thirdparty/CGAL/include/CGAL/Installation/internal/enable_third_party_libraries.h @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Interpolation/internal/helpers.h b/thirdparty/CGAL/include/CGAL/Interpolation/internal/helpers.h index 94dd8006..22bde9c2 100644 --- a/thirdparty/CGAL/include/CGAL/Interpolation/internal/helpers.h +++ b/thirdparty/CGAL/include/CGAL/Interpolation/internal/helpers.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Interpolation_gradient_fitting_traits_2.h b/thirdparty/CGAL/include/CGAL/Interpolation_gradient_fitting_traits_2.h index 2a06a465..25f9e183 100644 --- a/thirdparty/CGAL/include/CGAL/Interpolation_gradient_fitting_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Interpolation_gradient_fitting_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Interpolation_traits_2.h b/thirdparty/CGAL/include/CGAL/Interpolation_traits_2.h index 6c83922e..c07fbb7e 100644 --- a/thirdparty/CGAL/include/CGAL/Interpolation_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Interpolation_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersection_traits.h b/thirdparty/CGAL/include/CGAL/Intersection_traits.h index c8db429b..5a2a0d63 100644 --- a/thirdparty/CGAL/include/CGAL/Intersection_traits.h +++ b/thirdparty/CGAL/include/CGAL/Intersection_traits.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ struct Intersection_traits { }; -// 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 --git a/thirdparty/CGAL/include/CGAL/Intersection_traits_2.h b/thirdparty/CGAL/include/CGAL/Intersection_traits_2.h index 84da0f43..b14fb1f7 100644 --- a/thirdparty/CGAL/include/CGAL/Intersection_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Intersection_traits_2.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersection_traits_3.h b/thirdparty/CGAL/include/CGAL/Intersection_traits_3.h index a1f8ebef..ed3922e2 100644 --- a/thirdparty/CGAL/include/CGAL/Intersection_traits_3.h +++ b/thirdparty/CGAL/include/CGAL/Intersection_traits_3.h @@ -9,8 +9,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_2/Bbox_2_Bbox_2.h b/thirdparty/CGAL/include/CGAL/Intersections_2/Bbox_2_Bbox_2.h index cc16de33..4c3f836b 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_2/Bbox_2_Bbox_2.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_2/Bbox_2_Bbox_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_2/Bbox_2_Circle_2.h b/thirdparty/CGAL/include/CGAL/Intersections_2/Bbox_2_Circle_2.h index 7a8c1b31..a7b08bcd 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_2/Bbox_2_Circle_2.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_2/Bbox_2_Circle_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_2/Bbox_2_Iso_rectangle_2.h b/thirdparty/CGAL/include/CGAL/Intersections_2/Bbox_2_Iso_rectangle_2.h index 8b2da0da..b02042c0 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_2/Bbox_2_Iso_rectangle_2.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_2/Bbox_2_Iso_rectangle_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_2/Bbox_2_Line_2.h b/thirdparty/CGAL/include/CGAL/Intersections_2/Bbox_2_Line_2.h index 6b76f571..c4dfc0d6 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_2/Bbox_2_Line_2.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_2/Bbox_2_Line_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_2/Bbox_2_Point_2.h b/thirdparty/CGAL/include/CGAL/Intersections_2/Bbox_2_Point_2.h index 631022bb..5ad29a80 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_2/Bbox_2_Point_2.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_2/Bbox_2_Point_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_2/Bbox_2_Ray_2.h b/thirdparty/CGAL/include/CGAL/Intersections_2/Bbox_2_Ray_2.h index 49e82a34..59219dab 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_2/Bbox_2_Ray_2.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_2/Bbox_2_Ray_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_2/Bbox_2_Segment_2.h b/thirdparty/CGAL/include/CGAL/Intersections_2/Bbox_2_Segment_2.h index 0f75dd7e..d2a156d9 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_2/Bbox_2_Segment_2.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_2/Bbox_2_Segment_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_2/Bbox_2_Triangle_2.h b/thirdparty/CGAL/include/CGAL/Intersections_2/Bbox_2_Triangle_2.h index 5bc4905c..17782538 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_2/Bbox_2_Triangle_2.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_2/Bbox_2_Triangle_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_2/Circle_2_Circle_2.h b/thirdparty/CGAL/include/CGAL/Intersections_2/Circle_2_Circle_2.h index 0a11d014..fdd430a3 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_2/Circle_2_Circle_2.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_2/Circle_2_Circle_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_2/Circle_2_Iso_rectangle_2.h b/thirdparty/CGAL/include/CGAL/Intersections_2/Circle_2_Iso_rectangle_2.h index 8cad536a..748c2895 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_2/Circle_2_Iso_rectangle_2.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_2/Circle_2_Iso_rectangle_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_2/Circle_2_Line_2.h b/thirdparty/CGAL/include/CGAL/Intersections_2/Circle_2_Line_2.h index b8131d04..d4c2ec59 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_2/Circle_2_Line_2.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_2/Circle_2_Line_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_2/Circle_2_Point_2.h b/thirdparty/CGAL/include/CGAL/Intersections_2/Circle_2_Point_2.h index f48d1ea5..39bcbdc7 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_2/Circle_2_Point_2.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_2/Circle_2_Point_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_2/Circle_2_Ray_2.h b/thirdparty/CGAL/include/CGAL/Intersections_2/Circle_2_Ray_2.h index e450b039..82dd5313 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_2/Circle_2_Ray_2.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_2/Circle_2_Ray_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_2/Circle_2_Segment_2.h b/thirdparty/CGAL/include/CGAL/Intersections_2/Circle_2_Segment_2.h index 6725aa5c..0939a382 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_2/Circle_2_Segment_2.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_2/Circle_2_Segment_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_2/Circle_2_Triangle_2.h b/thirdparty/CGAL/include/CGAL/Intersections_2/Circle_2_Triangle_2.h index 32a64c95..46ec78d4 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_2/Circle_2_Triangle_2.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_2/Circle_2_Triangle_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_2/Iso_rectangle_2_Iso_rectangle_2.h b/thirdparty/CGAL/include/CGAL/Intersections_2/Iso_rectangle_2_Iso_rectangle_2.h index 8d5d4e2f..50fe69d3 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_2/Iso_rectangle_2_Iso_rectangle_2.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_2/Iso_rectangle_2_Iso_rectangle_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_2/Iso_rectangle_2_Line_2.h b/thirdparty/CGAL/include/CGAL/Intersections_2/Iso_rectangle_2_Line_2.h index fcd454bd..98ca241c 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_2/Iso_rectangle_2_Line_2.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_2/Iso_rectangle_2_Line_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_2/Iso_rectangle_2_Point_2.h b/thirdparty/CGAL/include/CGAL/Intersections_2/Iso_rectangle_2_Point_2.h index 439f6be5..817bdfc9 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_2/Iso_rectangle_2_Point_2.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_2/Iso_rectangle_2_Point_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_2/Iso_rectangle_2_Ray_2.h b/thirdparty/CGAL/include/CGAL/Intersections_2/Iso_rectangle_2_Ray_2.h index 2588f4b9..50997fa5 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_2/Iso_rectangle_2_Ray_2.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_2/Iso_rectangle_2_Ray_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_2/Iso_rectangle_2_Segment_2.h b/thirdparty/CGAL/include/CGAL/Intersections_2/Iso_rectangle_2_Segment_2.h index 63d5570d..7706337c 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_2/Iso_rectangle_2_Segment_2.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_2/Iso_rectangle_2_Segment_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_2/Iso_rectangle_2_Triangle_2.h b/thirdparty/CGAL/include/CGAL/Intersections_2/Iso_rectangle_2_Triangle_2.h index b621bd38..3641a041 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_2/Iso_rectangle_2_Triangle_2.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_2/Iso_rectangle_2_Triangle_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_2/Line_2_Line_2.h b/thirdparty/CGAL/include/CGAL/Intersections_2/Line_2_Line_2.h index 1493d5d0..2e52889c 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_2/Line_2_Line_2.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_2/Line_2_Line_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_2/Line_2_Point_2.h b/thirdparty/CGAL/include/CGAL/Intersections_2/Line_2_Point_2.h index a11667f5..2ea46360 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_2/Line_2_Point_2.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_2/Line_2_Point_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_2/Line_2_Ray_2.h b/thirdparty/CGAL/include/CGAL/Intersections_2/Line_2_Ray_2.h index 9dcbd256..f6cd2a85 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_2/Line_2_Ray_2.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_2/Line_2_Ray_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_2/Line_2_Segment_2.h b/thirdparty/CGAL/include/CGAL/Intersections_2/Line_2_Segment_2.h index 692b2515..a7427048 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_2/Line_2_Segment_2.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_2/Line_2_Segment_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_2/Line_2_Triangle_2.h b/thirdparty/CGAL/include/CGAL/Intersections_2/Line_2_Triangle_2.h index 1ba01534..488b0c5a 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_2/Line_2_Triangle_2.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_2/Line_2_Triangle_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_2/Point_2_Point_2.h b/thirdparty/CGAL/include/CGAL/Intersections_2/Point_2_Point_2.h index 23640fe9..0b330887 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_2/Point_2_Point_2.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_2/Point_2_Point_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_2/Point_2_Ray_2.h b/thirdparty/CGAL/include/CGAL/Intersections_2/Point_2_Ray_2.h index 76b97eaf..e5571884 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_2/Point_2_Ray_2.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_2/Point_2_Ray_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_2/Point_2_Segment_2.h b/thirdparty/CGAL/include/CGAL/Intersections_2/Point_2_Segment_2.h index 7652f198..14799a2e 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_2/Point_2_Segment_2.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_2/Point_2_Segment_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_2/Point_2_Triangle_2.h b/thirdparty/CGAL/include/CGAL/Intersections_2/Point_2_Triangle_2.h index d6924d59..95252640 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_2/Point_2_Triangle_2.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_2/Point_2_Triangle_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_2/Ray_2_Ray_2.h b/thirdparty/CGAL/include/CGAL/Intersections_2/Ray_2_Ray_2.h index b56bd241..5c399158 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_2/Ray_2_Ray_2.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_2/Ray_2_Ray_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_2/Ray_2_Segment_2.h b/thirdparty/CGAL/include/CGAL/Intersections_2/Ray_2_Segment_2.h index 6e08b96a..8389c78d 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_2/Ray_2_Segment_2.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_2/Ray_2_Segment_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_2/Ray_2_Triangle_2.h b/thirdparty/CGAL/include/CGAL/Intersections_2/Ray_2_Triangle_2.h index abcb1916..40f04f0c 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_2/Ray_2_Triangle_2.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_2/Ray_2_Triangle_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_2/Segment_2_Segment_2.h b/thirdparty/CGAL/include/CGAL/Intersections_2/Segment_2_Segment_2.h index 6819d92a..7f0c691e 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_2/Segment_2_Segment_2.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_2/Segment_2_Segment_2.h @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Intersections_2/include/CGAL/Intersections_2/Segment_2_Segment_2.h $ -// $Id: Segment_2_Segment_2.h d370326 2021-10-27T14:45:10+02:00 Sébastien Loriot +// $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 // // @@ -34,6 +34,22 @@ namespace Intersections { namespace internal { +// indices of lexicographically smallest endpoints +// depending on config parameter of S2S2_inter_info. +// {s1_id0,s1_id1,s2_id0,s2_id1} +constexpr int s2s2_id[8][4] = +{ +// seg1 seg2 + { 0,1, 0,1 }, + { 0,1, 1,0 }, + { 1,0, 0,1 }, + { 1,0, 1,0 }, + { 0,1, 0,1 }, + { 1,0, 0,1 }, + { 0,1, 1,0 }, + { 1,0, 1,0 } +}; + // struct used to report the combinaric of the intersection // of 2 2D segments. // More information could be gathered if exposed in do_intersect. @@ -43,9 +59,20 @@ struct S2S2_inter_info bool inter = false; bool dim = 0; std::array pt_ids = {-1,-1}; - - S2S2_inter_info(bool inter) + // integer in [0,7] indicating segment endpoint ordering for determinism + // 0: p0 < p1 - p2 < p3 - p0 < p2 + // 1: p0 < p1 - p3 < p2 - p0 < p3 + // 2: p1 < p0 - p2 < p3 - p1 < p2 + // 3: p1 < p0 - p3 < p2 - p1 < p3 + // 4: p2 < p3 - p0 < p1 - p2 < p0 + // 5: p2 < p3 - p1 < p0 - p2 < p1 + // 6: p3 < p2 - p0 < p1 - p3 < p0 + // 7: p3 < p2 - p1 < p0 - p3 < p1 + int config; + + S2S2_inter_info(bool inter, int c=-1) : inter(inter) + , config(c) {} // intersection is an input endpoint @@ -77,7 +104,7 @@ seg_seg_do_intersect_crossing( const typename K::Point_2& p1, const typename K::Point_2& p2, const typename K::Point_2& p3, const typename K::Point_2& p4, int /* i1 */, int i2, int i3, int /* i4 */, - const K& k, bool extra_test) + const K& k, bool extra_test, int config) { switch (make_certain(k.orientation_2_object()(p1,p2,p3))) { case LEFT_TURN: @@ -89,7 +116,7 @@ seg_seg_do_intersect_crossing( case RIGHT_TURN: return S2S2_inter_info(false); case LEFT_TURN: - return S2S2_inter_info(true); + return S2S2_inter_info(true, config); default: CGAL_unreachable(); } @@ -101,7 +128,7 @@ seg_seg_do_intersect_crossing( case COLLINEAR: return S2S2_inter_info(i2); case RIGHT_TURN: - return S2S2_inter_info(true); + return S2S2_inter_info(true, config); case LEFT_TURN: return S2S2_inter_info(false); default: @@ -127,7 +154,7 @@ seg_seg_do_intersect_crossing( const typename K::Point_2& p3, const typename K::Point_2& p4, const K& k) { - return seg_seg_do_intersect_crossing(p1,p2,p3,p4,0,0,0,0,k,false).inter; + return seg_seg_do_intersect_crossing(p1,p2,p3,p4,0,0,0,0,k,false,-1).inter; } @@ -138,7 +165,7 @@ seg_seg_do_intersect_contained( const typename K::Point_2& p1, const typename K::Point_2& p2, const typename K::Point_2& p3, const typename K::Point_2& p4, int /* i1 */, int /* i2 */, int i3, int i4, - const K& k, bool extra_test) + const K& k, bool extra_test, int config) { switch (make_certain(k.orientation_2_object()(p1,p2,p3))) { case LEFT_TURN: @@ -148,7 +175,7 @@ seg_seg_do_intersect_contained( case COLLINEAR: return S2S2_inter_info(i4); case RIGHT_TURN: - return S2S2_inter_info(true); + return S2S2_inter_info(true, config); case LEFT_TURN: return S2S2_inter_info(false); default: @@ -164,7 +191,7 @@ seg_seg_do_intersect_contained( case RIGHT_TURN: return S2S2_inter_info(false); case LEFT_TURN: - return S2S2_inter_info(true); + return S2S2_inter_info(true, config); default: CGAL_unreachable(); } @@ -188,7 +215,7 @@ seg_seg_do_intersect_contained( const typename K::Point_2& p3, const typename K::Point_2& p4, const K& k) { - return seg_seg_do_intersect_contained(p1,p2,p3,p4,0,0,0,0,k,false).inter; + return seg_seg_do_intersect_contained(p1,p2,p3,p4,0,0,0,0,k,false,-1).inter; } template @@ -229,14 +256,14 @@ do_intersect_with_info(const typename K::Segment_2 &seg1, case LARGER: switch(make_certain(compare_xy(A2,B2))) { case SMALLER: - return seg_seg_do_intersect_crossing(A1,A2,B1,B2, A1_id,A2_id,B1_id+2,B2_id+2, k, extra_test); + return seg_seg_do_intersect_crossing(A1,A2,B1,B2, A1_id,A2_id,B1_id+2,B2_id+2, k, extra_test, (seg1_is_left_to_right ? 0:2) + (seg2_is_left_to_right ? 0:1) ); case EQUAL: // A1 < B1 < B2 = A1 if (extra_test && k.collinear_2_object()(A1, A2, B1)) return S2S2_inter_info(B1_id+2, B2_id+2); // DI_MORE_INFO_TAG: A2==B2 but only B2 is reported return S2S2_inter_info(A2_id); // DI_MORE_INFO_TAG: A2==B2 but only A2 is reported case LARGER: - return seg_seg_do_intersect_contained(A1,A2,B1,B2, A1_id,A2_id,B1_id+2,B2_id+2, k, extra_test); + return seg_seg_do_intersect_contained(A1,A2,B1,B2, A1_id,A2_id,B1_id+2,B2_id+2, k, extra_test, (seg1_is_left_to_right ? 0:2) + (seg2_is_left_to_right ? 0:1)); default: CGAL_unreachable(); } @@ -275,14 +302,14 @@ do_intersect_with_info(const typename K::Segment_2 &seg1, case LARGER: switch(make_certain(compare_xy(B2,A2))) { case SMALLER: - return seg_seg_do_intersect_crossing(B1,B2,A1,A2, B1_id+2,B2_id+2,A1_id,A2_id, k, extra_test); + return seg_seg_do_intersect_crossing(B1,B2,A1,A2, B1_id+2,B2_id+2,A1_id,A2_id, k, extra_test, 4 + (seg1_is_left_to_right ? 0:1) + (seg2_is_left_to_right ? 0:2)); case EQUAL: // B1 < A1 < A2 = B2 if (extra_test && k.collinear_2_object()(B1, A1, B2)) return S2S2_inter_info(A1_id, A2_id); // DI_MORE_INFO_TAG: A2==B2 but only A2 is reported return S2S2_inter_info(A2_id); // DI_MORE_INFO_TAG: A2==B2 but only A2 is reported case LARGER: - return seg_seg_do_intersect_contained(B1,B2,A1,A2, B1_id+2,B2_id+2,A1_id,A2_id, k, extra_test); + return seg_seg_do_intersect_contained(B1,B2,A1,A2, B1_id+2,B2_id+2,A1_id,A2_id, k, extra_test, 4 + (seg1_is_left_to_right ? 0:1) + (seg2_is_left_to_right ? 0:2)); default: CGAL_unreachable(); } @@ -326,6 +353,42 @@ class Segment_2_Segment_2_pair { mutable typename K::Point_2 _intersection_point, _other_point; }; + +inline +double s2s2_alpha(double x0, double y0, + double x1, double y1, + double x2, double y2, + double x3, double y3) +{ + const double s1_dx = x0 - x1, + s1_dy = y0 - y1, + s2_dx = x3 - x2, + s2_dy = y3 - y2, + lx = x3 - x1, + ly = y3 - y1; + double val = std::fma(lx,s2_dy,-ly*s2_dx)/std::fma(s1_dx,s2_dy,-s1_dy*s2_dx); + if (val!=val) return 0.5; + if (val<0) return 0; + if (val>1) return 1; + return val; +} + +template +FT s2s2_alpha(const FT& x0, const FT& y0, + const FT& x1, const FT& y1, + const FT& x2, const FT& y2, + const FT& x3, const FT& y3) +{ + FT s1_dx = x0 - x1, + s1_dy = y0 - y1, + s2_dx = x3 - x2, + s2_dy = y3 - y2, + lx = x3 - x1, + ly = y3 - y1; + return (lx*s2_dy-ly*s2_dx)/(s1_dx*s2_dy-s1_dy*s2_dx); +} + + template typename Segment_2_Segment_2_pair::Intersection_results Segment_2_Segment_2_pair::intersection_type() const @@ -366,15 +429,16 @@ Segment_2_Segment_2_pair::intersection_type() const } // segments intersect in their interiors - typename K::FT s1_dx = _seg1->point(0).x() - _seg1->point(1).x(), - s1_dy = _seg1->point(0).y() - _seg1->point(1).y(), - s2_dx = _seg2->point(1).x() - _seg2->point(0).x(), - s2_dy = _seg2->point(1).y() - _seg2->point(0).y(), - lx = _seg2->point(1).x() - _seg1->point(1).x(), - ly = _seg2->point(1).y() - _seg1->point(1).y(); - - typename K::FT alpha = (lx*s2_dy-ly*s2_dx)/(s1_dx*s2_dy-s1_dy*s2_dx); - _intersection_point = K().construct_barycenter_2_object()(_seg1->point(0), alpha, _seg1->point(1)); + int c = inter_info.config; + std::array pts = c < 4 + ? CGAL::make_array( _seg1->point(s2s2_id[c][0]), _seg1->point(s2s2_id[c][1]), + _seg2->point(s2s2_id[c][2]), _seg2->point(s2s2_id[c][3]) ) + : CGAL::make_array( _seg2->point(s2s2_id[c][2]), _seg2->point(s2s2_id[c][3]), + _seg1->point(s2s2_id[c][0]), _seg1->point(s2s2_id[c][1]) ); + + typename K::FT alpha = s2s2_alpha(pts[0].x(), pts[0].y(), pts[1].x(), pts[1].y(), pts[2].x(), pts[2].y(), pts[3].x(), pts[3].y()); + + _intersection_point = K().construct_barycenter_2_object()(pts[0], alpha, pts[1]); return _result; } diff --git a/thirdparty/CGAL/include/CGAL/Intersections_2/Segment_2_Triangle_2.h b/thirdparty/CGAL/include/CGAL/Intersections_2/Segment_2_Triangle_2.h index 799adb7a..e45651d0 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_2/Segment_2_Triangle_2.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_2/Segment_2_Triangle_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_2/Triangle_2_Triangle_2.h b/thirdparty/CGAL/include/CGAL/Intersections_2/Triangle_2_Triangle_2.h index a4a9a4d5..92e4c9e1 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_2/Triangle_2_Triangle_2.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_2/Triangle_2_Triangle_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_2/internal/Straight_2.h b/thirdparty/CGAL/include/CGAL/Intersections_2/internal/Straight_2.h index c45d5379..68cc3bb7 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_2/internal/Straight_2.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_2/internal/Straight_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_2/internal/Triangle_2_Triangle_2_do_intersect_impl.h b/thirdparty/CGAL/include/CGAL/Intersections_2/internal/Triangle_2_Triangle_2_do_intersect_impl.h index 980887ce..fe0cdbd8 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_2/internal/Triangle_2_Triangle_2_do_intersect_impl.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_2/internal/Triangle_2_Triangle_2_do_intersect_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_2/internal/Triangle_2_Triangle_2_intersection_impl.h b/thirdparty/CGAL/include/CGAL/Intersections_2/internal/Triangle_2_Triangle_2_intersection_impl.h index d895ef28..ca946706 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_2/internal/Triangle_2_Triangle_2_intersection_impl.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_2/internal/Triangle_2_Triangle_2_intersection_impl.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/Bbox_3_Bbox_3.h b/thirdparty/CGAL/include/CGAL/Intersections_3/Bbox_3_Bbox_3.h index 9814154b..c5efcd0b 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/Bbox_3_Bbox_3.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/Bbox_3_Bbox_3.h @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/Bbox_3_Iso_cuboid_3.h b/thirdparty/CGAL/include/CGAL/Intersections_3/Bbox_3_Iso_cuboid_3.h index 84e652e1..0dc362df 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/Bbox_3_Iso_cuboid_3.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/Bbox_3_Iso_cuboid_3.h @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/Bbox_3_Line_3.h b/thirdparty/CGAL/include/CGAL/Intersections_3/Bbox_3_Line_3.h index 8a0db6f9..67c19029 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/Bbox_3_Line_3.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/Bbox_3_Line_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/Bbox_3_Plane_3.h b/thirdparty/CGAL/include/CGAL/Intersections_3/Bbox_3_Plane_3.h index a8af1c42..c84c6c38 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/Bbox_3_Plane_3.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/Bbox_3_Plane_3.h @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/Bbox_3_Point_3.h b/thirdparty/CGAL/include/CGAL/Intersections_3/Bbox_3_Point_3.h index 9c8081f3..3749041e 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/Bbox_3_Point_3.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/Bbox_3_Point_3.h @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/Bbox_3_Ray_3.h b/thirdparty/CGAL/include/CGAL/Intersections_3/Bbox_3_Ray_3.h index c98f87be..0674e5c9 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/Bbox_3_Ray_3.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/Bbox_3_Ray_3.h @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/Bbox_3_Segment_3.h b/thirdparty/CGAL/include/CGAL/Intersections_3/Bbox_3_Segment_3.h index 0462703f..0ee1d75b 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/Bbox_3_Segment_3.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/Bbox_3_Segment_3.h @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/Bbox_3_Sphere_3.h b/thirdparty/CGAL/include/CGAL/Intersections_3/Bbox_3_Sphere_3.h index 10f628d0..26ae44e4 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/Bbox_3_Sphere_3.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/Bbox_3_Sphere_3.h @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/Bbox_3_Tetrahedron_3.h b/thirdparty/CGAL/include/CGAL/Intersections_3/Bbox_3_Tetrahedron_3.h index a5af12d6..9f867a88 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/Bbox_3_Tetrahedron_3.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/Bbox_3_Tetrahedron_3.h @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/Bbox_3_Triangle_3.h b/thirdparty/CGAL/include/CGAL/Intersections_3/Bbox_3_Triangle_3.h index 7669f4ba..429d55f0 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/Bbox_3_Triangle_3.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/Bbox_3_Triangle_3.h @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/Iso_cuboid_3_Iso_cuboid_3.h b/thirdparty/CGAL/include/CGAL/Intersections_3/Iso_cuboid_3_Iso_cuboid_3.h index 83802f80..324bdf42 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/Iso_cuboid_3_Iso_cuboid_3.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/Iso_cuboid_3_Iso_cuboid_3.h @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/Iso_cuboid_3_Line_3.h b/thirdparty/CGAL/include/CGAL/Intersections_3/Iso_cuboid_3_Line_3.h index 8e00ffde..4efce651 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/Iso_cuboid_3_Line_3.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/Iso_cuboid_3_Line_3.h @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/Iso_cuboid_3_Plane_3.h b/thirdparty/CGAL/include/CGAL/Intersections_3/Iso_cuboid_3_Plane_3.h index a2798822..9e9e49ad 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/Iso_cuboid_3_Plane_3.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/Iso_cuboid_3_Plane_3.h @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/Iso_cuboid_3_Point_3.h b/thirdparty/CGAL/include/CGAL/Intersections_3/Iso_cuboid_3_Point_3.h index f56f7bb2..0ed37188 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/Iso_cuboid_3_Point_3.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/Iso_cuboid_3_Point_3.h @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/Iso_cuboid_3_Ray_3.h b/thirdparty/CGAL/include/CGAL/Intersections_3/Iso_cuboid_3_Ray_3.h index 1dc1b1e8..a0b92906 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/Iso_cuboid_3_Ray_3.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/Iso_cuboid_3_Ray_3.h @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/Iso_cuboid_3_Segment_3.h b/thirdparty/CGAL/include/CGAL/Intersections_3/Iso_cuboid_3_Segment_3.h index 5452fe8d..eb113bb0 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/Iso_cuboid_3_Segment_3.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/Iso_cuboid_3_Segment_3.h @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/Iso_cuboid_3_Sphere_3.h b/thirdparty/CGAL/include/CGAL/Intersections_3/Iso_cuboid_3_Sphere_3.h index f1fac4b4..ee6160b3 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/Iso_cuboid_3_Sphere_3.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/Iso_cuboid_3_Sphere_3.h @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/Iso_cuboid_3_Tetrahedron_3.h b/thirdparty/CGAL/include/CGAL/Intersections_3/Iso_cuboid_3_Tetrahedron_3.h index 59b17f55..4fb3d28b 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/Iso_cuboid_3_Tetrahedron_3.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/Iso_cuboid_3_Tetrahedron_3.h @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/Iso_cuboid_3_Triangle_3.h b/thirdparty/CGAL/include/CGAL/Intersections_3/Iso_cuboid_3_Triangle_3.h index 3a74d481..85ec83a8 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/Iso_cuboid_3_Triangle_3.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/Iso_cuboid_3_Triangle_3.h @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/Line_3_Line_3.h b/thirdparty/CGAL/include/CGAL/Intersections_3/Line_3_Line_3.h index e3736d00..be163709 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/Line_3_Line_3.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/Line_3_Line_3.h @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/Line_3_Plane_3.h b/thirdparty/CGAL/include/CGAL/Intersections_3/Line_3_Plane_3.h index e1973798..6077fb7b 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/Line_3_Plane_3.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/Line_3_Plane_3.h @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/Line_3_Point_3.h b/thirdparty/CGAL/include/CGAL/Intersections_3/Line_3_Point_3.h index 251f152a..d3a25352 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/Line_3_Point_3.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/Line_3_Point_3.h @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/Line_3_Ray_3.h b/thirdparty/CGAL/include/CGAL/Intersections_3/Line_3_Ray_3.h index 7e6b836e..d7b56177 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/Line_3_Ray_3.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/Line_3_Ray_3.h @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/Line_3_Segment_3.h b/thirdparty/CGAL/include/CGAL/Intersections_3/Line_3_Segment_3.h index a70b4c75..71012453 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/Line_3_Segment_3.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/Line_3_Segment_3.h @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/Line_3_Sphere_3.h b/thirdparty/CGAL/include/CGAL/Intersections_3/Line_3_Sphere_3.h index 7fe646ef..06e9956c 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/Line_3_Sphere_3.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/Line_3_Sphere_3.h @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/Line_3_Tetrahedron_3.h b/thirdparty/CGAL/include/CGAL/Intersections_3/Line_3_Tetrahedron_3.h index 8f6b8772..d9da05b0 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/Line_3_Tetrahedron_3.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/Line_3_Tetrahedron_3.h @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/Line_3_Triangle_3.h b/thirdparty/CGAL/include/CGAL/Intersections_3/Line_3_Triangle_3.h index 3c329204..4a6cd17e 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/Line_3_Triangle_3.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/Line_3_Triangle_3.h @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/Plane_3_Plane_3.h b/thirdparty/CGAL/include/CGAL/Intersections_3/Plane_3_Plane_3.h index 7e68aa81..ba2630c1 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/Plane_3_Plane_3.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/Plane_3_Plane_3.h @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/Plane_3_Plane_3_Plane_3.h b/thirdparty/CGAL/include/CGAL/Intersections_3/Plane_3_Plane_3_Plane_3.h index f1bf239d..5369d6ba 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/Plane_3_Plane_3_Plane_3.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/Plane_3_Plane_3_Plane_3.h @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/Plane_3_Point_3.h b/thirdparty/CGAL/include/CGAL/Intersections_3/Plane_3_Point_3.h index 57ae6f88..159687c1 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/Plane_3_Point_3.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/Plane_3_Point_3.h @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/Plane_3_Ray_3.h b/thirdparty/CGAL/include/CGAL/Intersections_3/Plane_3_Ray_3.h index a2cb79fa..a602f13e 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/Plane_3_Ray_3.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/Plane_3_Ray_3.h @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/Plane_3_Segment_3.h b/thirdparty/CGAL/include/CGAL/Intersections_3/Plane_3_Segment_3.h index 4178b4df..6a335618 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/Plane_3_Segment_3.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/Plane_3_Segment_3.h @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/Plane_3_Sphere_3.h b/thirdparty/CGAL/include/CGAL/Intersections_3/Plane_3_Sphere_3.h index b0a8f2df..ca87ce64 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/Plane_3_Sphere_3.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/Plane_3_Sphere_3.h @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/Plane_3_Tetrahedron_3.h b/thirdparty/CGAL/include/CGAL/Intersections_3/Plane_3_Tetrahedron_3.h index 9c1c2a53..ae7ac188 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/Plane_3_Tetrahedron_3.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/Plane_3_Tetrahedron_3.h @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/Plane_3_Triangle_3.h b/thirdparty/CGAL/include/CGAL/Intersections_3/Plane_3_Triangle_3.h index f2ae73b3..ee5406aa 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/Plane_3_Triangle_3.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/Plane_3_Triangle_3.h @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/Point_3_Point_3.h b/thirdparty/CGAL/include/CGAL/Intersections_3/Point_3_Point_3.h index 49bbfe3b..008cf742 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/Point_3_Point_3.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/Point_3_Point_3.h @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/Point_3_Ray_3.h b/thirdparty/CGAL/include/CGAL/Intersections_3/Point_3_Ray_3.h index 0de8943b..c87dd032 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/Point_3_Ray_3.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/Point_3_Ray_3.h @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/Point_3_Segment_3.h b/thirdparty/CGAL/include/CGAL/Intersections_3/Point_3_Segment_3.h index 10d51053..3201346b 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/Point_3_Segment_3.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/Point_3_Segment_3.h @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/Point_3_Sphere_3.h b/thirdparty/CGAL/include/CGAL/Intersections_3/Point_3_Sphere_3.h index 65c6a2cc..42830be5 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/Point_3_Sphere_3.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/Point_3_Sphere_3.h @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/Point_3_Tetrahedron_3.h b/thirdparty/CGAL/include/CGAL/Intersections_3/Point_3_Tetrahedron_3.h index 047eafa3..db801255 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/Point_3_Tetrahedron_3.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/Point_3_Tetrahedron_3.h @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/Point_3_Triangle_3.h b/thirdparty/CGAL/include/CGAL/Intersections_3/Point_3_Triangle_3.h index fde6f238..bea5027b 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/Point_3_Triangle_3.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/Point_3_Triangle_3.h @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/Ray_3_Ray_3.h b/thirdparty/CGAL/include/CGAL/Intersections_3/Ray_3_Ray_3.h index 2b5e0a55..e09c771c 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/Ray_3_Ray_3.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/Ray_3_Ray_3.h @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/Ray_3_Segment_3.h b/thirdparty/CGAL/include/CGAL/Intersections_3/Ray_3_Segment_3.h index 71cab6f7..0866d019 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/Ray_3_Segment_3.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/Ray_3_Segment_3.h @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/Ray_3_Sphere_3.h b/thirdparty/CGAL/include/CGAL/Intersections_3/Ray_3_Sphere_3.h index 3099ef7a..0ac93a8a 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/Ray_3_Sphere_3.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/Ray_3_Sphere_3.h @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/Ray_3_Tetrahedron_3.h b/thirdparty/CGAL/include/CGAL/Intersections_3/Ray_3_Tetrahedron_3.h index 90d7ea27..ecbb94a0 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/Ray_3_Tetrahedron_3.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/Ray_3_Tetrahedron_3.h @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/Ray_3_Triangle_3.h b/thirdparty/CGAL/include/CGAL/Intersections_3/Ray_3_Triangle_3.h index ea5138d5..8de20369 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/Ray_3_Triangle_3.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/Ray_3_Triangle_3.h @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/Segment_3_Segment_3.h b/thirdparty/CGAL/include/CGAL/Intersections_3/Segment_3_Segment_3.h index 8f8d5ee9..37822dbc 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/Segment_3_Segment_3.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/Segment_3_Segment_3.h @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/Segment_3_Sphere_3.h b/thirdparty/CGAL/include/CGAL/Intersections_3/Segment_3_Sphere_3.h index 9cb11b41..1f029a23 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/Segment_3_Sphere_3.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/Segment_3_Sphere_3.h @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/Segment_3_Tetrahedron_3.h b/thirdparty/CGAL/include/CGAL/Intersections_3/Segment_3_Tetrahedron_3.h index 8fad3f90..dc5c83b4 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/Segment_3_Tetrahedron_3.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/Segment_3_Tetrahedron_3.h @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/Segment_3_Triangle_3.h b/thirdparty/CGAL/include/CGAL/Intersections_3/Segment_3_Triangle_3.h index 9d3cdc63..5f8792a1 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/Segment_3_Triangle_3.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/Segment_3_Triangle_3.h @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/Sphere_3_Sphere_3.h b/thirdparty/CGAL/include/CGAL/Intersections_3/Sphere_3_Sphere_3.h index b485c919..7bb40d68 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/Sphere_3_Sphere_3.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/Sphere_3_Sphere_3.h @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/Sphere_3_Tetrahedron_3.h b/thirdparty/CGAL/include/CGAL/Intersections_3/Sphere_3_Tetrahedron_3.h index 53ad71b8..4c802c52 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/Sphere_3_Tetrahedron_3.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/Sphere_3_Tetrahedron_3.h @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/Sphere_3_Triangle_3.h b/thirdparty/CGAL/include/CGAL/Intersections_3/Sphere_3_Triangle_3.h index 76b889ba..d20395c7 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/Sphere_3_Triangle_3.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/Sphere_3_Triangle_3.h @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/Tetrahedron_3_Tetrahedron_3.h b/thirdparty/CGAL/include/CGAL/Intersections_3/Tetrahedron_3_Tetrahedron_3.h index 2b025ae7..6cf25b21 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/Tetrahedron_3_Tetrahedron_3.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/Tetrahedron_3_Tetrahedron_3.h @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/Tetrahedron_3_Triangle_3.h b/thirdparty/CGAL/include/CGAL/Intersections_3/Tetrahedron_3_Triangle_3.h index 9f17421c..175bd3b4 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/Tetrahedron_3_Triangle_3.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/Tetrahedron_3_Triangle_3.h @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/Triangle_3_Triangle_3.h b/thirdparty/CGAL/include/CGAL/Intersections_3/Triangle_3_Triangle_3.h index 0be363ae..8248890d 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/Triangle_3_Triangle_3.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/Triangle_3_Triangle_3.h @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Bbox_3_Iso_cuboid_3_do_intersect.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Bbox_3_Iso_cuboid_3_do_intersect.h index b51fefb8..785cebaa 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Bbox_3_Iso_cuboid_3_do_intersect.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Bbox_3_Iso_cuboid_3_do_intersect.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Bbox_3_Iso_cuboid_3_intersection.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Bbox_3_Iso_cuboid_3_intersection.h index 3d6ecc2c..4d266ba8 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Bbox_3_Iso_cuboid_3_intersection.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Bbox_3_Iso_cuboid_3_intersection.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Bbox_3_Line_3_do_intersect.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Bbox_3_Line_3_do_intersect.h index 777a4ffa..0f5e7b0d 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Bbox_3_Line_3_do_intersect.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Bbox_3_Line_3_do_intersect.h @@ -4,8 +4,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ bbox_line_do_intersect_aux(const LFT px, const LFT py, const LFT pz, } //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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Bbox_3_Line_3_intersection.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Bbox_3_Line_3_intersection.h index eae62b05..08f88b34 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Bbox_3_Line_3_intersection.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Bbox_3_Line_3_intersection.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Bbox_3_Plane_3_do_intersect.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Bbox_3_Plane_3_do_intersect.h index 83441699..908fb9ba 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Bbox_3_Plane_3_do_intersect.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Bbox_3_Plane_3_do_intersect.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Bbox_3_Ray_3_do_intersect.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Bbox_3_Ray_3_do_intersect.h index f06c926b..df71ec37 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Bbox_3_Ray_3_do_intersect.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Bbox_3_Ray_3_do_intersect.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Bbox_3_Ray_3_intersection.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Bbox_3_Ray_3_intersection.h index 38137df2..58137b8a 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Bbox_3_Ray_3_intersection.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Bbox_3_Ray_3_intersection.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Bbox_3_Segment_3_do_intersect.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Bbox_3_Segment_3_do_intersect.h index 939d21e9..3badb0a4 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Bbox_3_Segment_3_do_intersect.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Bbox_3_Segment_3_do_intersect.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ do_intersect_bbox_segment_aux(const FT& px, const FT& py, const FT& pz, // ----------------------------------- // 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 @@ do_intersect_bbox_segment_aux(const FT& px, const FT& py, const FT& pz, } 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 @@ do_intersect_bbox_segment_aux(const FT& px, const FT& py, const FT& pz, 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 @@ do_intersect_bbox_segment_aux(const FT& px, const FT& py, const FT& pz, // 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 @@ do_intersect_bbox_segment_aux(const FT& px, const FT& py, const FT& pz, 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 @@ do_intersect_bbox_segment_aux(const FT& px, const FT& py, const FT& pz, 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 @@ do_intersect_bbox_segment_aux(const FT& px, const FT& py, const FT& pz, // 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 @@ do_intersect_bbox_segment_aux(const FT& px, const FT& py, const FT& pz, 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 @@ do_intersect_bbox_segment_aux(const FT& px, const FT& py, const FT& pz, 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 @@ do_intersect_bbox_segment_aux(const FT& px, const FT& py, const FT& pz, // 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 @@ do_intersect_bbox_segment_aux(const FT& px, const FT& py, const FT& pz, 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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Bbox_3_Segment_3_intersection.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Bbox_3_Segment_3_intersection.h index d9a866c2..cafac8d8 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Bbox_3_Segment_3_intersection.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Bbox_3_Segment_3_intersection.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Bbox_3_Sphere_3_do_intersect.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Bbox_3_Sphere_3_do_intersect.h index a1305a01..90c45a42 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Bbox_3_Sphere_3_do_intersect.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Bbox_3_Sphere_3_do_intersect.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Bbox_3_Tetrahedron_3_do_intersect.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Bbox_3_Tetrahedron_3_do_intersect.h index 86dbf636..fc66f43b 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Bbox_3_Tetrahedron_3_do_intersect.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Bbox_3_Tetrahedron_3_do_intersect.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Bbox_3_Triangle_3_do_intersect.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Bbox_3_Triangle_3_do_intersect.h index 3cf9ca29..cad9b81c 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Bbox_3_Triangle_3_do_intersect.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Bbox_3_Triangle_3_do_intersect.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Iso_cuboid_3_do_intersect.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Iso_cuboid_3_do_intersect.h index 9e68c810..18ba1164 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Iso_cuboid_3_do_intersect.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Iso_cuboid_3_do_intersect.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Iso_cuboid_3_intersection.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Iso_cuboid_3_intersection.h index b54598ec..cf46664f 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Iso_cuboid_3_intersection.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Iso_cuboid_3_intersection.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Line_3_do_intersect.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Line_3_do_intersect.h index b9f90dcc..a7193c62 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Line_3_do_intersect.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Line_3_do_intersect.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Line_3_intersection.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Line_3_intersection.h index 99cf8f07..ccbbd543 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Line_3_intersection.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Line_3_intersection.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Plane_3_do_intersect.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Plane_3_do_intersect.h index c1151faa..b08ff940 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Plane_3_do_intersect.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Plane_3_do_intersect.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Plane_3_intersection.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Plane_3_intersection.h index db126666..8d06fc5a 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Plane_3_intersection.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Plane_3_intersection.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Intersections_3/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Plane_3_intersection.h $ -// $Id: Iso_cuboid_3_Plane_3_intersection.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/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 // // @@ -62,7 +62,7 @@ intersection(const typename K::Iso_cuboid_3& cub, } }; // description of faces of the bbox - constexpr std::array face_indices + static constexpr std::array face_indices { { 0, 1, 2, 3, 2, 1, 5, 6, 3, 2, 6, 7, @@ -70,7 +70,7 @@ intersection(const typename K::Iso_cuboid_3& cub, 4, 0, 3, 7, 6, 5, 4, 7 } }; - constexpr std::array edge_indices + static constexpr std::array edge_indices { { 0, 1, 2, 3, 1, 4, 5, 6, 2, 6, 7, 8, diff --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Point_3_do_intersect.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Point_3_do_intersect.h index f9586664..73500545 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Point_3_do_intersect.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Point_3_do_intersect.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Point_3_intersection.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Point_3_intersection.h index c601c6ae..754f5c16 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Point_3_intersection.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Point_3_intersection.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Ray_3_do_intersect.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Ray_3_do_intersect.h index c69cd086..b3769bca 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Ray_3_do_intersect.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Ray_3_do_intersect.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Ray_3_intersection.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Ray_3_intersection.h index bc0d61b2..81b7e408 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Ray_3_intersection.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Ray_3_intersection.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Segment_3_do_intersect.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Segment_3_do_intersect.h index 18afb182..a49f1408 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Segment_3_do_intersect.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Segment_3_do_intersect.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Segment_3_intersection.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Segment_3_intersection.h index 99ae5966..4a311065 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Segment_3_intersection.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Segment_3_intersection.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Sphere_3_do_intersect.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Sphere_3_do_intersect.h index aa1df1b1..dfc30578 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Sphere_3_do_intersect.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Sphere_3_do_intersect.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ bool do_intersect_sphere_box_3(const typename K::Sphere_3& sphere, 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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Tetrahedron_3_do_intersect.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Tetrahedron_3_do_intersect.h index 63394c20..e8a15a26 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Tetrahedron_3_do_intersect.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Tetrahedron_3_do_intersect.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Triangle_3_do_intersect.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Triangle_3_do_intersect.h index e960089c..493da4eb 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Triangle_3_do_intersect.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Triangle_3_do_intersect.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Triangle_3_intersection.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Triangle_3_intersection.h index 7c8ae723..28c9de82 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Triangle_3_intersection.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Triangle_3_intersection.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Line_3_Line_3_do_intersect.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Line_3_Line_3_do_intersect.h index 90291c9c..82267ee4 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Line_3_Line_3_do_intersect.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Line_3_Line_3_do_intersect.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Line_3_Line_3_intersection.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Line_3_Line_3_intersection.h index afc08a1c..7e6461a3 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Line_3_Line_3_intersection.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Line_3_Line_3_intersection.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Line_3_Plane_3_do_intersect.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Line_3_Plane_3_do_intersect.h index 1284d421..6f05ad5a 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Line_3_Plane_3_do_intersect.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Line_3_Plane_3_do_intersect.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Line_3_Plane_3_intersection.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Line_3_Plane_3_intersection.h index ca523c3a..0a3e7c62 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Line_3_Plane_3_intersection.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Line_3_Plane_3_intersection.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Line_3_Point_3_do_intersect.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Line_3_Point_3_do_intersect.h index bff0be1d..e54088dc 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Line_3_Point_3_do_intersect.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Line_3_Point_3_do_intersect.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Line_3_Point_3_intersection.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Line_3_Point_3_intersection.h index 8aa44af7..5b392ca9 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Line_3_Point_3_intersection.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Line_3_Point_3_intersection.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Line_3_Ray_3_do_intersect.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Line_3_Ray_3_do_intersect.h index 848704a3..15d36e28 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Line_3_Ray_3_do_intersect.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Line_3_Ray_3_do_intersect.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Line_3_Ray_3_intersection.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Line_3_Ray_3_intersection.h index f06622da..4aa7abd6 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Line_3_Ray_3_intersection.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Line_3_Ray_3_intersection.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Line_3_Segment_3_do_intersect.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Line_3_Segment_3_do_intersect.h index 7bad6bec..90b7c85b 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Line_3_Segment_3_do_intersect.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Line_3_Segment_3_do_intersect.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Line_3_Segment_3_intersection.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Line_3_Segment_3_intersection.h index 53099847..30b2b0a0 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Line_3_Segment_3_intersection.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Line_3_Segment_3_intersection.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Line_3_Sphere_3_do_intersect.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Line_3_Sphere_3_do_intersect.h index f5a48367..3b256c9e 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Line_3_Sphere_3_do_intersect.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Line_3_Sphere_3_do_intersect.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Line_3_Tetrahedron_3_do_intersect.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Line_3_Tetrahedron_3_do_intersect.h index b2a1bcff..1ce96acc 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Line_3_Tetrahedron_3_do_intersect.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Line_3_Tetrahedron_3_do_intersect.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Line_3_Tetrahedron_3_intersection.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Line_3_Tetrahedron_3_intersection.h index ead5c73e..0baff6e4 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Line_3_Tetrahedron_3_intersection.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Line_3_Tetrahedron_3_intersection.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Line_3_Triangle_3_do_intersect.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Line_3_Triangle_3_do_intersect.h index 100ae5a5..8d9ef6c1 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Line_3_Triangle_3_do_intersect.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Line_3_Triangle_3_do_intersect.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Line_3_Triangle_3_intersection.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Line_3_Triangle_3_intersection.h index c894b31b..62e5da3d 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Line_3_Triangle_3_intersection.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Line_3_Triangle_3_intersection.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Plane_3_Plane_3_do_intersect.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Plane_3_Plane_3_do_intersect.h index 412e6be6..e5646ac5 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Plane_3_Plane_3_do_intersect.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Plane_3_Plane_3_do_intersect.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Plane_3_Plane_3_intersection.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Plane_3_Plane_3_intersection.h index a8806506..5f2eed06 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Plane_3_Plane_3_intersection.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Plane_3_Plane_3_intersection.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Plane_3_do_intersect.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Plane_3_do_intersect.h index 9b80b927..3b0b14a3 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Plane_3_do_intersect.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Plane_3_do_intersect.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Plane_3_intersection.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Plane_3_intersection.h index 597ff88d..c8634579 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Plane_3_intersection.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Plane_3_intersection.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Point_3_do_intersect.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Point_3_do_intersect.h index fa9766b0..12ba4107 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Point_3_do_intersect.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Point_3_do_intersect.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Point_3_intersection.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Point_3_intersection.h index b20c93ab..adb35ee6 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Point_3_intersection.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Point_3_intersection.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Ray_3_do_intersect.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Ray_3_do_intersect.h index 283eeb0e..1c3ecf34 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Ray_3_do_intersect.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Ray_3_do_intersect.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Ray_3_intersection.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Ray_3_intersection.h index a72a7e71..b1815ae2 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Ray_3_intersection.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Ray_3_intersection.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Segment_3_do_intersect.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Segment_3_do_intersect.h index 0fdca3a7..36544e1d 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Segment_3_do_intersect.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Segment_3_do_intersect.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Segment_3_intersection.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Segment_3_intersection.h index 30050f44..45060cc2 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Segment_3_intersection.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Segment_3_intersection.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Sphere_3_do_intersect.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Sphere_3_do_intersect.h index dd892768..28fcf8f4 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Sphere_3_do_intersect.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Sphere_3_do_intersect.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Sphere_3_intersection.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Sphere_3_intersection.h index 10edf217..6a241cdf 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Sphere_3_intersection.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Sphere_3_intersection.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Tetrahedron_3_do_intersect.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Tetrahedron_3_do_intersect.h index 7106ffe0..7c554c9e 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Tetrahedron_3_do_intersect.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Tetrahedron_3_do_intersect.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Tetrahedron_3_intersection.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Tetrahedron_3_intersection.h index e134aa18..a2f45e5f 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Tetrahedron_3_intersection.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Tetrahedron_3_intersection.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Intersections_3/include/CGAL/Intersections_3/internal/Plane_3_Tetrahedron_3_intersection.h $ -// $Id: Plane_3_Tetrahedron_3_intersection.h e118e28 2021-07-05T22:02:11+02:00 Mael Rouxel-Labbé +// $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 // // @@ -52,13 +52,13 @@ intersection(const typename K::Tetrahedron_3& tet, } }; // description of faces of the bbox - constexpr std::array face_indices + static constexpr std::array face_indices { { 0, 1, 2, 0, 1, 3, 1, 2, 3, 2, 0, 3 } }; - constexpr std::array edge_indices + static constexpr std::array edge_indices { { 0, 1, 2, 0, 3, 5, 1, 4, 3, diff --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Triangle_3_do_intersect.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Triangle_3_do_intersect.h index 41f7a7cc..da8037a0 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Triangle_3_do_intersect.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Triangle_3_do_intersect.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Triangle_3_intersection.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Triangle_3_intersection.h index 4fb1adc6..fae5317c 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Triangle_3_intersection.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Plane_3_Triangle_3_intersection.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Point_3_Point_3_do_intersect.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Point_3_Point_3_do_intersect.h index f1e5fabb..9588492a 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Point_3_Point_3_do_intersect.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Point_3_Point_3_do_intersect.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Point_3_Point_3_intersection.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Point_3_Point_3_intersection.h index c743039e..ddde9e72 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Point_3_Point_3_intersection.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Point_3_Point_3_intersection.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Point_3_Ray_3_do_intersect.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Point_3_Ray_3_do_intersect.h index 2ca56439..5ec89d65 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Point_3_Ray_3_do_intersect.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Point_3_Ray_3_do_intersect.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Point_3_Ray_3_intersection.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Point_3_Ray_3_intersection.h index 2776947f..4b270432 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Point_3_Ray_3_intersection.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Point_3_Ray_3_intersection.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Point_3_Segment_3_do_intersect.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Point_3_Segment_3_do_intersect.h index d217c359..4651495e 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Point_3_Segment_3_do_intersect.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Point_3_Segment_3_do_intersect.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Point_3_Segment_3_intersection.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Point_3_Segment_3_intersection.h index 006dcd6e..b92970fb 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Point_3_Segment_3_intersection.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Point_3_Segment_3_intersection.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Point_3_Sphere_3_do_intersect.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Point_3_Sphere_3_do_intersect.h index 45f562ac..8de66900 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Point_3_Sphere_3_do_intersect.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Point_3_Sphere_3_do_intersect.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Point_3_Sphere_3_intersection.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Point_3_Sphere_3_intersection.h index b08322bf..01fcda69 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Point_3_Sphere_3_intersection.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Point_3_Sphere_3_intersection.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Point_3_Tetrahedron_3_do_intersect.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Point_3_Tetrahedron_3_do_intersect.h index ff95ebde..ede240af 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Point_3_Tetrahedron_3_do_intersect.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Point_3_Tetrahedron_3_do_intersect.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Point_3_Tetrahedron_3_intersection.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Point_3_Tetrahedron_3_intersection.h index 2322b98b..94273246 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Point_3_Tetrahedron_3_intersection.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Point_3_Tetrahedron_3_intersection.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Point_3_Triangle_3_do_intersect.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Point_3_Triangle_3_do_intersect.h index 41eca120..a9452f8e 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Point_3_Triangle_3_do_intersect.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Point_3_Triangle_3_do_intersect.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Point_3_Triangle_3_intersection.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Point_3_Triangle_3_intersection.h index 56f47fa3..c2d72294 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Point_3_Triangle_3_intersection.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Point_3_Triangle_3_intersection.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Ray_3_Ray_3_do_intersect.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Ray_3_Ray_3_do_intersect.h index af91baad..ddd6bc2d 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Ray_3_Ray_3_do_intersect.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Ray_3_Ray_3_do_intersect.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Ray_3_Ray_3_intersection.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Ray_3_Ray_3_intersection.h index 7818f7b9..704a9e47 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Ray_3_Ray_3_intersection.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Ray_3_Ray_3_intersection.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Ray_3_Segment_3_do_intersect.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Ray_3_Segment_3_do_intersect.h index 45415fa9..3b389668 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Ray_3_Segment_3_do_intersect.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Ray_3_Segment_3_do_intersect.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Ray_3_Segment_3_intersection.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Ray_3_Segment_3_intersection.h index 8a9d2b63..73b85e7c 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Ray_3_Segment_3_intersection.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Ray_3_Segment_3_intersection.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Ray_3_Sphere_3_do_intersect.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Ray_3_Sphere_3_do_intersect.h index 69893242..b976bfe1 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Ray_3_Sphere_3_do_intersect.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Ray_3_Sphere_3_do_intersect.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Ray_3_Tetrahedron_3_do_intersect.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Ray_3_Tetrahedron_3_do_intersect.h index 83900ebd..d0eaf230 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Ray_3_Tetrahedron_3_do_intersect.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Ray_3_Tetrahedron_3_do_intersect.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Ray_3_Tetrahedron_3_intersection.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Ray_3_Tetrahedron_3_intersection.h index b64e6ea7..8e0f872d 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Ray_3_Tetrahedron_3_intersection.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Ray_3_Tetrahedron_3_intersection.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Ray_3_Triangle_3_do_intersect.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Ray_3_Triangle_3_do_intersect.h index 63839596..6458460f 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Ray_3_Triangle_3_do_intersect.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Ray_3_Triangle_3_do_intersect.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Ray_3_Triangle_3_intersection.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Ray_3_Triangle_3_intersection.h index c732a668..017a4933 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Ray_3_Triangle_3_intersection.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Ray_3_Triangle_3_intersection.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Segment_3_Segment_3_do_intersect.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Segment_3_Segment_3_do_intersect.h index 9bb98cae..4115c76b 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Segment_3_Segment_3_do_intersect.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Segment_3_Segment_3_do_intersect.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ do_intersect(const typename K::Segment_3& s1, { 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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Segment_3_Segment_3_intersection.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Segment_3_Segment_3_intersection.h index 786cb120..2d5de29a 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Segment_3_Segment_3_intersection.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Segment_3_Segment_3_intersection.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Segment_3_Sphere_3_do_intersect.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Segment_3_Sphere_3_do_intersect.h index e646b39a..fb9d5f95 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Segment_3_Sphere_3_do_intersect.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Segment_3_Sphere_3_do_intersect.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Segment_3_Tetrahedron_3_do_intersect.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Segment_3_Tetrahedron_3_do_intersect.h index 9fb1417b..33ea60ce 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Segment_3_Tetrahedron_3_do_intersect.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Segment_3_Tetrahedron_3_do_intersect.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Segment_3_Tetrahedron_3_intersection.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Segment_3_Tetrahedron_3_intersection.h index 66a9a486..b8c97a3c 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Segment_3_Tetrahedron_3_intersection.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Segment_3_Tetrahedron_3_intersection.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Segment_3_Triangle_3_do_intersect.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Segment_3_Triangle_3_do_intersect.h index 33a617d1..afc9440a 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Segment_3_Triangle_3_do_intersect.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Segment_3_Triangle_3_do_intersect.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Segment_3_Triangle_3_intersection.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Segment_3_Triangle_3_intersection.h index bd4d18c5..b120ddef 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Segment_3_Triangle_3_intersection.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Segment_3_Triangle_3_intersection.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Sphere_3_Sphere_3_do_intersect.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Sphere_3_Sphere_3_do_intersect.h index 860c6d42..716ec68a 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Sphere_3_Sphere_3_do_intersect.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Sphere_3_Sphere_3_do_intersect.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Sphere_3_Sphere_3_intersection.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Sphere_3_Sphere_3_intersection.h index e1e90682..529eb73b 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Sphere_3_Sphere_3_intersection.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Sphere_3_Sphere_3_intersection.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Sphere_3_Tetrahedron_3_do_intersect.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Sphere_3_Tetrahedron_3_do_intersect.h index bf0360a0..26699155 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Sphere_3_Tetrahedron_3_do_intersect.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Sphere_3_Tetrahedron_3_do_intersect.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Sphere_3_Triangle_3_do_intersect.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Sphere_3_Triangle_3_do_intersect.h index 501efce1..ba3aaf84 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Sphere_3_Triangle_3_do_intersect.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Sphere_3_Triangle_3_do_intersect.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Tetrahedron_3_Bounded_3_do_intersect.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Tetrahedron_3_Bounded_3_do_intersect.h index 2b3d2087..a8c91f24 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Tetrahedron_3_Bounded_3_do_intersect.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Tetrahedron_3_Bounded_3_do_intersect.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Tetrahedron_3_Tetrahedron_3_do_intersect.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Tetrahedron_3_Tetrahedron_3_do_intersect.h index 0b27c9db..9f9357c2 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Tetrahedron_3_Tetrahedron_3_do_intersect.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Tetrahedron_3_Tetrahedron_3_do_intersect.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Tetrahedron_3_Triangle_3_do_intersect.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Tetrahedron_3_Triangle_3_do_intersect.h index b333ff62..1ec3302b 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Tetrahedron_3_Triangle_3_do_intersect.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Tetrahedron_3_Triangle_3_do_intersect.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Tetrahedron_3_Triangle_3_intersection.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Tetrahedron_3_Triangle_3_intersection.h index fbdd9346..e0e35b61 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Tetrahedron_3_Triangle_3_intersection.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Tetrahedron_3_Triangle_3_intersection.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Tetrahedron_3_Unbounded_3_do_intersect.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Tetrahedron_3_Unbounded_3_do_intersect.h index 6d3cbfed..26a0702e 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Tetrahedron_3_Unbounded_3_do_intersect.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Tetrahedron_3_Unbounded_3_do_intersect.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Triangle_3_Triangle_3_do_intersect.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Triangle_3_Triangle_3_do_intersect.h index 9db359d4..7e3ef22c 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Triangle_3_Triangle_3_do_intersect.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Triangle_3_Triangle_3_do_intersect.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Triangle_3_Triangle_3_intersection.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Triangle_3_Triangle_3_intersection.h index ba73c06c..70823e29 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Triangle_3_Triangle_3_intersection.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/Triangle_3_Triangle_3_intersection.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/tetrahedron_lines_intersections_3.h b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/tetrahedron_lines_intersections_3.h index dbceabcb..2ff97255 100644 --- a/thirdparty/CGAL/include/CGAL/Intersections_3/internal/tetrahedron_lines_intersections_3.h +++ b/thirdparty/CGAL/include/CGAL/Intersections_3/internal/tetrahedron_lines_intersections_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Interval_arithmetic.h b/thirdparty/CGAL/include/CGAL/Interval_arithmetic.h index d4fdab26..3695c4d9 100644 --- a/thirdparty/CGAL/include/CGAL/Interval_arithmetic.h +++ b/thirdparty/CGAL/include/CGAL/Interval_arithmetic.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Interval_arithmetic_impl.h b/thirdparty/CGAL/include/CGAL/Interval_arithmetic_impl.h index c3bd2ff9..59693643 100644 --- a/thirdparty/CGAL/include/CGAL/Interval_arithmetic_impl.h +++ b/thirdparty/CGAL/include/CGAL/Interval_arithmetic_impl.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Interval_nt.h b/thirdparty/CGAL/include/CGAL/Interval_nt.h index a89e4429..2f7143d6 100644 --- a/thirdparty/CGAL/include/CGAL/Interval_nt.h +++ b/thirdparty/CGAL/include/CGAL/Interval_nt.h @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Interval_nt 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,12 +148,21 @@ class Interval_nt 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); @@ -159,9 +170,6 @@ class Interval_nt // /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 --git a/thirdparty/CGAL/include/CGAL/Interval_skip_list.h b/thirdparty/CGAL/include/CGAL/Interval_skip_list.h index 13b16c64..a398f6b0 100644 --- a/thirdparty/CGAL/include/CGAL/Interval_skip_list.h +++ b/thirdparty/CGAL/include/CGAL/Interval_skip_list.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Interval_skip_list_interval.h b/thirdparty/CGAL/include/CGAL/Interval_skip_list_interval.h index 3597c4b7..1c386e0b 100644 --- a/thirdparty/CGAL/include/CGAL/Interval_skip_list_interval.h +++ b/thirdparty/CGAL/include/CGAL/Interval_skip_list_interval.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Interval_traits.h b/thirdparty/CGAL/include/CGAL/Interval_traits.h index f7b2a27d..b44e704e 100644 --- a/thirdparty/CGAL/include/CGAL/Interval_traits.h +++ b/thirdparty/CGAL/include/CGAL/Interval_traits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Inverse_index.h b/thirdparty/CGAL/include/CGAL/Inverse_index.h index 78b4f765..e63a4953 100644 --- a/thirdparty/CGAL/include/CGAL/Inverse_index.h +++ b/thirdparty/CGAL/include/CGAL/Inverse_index.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Is_a_predicate.h b/thirdparty/CGAL/include/CGAL/Is_a_predicate.h index c58f3f21..a689b7c1 100644 --- a/thirdparty/CGAL/include/CGAL/Is_a_predicate.h +++ b/thirdparty/CGAL/include/CGAL/Is_a_predicate.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Is_extended_kernel.h b/thirdparty/CGAL/include/CGAL/Is_extended_kernel.h index b814666f..e2f0e997 100644 --- a/thirdparty/CGAL/include/CGAL/Is_extended_kernel.h +++ b/thirdparty/CGAL/include/CGAL/Is_extended_kernel.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Iso_cuboid_3.h b/thirdparty/CGAL/include/CGAL/Iso_cuboid_3.h index fe0324e4..400a8c99 100644 --- a/thirdparty/CGAL/include/CGAL/Iso_cuboid_3.h +++ b/thirdparty/CGAL/include/CGAL/Iso_cuboid_3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Iso_rectangle_2.h b/thirdparty/CGAL/include/CGAL/Iso_rectangle_2.h index 94be1cb0..c9353d5d 100644 --- a/thirdparty/CGAL/include/CGAL/Iso_rectangle_2.h +++ b/thirdparty/CGAL/include/CGAL/Iso_rectangle_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Iso_rectangle_d.h b/thirdparty/CGAL/include/CGAL/Iso_rectangle_d.h index 823c0a67..370923fd 100644 --- a/thirdparty/CGAL/include/CGAL/Iso_rectangle_d.h +++ b/thirdparty/CGAL/include/CGAL/Iso_rectangle_d.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Iterator_project.h b/thirdparty/CGAL/include/CGAL/Iterator_project.h index 021b7a1c..f0710a09 100644 --- a/thirdparty/CGAL/include/CGAL/Iterator_project.h +++ b/thirdparty/CGAL/include/CGAL/Iterator_project.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Iterator_range.h b/thirdparty/CGAL/include/CGAL/Iterator_range.h index dcebcc02..e400a4f6 100644 --- a/thirdparty/CGAL/include/CGAL/Iterator_range.h +++ b/thirdparty/CGAL/include/CGAL/Iterator_range.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Iterator_transform.h b/thirdparty/CGAL/include/CGAL/Iterator_transform.h index 084f4535..a1fde86e 100644 --- a/thirdparty/CGAL/include/CGAL/Iterator_transform.h +++ b/thirdparty/CGAL/include/CGAL/Iterator_transform.h @@ -8,7 +8,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Join_input_iterator.h b/thirdparty/CGAL/include/CGAL/Join_input_iterator.h index 5259a03f..7b6b7648 100644 --- a/thirdparty/CGAL/include/CGAL/Join_input_iterator.h +++ b/thirdparty/CGAL/include/CGAL/Join_input_iterator.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/K_neighbor_search.h b/thirdparty/CGAL/include/CGAL/K_neighbor_search.h index da0157a3..8cc6cf5c 100644 --- a/thirdparty/CGAL/include/CGAL/K_neighbor_search.h +++ b/thirdparty/CGAL/include/CGAL/K_neighbor_search.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kd_tree.h b/thirdparty/CGAL/include/CGAL/Kd_tree.h index 063f3e74..a73ad8f6 100644 --- a/thirdparty/CGAL/include/CGAL/Kd_tree.h +++ b/thirdparty/CGAL/include/CGAL/Kd_tree.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Kd_tree { 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 @@ class Kd_tree { 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 --git a/thirdparty/CGAL/include/CGAL/Kd_tree_node.h b/thirdparty/CGAL/include/CGAL/Kd_tree_node.h index 6852f398..4b774c28 100644 --- a/thirdparty/CGAL/include/CGAL/Kd_tree_node.h +++ b/thirdparty/CGAL/include/CGAL/Kd_tree_node.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace CGAL { 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 --git a/thirdparty/CGAL/include/CGAL/Kd_tree_rectangle.h b/thirdparty/CGAL/include/CGAL/Kd_tree_rectangle.h index 494b45d9..5e72b470 100644 --- a/thirdparty/CGAL/include/CGAL/Kd_tree_rectangle.h +++ b/thirdparty/CGAL/include/CGAL/Kd_tree_rectangle.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel/Conic_misc.h b/thirdparty/CGAL/include/CGAL/Kernel/Conic_misc.h index 51c33c28..8969a673 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel/Conic_misc.h +++ b/thirdparty/CGAL/include/CGAL/Kernel/Conic_misc.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel/Dimension_utils.h b/thirdparty/CGAL/include/CGAL/Kernel/Dimension_utils.h index fef8aef6..62768e4a 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel/Dimension_utils.h +++ b/thirdparty/CGAL/include/CGAL/Kernel/Dimension_utils.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel/Return_base_tag.h b/thirdparty/CGAL/include/CGAL/Kernel/Return_base_tag.h index 6f87dbc7..49116f52 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel/Return_base_tag.h +++ b/thirdparty/CGAL/include/CGAL/Kernel/Return_base_tag.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel/Same_uncertainty.h b/thirdparty/CGAL/include/CGAL/Kernel/Same_uncertainty.h index 56591b31..c01bf656 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel/Same_uncertainty.h +++ b/thirdparty/CGAL/include/CGAL/Kernel/Same_uncertainty.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel/Type_equality_wrapper.h b/thirdparty/CGAL/include/CGAL/Kernel/Type_equality_wrapper.h index 6b9333b7..0f62f6ed 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel/Type_equality_wrapper.h +++ b/thirdparty/CGAL/include/CGAL/Kernel/Type_equality_wrapper.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel/Type_mapper.h b/thirdparty/CGAL/include/CGAL/Kernel/Type_mapper.h index fc7b9a9b..97f89a0b 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel/Type_mapper.h +++ b/thirdparty/CGAL/include/CGAL/Kernel/Type_mapper.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel/Wutils.h b/thirdparty/CGAL/include/CGAL/Kernel/Wutils.h index 5c21a8cd..cd55918d 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel/Wutils.h +++ b/thirdparty/CGAL/include/CGAL/Kernel/Wutils.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel/function_objects.h b/thirdparty/CGAL/include/CGAL/Kernel/function_objects.h index fa35119a..069c8059 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel/function_objects.h +++ b/thirdparty/CGAL/include/CGAL/Kernel/function_objects.h @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Kernel_23/include/CGAL/Kernel/function_objects.h $ -// $Id: function_objects.h a24229a 2021-11-04T15:46:45+01:00 Andreas Fabri +// $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 @@ namespace CommonKernelFunctors { { 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 @@ -2046,6 +2047,10 @@ namespace CommonKernelFunctors { operator()(Return_base_tag, const Point_3& p, const Vector_3& v) const { 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 @@ namespace CommonKernelFunctors { Vector_3 res = CGAL::cross_product(q-p, r-p); res = res / CGAL::sqrt(res.squared_length()); return res; - } + } }; template @@ -3323,8 +3328,8 @@ namespace CommonKernelFunctors { return c.rep().has_on_bounded_side(p); } - bool operator()(const Sphere_3& s1, const Sphere_3& s2, - const Point_3& a, const Point_3& b) const + result_type operator()(const Sphere_3& s1, const Sphere_3& s2, + const Point_3& a, const Point_3& b) const { typedef typename K::Circle_3 Circle_3; typedef typename K::Point_3 Point_3; @@ -3543,7 +3548,7 @@ namespace CommonKernelFunctors { // 25 possibilities, so I keep the template. template - decltype(auto) + typename CGAL::Intersection_traits::result_type operator()(const T1& t1, const T2& t2) const { return Intersections::internal::intersection(t1, t2, K()); } }; @@ -3556,11 +3561,11 @@ namespace CommonKernelFunctors { // n possibilities, so I keep the template. template - decltype(auto) + typename CGAL::Intersection_traits::result_type operator()(const T1& t1, const T2& t2) const { return Intersections::internal::intersection(t1, t2, K() ); } - decltype(auto) + boost::optional > operator()(const Plane_3& pl1, const Plane_3& pl2, const Plane_3& pl3)const { return Intersections::internal::intersection(pl1, pl2, pl3, K() ); } }; diff --git a/thirdparty/CGAL/include/CGAL/Kernel/global_functions.h b/thirdparty/CGAL/include/CGAL/Kernel/global_functions.h index 457a8ec8..2f8b7cbd 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel/global_functions.h +++ b/thirdparty/CGAL/include/CGAL/Kernel/global_functions.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel/global_functions_2.h b/thirdparty/CGAL/include/CGAL/Kernel/global_functions_2.h index bc958707..259c8a3b 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel/global_functions_2.h +++ b/thirdparty/CGAL/include/CGAL/Kernel/global_functions_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel/global_functions_3.h b/thirdparty/CGAL/include/CGAL/Kernel/global_functions_3.h index a655fae4..6138d6bd 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel/global_functions_3.h +++ b/thirdparty/CGAL/include/CGAL/Kernel/global_functions_3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel/global_functions_internal_2.h b/thirdparty/CGAL/include/CGAL/Kernel/global_functions_internal_2.h index d70be817..a452be3a 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel/global_functions_internal_2.h +++ b/thirdparty/CGAL/include/CGAL/Kernel/global_functions_internal_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel/global_functions_internal_3.h b/thirdparty/CGAL/include/CGAL/Kernel/global_functions_internal_3.h index 1c92ee1f..841f3ed2 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel/global_functions_internal_3.h +++ b/thirdparty/CGAL/include/CGAL/Kernel/global_functions_internal_3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel/hash_functions.h b/thirdparty/CGAL/include/CGAL/Kernel/hash_functions.h index 8cb00f13..f0428609 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel/hash_functions.h +++ b/thirdparty/CGAL/include/CGAL/Kernel/hash_functions.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel/interface_macros.h b/thirdparty/CGAL/include/CGAL/Kernel/interface_macros.h index 9fe2d819..03670f51 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel/interface_macros.h +++ b/thirdparty/CGAL/include/CGAL/Kernel/interface_macros.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel/mpl.h b/thirdparty/CGAL/include/CGAL/Kernel/mpl.h index f0291898..fb85287c 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel/mpl.h +++ b/thirdparty/CGAL/include/CGAL/Kernel/mpl.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel/solve.h b/thirdparty/CGAL/include/CGAL/Kernel/solve.h index 0deb1c15..2543581d 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel/solve.h +++ b/thirdparty/CGAL/include/CGAL/Kernel/solve.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel_23/internal/Filtered_projection_traits_3.h b/thirdparty/CGAL/include/CGAL/Kernel_23/internal/Filtered_projection_traits_3.h index a1c1ef2b..62c47ee2 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel_23/internal/Filtered_projection_traits_3.h +++ b/thirdparty/CGAL/include/CGAL/Kernel_23/internal/Filtered_projection_traits_3.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Filtered_projection_traits_3 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 --git a/thirdparty/CGAL/include/CGAL/Kernel_23/internal/Has_boolean_tags.h b/thirdparty/CGAL/include/CGAL/Kernel_23/internal/Has_boolean_tags.h index 9928bd2e..ce4be337 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel_23/internal/Has_boolean_tags.h +++ b/thirdparty/CGAL/include/CGAL/Kernel_23/internal/Has_boolean_tags.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel_23/internal/Projection_traits_3.h b/thirdparty/CGAL/include/CGAL/Kernel_23/internal/Projection_traits_3.h index 276094ef..38163e26 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel_23/internal/Projection_traits_3.h +++ b/thirdparty/CGAL/include/CGAL/Kernel_23/internal/Projection_traits_3.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Power_side_of_oriented_power_circle_projected_3 } }; +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 @@ class Projection_traits_3 { 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 @@ class Projection_traits_3 { 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 @@ class Projection_traits_3 { 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 --git a/thirdparty/CGAL/include/CGAL/Kernel_23/internal/Projection_traits_base_3.h b/thirdparty/CGAL/include/CGAL/Kernel_23/internal/Projection_traits_base_3.h index d6f23579..508a0b26 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel_23/internal/Projection_traits_base_3.h +++ b/thirdparty/CGAL/include/CGAL/Kernel_23/internal/Projection_traits_base_3.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Projection_traits_base_3 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 @@ class Projection_traits_base_3 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 --git a/thirdparty/CGAL/include/CGAL/Kernel_checker.h b/thirdparty/CGAL/include/CGAL/Kernel_checker.h index 32afa15e..2b577b09 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel_checker.h +++ b/thirdparty/CGAL/include/CGAL/Kernel_checker.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel_d/Aff_transformationCd.h b/thirdparty/CGAL/include/CGAL/Kernel_d/Aff_transformationCd.h index 84579e81..a5c0e49b 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel_d/Aff_transformationCd.h +++ b/thirdparty/CGAL/include/CGAL/Kernel_d/Aff_transformationCd.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel_d/Aff_transformationHd.h b/thirdparty/CGAL/include/CGAL/Kernel_d/Aff_transformationHd.h index 629e471c..73d9c367 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel_d/Aff_transformationHd.h +++ b/thirdparty/CGAL/include/CGAL/Kernel_d/Aff_transformationHd.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel_d/Aff_transformation_d.h b/thirdparty/CGAL/include/CGAL/Kernel_d/Aff_transformation_d.h index ddf33439..3127e6ed 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel_d/Aff_transformation_d.h +++ b/thirdparty/CGAL/include/CGAL/Kernel_d/Aff_transformation_d.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel_d/Cartesian_const_iterator_d.h b/thirdparty/CGAL/include/CGAL/Kernel_d/Cartesian_const_iterator_d.h index d3d904fd..4ee449eb 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel_d/Cartesian_const_iterator_d.h +++ b/thirdparty/CGAL/include/CGAL/Kernel_d/Cartesian_const_iterator_d.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel_d/Cartesian_converter_d.h b/thirdparty/CGAL/include/CGAL/Kernel_d/Cartesian_converter_d.h index 4bcf30ba..42306566 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel_d/Cartesian_converter_d.h +++ b/thirdparty/CGAL/include/CGAL/Kernel_d/Cartesian_converter_d.h @@ -6,8 +6,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Cartesian_converter_d : public Enum_converter : 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 @@ class Cartesian_converter_d : public Enum_converter 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 @@ class Cartesian_converter_d : public Enum_converter return res; } - int operator()(const int &a) - { - return a; - } - typename K2::Point_d operator()(const typename K1::Point_d &a) const { diff --git a/thirdparty/CGAL/include/CGAL/Kernel_d/DirectionCd.h b/thirdparty/CGAL/include/CGAL/Kernel_d/DirectionCd.h index 34524973..67ba7d32 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel_d/DirectionCd.h +++ b/thirdparty/CGAL/include/CGAL/Kernel_d/DirectionCd.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel_d/DirectionCd_impl.h b/thirdparty/CGAL/include/CGAL/Kernel_d/DirectionCd_impl.h index 226315dd..266cd727 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel_d/DirectionCd_impl.h +++ b/thirdparty/CGAL/include/CGAL/Kernel_d/DirectionCd_impl.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel_d/DirectionHd.h b/thirdparty/CGAL/include/CGAL/Kernel_d/DirectionHd.h index dc2396e4..638ea2fe 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel_d/DirectionHd.h +++ b/thirdparty/CGAL/include/CGAL/Kernel_d/DirectionHd.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel_d/DirectionHd_impl.h b/thirdparty/CGAL/include/CGAL/Kernel_d/DirectionHd_impl.h index 6ce94c2e..53e7e128 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel_d/DirectionHd_impl.h +++ b/thirdparty/CGAL/include/CGAL/Kernel_d/DirectionHd_impl.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel_d/Direction_d.h b/thirdparty/CGAL/include/CGAL/Kernel_d/Direction_d.h index a2d97362..74d8a607 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel_d/Direction_d.h +++ b/thirdparty/CGAL/include/CGAL/Kernel_d/Direction_d.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel_d/HyperplaneCd.h b/thirdparty/CGAL/include/CGAL/Kernel_d/HyperplaneCd.h index ef981eb8..27d48c07 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel_d/HyperplaneCd.h +++ b/thirdparty/CGAL/include/CGAL/Kernel_d/HyperplaneCd.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel_d/HyperplaneCd_impl.h b/thirdparty/CGAL/include/CGAL/Kernel_d/HyperplaneCd_impl.h index 0f711e4d..ff9264b5 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel_d/HyperplaneCd_impl.h +++ b/thirdparty/CGAL/include/CGAL/Kernel_d/HyperplaneCd_impl.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel_d/HyperplaneHd.h b/thirdparty/CGAL/include/CGAL/Kernel_d/HyperplaneHd.h index 8ef631f0..1019ef8f 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel_d/HyperplaneHd.h +++ b/thirdparty/CGAL/include/CGAL/Kernel_d/HyperplaneHd.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel_d/HyperplaneHd_impl.h b/thirdparty/CGAL/include/CGAL/Kernel_d/HyperplaneHd_impl.h index 0ee785b9..916b9ada 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel_d/HyperplaneHd_impl.h +++ b/thirdparty/CGAL/include/CGAL/Kernel_d/HyperplaneHd_impl.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel_d/Hyperplane_d.h b/thirdparty/CGAL/include/CGAL/Kernel_d/Hyperplane_d.h index c026823c..6ed7d481 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel_d/Hyperplane_d.h +++ b/thirdparty/CGAL/include/CGAL/Kernel_d/Hyperplane_d.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel_d/Interface_classes.h b/thirdparty/CGAL/include/CGAL/Kernel_d/Interface_classes.h index a5d11b64..6907ef32 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel_d/Interface_classes.h +++ b/thirdparty/CGAL/include/CGAL/Kernel_d/Interface_classes.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel_d/Interval_linear_algebra.h b/thirdparty/CGAL/include/CGAL/Kernel_d/Interval_linear_algebra.h index 49f744c7..35b7a9d6 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel_d/Interval_linear_algebra.h +++ b/thirdparty/CGAL/include/CGAL/Kernel_d/Interval_linear_algebra.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel_d/Iso_box_d.h b/thirdparty/CGAL/include/CGAL/Kernel_d/Iso_box_d.h index dd55a07e..92f7dd77 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel_d/Iso_box_d.h +++ b/thirdparty/CGAL/include/CGAL/Kernel_d/Iso_box_d.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel_d/Kernel_classesCd.h b/thirdparty/CGAL/include/CGAL/Kernel_d/Kernel_classesCd.h index e20a0b5f..f62ed56a 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel_d/Kernel_classesCd.h +++ b/thirdparty/CGAL/include/CGAL/Kernel_d/Kernel_classesCd.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel_d/Kernel_classesHd.h b/thirdparty/CGAL/include/CGAL/Kernel_d/Kernel_classesHd.h index 7453eba3..df120d2d 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel_d/Kernel_classesHd.h +++ b/thirdparty/CGAL/include/CGAL/Kernel_d/Kernel_classesHd.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel_d/Line_d.h b/thirdparty/CGAL/include/CGAL/Kernel_d/Line_d.h index b5907ccb..f8a246ee 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel_d/Line_d.h +++ b/thirdparty/CGAL/include/CGAL/Kernel_d/Line_d.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel_d/Line_d_impl.h b/thirdparty/CGAL/include/CGAL/Kernel_d/Line_d_impl.h index aaaad57a..8ba205b1 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel_d/Line_d_impl.h +++ b/thirdparty/CGAL/include/CGAL/Kernel_d/Line_d_impl.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel_d/Linear_algebraCd_impl.h b/thirdparty/CGAL/include/CGAL/Kernel_d/Linear_algebraCd_impl.h index 51d903f7..f26fc2d0 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel_d/Linear_algebraCd_impl.h +++ b/thirdparty/CGAL/include/CGAL/Kernel_d/Linear_algebraCd_impl.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel_d/Linear_algebraHd_impl.h b/thirdparty/CGAL/include/CGAL/Kernel_d/Linear_algebraHd_impl.h index 1ef70572..18e33ce6 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel_d/Linear_algebraHd_impl.h +++ b/thirdparty/CGAL/include/CGAL/Kernel_d/Linear_algebraHd_impl.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel_d/Matrix__.h b/thirdparty/CGAL/include/CGAL/Kernel_d/Matrix__.h index 7cedb226..a197da9c 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel_d/Matrix__.h +++ b/thirdparty/CGAL/include/CGAL/Kernel_d/Matrix__.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel_d/Pair_d.h b/thirdparty/CGAL/include/CGAL/Kernel_d/Pair_d.h index c4e14198..528bc391 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel_d/Pair_d.h +++ b/thirdparty/CGAL/include/CGAL/Kernel_d/Pair_d.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel_d/PointCd.h b/thirdparty/CGAL/include/CGAL/Kernel_d/PointCd.h index 5d9f555c..ea6b1cad 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel_d/PointCd.h +++ b/thirdparty/CGAL/include/CGAL/Kernel_d/PointCd.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel_d/PointCd_impl.h b/thirdparty/CGAL/include/CGAL/Kernel_d/PointCd_impl.h index 8d83d371..afaf29e2 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel_d/PointCd_impl.h +++ b/thirdparty/CGAL/include/CGAL/Kernel_d/PointCd_impl.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel_d/PointHd.h b/thirdparty/CGAL/include/CGAL/Kernel_d/PointHd.h index 136bebb7..bae1b657 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel_d/PointHd.h +++ b/thirdparty/CGAL/include/CGAL/Kernel_d/PointHd.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel_d/PointHd_impl.h b/thirdparty/CGAL/include/CGAL/Kernel_d/PointHd_impl.h index d77cced0..5ec9863c 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel_d/PointHd_impl.h +++ b/thirdparty/CGAL/include/CGAL/Kernel_d/PointHd_impl.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel_d/Point_d.h b/thirdparty/CGAL/include/CGAL/Kernel_d/Point_d.h index a4fdcb9f..50fb1cb3 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel_d/Point_d.h +++ b/thirdparty/CGAL/include/CGAL/Kernel_d/Point_d.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel_d/Ray_d.h b/thirdparty/CGAL/include/CGAL/Kernel_d/Ray_d.h index 218788cf..a8855ff7 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel_d/Ray_d.h +++ b/thirdparty/CGAL/include/CGAL/Kernel_d/Ray_d.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel_d/Segment_d.h b/thirdparty/CGAL/include/CGAL/Kernel_d/Segment_d.h index a631ffaa..787553d8 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel_d/Segment_d.h +++ b/thirdparty/CGAL/include/CGAL/Kernel_d/Segment_d.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel_d/Sphere_d.h b/thirdparty/CGAL/include/CGAL/Kernel_d/Sphere_d.h index 4a1a47c4..65eb0195 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel_d/Sphere_d.h +++ b/thirdparty/CGAL/include/CGAL/Kernel_d/Sphere_d.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel_d/Tuple_d.h b/thirdparty/CGAL/include/CGAL/Kernel_d/Tuple_d.h index 0ae691f1..93c8a27d 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel_d/Tuple_d.h +++ b/thirdparty/CGAL/include/CGAL/Kernel_d/Tuple_d.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel_d/VectorCd.h b/thirdparty/CGAL/include/CGAL/Kernel_d/VectorCd.h index 3024a8c8..029d8a94 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel_d/VectorCd.h +++ b/thirdparty/CGAL/include/CGAL/Kernel_d/VectorCd.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel_d/VectorCd_impl.h b/thirdparty/CGAL/include/CGAL/Kernel_d/VectorCd_impl.h index 32a9bb26..54e4915d 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel_d/VectorCd_impl.h +++ b/thirdparty/CGAL/include/CGAL/Kernel_d/VectorCd_impl.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel_d/VectorHd.h b/thirdparty/CGAL/include/CGAL/Kernel_d/VectorHd.h index aa1f08c2..8c6e6e37 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel_d/VectorHd.h +++ b/thirdparty/CGAL/include/CGAL/Kernel_d/VectorHd.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel_d/VectorHd_impl.h b/thirdparty/CGAL/include/CGAL/Kernel_d/VectorHd_impl.h index 02c8989b..58cfae09 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel_d/VectorHd_impl.h +++ b/thirdparty/CGAL/include/CGAL/Kernel_d/VectorHd_impl.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel_d/Vector__.h b/thirdparty/CGAL/include/CGAL/Kernel_d/Vector__.h index 4206dbc5..89bf5b68 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel_d/Vector__.h +++ b/thirdparty/CGAL/include/CGAL/Kernel_d/Vector__.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel_d/Vector_d.h b/thirdparty/CGAL/include/CGAL/Kernel_d/Vector_d.h index e2949198..082a2eaa 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel_d/Vector_d.h +++ b/thirdparty/CGAL/include/CGAL/Kernel_d/Vector_d.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel_d/debug.h b/thirdparty/CGAL/include/CGAL/Kernel_d/debug.h index 97f8dc9d..ef8c4c35 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel_d/debug.h +++ b/thirdparty/CGAL/include/CGAL/Kernel_d/debug.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel_d/function_objects.h b/thirdparty/CGAL/include/CGAL/Kernel_d/function_objects.h index 51078bf2..676b99ce 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel_d/function_objects.h +++ b/thirdparty/CGAL/include/CGAL/Kernel_d/function_objects.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel_d/function_objectsCd.h b/thirdparty/CGAL/include/CGAL/Kernel_d/function_objectsCd.h index 94a9319b..a0e32b78 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel_d/function_objectsCd.h +++ b/thirdparty/CGAL/include/CGAL/Kernel_d/function_objectsCd.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel_d/function_objectsHd.h b/thirdparty/CGAL/include/CGAL/Kernel_d/function_objectsHd.h index 8db2a066..38cff793 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel_d/function_objectsHd.h +++ b/thirdparty/CGAL/include/CGAL/Kernel_d/function_objectsHd.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel_d/interface_macros_d.h b/thirdparty/CGAL/include/CGAL/Kernel_d/interface_macros_d.h index 5f4b7938..d3a7149f 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel_d/interface_macros_d.h +++ b/thirdparty/CGAL/include/CGAL/Kernel_d/interface_macros_d.h @@ -6,7 +6,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel_d/intersection_objectsCd.h b/thirdparty/CGAL/include/CGAL/Kernel_d/intersection_objectsCd.h index cd4bd013..a438a135 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel_d/intersection_objectsCd.h +++ b/thirdparty/CGAL/include/CGAL/Kernel_d/intersection_objectsCd.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel_d/intersection_objectsHd.h b/thirdparty/CGAL/include/CGAL/Kernel_d/intersection_objectsHd.h index e8086e92..5748a865 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel_d/intersection_objectsHd.h +++ b/thirdparty/CGAL/include/CGAL/Kernel_d/intersection_objectsHd.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel_d/intersection_objects_d.h b/thirdparty/CGAL/include/CGAL/Kernel_d/intersection_objects_d.h index 399b9492..f89025ac 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel_d/intersection_objects_d.h +++ b/thirdparty/CGAL/include/CGAL/Kernel_d/intersection_objects_d.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel_d/simple_objects.h b/thirdparty/CGAL/include/CGAL/Kernel_d/simple_objects.h index 17824c3c..9fe5400c 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel_d/simple_objects.h +++ b/thirdparty/CGAL/include/CGAL/Kernel_d/simple_objects.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel_profiler.h b/thirdparty/CGAL/include/CGAL/Kernel_profiler.h index 166f08d9..310f10f3 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel_profiler.h +++ b/thirdparty/CGAL/include/CGAL/Kernel_profiler.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel_traits.h b/thirdparty/CGAL/include/CGAL/Kernel_traits.h index ab372d3c..b1856008 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel_traits.h +++ b/thirdparty/CGAL/include/CGAL/Kernel_traits.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Kernel_traits_fwd.h b/thirdparty/CGAL/include/CGAL/Kernel_traits_fwd.h index 247ff0f3..7fb98112 100644 --- a/thirdparty/CGAL/include/CGAL/Kernel_traits_fwd.h +++ b/thirdparty/CGAL/include/CGAL/Kernel_traits_fwd.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/LEDA_arithmetic_kernel.h b/thirdparty/CGAL/include/CGAL/LEDA_arithmetic_kernel.h index 27f2319c..e14302d9 100644 --- a/thirdparty/CGAL/include/CGAL/LEDA_arithmetic_kernel.h +++ b/thirdparty/CGAL/include/CGAL/LEDA_arithmetic_kernel.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/LEDA_basic.h b/thirdparty/CGAL/include/CGAL/LEDA_basic.h index ae1b54f9..15fe5a9e 100644 --- a/thirdparty/CGAL/include/CGAL/LEDA_basic.h +++ b/thirdparty/CGAL/include/CGAL/LEDA_basic.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Labeled_image_mesh_domain_3.h b/thirdparty/CGAL/include/CGAL/Labeled_image_mesh_domain_3.h index 390aa0c2..f1eefb6b 100644 --- a/thirdparty/CGAL/include/CGAL/Labeled_image_mesh_domain_3.h +++ b/thirdparty/CGAL/include/CGAL/Labeled_image_mesh_domain_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Labeled_mesh_domain_3.h b/thirdparty/CGAL/include/CGAL/Labeled_mesh_domain_3.h index 6c3a817d..658d551b 100644 --- a/thirdparty/CGAL/include/CGAL/Labeled_mesh_domain_3.h +++ b/thirdparty/CGAL/include/CGAL/Labeled_mesh_domain_3.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Labeled_mesh_domain_3 : # 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 @@ class Labeled_mesh_domain_3 : create_construct_surface_patch_index(construct_surface_patch_index_)); } +CGAL_PRAGMA_DIAG_POP + #if defined(BOOST_MSVC) # pragma warning(pop) #endif diff --git a/thirdparty/CGAL/include/CGAL/Largest_empty_iso_rectangle_2.h b/thirdparty/CGAL/include/CGAL/Largest_empty_iso_rectangle_2.h index b4a27091..95ad2209 100644 --- a/thirdparty/CGAL/include/CGAL/Largest_empty_iso_rectangle_2.h +++ b/thirdparty/CGAL/include/CGAL/Largest_empty_iso_rectangle_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Lazy.h b/thirdparty/CGAL/include/CGAL/Lazy.h index 4ac615a1..1699e0dc 100644 --- a/thirdparty/CGAL/include/CGAL/Lazy.h +++ b/thirdparty/CGAL/include/CGAL/Lazy.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Filtered_kernel/include/CGAL/Lazy.h $ -// $Id: Lazy.h 74c029c 2021-09-09T11:44:36+02:00 Sébastien Loriot +// $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 @@ exact(const Lazy& l) template inline -unsigned +int depth(const Lazy& l) { return l.depth(); @@ -98,7 +98,7 @@ depth(const Lazy& l) #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 @@ CGAL_LAZY_FORWARD(Bbox_3) 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 @@ auto exact(T const& t) {return make_transforming_iterator(t,[](auto const&u)->de 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 @@ print_dag(const Return_base_tag&, std::ostream& os, int level) 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 @@ class Lazy_rep, ET, E2A, 2> : public Rep, public Depth_base 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 @@ class Lazy_rep, ET, E2A, 2> : public Rep, public Depth_base 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 @@ class Lazy_rep_0 final : public Lazy_rep // 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 @@ class Lazy_rep_0 final : public Lazy_rep // 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 @@ -799,7 +816,7 @@ struct Approx_converter template < typename T > decltype(auto) operator()(const T&t) const - { return t.approx(); } + { return approx(t); } const Null_vector& operator()(const Null_vector& n) const @@ -824,7 +841,7 @@ struct Exact_converter template < typename T > decltype(auto) operator()(const T&t) const - { return t.exact(); } + { return exact(t); } const Null_vector& operator()(const Null_vector& n) const @@ -976,6 +993,7 @@ class Lazy_rep_2_1 final 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 @@ class Lazy_rep_2_2 final 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 --git a/thirdparty/CGAL/include/CGAL/Lazy_exact_nt.h b/thirdparty/CGAL/include/CGAL/Lazy_exact_nt.h index 0e2d1116..b21caeae 100644 --- a/thirdparty/CGAL/include/CGAL/Lazy_exact_nt.h +++ b/thirdparty/CGAL/include/CGAL/Lazy_exact_nt.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Lazy_kernel.h b/thirdparty/CGAL/include/CGAL/Lazy_kernel.h index fe672132..be559246 100644 --- a/thirdparty/CGAL/include/CGAL/Lazy_kernel.h +++ b/thirdparty/CGAL/include/CGAL/Lazy_kernel.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Level_interval.h b/thirdparty/CGAL/include/CGAL/Level_interval.h index 1530b61c..993c68f2 100644 --- a/thirdparty/CGAL/include/CGAL/Level_interval.h +++ b/thirdparty/CGAL/include/CGAL/Level_interval.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Lightweight_vector_3.h b/thirdparty/CGAL/include/CGAL/Lightweight_vector_3.h index 6e316de8..fb4426c7 100644 --- a/thirdparty/CGAL/include/CGAL/Lightweight_vector_3.h +++ b/thirdparty/CGAL/include/CGAL/Lightweight_vector_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Line_2.h b/thirdparty/CGAL/include/CGAL/Line_2.h index 86afdc45..374ddb8b 100644 --- a/thirdparty/CGAL/include/CGAL/Line_2.h +++ b/thirdparty/CGAL/include/CGAL/Line_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Line_3.h b/thirdparty/CGAL/include/CGAL/Line_3.h index 0c28fcc8..6e7d4c5f 100644 --- a/thirdparty/CGAL/include/CGAL/Line_3.h +++ b/thirdparty/CGAL/include/CGAL/Line_3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Line_arc_2.h b/thirdparty/CGAL/include/CGAL/Line_arc_2.h index 8027f07c..311ccce7 100644 --- a/thirdparty/CGAL/include/CGAL/Line_arc_2.h +++ b/thirdparty/CGAL/include/CGAL/Line_arc_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Line_arc_3.h b/thirdparty/CGAL/include/CGAL/Line_arc_3.h index dbff5f22..e1697621 100644 --- a/thirdparty/CGAL/include/CGAL/Line_arc_3.h +++ b/thirdparty/CGAL/include/CGAL/Line_arc_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Linear_algebraCd.h b/thirdparty/CGAL/include/CGAL/Linear_algebraCd.h index 9392c422..51a02859 100644 --- a/thirdparty/CGAL/include/CGAL/Linear_algebraCd.h +++ b/thirdparty/CGAL/include/CGAL/Linear_algebraCd.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Linear_algebraHd.h b/thirdparty/CGAL/include/CGAL/Linear_algebraHd.h index 621006d6..a8088aa8 100644 --- a/thirdparty/CGAL/include/CGAL/Linear_algebraHd.h +++ b/thirdparty/CGAL/include/CGAL/Linear_algebraHd.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Linear_cell_complex.h b/thirdparty/CGAL/include/CGAL/Linear_cell_complex.h deleted file mode 100644 index cda64ec4..00000000 --- a/thirdparty/CGAL/include/CGAL/Linear_cell_complex.h +++ /dev/null @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/Linear_cell_complex_base.h b/thirdparty/CGAL/include/CGAL/Linear_cell_complex_base.h index cfa64a04..b7a181b6 100644 --- a/thirdparty/CGAL/include/CGAL/Linear_cell_complex_base.h +++ b/thirdparty/CGAL/include/CGAL/Linear_cell_complex_base.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace CGAL { Linear_cell_complex_base(const Self& alcc) : Base(alcc) {} + Linear_cell_complex_base(Self&& alcc) : Base(alcc) + {} + template class CMap2, @@ -450,12 +454,16 @@ namespace CGAL { } /// 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 @@ namespace CGAL { 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 --git a/thirdparty/CGAL/include/CGAL/Linear_cell_complex_bgl_min_items.h b/thirdparty/CGAL/include/CGAL/Linear_cell_complex_bgl_min_items.h index 6cf1e308..31aa529a 100644 --- a/thirdparty/CGAL/include/CGAL/Linear_cell_complex_bgl_min_items.h +++ b/thirdparty/CGAL/include/CGAL/Linear_cell_complex_bgl_min_items.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Linear_cell_complex_constructors.h b/thirdparty/CGAL/include/CGAL/Linear_cell_complex_constructors.h index 8d4b715a..babcd507 100644 --- a/thirdparty/CGAL/include/CGAL/Linear_cell_complex_constructors.h +++ b/thirdparty/CGAL/include/CGAL/Linear_cell_complex_constructors.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace CGAL { 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 @@ namespace CGAL { } */ for (std::size_t j=0; j @@ -19,6 +19,7 @@ #include #include #include +#include namespace CGAL { @@ -96,6 +97,9 @@ namespace CGAL { 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 @@ namespace CGAL { 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 @@ namespace CGAL { 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 @@ namespace CGAL { /** 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 --git a/thirdparty/CGAL/include/CGAL/Linear_cell_complex_for_generalized_map.h b/thirdparty/CGAL/include/CGAL/Linear_cell_complex_for_generalized_map.h index 79cb736d..b9bc73f6 100644 --- a/thirdparty/CGAL/include/CGAL/Linear_cell_complex_for_generalized_map.h +++ b/thirdparty/CGAL/include/CGAL/Linear_cell_complex_for_generalized_map.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace CGAL { 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 @@ namespace CGAL { 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 --git a/thirdparty/CGAL/include/CGAL/Linear_cell_complex_fwd.h b/thirdparty/CGAL/include/CGAL/Linear_cell_complex_fwd.h index 5cb36b10..02ce4e9a 100644 --- a/thirdparty/CGAL/include/CGAL/Linear_cell_complex_fwd.h +++ b/thirdparty/CGAL/include/CGAL/Linear_cell_complex_fwd.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ template ::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 @@ class Linear_cell_complex_base; 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 --git a/thirdparty/CGAL/include/CGAL/Linear_cell_complex_incremental_builder.h b/thirdparty/CGAL/include/CGAL/Linear_cell_complex_incremental_builder.h index 17525256..49f18c3d 100644 --- a/thirdparty/CGAL/include/CGAL/Linear_cell_complex_incremental_builder.h +++ b/thirdparty/CGAL/include/CGAL/Linear_cell_complex_incremental_builder.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace CGAL { 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 +/////////////////////////////////////////////////////////////////////////////// +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) { - 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) + // 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; } } - - void begin_facet() + 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) { - 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."<::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) { - CGAL_assertion( i:: - run(lcc, vertex_map[i], prev_dart); + 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."< +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)); - if ( prev_dart!=lcc.null_handle ) + 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) + { + 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; - // 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 ); + Linear_cell_complex_incremental_builder_3(LCC & alcc) : + lcc(alcc) + {} - Add_vertex_to_face::run_for_last(lcc, vertex_map[first_vertex], - prev_dart); + VAH add_vertex(const Point_3& p) + { + VAH res=lcc.create_vertex_attribute(p); + vertex_map.push_back(res); + return res; + } - lcc.set_next(prev_dart, first_dart); + 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; } - void begin_surface( std::size_t v, std::size_t /*f*/, std::size_t /*h*/) + 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 ); + + 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 ) + { + 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) { - 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); + 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 --git a/thirdparty/CGAL/include/CGAL/Linear_cell_complex_min_items.h b/thirdparty/CGAL/include/CGAL/Linear_cell_complex_min_items.h index c3447302..574ebfb5 100644 --- a/thirdparty/CGAL/include/CGAL/Linear_cell_complex_min_items.h +++ b/thirdparty/CGAL/include/CGAL/Linear_cell_complex_min_items.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace CGAL { * 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 @@ namespace CGAL { typedef std::tuple Attributes; }; }; -#endif } // namespace CGAL diff --git a/thirdparty/CGAL/include/CGAL/Linear_cell_complex_operations.h b/thirdparty/CGAL/include/CGAL/Linear_cell_complex_operations.h index 8f372f9d..c59a806c 100644 --- a/thirdparty/CGAL/include/CGAL/Linear_cell_complex_operations.h +++ b/thirdparty/CGAL/include/CGAL/Linear_cell_complex_operations.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace CGAL { } 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 @@ namespace CGAL { } 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 --git a/thirdparty/CGAL/include/CGAL/Linear_cell_complex_traits.h b/thirdparty/CGAL/include/CGAL/Linear_cell_complex_traits.h index 2248d4b7..b17f12b3 100644 --- a/thirdparty/CGAL/include/CGAL/Linear_cell_complex_traits.h +++ b/thirdparty/CGAL/include/CGAL/Linear_cell_complex_traits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Location_policy.h b/thirdparty/CGAL/include/CGAL/Location_policy.h index 3c4b0e40..e1437a60 100644 --- a/thirdparty/CGAL/include/CGAL/Location_policy.h +++ b/thirdparty/CGAL/include/CGAL/Location_policy.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/STL_Extension/include/CGAL/Location_policy.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/STL_Extension/include/CGAL/Location_policy.h $ // $Id: Location_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 --git a/thirdparty/CGAL/include/CGAL/MP_Float.h b/thirdparty/CGAL/include/CGAL/MP_Float.h index cfac918c..00a92785 100644 --- a/thirdparty/CGAL/include/CGAL/MP_Float.h +++ b/thirdparty/CGAL/include/CGAL/MP_Float.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace INTERN_MP_FLOAT { 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 --git a/thirdparty/CGAL/include/CGAL/MP_Float_arithmetic_kernel.h b/thirdparty/CGAL/include/CGAL/MP_Float_arithmetic_kernel.h index 0f4921a8..1e68a94a 100644 --- a/thirdparty/CGAL/include/CGAL/MP_Float_arithmetic_kernel.h +++ b/thirdparty/CGAL/include/CGAL/MP_Float_arithmetic_kernel.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/MP_Float_impl.h b/thirdparty/CGAL/include/CGAL/MP_Float_impl.h index 61cb13b5..9913daaf 100644 --- a/thirdparty/CGAL/include/CGAL/MP_Float_impl.h +++ b/thirdparty/CGAL/include/CGAL/MP_Float_impl.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Manhattan_distance_iso_box_point.h b/thirdparty/CGAL/include/CGAL/Manhattan_distance_iso_box_point.h index d918b365..daedc988 100644 --- a/thirdparty/CGAL/include/CGAL/Manhattan_distance_iso_box_point.h +++ b/thirdparty/CGAL/include/CGAL/Manhattan_distance_iso_box_point.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Spatial_searching/include/CGAL/Manhattan_distance_iso_box_point.h $ -// $Id: Manhattan_distance_iso_box_point.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/Manhattan_distance_iso_box_point.h $ +// $Id: Manhattan_distance_iso_box_point.h d6398b5 2022-02-02T09:27:30+00:00 Andreas Fabri // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -33,6 +33,7 @@ namespace CGAL { typedef typename SearchTraits::FT FT; typedef Iso_box_d Query_item; typedef typename internal::Get_dimension_tag::Dimension Dimension; + typedef typename CGAL::cpp11::result_of::type Min_vertex; typedef typename CGAL::cpp11::result_of::type Max_vertex; Manhattan_distance_iso_box_point(const SearchTraits& traits_=SearchTraits()):traits(traits_) {} @@ -46,9 +47,10 @@ namespace CGAL { traits.construct_cartesian_const_iterator_d_object(); typename SearchTraits::Construct_min_vertex_d construct_min_vertex; typename SearchTraits::Construct_max_vertex_d construct_max_vertex; + Min_vertex minv = construct_min_vertex(q); Max_vertex maxv = construct_max_vertex(q); typename SearchTraits::Cartesian_const_iterator_d qmaxit = construct_it(maxv), - qe = construct_it(maxv,1), qminit = construct_it(construct_min_vertex(q)), + qe = construct_it(maxv,1), qminit = construct_it(minv), pit = construct_it(p); for (; qmaxit != qe; ++pit,++qmaxit,++qminit) { if ((*pit)>(*qmaxit)) distance += @@ -67,9 +69,10 @@ namespace CGAL { traits.construct_cartesian_const_iterator_d_object(); typename SearchTraits::Construct_min_vertex_d construct_min_vertex; typename SearchTraits::Construct_max_vertex_d construct_max_vertex; + Min_vertex minv = construct_min_vertex(q); Max_vertex maxv = construct_max_vertex(q); typename SearchTraits::Cartesian_const_iterator_d qmaxit = construct_it(maxv), - qe = construct_it(maxv,1), qminit = construct_it(construct_min_vertex(q)); + qe = construct_it(maxv,1), qminit = construct_it(minv); for (unsigned int i = 0; qmaxit != qe; ++ qmaxit, ++qminit, ++i) { if (r.min_coord(i)>(*qmaxit)) distance +=(r.min_coord(i)-(*qmaxit)); @@ -86,9 +89,10 @@ namespace CGAL { traits.construct_cartesian_const_iterator_d_object(); typename SearchTraits::Construct_min_vertex_d construct_min_vertex; typename SearchTraits::Construct_max_vertex_d construct_max_vertex; + Min_vertex minv = construct_min_vertex(q); Max_vertex maxv = construct_max_vertex(q); typename SearchTraits::Cartesian_const_iterator_d qmaxit = construct_it(maxv), - qe = construct_it(maxv,1), qminit = construct_it(construct_min_vertex(q)); + qe = construct_it(maxv,1), qminit = construct_it(minv); for (unsigned int i = 0; qmaxit != qe; ++ qmaxit, ++qminit, ++i) { if (r.min_coord(i)>(*qmaxit)) { dists[i]=(r.min_coord(i)-(*qmaxit)); @@ -111,9 +115,10 @@ namespace CGAL { traits.construct_cartesian_const_iterator_d_object(); typename SearchTraits::Construct_min_vertex_d construct_min_vertex; typename SearchTraits::Construct_max_vertex_d construct_max_vertex; + Min_vertex minv = construct_min_vertex(q); Max_vertex maxv = construct_max_vertex(q); typename SearchTraits::Cartesian_const_iterator_d qmaxit = construct_it(maxv), - qe = construct_it(maxv,1), qminit = construct_it(construct_min_vertex(q)); + qe = construct_it(maxv,1), qminit = construct_it(minv); for (unsigned int i = 0; qmaxit != qe; ++ qmaxit, ++qminit, ++i) { if ( r.max_coord(i)-(*qminit) >(*qmaxit)-r.min_coord(i) ) distance += (r.max_coord(i)-(*qminit)); @@ -132,9 +137,10 @@ namespace CGAL { traits.construct_cartesian_const_iterator_d_object(); typename SearchTraits::Construct_min_vertex_d construct_min_vertex; typename SearchTraits::Construct_max_vertex_d construct_max_vertex; + Min_vertex minv = construct_min_vertex(q); Max_vertex maxv = construct_max_vertex(q); typename SearchTraits::Cartesian_const_iterator_d qmaxit = construct_it(maxv), - qe = construct_it(maxv,1), qminit = construct_it(construct_min_vertex(q)); + qe = construct_it(maxv,1), qminit = construct_it(minv); for (unsigned int i = 0; qmaxit != qe; ++ qmaxit, ++qminit, ++i) { if ( r.max_coord(i)-(*qminit) >(*qmaxit)-r.min_coord(i) ) { dists[i]=(r.max_coord(i)-(*qminit)); diff --git a/thirdparty/CGAL/include/CGAL/Marching_tetrahedra_observer_default_3.h b/thirdparty/CGAL/include/CGAL/Marching_tetrahedra_observer_default_3.h index 2122a23b..42c1e14f 100644 --- a/thirdparty/CGAL/include/CGAL/Marching_tetrahedra_observer_default_3.h +++ b/thirdparty/CGAL/include/CGAL/Marching_tetrahedra_observer_default_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Skin_surface_3/include/CGAL/Marching_tetrahedra_observer_default_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Skin_surface_3/include/CGAL/Marching_tetrahedra_observer_default_3.h $ // $Id: Marching_tetrahedra_observer_default_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 --git a/thirdparty/CGAL/include/CGAL/Marching_tetrahedra_traits_skin_surface_3.h b/thirdparty/CGAL/include/CGAL/Marching_tetrahedra_traits_skin_surface_3.h index c3f6b42d..572e9838 100644 --- a/thirdparty/CGAL/include/CGAL/Marching_tetrahedra_traits_skin_surface_3.h +++ b/thirdparty/CGAL/include/CGAL/Marching_tetrahedra_traits_skin_surface_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Skin_surface_3/include/CGAL/Marching_tetrahedra_traits_skin_surface_3.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Skin_surface_3/include/CGAL/Marching_tetrahedra_traits_skin_surface_3.h $ // $Id: Marching_tetrahedra_traits_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 --git a/thirdparty/CGAL/include/CGAL/Mean_curvature_flow_skeletonization.h b/thirdparty/CGAL/include/CGAL/Mean_curvature_flow_skeletonization.h index b418abd5..0a96009b 100644 --- a/thirdparty/CGAL/include/CGAL/Mean_curvature_flow_skeletonization.h +++ b/thirdparty/CGAL/include/CGAL/Mean_curvature_flow_skeletonization.h @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Surface_mesh_skeletonization/include/CGAL/Mean_curvature_flow_skeletonization.h $ -// $Id: Mean_curvature_flow_skeletonization.h 936968f 2021-09-06T10:38:24+02:00 Dmitry Anisimov +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Surface_mesh_skeletonization/include/CGAL/Mean_curvature_flow_skeletonization.h $ +// $Id: Mean_curvature_flow_skeletonization.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) : Xiang Gao @@ -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 @@ std::size_t collapse_short_edges(); 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 @@ std::size_t collapse_short_edges(); 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 @@ std::size_t collapse_short_edges(); 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 @@ std::size_t collapse_short_edges(); { 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 @@ std::size_t collapse_short_edges(); 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 --git a/thirdparty/CGAL/include/CGAL/Memory_sizer.h b/thirdparty/CGAL/include/CGAL/Memory_sizer.h index 8dc90d26..9dc61e4c 100644 --- a/thirdparty/CGAL/include/CGAL/Memory_sizer.h +++ b/thirdparty/CGAL/include/CGAL/Memory_sizer.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_2/Clusters.h b/thirdparty/CGAL/include/CGAL/Mesh_2/Clusters.h index 1c0261f3..5a4dcc45 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_2/Clusters.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_2/Clusters.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_2/Do_not_refine_edges.h b/thirdparty/CGAL/include/CGAL/Mesh_2/Do_not_refine_edges.h index d73c5759..78a65eeb 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_2/Do_not_refine_edges.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_2/Do_not_refine_edges.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_2/Face_badness.h b/thirdparty/CGAL/include/CGAL/Mesh_2/Face_badness.h index 85888525..8ab156cb 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_2/Face_badness.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_2/Face_badness.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_2/Lipschitz_sizing_field_2.h b/thirdparty/CGAL/include/CGAL/Mesh_2/Lipschitz_sizing_field_2.h index 50b41261..3825a084 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_2/Lipschitz_sizing_field_2.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_2/Lipschitz_sizing_field_2.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_2/Lloyd_move_2.h b/thirdparty/CGAL/include/CGAL/Mesh_2/Lloyd_move_2.h index a9782c4e..c107de8a 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_2/Lloyd_move_2.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_2/Lloyd_move_2.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_2/Mesh_global_optimizer_2.h b/thirdparty/CGAL/include/CGAL/Mesh_2/Mesh_global_optimizer_2.h index c9ceafae..a0f1c416 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_2/Mesh_global_optimizer_2.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_2/Mesh_global_optimizer_2.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_2/Mesh_sizing_field.h b/thirdparty/CGAL/include/CGAL/Mesh_2/Mesh_sizing_field.h index 363153f1..47e3badf 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_2/Mesh_sizing_field.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_2/Mesh_sizing_field.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_2/Output_stream.h b/thirdparty/CGAL/include/CGAL/Mesh_2/Output_stream.h index 63a62621..274abdae 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_2/Output_stream.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_2/Output_stream.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_2/Refine_edges.h b/thirdparty/CGAL/include/CGAL/Mesh_2/Refine_edges.h index a0f8bf23..43536fbb 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_2/Refine_edges.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_2/Refine_edges.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_2/Refine_edges_visitor.h b/thirdparty/CGAL/include/CGAL/Mesh_2/Refine_edges_visitor.h index c1ecf2a6..9f079276 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_2/Refine_edges_visitor.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_2/Refine_edges_visitor.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_2/Refine_edges_with_clusters.h b/thirdparty/CGAL/include/CGAL/Mesh_2/Refine_edges_with_clusters.h index bcd8362d..34cb235a 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_2/Refine_edges_with_clusters.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_2/Refine_edges_with_clusters.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_2/Refine_faces.h b/thirdparty/CGAL/include/CGAL/Mesh_2/Refine_faces.h index cdb1cd33..a5498949 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_2/Refine_faces.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_2/Refine_faces.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_2/Sizing_field_2.h b/thirdparty/CGAL/include/CGAL/Mesh_2/Sizing_field_2.h index 9ac2db4c..220f0559 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_2/Sizing_field_2.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_2/Sizing_field_2.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_2/Uniform_sizing_field_2.h b/thirdparty/CGAL/include/CGAL/Mesh_2/Uniform_sizing_field_2.h index 27bb6707..5f921e2e 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_2/Uniform_sizing_field_2.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_2/Uniform_sizing_field_2.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/C3T3_helpers.h b/thirdparty/CGAL/include/CGAL/Mesh_3/C3T3_helpers.h index 71dc9a99..52ccdb45 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/C3T3_helpers.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/C3T3_helpers.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/Cell_criteria_visitor_with_balls.h b/thirdparty/CGAL/include/CGAL/Mesh_3/Cell_criteria_visitor_with_balls.h index 0bd39f93..b99bfe9f 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/Cell_criteria_visitor_with_balls.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/Cell_criteria_visitor_with_balls.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/Concurrent_mesher_config.h b/thirdparty/CGAL/include/CGAL/Mesh_3/Concurrent_mesher_config.h index 89c5e040..b770bc80 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/Concurrent_mesher_config.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/Concurrent_mesher_config.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/Dump_c3t3.h b/thirdparty/CGAL/include/CGAL/Mesh_3/Dump_c3t3.h index 3d44c66e..cf2553d8 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/Dump_c3t3.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/Dump_c3t3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/Facet_criteria_visitor_with_balls.h b/thirdparty/CGAL/include/CGAL/Mesh_3/Facet_criteria_visitor_with_balls.h index 4220f7b0..54362e43 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/Facet_criteria_visitor_with_balls.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/Facet_criteria_visitor_with_balls.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/Facet_on_same_surface_criterion.h b/thirdparty/CGAL/include/CGAL/Mesh_3/Facet_on_same_surface_criterion.h index 95157478..5280cd32 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/Facet_on_same_surface_criterion.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/Facet_on_same_surface_criterion.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/Has_features.h b/thirdparty/CGAL/include/CGAL/Mesh_3/Has_features.h index bbe22454..c90ca989 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/Has_features.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/Has_features.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/Image_plus_weights_to_labeled_function_wrapper.h b/thirdparty/CGAL/include/CGAL/Mesh_3/Image_plus_weights_to_labeled_function_wrapper.h index 5b5ebd1c..20a5a1f4 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/Image_plus_weights_to_labeled_function_wrapper.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/Image_plus_weights_to_labeled_function_wrapper.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/Image_to_labeled_function_wrapper.h b/thirdparty/CGAL/include/CGAL/Mesh_3/Image_to_labeled_function_wrapper.h index 34493428..d3e37550 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/Image_to_labeled_function_wrapper.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/Image_to_labeled_function_wrapper.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/Implicit_surface_mesher_visitor.h b/thirdparty/CGAL/include/CGAL/Mesh_3/Implicit_surface_mesher_visitor.h index ae182c88..214bd397 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/Implicit_surface_mesher_visitor.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/Implicit_surface_mesher_visitor.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/Is_mesh_domain_field_3.h b/thirdparty/CGAL/include/CGAL/Mesh_3/Is_mesh_domain_field_3.h index 4d9cec48..a3e326bc 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/Is_mesh_domain_field_3.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/Is_mesh_domain_field_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/Lloyd_move.h b/thirdparty/CGAL/include/CGAL/Mesh_3/Lloyd_move.h index bcbc30a0..8a0ec7d0 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/Lloyd_move.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/Lloyd_move.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/Mesh_complex_3_in_triangulation_3_base.h b/thirdparty/CGAL/include/CGAL/Mesh_3/Mesh_complex_3_in_triangulation_3_base.h index 9ce78bda..de9cad26 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/Mesh_complex_3_in_triangulation_3_base.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/Mesh_complex_3_in_triangulation_3_base.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/Mesh_complex_3_in_triangulation_3_fwd.h b/thirdparty/CGAL/include/CGAL/Mesh_3/Mesh_complex_3_in_triangulation_3_fwd.h index 3edbc922..f575bac7 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/Mesh_complex_3_in_triangulation_3_fwd.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/Mesh_complex_3_in_triangulation_3_fwd.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/Mesh_global_optimizer.h b/thirdparty/CGAL/include/CGAL/Mesh_3/Mesh_global_optimizer.h index a0854d17..8b0a0da0 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/Mesh_global_optimizer.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/Mesh_global_optimizer.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ update_mesh(const Moves_vector& moves, 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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/Mesh_sizing_field.h b/thirdparty/CGAL/include/CGAL/Mesh_3/Mesh_sizing_field.h index bf691c54..6835b0d6 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/Mesh_sizing_field.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/Mesh_sizing_field.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/Mesh_surface_cell_base_3.h b/thirdparty/CGAL/include/CGAL/Mesh_3/Mesh_surface_cell_base_3.h index d05c6ba6..b79b340b 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/Mesh_surface_cell_base_3.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/Mesh_surface_cell_base_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/Mesher_3.h b/thirdparty/CGAL/include/CGAL/Mesh_3/Mesher_3.h index bec42847..26611965 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/Mesher_3.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/Mesher_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/Mesher_level.h b/thirdparty/CGAL/include/CGAL/Mesh_3/Mesher_level.h index 0013442f..5fd2165a 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/Mesher_level.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/Mesher_level.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/Mesher_level_default_implementations.h b/thirdparty/CGAL/include/CGAL/Mesh_3/Mesher_level_default_implementations.h index cb69f1ed..63e12bd5 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/Mesher_level_default_implementations.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/Mesher_level_default_implementations.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/Null_exuder_visitor.h b/thirdparty/CGAL/include/CGAL/Mesh_3/Null_exuder_visitor.h index 5c8841ed..c568fa73 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/Null_exuder_visitor.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/Null_exuder_visitor.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/Null_global_optimizer_visitor.h b/thirdparty/CGAL/include/CGAL/Mesh_3/Null_global_optimizer_visitor.h index ecc9b88f..aa2e3d14 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/Null_global_optimizer_visitor.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/Null_global_optimizer_visitor.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/Null_perturber_visitor.h b/thirdparty/CGAL/include/CGAL/Mesh_3/Null_perturber_visitor.h index 0c63608e..e968c8f7 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/Null_perturber_visitor.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/Null_perturber_visitor.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/Odt_move.h b/thirdparty/CGAL/include/CGAL/Mesh_3/Odt_move.h index 20ff3bfb..c27b5e3f 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/Odt_move.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/Odt_move.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/Poisson_refine_cells_3.h b/thirdparty/CGAL/include/CGAL/Mesh_3/Poisson_refine_cells_3.h index d3a682e3..702ec30d 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/Poisson_refine_cells_3.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/Poisson_refine_cells_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/Polyline_with_context.h b/thirdparty/CGAL/include/CGAL/Mesh_3/Polyline_with_context.h index 5a32137d..9b392529 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/Polyline_with_context.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/Polyline_with_context.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/Profile_counter.h b/thirdparty/CGAL/include/CGAL/Mesh_3/Profile_counter.h index 8d29606b..5d6a389a 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/Profile_counter.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/Profile_counter.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/Profiling_tools.h b/thirdparty/CGAL/include/CGAL/Mesh_3/Profiling_tools.h index 44615834..aa351e43 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/Profiling_tools.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/Profiling_tools.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/Protect_edges_sizing_field.h b/thirdparty/CGAL/include/CGAL/Mesh_3/Protect_edges_sizing_field.h index c7551bd8..8c41953d 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/Protect_edges_sizing_field.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/Protect_edges_sizing_field.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/Refine_cells_3.h b/thirdparty/CGAL/include/CGAL/Mesh_3/Refine_cells_3.h index 4a7f6aa3..6732a1a7 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/Refine_cells_3.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/Refine_cells_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/Refine_facets_3.h b/thirdparty/CGAL/include/CGAL/Mesh_3/Refine_facets_3.h index 37980ec2..824a0366 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/Refine_facets_3.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/Refine_facets_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/Refine_facets_manifold_base.h b/thirdparty/CGAL/include/CGAL/Mesh_3/Refine_facets_manifold_base.h index 07dede47..08061eaa 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/Refine_facets_manifold_base.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/Refine_facets_manifold_base.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/Refine_tets_visitor.h b/thirdparty/CGAL/include/CGAL/Mesh_3/Refine_tets_visitor.h index bf90da51..ff027184 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/Refine_tets_visitor.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/Refine_tets_visitor.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/Robust_intersection_kernel.h b/thirdparty/CGAL/include/CGAL/Mesh_3/Robust_intersection_kernel.h index fa97b792..feeefe2f 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/Robust_intersection_kernel.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/Robust_intersection_kernel.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/Robust_intersection_traits_3.h b/thirdparty/CGAL/include/CGAL/Mesh_3/Robust_intersection_traits_3.h index 6601da00..f7419c8a 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/Robust_intersection_traits_3.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/Robust_intersection_traits_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/Sizing_grid.h b/thirdparty/CGAL/include/CGAL/Mesh_3/Sizing_grid.h index 74aa4b18..692cef89 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/Sizing_grid.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/Sizing_grid.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Mesh_3/include/CGAL/Mesh_3/Sizing_grid.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/Sizing_grid.h $ // $Id: Sizing_grid.h e9d41d7 2020-04-21T10:03:00+02:00 Maxime Gimeno // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff --git a/thirdparty/CGAL/include/CGAL/Mesh_3/Sliver_perturber.h b/thirdparty/CGAL/include/CGAL/Mesh_3/Sliver_perturber.h index 06dbde39..07be1b3f 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/Sliver_perturber.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/Sliver_perturber.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Mesh_3/include/CGAL/Mesh_3/Sliver_perturber.h $ -// $Id: Sliver_perturber.h 590ddf8 2021-10-08T15:38:47+02:00 Mael Rouxel-Labbé +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Mesh_3/include/CGAL/Mesh_3/Sliver_perturber.h $ +// $Id: Sliver_perturber.h f26de8e 2021-11-30T13:20:15+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -57,14 +57,7 @@ #endif #include -#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 @@ class Sliver_perturber }; 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 @@ perturb(const FT& sliver_bound, PQueue& pqueue, Visitor& visitor) const { 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 @@ perturb(const FT& sliver_bound, PQueue& pqueue, Visitor& visitor) const 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 @@ update_priority_queue(const PVertex& pv, PQueue& pqueue) const } else { - pqueue.remove(pv); + pqueue.erase(pv); return -1; } } diff --git a/thirdparty/CGAL/include/CGAL/Mesh_3/Slivers_exuder.h b/thirdparty/CGAL/include/CGAL/Mesh_3/Slivers_exuder.h index c87189d9..81c409d5 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/Slivers_exuder.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/Slivers_exuder.h @@ -5,7 +5,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/Slivers_exuder_cell_attributes_traits.h b/thirdparty/CGAL/include/CGAL/Mesh_3/Slivers_exuder_cell_attributes_traits.h index a26e29c8..b3ed69b5 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/Slivers_exuder_cell_attributes_traits.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/Slivers_exuder_cell_attributes_traits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/Triangle_accessor_primitive.h b/thirdparty/CGAL/include/CGAL/Mesh_3/Triangle_accessor_primitive.h index 06a9f68f..3d355118 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/Triangle_accessor_primitive.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/Triangle_accessor_primitive.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/Triangulation_helpers.h b/thirdparty/CGAL/include/CGAL/Mesh_3/Triangulation_helpers.h index 40c371f2..1cee3aa7 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/Triangulation_helpers.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/Triangulation_helpers.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/Triangulation_sizing_field.h b/thirdparty/CGAL/include/CGAL/Mesh_3/Triangulation_sizing_field.h index 7ea609eb..6311fce6 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/Triangulation_sizing_field.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/Triangulation_sizing_field.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/Uniform_sizing_field.h b/thirdparty/CGAL/include/CGAL/Mesh_3/Uniform_sizing_field.h index e26a8bf4..78940f5d 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/Uniform_sizing_field.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/Uniform_sizing_field.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/Worksharing_data_structures.h b/thirdparty/CGAL/include/CGAL/Mesh_3/Worksharing_data_structures.h index 6370c1ec..3f2f1706 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/Worksharing_data_structures.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/Worksharing_data_structures.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/config.h b/thirdparty/CGAL/include/CGAL/Mesh_3/config.h index 536b4beb..144d5a97 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/config.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/config.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/dihedral_angle_3.h b/thirdparty/CGAL/include/CGAL/Mesh_3/dihedral_angle_3.h index 2f07f21c..694c1495 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/dihedral_angle_3.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/dihedral_angle_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/experimental/AABB_filtered_projection_traits.h b/thirdparty/CGAL/include/CGAL/Mesh_3/experimental/AABB_filtered_projection_traits.h index 7b7e92a9..757470a2 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/experimental/AABB_filtered_projection_traits.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/experimental/AABB_filtered_projection_traits.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/experimental/Facet_patch_id_map.h b/thirdparty/CGAL/include/CGAL/Mesh_3/experimental/Facet_patch_id_map.h index 1a8340d8..2195966c 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/experimental/Facet_patch_id_map.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/experimental/Facet_patch_id_map.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/experimental/Facet_topological_criterion_with_adjacency.h b/thirdparty/CGAL/include/CGAL/Mesh_3/experimental/Facet_topological_criterion_with_adjacency.h index a0e7bcc8..b7bcf067 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/experimental/Facet_topological_criterion_with_adjacency.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/experimental/Facet_topological_criterion_with_adjacency.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/experimental/Get_curve_index.h b/thirdparty/CGAL/include/CGAL/Mesh_3/experimental/Get_curve_index.h index 0325011d..cb3a28c7 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/experimental/Get_curve_index.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/experimental/Get_curve_index.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/experimental/Get_facet_patch_id.h b/thirdparty/CGAL/include/CGAL/Mesh_3/experimental/Get_facet_patch_id.h index e142fcc3..e80298de 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/experimental/Get_facet_patch_id.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/experimental/Get_facet_patch_id.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace CGAL { namespace Mesh_3 { // 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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/experimental/Lipschitz_sizing_experimental.h b/thirdparty/CGAL/include/CGAL/Mesh_3/experimental/Lipschitz_sizing_experimental.h index 222f4bd3..6e96432d 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/experimental/Lipschitz_sizing_experimental.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/experimental/Lipschitz_sizing_experimental.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Lipschitz_sizing #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 @@ class Lipschitz_sizing } #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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/experimental/Lipschitz_sizing_parameters.h b/thirdparty/CGAL/include/CGAL/Mesh_3/experimental/Lipschitz_sizing_parameters.h index 9fe99da1..92190538 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/experimental/Lipschitz_sizing_parameters.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/experimental/Lipschitz_sizing_parameters.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/experimental/Lipschitz_sizing_polyhedron.h b/thirdparty/CGAL/include/CGAL/Mesh_3/experimental/Lipschitz_sizing_polyhedron.h index c80d38bb..50ab6b41 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/experimental/Lipschitz_sizing_polyhedron.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/experimental/Lipschitz_sizing_polyhedron.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/experimental/Sizing_field_minimum.h b/thirdparty/CGAL/include/CGAL/Mesh_3/experimental/Sizing_field_minimum.h index 68ef15b2..5dcd88da 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/experimental/Sizing_field_minimum.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/experimental/Sizing_field_minimum.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/experimental/Sizing_field_with_aabb_tree.h b/thirdparty/CGAL/include/CGAL/Mesh_3/experimental/Sizing_field_with_aabb_tree.h index 086a328c..9d660647 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/experimental/Sizing_field_with_aabb_tree.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/experimental/Sizing_field_with_aabb_tree.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/generate_label_weights.h b/thirdparty/CGAL/include/CGAL/Mesh_3/generate_label_weights.h index 33637215..160ba9bf 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/generate_label_weights.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/generate_label_weights.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ CGAL::Image_3 generate_label_weights_with_known_word_type(const CGAL::Image_3& i /// @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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/initialize_triangulation_from_gray_image.h b/thirdparty/CGAL/include/CGAL/Mesh_3/initialize_triangulation_from_gray_image.h index 3bd09a1a..8e43de52 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/initialize_triangulation_from_gray_image.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/initialize_triangulation_from_gray_image.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/initialize_triangulation_from_labeled_image.h b/thirdparty/CGAL/include/CGAL/Mesh_3/initialize_triangulation_from_labeled_image.h index 169a78e4..ef2f3294 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/initialize_triangulation_from_labeled_image.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/initialize_triangulation_from_labeled_image.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/internal/Boundary_of_subdomain_of_complex_3_in_triangulation_3_to_off.h b/thirdparty/CGAL/include/CGAL/Mesh_3/internal/Boundary_of_subdomain_of_complex_3_in_triangulation_3_to_off.h index f443a132..47f672ff 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/internal/Boundary_of_subdomain_of_complex_3_in_triangulation_3_to_off.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/internal/Boundary_of_subdomain_of_complex_3_in_triangulation_3_to_off.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/internal/Graph_manipulations.h b/thirdparty/CGAL/include/CGAL/Mesh_3/internal/Graph_manipulations.h index e5e42437..2637ac19 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/internal/Graph_manipulations.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/internal/Graph_manipulations.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/internal/Handle_IO_for_pair_of_int.h b/thirdparty/CGAL/include/CGAL/Mesh_3/internal/Handle_IO_for_pair_of_int.h index dba294ac..37ccc326 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/internal/Handle_IO_for_pair_of_int.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/internal/Handle_IO_for_pair_of_int.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/internal/check_weights.h b/thirdparty/CGAL/include/CGAL/Mesh_3/internal/check_weights.h index f55a2146..7d1e8904 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/internal/check_weights.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/internal/check_weights.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/internal/helpers.h b/thirdparty/CGAL/include/CGAL/Mesh_3/internal/helpers.h index 7685aee0..28696b05 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/internal/helpers.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/internal/helpers.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/internal/indices_management.h b/thirdparty/CGAL/include/CGAL/Mesh_3/internal/indices_management.h index e9481892..cffd82b3 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/internal/indices_management.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/internal/indices_management.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/io_signature.h b/thirdparty/CGAL/include/CGAL/Mesh_3/io_signature.h index bc10f60f..e6cd931e 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/io_signature.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/io_signature.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/mesh_standard_cell_criteria.h b/thirdparty/CGAL/include/CGAL/Mesh_3/mesh_standard_cell_criteria.h index dd9f58ea..c4a32c09 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/mesh_standard_cell_criteria.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/mesh_standard_cell_criteria.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/mesh_standard_criteria.h b/thirdparty/CGAL/include/CGAL/Mesh_3/mesh_standard_criteria.h index 3e197218..057c4739 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/mesh_standard_criteria.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/mesh_standard_criteria.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/mesh_standard_facet_criteria.h b/thirdparty/CGAL/include/CGAL/Mesh_3/mesh_standard_facet_criteria.h index 99f05ab3..184b7545 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/mesh_standard_facet_criteria.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/mesh_standard_facet_criteria.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/min_dihedral_angle.h b/thirdparty/CGAL/include/CGAL/Mesh_3/min_dihedral_angle.h index e9f539ed..ae2ace10 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/min_dihedral_angle.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/min_dihedral_angle.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/parameters_defaults.h b/thirdparty/CGAL/include/CGAL/Mesh_3/parameters_defaults.h index f5aa7a9f..01ccabdb 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/parameters_defaults.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/parameters_defaults.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 lloyd_convergence_ratio = 0.02; 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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/polyhedral_to_labeled_function_wrapper.h b/thirdparty/CGAL/include/CGAL/Mesh_3/polyhedral_to_labeled_function_wrapper.h index 01713470..79f59ac2 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/polyhedral_to_labeled_function_wrapper.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/polyhedral_to_labeled_function_wrapper.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/polylines_to_protect.h b/thirdparty/CGAL/include/CGAL/Mesh_3/polylines_to_protect.h index c8d4c473..568d0a23 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/polylines_to_protect.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/polylines_to_protect.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ struct Polyline_visitor 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 @@ struct Angle_tester 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 @@ template >& 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 @@ polylines_to_protect(std::vector >& polylines, 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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/radius_ratio.h b/thirdparty/CGAL/include/CGAL/Mesh_3/radius_ratio.h index c0bb2d15..6ff8fe0c 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/radius_ratio.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/radius_ratio.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_3/search_for_connected_components_in_labeled_image.h b/thirdparty/CGAL/include/CGAL/Mesh_3/search_for_connected_components_in_labeled_image.h index 201e46a3..f25ca944 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_3/search_for_connected_components_in_labeled_image.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_3/search_for_connected_components_in_labeled_image.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ search_for_connected_components_in_labeled_image(const CGAL::Image_3& image, for(uint i=0; i 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)); + 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) + { + Vertex_handle vi = c->vertex(i); + vi->set_meshing_info(vi->meshing_info() + 1); + } + } - 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) + 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) { - 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 = 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 --git a/thirdparty/CGAL/include/CGAL/Mesh_constant_domain_field_3.h b/thirdparty/CGAL/include/CGAL/Mesh_constant_domain_field_3.h index 3c58251f..d8dc96fb 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_constant_domain_field_3.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_constant_domain_field_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_criteria_3.h b/thirdparty/CGAL/include/CGAL/Mesh_criteria_3.h index 7a9beb82..c0da3361 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_criteria_3.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_criteria_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_domain_with_polyline_features_3.h b/thirdparty/CGAL/include/CGAL/Mesh_domain_with_polyline_features_3.h index 2b9a43a6..fc15e772 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_domain_with_polyline_features_3.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_domain_with_polyline_features_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_edge_criteria_3.h b/thirdparty/CGAL/include/CGAL/Mesh_edge_criteria_3.h index 05bb18f4..982b9889 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_edge_criteria_3.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_edge_criteria_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_error_code.h b/thirdparty/CGAL/include/CGAL/Mesh_error_code.h index 0064e7da..d4e550a6 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_error_code.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_error_code.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_facet_criteria_3.h b/thirdparty/CGAL/include/CGAL/Mesh_facet_criteria_3.h index f9193e68..af64a6ef 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_facet_criteria_3.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_facet_criteria_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_facet_topology.h b/thirdparty/CGAL/include/CGAL/Mesh_facet_topology.h index 4e2094ab..536bccc2 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_facet_topology.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_facet_topology.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_optimization_return_code.h b/thirdparty/CGAL/include/CGAL/Mesh_optimization_return_code.h index 3426f592..c1b5fd71 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_optimization_return_code.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_optimization_return_code.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_polyhedron_3.h b/thirdparty/CGAL/include/CGAL/Mesh_polyhedron_3.h index 4c79831c..a0ff34b6 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_polyhedron_3.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_polyhedron_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_triangulation_3.h b/thirdparty/CGAL/include/CGAL/Mesh_triangulation_3.h index e31d80c2..cefea660 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_triangulation_3.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_triangulation_3.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesh_vertex_base_3.h b/thirdparty/CGAL/include/CGAL/Mesh_vertex_base_3.h index 49605c7d..63018c3e 100644 --- a/thirdparty/CGAL/include/CGAL/Mesh_vertex_base_3.h +++ b/thirdparty/CGAL/include/CGAL/Mesh_vertex_base_3.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesher_level.h b/thirdparty/CGAL/include/CGAL/Mesher_level.h index 04880c30..32e86502 100644 --- a/thirdparty/CGAL/include/CGAL/Mesher_level.h +++ b/thirdparty/CGAL/include/CGAL/Mesher_level.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesher_level_default_implementations.h b/thirdparty/CGAL/include/CGAL/Mesher_level_default_implementations.h index 5334f142..b1874ee6 100644 --- a/thirdparty/CGAL/include/CGAL/Mesher_level_default_implementations.h +++ b/thirdparty/CGAL/include/CGAL/Mesher_level_default_implementations.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mesher_level_visitors.h b/thirdparty/CGAL/include/CGAL/Mesher_level_visitors.h index 8d43deab..2de3b488 100644 --- a/thirdparty/CGAL/include/CGAL/Mesher_level_visitors.h +++ b/thirdparty/CGAL/include/CGAL/Mesher_level_visitors.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Meshes/Double_map_container.h b/thirdparty/CGAL/include/CGAL/Meshes/Double_map_container.h index 823396c0..c5ddba46 100644 --- a/thirdparty/CGAL/include/CGAL/Meshes/Double_map_container.h +++ b/thirdparty/CGAL/include/CGAL/Meshes/Double_map_container.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Meshes/Filtered_deque_container.h b/thirdparty/CGAL/include/CGAL/Meshes/Filtered_deque_container.h index 2d3d2206..4b942f28 100644 --- a/thirdparty/CGAL/include/CGAL/Meshes/Filtered_deque_container.h +++ b/thirdparty/CGAL/include/CGAL/Meshes/Filtered_deque_container.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Meshes/Filtered_multimap_container.h b/thirdparty/CGAL/include/CGAL/Meshes/Filtered_multimap_container.h index b6c776e9..1ed28f5f 100644 --- a/thirdparty/CGAL/include/CGAL/Meshes/Filtered_multimap_container.h +++ b/thirdparty/CGAL/include/CGAL/Meshes/Filtered_multimap_container.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Meshes/Filtered_queue_container.h b/thirdparty/CGAL/include/CGAL/Meshes/Filtered_queue_container.h index a47923fa..45c2f7c8 100644 --- a/thirdparty/CGAL/include/CGAL/Meshes/Filtered_queue_container.h +++ b/thirdparty/CGAL/include/CGAL/Meshes/Filtered_queue_container.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Meshes/Simple_map_container.h b/thirdparty/CGAL/include/CGAL/Meshes/Simple_map_container.h index b1e08e1d..52ad929a 100644 --- a/thirdparty/CGAL/include/CGAL/Meshes/Simple_map_container.h +++ b/thirdparty/CGAL/include/CGAL/Meshes/Simple_map_container.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Meshes/Simple_queue_container.h b/thirdparty/CGAL/include/CGAL/Meshes/Simple_queue_container.h index 8d9c4281..d178f199 100644 --- a/thirdparty/CGAL/include/CGAL/Meshes/Simple_queue_container.h +++ b/thirdparty/CGAL/include/CGAL/Meshes/Simple_queue_container.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Meshes/Simple_set_container.h b/thirdparty/CGAL/include/CGAL/Meshes/Simple_set_container.h index 3b5440db..98357f98 100644 --- a/thirdparty/CGAL/include/CGAL/Meshes/Simple_set_container.h +++ b/thirdparty/CGAL/include/CGAL/Meshes/Simple_set_container.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Meshes/Triangulation_mesher_level_traits_2.h b/thirdparty/CGAL/include/CGAL/Meshes/Triangulation_mesher_level_traits_2.h index 89eca47c..e9d27227 100644 --- a/thirdparty/CGAL/include/CGAL/Meshes/Triangulation_mesher_level_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Meshes/Triangulation_mesher_level_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Meshes/Triangulation_mesher_level_traits_3.h b/thirdparty/CGAL/include/CGAL/Meshes/Triangulation_mesher_level_traits_3.h index bdd9f412..ddb1b009 100644 --- a/thirdparty/CGAL/include/CGAL/Meshes/Triangulation_mesher_level_traits_3.h +++ b/thirdparty/CGAL/include/CGAL/Meshes/Triangulation_mesher_level_traits_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Min_annulus_d.h b/thirdparty/CGAL/include/CGAL/Min_annulus_d.h index 2c8deb5e..759b9c07 100644 --- a/thirdparty/CGAL/include/CGAL/Min_annulus_d.h +++ b/thirdparty/CGAL/include/CGAL/Min_annulus_d.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Min_circle_2.h b/thirdparty/CGAL/include/CGAL/Min_circle_2.h index 95f9184c..3595bc41 100644 --- a/thirdparty/CGAL/include/CGAL/Min_circle_2.h +++ b/thirdparty/CGAL/include/CGAL/Min_circle_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Min_circle_2/Min_circle_2_adapterC2.h b/thirdparty/CGAL/include/CGAL/Min_circle_2/Min_circle_2_adapterC2.h index b34db0f4..423a91d0 100644 --- a/thirdparty/CGAL/include/CGAL/Min_circle_2/Min_circle_2_adapterC2.h +++ b/thirdparty/CGAL/include/CGAL/Min_circle_2/Min_circle_2_adapterC2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Min_circle_2/Min_circle_2_adapterH2.h b/thirdparty/CGAL/include/CGAL/Min_circle_2/Min_circle_2_adapterH2.h index 009dd1b2..588c229b 100644 --- a/thirdparty/CGAL/include/CGAL/Min_circle_2/Min_circle_2_adapterH2.h +++ b/thirdparty/CGAL/include/CGAL/Min_circle_2/Min_circle_2_adapterH2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Min_circle_2/Min_circle_2_impl.h b/thirdparty/CGAL/include/CGAL/Min_circle_2/Min_circle_2_impl.h index 390f464c..9ec41717 100644 --- a/thirdparty/CGAL/include/CGAL/Min_circle_2/Min_circle_2_impl.h +++ b/thirdparty/CGAL/include/CGAL/Min_circle_2/Min_circle_2_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Min_circle_2/Optimisation_circle_2.h b/thirdparty/CGAL/include/CGAL/Min_circle_2/Optimisation_circle_2.h index 004073f2..cececd88 100644 --- a/thirdparty/CGAL/include/CGAL/Min_circle_2/Optimisation_circle_2.h +++ b/thirdparty/CGAL/include/CGAL/Min_circle_2/Optimisation_circle_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Min_circle_2/Optimisation_circle_2_impl.h b/thirdparty/CGAL/include/CGAL/Min_circle_2/Optimisation_circle_2_impl.h index d9b6a768..a7d44023 100644 --- a/thirdparty/CGAL/include/CGAL/Min_circle_2/Optimisation_circle_2_impl.h +++ b/thirdparty/CGAL/include/CGAL/Min_circle_2/Optimisation_circle_2_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Min_circle_2_traits_2.h b/thirdparty/CGAL/include/CGAL/Min_circle_2_traits_2.h index b6784eec..e045c3e2 100644 --- a/thirdparty/CGAL/include/CGAL/Min_circle_2_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Min_circle_2_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Min_ellipse_2.h b/thirdparty/CGAL/include/CGAL/Min_ellipse_2.h index 84763f9a..09f0039f 100644 --- a/thirdparty/CGAL/include/CGAL/Min_ellipse_2.h +++ b/thirdparty/CGAL/include/CGAL/Min_ellipse_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Min_ellipse_2/Min_ellipse_2_adapterC2.h b/thirdparty/CGAL/include/CGAL/Min_ellipse_2/Min_ellipse_2_adapterC2.h index 5cd36700..1ca3631c 100644 --- a/thirdparty/CGAL/include/CGAL/Min_ellipse_2/Min_ellipse_2_adapterC2.h +++ b/thirdparty/CGAL/include/CGAL/Min_ellipse_2/Min_ellipse_2_adapterC2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Min_ellipse_2/Min_ellipse_2_adapterH2.h b/thirdparty/CGAL/include/CGAL/Min_ellipse_2/Min_ellipse_2_adapterH2.h index 95bbd213..69f09505 100644 --- a/thirdparty/CGAL/include/CGAL/Min_ellipse_2/Min_ellipse_2_adapterH2.h +++ b/thirdparty/CGAL/include/CGAL/Min_ellipse_2/Min_ellipse_2_adapterH2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Min_ellipse_2/Min_ellipse_2_impl.h b/thirdparty/CGAL/include/CGAL/Min_ellipse_2/Min_ellipse_2_impl.h index 472728d9..7701a837 100644 --- a/thirdparty/CGAL/include/CGAL/Min_ellipse_2/Min_ellipse_2_impl.h +++ b/thirdparty/CGAL/include/CGAL/Min_ellipse_2/Min_ellipse_2_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Min_ellipse_2/Optimisation_ellipse_2.h b/thirdparty/CGAL/include/CGAL/Min_ellipse_2/Optimisation_ellipse_2.h index ef558c3b..ad20fd43 100644 --- a/thirdparty/CGAL/include/CGAL/Min_ellipse_2/Optimisation_ellipse_2.h +++ b/thirdparty/CGAL/include/CGAL/Min_ellipse_2/Optimisation_ellipse_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Min_ellipse_2/Optimisation_ellipse_2_impl.h b/thirdparty/CGAL/include/CGAL/Min_ellipse_2/Optimisation_ellipse_2_impl.h index 8267d722..40bebb33 100644 --- a/thirdparty/CGAL/include/CGAL/Min_ellipse_2/Optimisation_ellipse_2_impl.h +++ b/thirdparty/CGAL/include/CGAL/Min_ellipse_2/Optimisation_ellipse_2_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Min_ellipse_2_traits_2.h b/thirdparty/CGAL/include/CGAL/Min_ellipse_2_traits_2.h index ccd85646..db414843 100644 --- a/thirdparty/CGAL/include/CGAL/Min_ellipse_2_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Min_ellipse_2_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Min_quadrilateral_traits_2.h b/thirdparty/CGAL/include/CGAL/Min_quadrilateral_traits_2.h index 895bf287..4c5e8ed8 100644 --- a/thirdparty/CGAL/include/CGAL/Min_quadrilateral_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Min_quadrilateral_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Min_sphere_annulus_d_traits_2.h b/thirdparty/CGAL/include/CGAL/Min_sphere_annulus_d_traits_2.h index a87f4553..9ce3a3c3 100644 --- a/thirdparty/CGAL/include/CGAL/Min_sphere_annulus_d_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Min_sphere_annulus_d_traits_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Min_sphere_annulus_d_traits_3.h b/thirdparty/CGAL/include/CGAL/Min_sphere_annulus_d_traits_3.h index 630c16e9..44269640 100644 --- a/thirdparty/CGAL/include/CGAL/Min_sphere_annulus_d_traits_3.h +++ b/thirdparty/CGAL/include/CGAL/Min_sphere_annulus_d_traits_3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Min_sphere_annulus_d_traits_d.h b/thirdparty/CGAL/include/CGAL/Min_sphere_annulus_d_traits_d.h index 31d52633..757c78fa 100644 --- a/thirdparty/CGAL/include/CGAL/Min_sphere_annulus_d_traits_d.h +++ b/thirdparty/CGAL/include/CGAL/Min_sphere_annulus_d_traits_d.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Min_sphere_d.h b/thirdparty/CGAL/include/CGAL/Min_sphere_d.h index 9170ed00..0b42099b 100644 --- a/thirdparty/CGAL/include/CGAL/Min_sphere_d.h +++ b/thirdparty/CGAL/include/CGAL/Min_sphere_d.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Min_sphere_d/Min_sphere_d_impl.h b/thirdparty/CGAL/include/CGAL/Min_sphere_d/Min_sphere_d_impl.h index 7cbd05b9..9dbd2e13 100644 --- a/thirdparty/CGAL/include/CGAL/Min_sphere_d/Min_sphere_d_impl.h +++ b/thirdparty/CGAL/include/CGAL/Min_sphere_d/Min_sphere_d_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Min_sphere_d/Optimisation_sphere_d.h b/thirdparty/CGAL/include/CGAL/Min_sphere_d/Optimisation_sphere_d.h index 88d1cc49..25bc4d2d 100644 --- a/thirdparty/CGAL/include/CGAL/Min_sphere_d/Optimisation_sphere_d.h +++ b/thirdparty/CGAL/include/CGAL/Min_sphere_d/Optimisation_sphere_d.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Min_sphere_of_points_d_traits_2.h b/thirdparty/CGAL/include/CGAL/Min_sphere_of_points_d_traits_2.h index c21bf1d3..46cbe223 100644 --- a/thirdparty/CGAL/include/CGAL/Min_sphere_of_points_d_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Min_sphere_of_points_d_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Min_sphere_of_points_d_traits_3.h b/thirdparty/CGAL/include/CGAL/Min_sphere_of_points_d_traits_3.h index cd36ff40..01bcd8c4 100644 --- a/thirdparty/CGAL/include/CGAL/Min_sphere_of_points_d_traits_3.h +++ b/thirdparty/CGAL/include/CGAL/Min_sphere_of_points_d_traits_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Min_sphere_of_points_d_traits_d.h b/thirdparty/CGAL/include/CGAL/Min_sphere_of_points_d_traits_d.h index a47ae445..a024b194 100644 --- a/thirdparty/CGAL/include/CGAL/Min_sphere_of_points_d_traits_d.h +++ b/thirdparty/CGAL/include/CGAL/Min_sphere_of_points_d_traits_d.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Min_sphere_of_spheres_d.h b/thirdparty/CGAL/include/CGAL/Min_sphere_of_spheres_d.h index ff7116e5..33a7eb25 100644 --- a/thirdparty/CGAL/include/CGAL/Min_sphere_of_spheres_d.h +++ b/thirdparty/CGAL/include/CGAL/Min_sphere_of_spheres_d.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_configure.h b/thirdparty/CGAL/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_configure.h index 45935e35..8adab4a2 100644 --- a/thirdparty/CGAL/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_configure.h +++ b/thirdparty/CGAL/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_configure.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_impl.h b/thirdparty/CGAL/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_impl.h index 7779bbdb..65d3cc25 100644 --- a/thirdparty/CGAL/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_impl.h +++ b/thirdparty/CGAL/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_pair.h b/thirdparty/CGAL/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_pair.h index 03b01eed..874c9731 100644 --- a/thirdparty/CGAL/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_pair.h +++ b/thirdparty/CGAL/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_pair.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_pivot_impl.h b/thirdparty/CGAL/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_pivot_impl.h index 632f546b..2a8ff941 100644 --- a/thirdparty/CGAL/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_pivot_impl.h +++ b/thirdparty/CGAL/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_pivot_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_support_set.h b/thirdparty/CGAL/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_support_set.h index e665a023..d54386fa 100644 --- a/thirdparty/CGAL/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_support_set.h +++ b/thirdparty/CGAL/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_support_set.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_support_set_impl.h b/thirdparty/CGAL/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_support_set_impl.h index 687c19c0..8b512978 100644 --- a/thirdparty/CGAL/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_support_set_impl.h +++ b/thirdparty/CGAL/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_support_set_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Min_sphere_of_spheres_d_traits_2.h b/thirdparty/CGAL/include/CGAL/Min_sphere_of_spheres_d_traits_2.h index 416dbe3f..d2b3091a 100644 --- a/thirdparty/CGAL/include/CGAL/Min_sphere_of_spheres_d_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Min_sphere_of_spheres_d_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Min_sphere_of_spheres_d_traits_3.h b/thirdparty/CGAL/include/CGAL/Min_sphere_of_spheres_d_traits_3.h index 7b415d3d..7a2f1db1 100644 --- a/thirdparty/CGAL/include/CGAL/Min_sphere_of_spheres_d_traits_3.h +++ b/thirdparty/CGAL/include/CGAL/Min_sphere_of_spheres_d_traits_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Min_sphere_of_spheres_d_traits_d.h b/thirdparty/CGAL/include/CGAL/Min_sphere_of_spheres_d_traits_d.h index ddfb29fb..34650fc8 100644 --- a/thirdparty/CGAL/include/CGAL/Min_sphere_of_spheres_d_traits_d.h +++ b/thirdparty/CGAL/include/CGAL/Min_sphere_of_spheres_d_traits_d.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Minimum_enclosing_quadrilateral_traits_2.h b/thirdparty/CGAL/include/CGAL/Minimum_enclosing_quadrilateral_traits_2.h index 9af1721c..04a6f6cc 100644 --- a/thirdparty/CGAL/include/CGAL/Minimum_enclosing_quadrilateral_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Minimum_enclosing_quadrilateral_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/AABB_collision_detector_2.h b/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/AABB_collision_detector_2.h index b4ba6fb9..37861ad3 100644 --- a/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/AABB_collision_detector_2.h +++ b/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/AABB_collision_detector_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/AABB_node_with_join.h b/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/AABB_node_with_join.h index 4736d7c3..6543f297 100644 --- a/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/AABB_node_with_join.h +++ b/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/AABB_node_with_join.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/AABB_segment_2_primitive.h b/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/AABB_segment_2_primitive.h index 83ca62ed..45ec0ca0 100644 --- a/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/AABB_segment_2_primitive.h +++ b/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/AABB_segment_2_primitive.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/AABB_traits_2.h b/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/AABB_traits_2.h index 375e4832..6d1cf6ba 100644 --- a/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/AABB_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/AABB_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/AABB_traversal_traits_with_join.h b/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/AABB_traversal_traits_with_join.h index 7bb657cd..756f8445 100644 --- a/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/AABB_traversal_traits_with_join.h +++ b/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/AABB_traversal_traits_with_join.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/AABB_tree_with_join.h b/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/AABB_tree_with_join.h index 90db4319..27a07253 100644 --- a/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/AABB_tree_with_join.h +++ b/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/AABB_tree_with_join.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/Approx_offset_base_2.h b/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/Approx_offset_base_2.h index a3b12703..51fb8264 100644 --- a/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/Approx_offset_base_2.h +++ b/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/Approx_offset_base_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/Arr_labeled_traits_2.h b/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/Arr_labeled_traits_2.h index e71cfa80..79cfdc3e 100644 --- a/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/Arr_labeled_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/Arr_labeled_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/Decomposition_strategy_adapter.h b/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/Decomposition_strategy_adapter.h index 6a51ca3e..28886848 100644 --- a/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/Decomposition_strategy_adapter.h +++ b/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/Decomposition_strategy_adapter.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Polygon_decomposition_strategy_adapter { 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 --git a/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/Exact_offset_base_2.h b/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/Exact_offset_base_2.h index 1106d70c..f4bee660 100644 --- a/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/Exact_offset_base_2.h +++ b/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/Exact_offset_base_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/Hole_filter_2.h b/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/Hole_filter_2.h index 4604504b..38e3cd0c 100644 --- a/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/Hole_filter_2.h +++ b/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/Hole_filter_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/Labels.h b/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/Labels.h index 7f47e99c..8e4c6a06 100644 --- a/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/Labels.h +++ b/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/Labels.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/Minkowski_sum_by_reduced_convolution_2.h b/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/Minkowski_sum_by_reduced_convolution_2.h index 111df872..d33d81ce 100644 --- a/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/Minkowski_sum_by_reduced_convolution_2.h +++ b/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/Minkowski_sum_by_reduced_convolution_2.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Minkowski_sum_by_reduced_convolution_2 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 --git a/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/Minkowski_sum_conv_2.h b/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/Minkowski_sum_conv_2.h index 7de49713..d44ababc 100644 --- a/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/Minkowski_sum_conv_2.h +++ b/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/Minkowski_sum_conv_2.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Minkowski_sum_by_convolution_2 { 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 --git a/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/Minkowski_sum_decomp_2.h b/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/Minkowski_sum_decomp_2.h index 8e3d084c..b0b80d40 100644 --- a/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/Minkowski_sum_decomp_2.h +++ b/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/Minkowski_sum_decomp_2.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Minkowski_sum_by_decomposition_2 { 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 @@ class Minkowski_sum_by_decomposition_2 { 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 --git a/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/Offset_conv_2.h b/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/Offset_conv_2.h index 7b2b224b..79f0eed8 100644 --- a/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/Offset_conv_2.h +++ b/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/Offset_conv_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/Offset_decomp_2.h b/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/Offset_decomp_2.h index 360d4fd3..0cb84365 100644 --- a/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/Offset_decomp_2.h +++ b/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/Offset_decomp_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/Polygon_convex_decomposition.h b/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/Polygon_convex_decomposition.h index 0c36ed7a..119fcbd2 100644 --- a/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/Polygon_convex_decomposition.h +++ b/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/Polygon_convex_decomposition.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/Union_of_curve_cycles_2.h b/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/Union_of_curve_cycles_2.h index e3e2650e..0389742b 100644 --- a/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/Union_of_curve_cycles_2.h +++ b/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/Union_of_curve_cycles_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/Union_of_cycles_2.h b/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/Union_of_cycles_2.h index f225f26f..ba81ec40 100644 --- a/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/Union_of_cycles_2.h +++ b/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/Union_of_cycles_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/Union_of_segment_cycles_2.h b/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/Union_of_segment_cycles_2.h index 3a84cb6d..415990b1 100644 --- a/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/Union_of_segment_cycles_2.h +++ b/thirdparty/CGAL/include/CGAL/Minkowski_sum_2/Union_of_segment_cycles_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Minkowski_sum_3/Gaussian_map.h b/thirdparty/CGAL/include/CGAL/Minkowski_sum_3/Gaussian_map.h index cec899aa..873db0e4 100644 --- a/thirdparty/CGAL/include/CGAL/Minkowski_sum_3/Gaussian_map.h +++ b/thirdparty/CGAL/include/CGAL/Minkowski_sum_3/Gaussian_map.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Minkowski_sum_3/Gaussian_map_to_nef_3.h b/thirdparty/CGAL/include/CGAL/Minkowski_sum_3/Gaussian_map_to_nef_3.h index 3c0a4245..9c06f407 100644 --- a/thirdparty/CGAL/include/CGAL/Minkowski_sum_3/Gaussian_map_to_nef_3.h +++ b/thirdparty/CGAL/include/CGAL/Minkowski_sum_3/Gaussian_map_to_nef_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Minkowski_sum_3/PointMark.h b/thirdparty/CGAL/include/CGAL/Minkowski_sum_3/PointMark.h index eec169f3..d25f36c5 100644 --- a/thirdparty/CGAL/include/CGAL/Minkowski_sum_3/PointMark.h +++ b/thirdparty/CGAL/include/CGAL/Minkowski_sum_3/PointMark.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Minkowski_sum_3/bipartite_nary_union_sorted_combined.h b/thirdparty/CGAL/include/CGAL/Minkowski_sum_3/bipartite_nary_union_sorted_combined.h index e96b4b50..f29e8024 100644 --- a/thirdparty/CGAL/include/CGAL/Minkowski_sum_3/bipartite_nary_union_sorted_combined.h +++ b/thirdparty/CGAL/include/CGAL/Minkowski_sum_3/bipartite_nary_union_sorted_combined.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mixed_integer_program_traits.h b/thirdparty/CGAL/include/CGAL/Mixed_integer_program_traits.h index f5f23c29..75869f55 100644 --- a/thirdparty/CGAL/include/CGAL/Mixed_integer_program_traits.h +++ b/thirdparty/CGAL/include/CGAL/Mixed_integer_program_traits.h @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace CGAL { /// 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 --git a/thirdparty/CGAL/include/CGAL/Modifiable_priority_queue.h b/thirdparty/CGAL/include/CGAL/Modifiable_priority_queue.h index 60e1aabf..526139fb 100644 --- a/thirdparty/CGAL/include/CGAL/Modifiable_priority_queue.h +++ b/thirdparty/CGAL/include/CGAL/Modifiable_priority_queue.h @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Modifiable_priority_queue 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 @@ class Modifiable_priority_queue 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 @@ class Modifiable_priority_queue } ; -} //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 --git a/thirdparty/CGAL/include/CGAL/Modifier_base.h b/thirdparty/CGAL/include/CGAL/Modifier_base.h index 0533c67a..674d7424 100644 --- a/thirdparty/CGAL/include/CGAL/Modifier_base.h +++ b/thirdparty/CGAL/include/CGAL/Modifier_base.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Modular_arithmetic/Residue_type.h b/thirdparty/CGAL/include/CGAL/Modular_arithmetic/Residue_type.h index 4c44e23a..5559300a 100644 --- a/thirdparty/CGAL/include/CGAL/Modular_arithmetic/Residue_type.h +++ b/thirdparty/CGAL/include/CGAL/Modular_arithmetic/Residue_type.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Modular_traits.h b/thirdparty/CGAL/include/CGAL/Modular_traits.h index 9a8fc982..e229f8e5 100644 --- a/thirdparty/CGAL/include/CGAL/Modular_traits.h +++ b/thirdparty/CGAL/include/CGAL/Modular_traits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Monge_via_jet_fitting.h b/thirdparty/CGAL/include/CGAL/Monge_via_jet_fitting.h index db1ebec1..f27ba4fa 100644 --- a/thirdparty/CGAL/include/CGAL/Monge_via_jet_fitting.h +++ b/thirdparty/CGAL/include/CGAL/Monge_via_jet_fitting.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Mpzf.h b/thirdparty/CGAL/include/CGAL/Mpzf.h index b9a53363..e9e82a6e 100644 --- a/thirdparty/CGAL/include/CGAL/Mpzf.h +++ b/thirdparty/CGAL/include/CGAL/Mpzf.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Multi_surface_3.h b/thirdparty/CGAL/include/CGAL/Multi_surface_3.h index 6c0c67d6..eaf3a868 100644 --- a/thirdparty/CGAL/include/CGAL/Multi_surface_3.h +++ b/thirdparty/CGAL/include/CGAL/Multi_surface_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Multiscale_sort.h b/thirdparty/CGAL/include/CGAL/Multiscale_sort.h index 578923a7..cdd76253 100644 --- a/thirdparty/CGAL/include/CGAL/Multiscale_sort.h +++ b/thirdparty/CGAL/include/CGAL/Multiscale_sort.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Multiset.h b/thirdparty/CGAL/include/CGAL/Multiset.h index 3ac25b05..205466ec 100644 --- a/thirdparty/CGAL/include/CGAL/Multiset.h +++ b/thirdparty/CGAL/include/CGAL/Multiset.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/NT_converter.h b/thirdparty/CGAL/include/CGAL/NT_converter.h index e614af0c..8aa9e474 100644 --- a/thirdparty/CGAL/include/CGAL/NT_converter.h +++ b/thirdparty/CGAL/include/CGAL/NT_converter.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ struct NT_converter // - 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 @@ struct NT_converter < Interval_nt, Interval_nt > } }; +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 --git a/thirdparty/CGAL/include/CGAL/N_step_adaptor.h b/thirdparty/CGAL/include/CGAL/N_step_adaptor.h index d1446ae3..9d6deb78 100644 --- a/thirdparty/CGAL/include/CGAL/N_step_adaptor.h +++ b/thirdparty/CGAL/include/CGAL/N_step_adaptor.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/N_step_adaptor_derived.h b/thirdparty/CGAL/include/CGAL/N_step_adaptor_derived.h index f39b4d5d..aad7439e 100644 --- a/thirdparty/CGAL/include/CGAL/N_step_adaptor_derived.h +++ b/thirdparty/CGAL/include/CGAL/N_step_adaptor_derived.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/Named_function_parameters.h b/thirdparty/CGAL/include/CGAL/Named_function_parameters.h similarity index 83% rename from thirdparty/CGAL/include/CGAL/boost/graph/Named_function_parameters.h rename to thirdparty/CGAL/include/CGAL/Named_function_parameters.h index d921f6fa..40196eb3 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/Named_function_parameters.h +++ b/thirdparty/CGAL/include/CGAL/Named_function_parameters.h @@ -2,28 +2,36 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 +// $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_BOOST_GRAPH_NAMED_FUNCTION_PARAMS_H -#define CGAL_BOOST_GRAPH_NAMED_FUNCTION_PARAMS_H +#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_BGL_NP_TEMPLATE_PARAMETERS T, typename Tag, typename Base -#define CGAL_BGL_NP_CLASS CGAL::Named_function_parameters +#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{ @@ -36,7 +44,7 @@ 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 +#include #undef CGAL_add_named_parameter template @@ -151,7 +159,7 @@ typename std::conditional::value, get_parameter_impl(const Named_params_impl& np, Tag) { return np.v; -}; +} template typename Get_param, Query_tag>::type @@ -199,7 +207,7 @@ typename std::conditional::value, get_parameter_reference_impl(const Named_params_impl& np, Tag) { return get_reference(np.v); -}; +} template T& @@ -213,7 +221,7 @@ 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 @@ -238,13 +246,6 @@ struct Named_function_parameters 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) \ @@ -255,17 +256,26 @@ struct Named_function_parameters typedef Named_function_parameters Params;\ return Params(k, *this); \ } -#include +#include #undef CGAL_add_named_parameter }; namespace parameters { -Named_function_parameters +typedef Named_function_parameters Default_named_parameters; + +#ifndef CGAL_NO_DEPRECATED_CODE +Default_named_parameters inline all_default() { - typedef Named_function_parameters Params; - return Params(); + return Default_named_parameters(); +} +#endif + +Default_named_parameters +inline default_values() +{ + return Default_named_parameters(); } template @@ -285,7 +295,7 @@ inline no_parameters(Named_function_parameters) typedef Named_function_parameters Params;\ return Params(p); \ } -#include +#include #undef CGAL_add_named_parameter // function to extract a parameter @@ -349,19 +359,28 @@ const T& choose_parameter(const T& t) return t; } -bool inline is_default_parameter(const internal_np::Param_not_found&) +template +struct is_default_parameter { - return true; -} + typedef typename internal_np::Lookup_named_param_def::type NP_type; -template -bool is_default_parameter(const T&) -{ - return false; -} + 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 @@ -376,4 +395,4 @@ namespace boost } #endif -#endif // CGAL_BOOST_GRAPH_NAMED_FUNCTION_PARAMS_HPP +#endif // CGAL_BOOST_FUNCTION_PARAMS_HPP diff --git a/thirdparty/CGAL/include/CGAL/Needs_parens_as_product.h b/thirdparty/CGAL/include/CGAL/Needs_parens_as_product.h index 1f622c29..784f2310 100644 --- a/thirdparty/CGAL/include/CGAL/Needs_parens_as_product.h +++ b/thirdparty/CGAL/include/CGAL/Needs_parens_as_product.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_2/Bounding_box_2.h b/thirdparty/CGAL/include/CGAL/Nef_2/Bounding_box_2.h index 72212636..ef136591 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_2/Bounding_box_2.h +++ b/thirdparty/CGAL/include/CGAL/Nef_2/Bounding_box_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_2/Constrained_triang_traits.h b/thirdparty/CGAL/include/CGAL/Nef_2/Constrained_triang_traits.h index 1c954605..bdbf31f7 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_2/Constrained_triang_traits.h +++ b/thirdparty/CGAL/include/CGAL/Nef_2/Constrained_triang_traits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_2/HDS_items.h b/thirdparty/CGAL/include/CGAL/Nef_2/HDS_items.h index 3dd03324..f9df24ff 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_2/HDS_items.h +++ b/thirdparty/CGAL/include/CGAL/Nef_2/HDS_items.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_2/Line_to_epoint.h b/thirdparty/CGAL/include/CGAL/Nef_2/Line_to_epoint.h index 59342e73..d3e50e43 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_2/Line_to_epoint.h +++ b/thirdparty/CGAL/include/CGAL/Nef_2/Line_to_epoint.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_2/Object_handle.h b/thirdparty/CGAL/include/CGAL/Nef_2/Object_handle.h index e3f6cfbc..52ed88a2 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_2/Object_handle.h +++ b/thirdparty/CGAL/include/CGAL/Nef_2/Object_handle.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_2/Object_index.h b/thirdparty/CGAL/include/CGAL/Nef_2/Object_index.h index 21006135..4eb75ed9 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_2/Object_index.h +++ b/thirdparty/CGAL/include/CGAL/Nef_2/Object_index.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_2/PM_checker.h b/thirdparty/CGAL/include/CGAL/Nef_2/PM_checker.h index edd2acda..162382f4 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_2/PM_checker.h +++ b/thirdparty/CGAL/include/CGAL/Nef_2/PM_checker.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_2/PM_const_decorator.h b/thirdparty/CGAL/include/CGAL/Nef_2/PM_const_decorator.h index c0131ae1..203c0ef6 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_2/PM_const_decorator.h +++ b/thirdparty/CGAL/include/CGAL/Nef_2/PM_const_decorator.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_2/PM_decorator.h b/thirdparty/CGAL/include/CGAL/Nef_2/PM_decorator.h index 74692323..523da8eb 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_2/PM_decorator.h +++ b/thirdparty/CGAL/include/CGAL/Nef_2/PM_decorator.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_2/PM_explorer.h b/thirdparty/CGAL/include/CGAL/Nef_2/PM_explorer.h index ff9b3dd5..ab1e5319 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_2/PM_explorer.h +++ b/thirdparty/CGAL/include/CGAL/Nef_2/PM_explorer.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_2/PM_io_parser.h b/thirdparty/CGAL/include/CGAL/Nef_2/PM_io_parser.h index 950f94e8..b814c86b 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_2/PM_io_parser.h +++ b/thirdparty/CGAL/include/CGAL/Nef_2/PM_io_parser.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_2/PM_overlayer.h b/thirdparty/CGAL/include/CGAL/Nef_2/PM_overlayer.h index 29686c50..98d45b36 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_2/PM_overlayer.h +++ b/thirdparty/CGAL/include/CGAL/Nef_2/PM_overlayer.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_2/PM_persistent_PL.h b/thirdparty/CGAL/include/CGAL/Nef_2/PM_persistent_PL.h index e209c7cc..f3a86dae 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_2/PM_persistent_PL.h +++ b/thirdparty/CGAL/include/CGAL/Nef_2/PM_persistent_PL.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_2/PM_point_locator.h b/thirdparty/CGAL/include/CGAL/Nef_2/PM_point_locator.h index 0cdd05e2..3b669ae9 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_2/PM_point_locator.h +++ b/thirdparty/CGAL/include/CGAL/Nef_2/PM_point_locator.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_2/Polynomial.h b/thirdparty/CGAL/include/CGAL/Nef_2/Polynomial.h index d7a3e196..e60470fe 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_2/Polynomial.h +++ b/thirdparty/CGAL/include/CGAL/Nef_2/Polynomial.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_2/Polynomial_impl.h b/thirdparty/CGAL/include/CGAL/Nef_2/Polynomial_impl.h index e5e53cdd..52912060 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_2/Polynomial_impl.h +++ b/thirdparty/CGAL/include/CGAL/Nef_2/Polynomial_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_2/Segment_overlay_traits.h b/thirdparty/CGAL/include/CGAL/Nef_2/Segment_overlay_traits.h index 1778111f..0ab95016 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_2/Segment_overlay_traits.h +++ b/thirdparty/CGAL/include/CGAL/Nef_2/Segment_overlay_traits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_2/debug.h b/thirdparty/CGAL/include/CGAL/Nef_2/debug.h index aed2fd6c..1c6b7adb 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_2/debug.h +++ b/thirdparty/CGAL/include/CGAL/Nef_2/debug.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_2/gen_point_location.h b/thirdparty/CGAL/include/CGAL/Nef_2/gen_point_location.h index 933b3485..2e44ccfb 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_2/gen_point_location.h +++ b/thirdparty/CGAL/include/CGAL/Nef_2/gen_point_location.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_2/geninfo.h b/thirdparty/CGAL/include/CGAL/Nef_2/geninfo.h index 44fbef8d..851db022 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_2/geninfo.h +++ b/thirdparty/CGAL/include/CGAL/Nef_2/geninfo.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_2/iterator_tools.h b/thirdparty/CGAL/include/CGAL/Nef_2/iterator_tools.h index 5f0f2537..2493a807 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_2/iterator_tools.h +++ b/thirdparty/CGAL/include/CGAL/Nef_2/iterator_tools.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_3/Binary_operation.h b/thirdparty/CGAL/include/CGAL/Nef_3/Binary_operation.h index 9865329b..1d96082c 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_3/Binary_operation.h +++ b/thirdparty/CGAL/include/CGAL/Nef_3/Binary_operation.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Binary_operation : public CGAL::SNC_decorator { 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 @@ class Binary_operation : public CGAL::SNC_decorator { 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 @@ class Binary_operation : public CGAL::SNC_decorator { 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 @@ class Binary_operation : public CGAL::SNC_decorator { 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 @@ class Binary_operation : public CGAL::SNC_decorator { 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 --git a/thirdparty/CGAL/include/CGAL/Nef_3/Bounding_box_3.h b/thirdparty/CGAL/include/CGAL/Nef_3/Bounding_box_3.h index ef28e83e..fa97811f 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_3/Bounding_box_3.h +++ b/thirdparty/CGAL/include/CGAL/Nef_3/Bounding_box_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_3/Combine_with_halfspace.h b/thirdparty/CGAL/include/CGAL/Nef_3/Combine_with_halfspace.h index 0174c15b..84efc9aa 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_3/Combine_with_halfspace.h +++ b/thirdparty/CGAL/include/CGAL/Nef_3/Combine_with_halfspace.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_3/Default_items.h b/thirdparty/CGAL/include/CGAL/Nef_3/Default_items.h index e372587e..4bb819b4 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_3/Default_items.h +++ b/thirdparty/CGAL/include/CGAL/Nef_3/Default_items.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_3/Edge_edge_overlay.h b/thirdparty/CGAL/include/CGAL/Nef_3/Edge_edge_overlay.h index d3e69117..58e58be4 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_3/Edge_edge_overlay.h +++ b/thirdparty/CGAL/include/CGAL/Nef_3/Edge_edge_overlay.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_3/Exact_triangulation_euclidean_traits_xy_3.h b/thirdparty/CGAL/include/CGAL/Nef_3/Exact_triangulation_euclidean_traits_xy_3.h index ce0217d6..53e262a2 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_3/Exact_triangulation_euclidean_traits_xy_3.h +++ b/thirdparty/CGAL/include/CGAL/Nef_3/Exact_triangulation_euclidean_traits_xy_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_3/Exact_triangulation_euclidean_traits_xz_3.h b/thirdparty/CGAL/include/CGAL/Nef_3/Exact_triangulation_euclidean_traits_xz_3.h index f10c6fc5..78d7e070 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_3/Exact_triangulation_euclidean_traits_xz_3.h +++ b/thirdparty/CGAL/include/CGAL/Nef_3/Exact_triangulation_euclidean_traits_xz_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_3/Exact_triangulation_euclidean_traits_yz_3.h b/thirdparty/CGAL/include/CGAL/Nef_3/Exact_triangulation_euclidean_traits_yz_3.h index 7dd407cb..93c278a4 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_3/Exact_triangulation_euclidean_traits_yz_3.h +++ b/thirdparty/CGAL/include/CGAL/Nef_3/Exact_triangulation_euclidean_traits_yz_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_3/Halfedge.h b/thirdparty/CGAL/include/CGAL/Nef_3/Halfedge.h index 71b3f9de..af7f3e10 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_3/Halfedge.h +++ b/thirdparty/CGAL/include/CGAL/Nef_3/Halfedge.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_3/Halffacet.h b/thirdparty/CGAL/include/CGAL/Nef_3/Halffacet.h index d1e06003..3a0762a2 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_3/Halffacet.h +++ b/thirdparty/CGAL/include/CGAL/Nef_3/Halffacet.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_3/ID_support_handler.h b/thirdparty/CGAL/include/CGAL/Nef_3/ID_support_handler.h index 81652d53..a82aba10 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_3/ID_support_handler.h +++ b/thirdparty/CGAL/include/CGAL/Nef_3/ID_support_handler.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class ID_support_handler { } }; 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 @@ class ID_support_handler { 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 --git a/thirdparty/CGAL/include/CGAL/Nef_3/Infimaximal_box.h b/thirdparty/CGAL/include/CGAL/Nef_3/Infimaximal_box.h index 00735184..67393bbb 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_3/Infimaximal_box.h +++ b/thirdparty/CGAL/include/CGAL/Nef_3/Infimaximal_box.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_3/K3_tree.h b/thirdparty/CGAL/include/CGAL/Nef_3/K3_tree.h index e9cbe1d4..bfd737b3 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_3/K3_tree.h +++ b/thirdparty/CGAL/include/CGAL/Nef_3/K3_tree.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ template class K3_tree { -template +template class Smaller_than { public: @@ -59,64 +58,10 @@ class Smaller_than 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 @@ template 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::Aff_transformation_3 Aff_transformation_3; 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 typename Kernel::FT FT; 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 @@ typedef Smaller_than< } -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 @@ friend std::ostream& operator<< ++(*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 @@ else { 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 @@ void divide_segment_by_plane( Segment_3 s, Plane_3 pl, }; }; - 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 @@ void divide_segment_by_plane( Segment_3 s, Plane_3 pl, Node_handle root; - boost::container::deque nodes; + Node_range nodes; int max_depth; Bounding_box_3 bounding_box; @@ -488,87 +358,59 @@ void divide_segment_by_plane( Segment_3 s, Plane_3 pl, 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; - 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); - } + CGAL_forall_edges(e, *W) + edges.push_back(e); - K3_tree(Object_list& objects, Object_iterator& v_end) { + Halffacet_list facets; + facets.reserve(W->number_of_halffacets()); + Halffacet_iterator f; + CGAL_forall_facets(f, *W) + facets.push_back(f); -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); + CGAL_NEF_TRACEN("K3_tree(): n_vertices = " << vertices.size()); + std::frexp( (double) vertices.size(), &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:"<point()); + //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 @@ typename Object_list::difference_type n_vertices = std::distance(objects.begin() 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 @@ std::string dump_object_list( const Object_list& O, int level = 0) { 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()); - - 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; +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); } - if( side == ON_ORIENTED_BOUNDARY) - ++on_oriented_boundary; } - return (on_oriented_boundary != std::distance(start,end)); + return (on_oriented_boundary != l.size()); } +static Point_3 find_median_point(Vertex_list& V, int coord) { + CGAL_assertion(V.size() > 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); + 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); - std::nth_element(start, start+n/2, end, - Smaller_(depth%3)); + return CGAL::midpoint((*median)->point(), (*prev)->point()); +} - 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 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)); } 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 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(); +} + +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: "< 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 @@ create_facet_objects(const Plane_3& plane_supporting_facet, 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 @@ create_facet_objects(const Plane_3& plane_supporting_facet, 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 @@ create_facet_objects(const Plane_3& plane_supporting_facet, // 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 --git a/thirdparty/CGAL/include/CGAL/Nef_3/SNC_SM_explorer.h b/thirdparty/CGAL/include/CGAL/Nef_3/SNC_SM_explorer.h index 7c5f363c..3f9c941b 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_3/SNC_SM_explorer.h +++ b/thirdparty/CGAL/include/CGAL/Nef_3/SNC_SM_explorer.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_3/SNC_SM_overlayer.h b/thirdparty/CGAL/include/CGAL/Nef_3/SNC_SM_overlayer.h index 9096c55c..df5f0179 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_3/SNC_SM_overlayer.h +++ b/thirdparty/CGAL/include/CGAL/Nef_3/SNC_SM_overlayer.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_3/SNC_SM_visualizor.h b/thirdparty/CGAL/include/CGAL/Nef_3/SNC_SM_visualizor.h index 0a46e330..c5660533 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_3/SNC_SM_visualizor.h +++ b/thirdparty/CGAL/include/CGAL/Nef_3/SNC_SM_visualizor.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_3/SNC_const_decorator.h b/thirdparty/CGAL/include/CGAL/Nef_3/SNC_const_decorator.h index c13cf659..01f706a1 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_3/SNC_const_decorator.h +++ b/thirdparty/CGAL/include/CGAL/Nef_3/SNC_const_decorator.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_3/SNC_constructor.h b/thirdparty/CGAL/include/CGAL/Nef_3/SNC_constructor.h index fe4ffa7f..b18fc2d4 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_3/SNC_constructor.h +++ b/thirdparty/CGAL/include/CGAL/Nef_3/SNC_constructor.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class SNC_constructor_base : public SNC_decorator ++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 @@ class SNC_constructor 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 @@ class SNC_constructor 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 @@ class SNC_constructor 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 --git a/thirdparty/CGAL/include/CGAL/Nef_3/SNC_decorator.h b/thirdparty/CGAL/include/CGAL/Nef_3/SNC_decorator.h index ca71708c..38f74f82 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_3/SNC_decorator.h +++ b/thirdparty/CGAL/include/CGAL/Nef_3/SNC_decorator.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class SNC_decorator : public SNC_const_decorator { 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 --git a/thirdparty/CGAL/include/CGAL/Nef_3/SNC_decorator_traits.h b/thirdparty/CGAL/include/CGAL/Nef_3/SNC_decorator_traits.h index 1c45aed9..2d4f0815 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_3/SNC_decorator_traits.h +++ b/thirdparty/CGAL/include/CGAL/Nef_3/SNC_decorator_traits.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class SNC_decorator_traits : public CGAL::SM_decorator_traits { 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 @@ class SNC_decorator_const_traits { 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 --git a/thirdparty/CGAL/include/CGAL/Nef_3/SNC_external_structure.h b/thirdparty/CGAL/include/CGAL/Nef_3/SNC_external_structure.h index 5de8b409..2e7ff7c2 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_3/SNC_external_structure.h +++ b/thirdparty/CGAL/include/CGAL/Nef_3/SNC_external_structure.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class SNC_external_structure_base : public SNC_decorator // 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 @@ class SNC_external_structure_base : public SNC_decorator 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 @@ class SNC_external_structure_base : public SNC_decorator 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 @@ class SNC_external_structure // 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 @@ class SNC_external_structure 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 --git a/thirdparty/CGAL/include/CGAL/Nef_3/SNC_indexed_items.h b/thirdparty/CGAL/include/CGAL/Nef_3/SNC_indexed_items.h index bbc047f7..2be4de7e 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_3/SNC_indexed_items.h +++ b/thirdparty/CGAL/include/CGAL/Nef_3/SNC_indexed_items.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_3/SNC_intersection.h b/thirdparty/CGAL/include/CGAL/Nef_3/SNC_intersection.h index 22ca5b08..fcb59abc 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_3/SNC_intersection.h +++ b/thirdparty/CGAL/include/CGAL/Nef_3/SNC_intersection.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ struct Project_shalfedge_point { }; 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 @@ class SNC_intersection : public SNC_const_decorator { 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; + static bool does_contain_internally(const Point_3& s, + const Point_3& t, + const Point_3& p) { + return are_strictly_ordered_along_line (s, p, t); } - 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)) + static bool does_contain_internally(Halffacet_const_handle f, + const Point_3& p) { + if(!f->plane().has_on(p)) return false; - return (locate_point_in_halffacet( p, f) == CGAL::ON_BOUNDED_SIDE); + return point_in_facet_interior( p, f); } - - 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 "< { 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 @@ class SNC_intersection : public SNC_const_decorator { 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 @@ class SNC_intersection : public SNC_const_decorator { 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 @@ class SNC_intersection : public SNC_const_decorator { 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 --git a/thirdparty/CGAL/include/CGAL/Nef_3/SNC_io_parser.h b/thirdparty/CGAL/include/CGAL/Nef_3/SNC_io_parser.h index 271f9d25..549bdcf9 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_3/SNC_io_parser.h +++ b/thirdparty/CGAL/include/CGAL/Nef_3/SNC_io_parser.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_3/SNC_items.h b/thirdparty/CGAL/include/CGAL/Nef_3/SNC_items.h index 6ec472e2..c3dab852 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_3/SNC_items.h +++ b/thirdparty/CGAL/include/CGAL/Nef_3/SNC_items.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_3/SNC_iteration.h b/thirdparty/CGAL/include/CGAL/Nef_3/SNC_iteration.h index 514ead27..1792d8db 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_3/SNC_iteration.h +++ b/thirdparty/CGAL/include/CGAL/Nef_3/SNC_iteration.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_3/SNC_k3_tree_traits.h b/thirdparty/CGAL/include/CGAL/Nef_3/SNC_k3_tree_traits.h index bfeef1fa..11114ccb 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_3/SNC_k3_tree_traits.h +++ b/thirdparty/CGAL/include/CGAL/Nef_3/SNC_k3_tree_traits.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace CGAL { 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 @@ class ComparePoints { }; -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 @@ class Side_of_plane { 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 @@ class SNC_k3_tree_traits { 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 @@ class SNC_k3_tree_traits { 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 @@ Side_of_plane::operator() 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 @@ Side_of_plane::operator() */ 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 @@ Side_of_plane::operator() 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 @@ Side_of_plane::operator() 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 @@ Side_of_plane::operator() 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 --git a/thirdparty/CGAL/include/CGAL/Nef_3/SNC_list.h b/thirdparty/CGAL/include/CGAL/Nef_3/SNC_list.h index 823f9c08..fce37275 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_3/SNC_list.h +++ b/thirdparty/CGAL/include/CGAL/Nef_3/SNC_list.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class SNC_in_place_list_sm 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 @@ class SNC_in_place_list_halffacet 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 @@ class SNC_in_place_list_volume 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 @@ class SNC_in_place_list_shalfloop 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 @@ class SNC_in_place_list_shalfloop } }; -/* -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 --git a/thirdparty/CGAL/include/CGAL/Nef_3/SNC_point_locator.h b/thirdparty/CGAL/include/CGAL/Nef_3/SNC_point_locator.h index 78d3ac44..b1b2b469 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_3/SNC_point_locator.h +++ b/thirdparty/CGAL/include/CGAL/Nef_3/SNC_point_locator.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class SNC_point_locator 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 @@ class SNC_point_locator 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 @@ class SNC_point_locator_by_spatial_subdivision : 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 @@ class SNC_point_locator_by_spatial_subdivision : 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 @@ class SNC_point_locator_by_spatial_subdivision : } 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(); - - if(candidates.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()); + Node_handle n = candidate_provider->locate_node_containing(p); + typename Vertex_list::const_iterator vi = n->vertices_begin(); + + if(n->empty()) + return make_object(Base(*this).volumes_begin()); + + 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 @@ class SNC_point_locator_by_spatial_subdivision : } } - - 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)); + 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()); } - - 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()); 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 "< { CGAL_NEF_TRACEN(">>> 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 @@ class SNC_simplify_base : public SNC_decorator { 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 @@ class SNC_simplify_base : public SNC_decorator { 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 @@ class SNC_simplify_base : public SNC_decorator { SNC_decorator D(*this->sncp()); Volume_setter setter(D); + setter.reserve(this->sncp()->number_of_sfaces()); SFace_iterator sf; Volume_handle c; diff --git a/thirdparty/CGAL/include/CGAL/Nef_3/SNC_sphere_map.h b/thirdparty/CGAL/include/CGAL/Nef_3/SNC_sphere_map.h index 5ce52aff..5230d1de 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_3/SNC_sphere_map.h +++ b/thirdparty/CGAL/include/CGAL/Nef_3/SNC_sphere_map.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_3/SNC_structure.h b/thirdparty/CGAL/include/CGAL/Nef_3/SNC_structure.h index c605d79d..e715fc75 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_3/SNC_structure.h +++ b/thirdparty/CGAL/include/CGAL/Nef_3/SNC_structure.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ the local graph or added for the comfort of the user.}*/ 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 @@ the local graph or added for the comfort of the user.}*/ 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 @@ the local graph or added for the comfort of the user.}*/ } 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 @@ template 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 --git a/thirdparty/CGAL/include/CGAL/Nef_3/Vertex.h b/thirdparty/CGAL/include/CGAL/Nef_3/Vertex.h index c48ebc0d..405694d8 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_3/Vertex.h +++ b/thirdparty/CGAL/include/CGAL/Nef_3/Vertex.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Vertex_base { 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 --git a/thirdparty/CGAL/include/CGAL/Nef_3/Volume.h b/thirdparty/CGAL/include/CGAL/Nef_3/Volume.h index 8af85e0b..38688b8e 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_3/Volume.h +++ b/thirdparty/CGAL/include/CGAL/Nef_3/Volume.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_3/binop_intersection_tests.h b/thirdparty/CGAL/include/CGAL/Nef_3/binop_intersection_tests.h index a5366575..c7ce4554 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_3/binop_intersection_tests.h +++ b/thirdparty/CGAL/include/CGAL/Nef_3/binop_intersection_tests.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ struct binop_intersection_test_segment_tree { template struct Bop_edge0_face1_callback { - SNC_intersection &is; Callback &cb; struct Pair_hash_function { @@ -57,8 +56,8 @@ struct binop_intersection_test_segment_tree { } }; - 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 @@ struct binop_intersection_test_segment_tree { 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 @@ struct binop_intersection_test_segment_tree { 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 @@ struct binop_intersection_test_segment_tree { 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 @@ struct binop_intersection_test_segment_tree { 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 @@ struct binop_intersection_test_segment_tree { 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 @@ struct binop_intersection_test_segment_tree { 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 @@ struct binop_intersection_test_segment_tree { 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 --git a/thirdparty/CGAL/include/CGAL/Nef_3/bounded_side_3.h b/thirdparty/CGAL/include/CGAL/Nef_3/bounded_side_3.h index 87898eac..98578d4e 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_3/bounded_side_3.h +++ b/thirdparty/CGAL/include/CGAL/Nef_3/bounded_side_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_3/polygon_mesh_to_nef_3.h b/thirdparty/CGAL/include/CGAL/Nef_3/polygon_mesh_to_nef_3.h index 14b6eec8..8c1702ed 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_3/polygon_mesh_to_nef_3.h +++ b/thirdparty/CGAL/include/CGAL/Nef_3/polygon_mesh_to_nef_3.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Nef_3/include/CGAL/Nef_3/polygon_mesh_to_nef_3.h $ -// $Id: polygon_mesh_to_nef_3.h 45800d2 2021-03-24T15:05:22+01:00 Laurent Rineau +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_3/include/CGAL/Nef_3/polygon_mesh_to_nef_3.h $ +// $Id: polygon_mesh_to_nef_3.h f1f201b 2022-06-29T10:47:14+02:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -111,7 +111,7 @@ class Face_graph_index_adder { typedef typename boost::graph_traits::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 @@ class Face_graph_index_adder 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 @@ class Face_graph_index_adder -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 @@ void polygon_mesh_to_nef_3(PolygonMesh& P, SNC_structure& S, FaceIndexMap fimap, 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 @@ void polygon_mesh_to_nef_3(PolygonMesh& P, SNC_structure& S, FaceIndexMap fimap, 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 @@ void polygon_mesh_to_nef_3(PolygonMesh& P, SNC_structure& S, FaceIndexMap fimap, 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 @@ void polygon_mesh_to_nef_3(PolygonMesh& P, SNC_structure& S, FaceIndexMap fimap, 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 --git a/thirdparty/CGAL/include/CGAL/Nef_3/quotient_coordinates_to_homogeneous_point.h b/thirdparty/CGAL/include/CGAL/Nef_3/quotient_coordinates_to_homogeneous_point.h index 0b7ccec1..2a2f9531 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_3/quotient_coordinates_to_homogeneous_point.h +++ b/thirdparty/CGAL/include/CGAL/Nef_3/quotient_coordinates_to_homogeneous_point.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_3/shell_to_nef_3.h b/thirdparty/CGAL/include/CGAL/Nef_3/shell_to_nef_3.h index 1807f98f..79f04881 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_3/shell_to_nef_3.h +++ b/thirdparty/CGAL/include/CGAL/Nef_3/shell_to_nef_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_3/vertex_cycle_to_nef_3.h b/thirdparty/CGAL/include/CGAL/Nef_3/vertex_cycle_to_nef_3.h index d3e54473..b459e437 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_3/vertex_cycle_to_nef_3.h +++ b/thirdparty/CGAL/include/CGAL/Nef_3/vertex_cycle_to_nef_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_S2/Generic_handle_map.h b/thirdparty/CGAL/include/CGAL/Nef_S2/Generic_handle_map.h index 06b59b4e..c55f715c 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_S2/Generic_handle_map.h +++ b/thirdparty/CGAL/include/CGAL/Nef_S2/Generic_handle_map.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Nef_S2/include/CGAL/Nef_S2/Generic_handle_map.h $ +// $URL: https://github.com/CGAL/cgal/blob/v5.5/Nef_S2/include/CGAL/Nef_S2/Generic_handle_map.h $ // $Id: Generic_handle_map.h 77054d4 2021-05-10T18:26:29+01:00 Giles Bathgate // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // diff --git a/thirdparty/CGAL/include/CGAL/Nef_S2/ID_support_handler.h b/thirdparty/CGAL/include/CGAL/Nef_S2/ID_support_handler.h index 721df800..fec86092 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_S2/ID_support_handler.h +++ b/thirdparty/CGAL/include/CGAL/Nef_S2/ID_support_handler.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Nef_S2/include/CGAL/Nef_S2/ID_support_handler.h $ -// $Id: ID_support_handler.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/ID_support_handler.h $ +// $Id: ID_support_handler.h 8770c7a 2022-05-10T12:06:32+01:00 Giles Bathgate // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // @@ -38,6 +38,8 @@ class ID_support_handler { public: ID_support_handler() {} + void reserve(std::size_t) {} + int get_hash(int) { return 0; } template void initialize_hash(Handle /*h*/) {} void initialize_hash(int /*i*/) {} diff --git a/thirdparty/CGAL/include/CGAL/Nef_S2/Normalizing.h b/thirdparty/CGAL/include/CGAL/Nef_S2/Normalizing.h index 1edb47da..9412e6b2 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_S2/Normalizing.h +++ b/thirdparty/CGAL/include/CGAL/Nef_S2/Normalizing.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_S2/OGL_base_object.h b/thirdparty/CGAL/include/CGAL/Nef_S2/OGL_base_object.h index 753d32ee..5c0faf7f 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_S2/OGL_base_object.h +++ b/thirdparty/CGAL/include/CGAL/Nef_S2/OGL_base_object.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_S2/SM_checker.h b/thirdparty/CGAL/include/CGAL/Nef_S2/SM_checker.h index 163a3cb6..adf26976 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_S2/SM_checker.h +++ b/thirdparty/CGAL/include/CGAL/Nef_S2/SM_checker.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_S2/SM_const_decorator.h b/thirdparty/CGAL/include/CGAL/Nef_S2/SM_const_decorator.h index 5184e7a1..5c38f730 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_S2/SM_const_decorator.h +++ b/thirdparty/CGAL/include/CGAL/Nef_S2/SM_const_decorator.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_S2/SM_constrained_triang_traits.h b/thirdparty/CGAL/include/CGAL/Nef_S2/SM_constrained_triang_traits.h index cb347b85..e7dde74d 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_S2/SM_constrained_triang_traits.h +++ b/thirdparty/CGAL/include/CGAL/Nef_S2/SM_constrained_triang_traits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_S2/SM_decorator.h b/thirdparty/CGAL/include/CGAL/Nef_S2/SM_decorator.h index f9c9c20f..9148597d 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_S2/SM_decorator.h +++ b/thirdparty/CGAL/include/CGAL/Nef_S2/SM_decorator.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_S2/SM_decorator_traits.h b/thirdparty/CGAL/include/CGAL/Nef_S2/SM_decorator_traits.h index 2145bf7f..b45282f0 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_S2/SM_decorator_traits.h +++ b/thirdparty/CGAL/include/CGAL/Nef_S2/SM_decorator_traits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_S2/SM_io_parser.h b/thirdparty/CGAL/include/CGAL/Nef_S2/SM_io_parser.h index bff2a7a2..730dec70 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_S2/SM_io_parser.h +++ b/thirdparty/CGAL/include/CGAL/Nef_S2/SM_io_parser.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_S2/SM_items.h b/thirdparty/CGAL/include/CGAL/Nef_S2/SM_items.h index 68327b74..440eff1c 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_S2/SM_items.h +++ b/thirdparty/CGAL/include/CGAL/Nef_S2/SM_items.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_S2/SM_iteration.h b/thirdparty/CGAL/include/CGAL/Nef_S2/SM_iteration.h index ab50b349..25697586 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_S2/SM_iteration.h +++ b/thirdparty/CGAL/include/CGAL/Nef_S2/SM_iteration.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_S2/SM_list.h b/thirdparty/CGAL/include/CGAL/Nef_S2/SM_list.h index 8e3079cf..0b236387 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_S2/SM_list.h +++ b/thirdparty/CGAL/include/CGAL/Nef_S2/SM_list.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_S2/SM_overlayer.h b/thirdparty/CGAL/include/CGAL/Nef_S2/SM_overlayer.h index 5bb9fda1..a063566a 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_S2/SM_overlayer.h +++ b/thirdparty/CGAL/include/CGAL/Nef_S2/SM_overlayer.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ partition_to_halfsphere(Iterator start, Iterator beyond, Seg_list& L, 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 @@ partition_to_halfsphere(Iterator start, Iterator beyond, Seg_list& L, 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 @@ partition_to_halfsphere(Iterator start, Iterator beyond, Seg_list& L, 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 @@ partition_to_halfsphere(Iterator start, Iterator beyond, Seg_list& L, 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 --git a/thirdparty/CGAL/include/CGAL/Nef_S2/SM_point_locator.h b/thirdparty/CGAL/include/CGAL/Nef_S2/SM_point_locator.h index 4a90f942..6cbc150c 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_S2/SM_point_locator.h +++ b/thirdparty/CGAL/include/CGAL/Nef_S2/SM_point_locator.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_S2/SM_triangulator.h b/thirdparty/CGAL/include/CGAL/Nef_S2/SM_triangulator.h index 0ee4fa4e..37836a9a 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_S2/SM_triangulator.h +++ b/thirdparty/CGAL/include/CGAL/Nef_S2/SM_triangulator.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_S2/SM_visualizor.h b/thirdparty/CGAL/include/CGAL/Nef_S2/SM_visualizor.h index 4ed5a746..8c2adfee 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_S2/SM_visualizor.h +++ b/thirdparty/CGAL/include/CGAL/Nef_S2/SM_visualizor.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_S2/Sphere_circle.h b/thirdparty/CGAL/include/CGAL/Nef_S2/Sphere_circle.h index d0f376da..037e837c 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_S2/Sphere_circle.h +++ b/thirdparty/CGAL/include/CGAL/Nef_S2/Sphere_circle.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 std::pair< Sphere_segment,Sphere_segment > 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 @@ Sphere_circle(const Sphere_point& p, const Sphere_point&q) 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 @@ create any great circle that contains $p$ and $q$.}*/ } } - 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 @@ Sphere_circle(Sphere_circle c, const Sphere_point& p) } /*{\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() const { return Base(*this); } 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 @@ of splitting |\Mvar| at the $x$-$y$-coordinate plane if |\Mvar| 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 @@ Sphere_point intersection(const Sphere_circle& c1, |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 "< void Sphere_map:: 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 --git a/thirdparty/CGAL/include/CGAL/Nef_S2/Sphere_point.h b/thirdparty/CGAL/include/CGAL/Nef_S2/Sphere_point.h index 10b730ec..bd8605d9 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_S2/Sphere_point.h +++ b/thirdparty/CGAL/include/CGAL/Nef_S2/Sphere_point.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_S2/Sphere_segment.h b/thirdparty/CGAL/include/CGAL/Nef_S2/Sphere_segment.h index 1b051f52..62ec7ea4 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_S2/Sphere_segment.h +++ b/thirdparty/CGAL/include/CGAL/Nef_S2/Sphere_segment.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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() { ps_ = pt_ = Point(); c_ = Circle(); } 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 @@ Sphere_segment_rep(const Circle& c1, { 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 @@ void split_halfcircle(Sphere_segment& s1, /*{\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 @@ void split_halfcircle(Sphere_segment& s1, 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 @@ Point_3 orthogonal_pole() const { 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 --git a/thirdparty/CGAL/include/CGAL/Nef_S2/Sphere_triangle.h b/thirdparty/CGAL/include/CGAL/Nef_S2/Sphere_triangle.h index caa57f7d..c4217ef0 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_S2/Sphere_triangle.h +++ b/thirdparty/CGAL/include/CGAL/Nef_S2/Sphere_triangle.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_S2/leda_sphere_map.h b/thirdparty/CGAL/include/CGAL/Nef_S2/leda_sphere_map.h index 6041d15f..bda71a78 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_S2/leda_sphere_map.h +++ b/thirdparty/CGAL/include/CGAL/Nef_S2/leda_sphere_map.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_S2/sphere_predicates.h b/thirdparty/CGAL/include/CGAL/Nef_S2/sphere_predicates.h index f0e4fd36..e2459ec6 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_S2/sphere_predicates.h +++ b/thirdparty/CGAL/include/CGAL/Nef_S2/sphere_predicates.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_nary_intersection_3.h b/thirdparty/CGAL/include/CGAL/Nef_nary_intersection_3.h index 89609842..3020ab3a 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_nary_intersection_3.h +++ b/thirdparty/CGAL/include/CGAL/Nef_nary_intersection_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_nary_union_3.h b/thirdparty/CGAL/include/CGAL/Nef_nary_union_3.h index b3d022bc..ce9d8766 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_nary_union_3.h +++ b/thirdparty/CGAL/include/CGAL/Nef_nary_union_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_polyhedron_2.h b/thirdparty/CGAL/include/CGAL/Nef_polyhedron_2.h index dec0904a..45a023b0 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_polyhedron_2.h +++ b/thirdparty/CGAL/include/CGAL/Nef_polyhedron_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Nef_polyhedron_3.h b/thirdparty/CGAL/include/CGAL/Nef_polyhedron_3.h index dcefd4d5..23eeb8df 100644 --- a/thirdparty/CGAL/include/CGAL/Nef_polyhedron_3.h +++ b/thirdparty/CGAL/include/CGAL/Nef_polyhedron_3.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Nef_polyhedron_3_rep 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 @@ class Nef_polyhedron_3 : public CGAL::Handle_for< Nef_polyhedron_3_rep smc; @@ -573,9 +583,9 @@ class Nef_polyhedron_3 : public CGAL::Handle_for< Nef_polyhedron_3_rep - 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 @@ class Nef_polyhedron_3 : public CGAL::Handle_for< Nef_polyhedron_3_rep - 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 @@ class Nef_polyhedron_3 : public CGAL::Handle_for< Nef_polyhedron_3_rep >::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 @@ class Nef_polyhedron_3 : public CGAL::Handle_for< Nef_polyhedron_3_rep 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 @@ class Nef_polyhedron_3 : public CGAL::Handle_for< Nef_polyhedron_3_rep 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 @@ class Nef_polyhedron_3 : public CGAL::Handle_for< Nef_polyhedron_3_rep 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 @@ class Nef_polyhedron_3 : public CGAL::Handle_for< Nef_polyhedron_3_rep 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 @@ class Nef_polyhedron_3 : public CGAL::Handle_for< Nef_polyhedron_3_rep 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 @@ class Nef_polyhedron_3 : public CGAL::Handle_for< Nef_polyhedron_3_rep 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 @@ Nef_polyhedron_3( Content space) { 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 "<::type : Rep(CPBase()(std::move(v))) {} friend void swap(Self& a, Self& b) -#ifdef __cpp_lib_is_swappable +#if !defined(__INTEL_COMPILER) && defined(__cpp_lib_is_swappable) noexcept(std::is_nothrow_swappable_v) #endif { diff --git a/thirdparty/CGAL/include/CGAL/NewKernel_d/Wrapper/Ref_count_obj.h b/thirdparty/CGAL/include/CGAL/NewKernel_d/Wrapper/Ref_count_obj.h index 9467694b..10e5bd38 100644 --- a/thirdparty/CGAL/include/CGAL/NewKernel_d/Wrapper/Ref_count_obj.h +++ b/thirdparty/CGAL/include/CGAL/NewKernel_d/Wrapper/Ref_count_obj.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/NewKernel_d/Wrapper/Segment_d.h b/thirdparty/CGAL/include/CGAL/NewKernel_d/Wrapper/Segment_d.h index 97fd4c9a..08536f5f 100644 --- a/thirdparty/CGAL/include/CGAL/NewKernel_d/Wrapper/Segment_d.h +++ b/thirdparty/CGAL/include/CGAL/NewKernel_d/Wrapper/Segment_d.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/NewKernel_d/Wrapper/Sphere_d.h b/thirdparty/CGAL/include/CGAL/NewKernel_d/Wrapper/Sphere_d.h index c2c620a5..31d21702 100644 --- a/thirdparty/CGAL/include/CGAL/NewKernel_d/Wrapper/Sphere_d.h +++ b/thirdparty/CGAL/include/CGAL/NewKernel_d/Wrapper/Sphere_d.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/NewKernel_d/Wrapper/Vector_d.h b/thirdparty/CGAL/include/CGAL/NewKernel_d/Wrapper/Vector_d.h index 7094e09f..c657a5c8 100644 --- a/thirdparty/CGAL/include/CGAL/NewKernel_d/Wrapper/Vector_d.h +++ b/thirdparty/CGAL/include/CGAL/NewKernel_d/Wrapper/Vector_d.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/NewKernel_d/Wrapper/Weighted_point_d.h b/thirdparty/CGAL/include/CGAL/NewKernel_d/Wrapper/Weighted_point_d.h index 19c96c83..72b1549b 100644 --- a/thirdparty/CGAL/include/CGAL/NewKernel_d/Wrapper/Weighted_point_d.h +++ b/thirdparty/CGAL/include/CGAL/NewKernel_d/Wrapper/Weighted_point_d.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/NewKernel_d/function_objects_cartesian.h b/thirdparty/CGAL/include/CGAL/NewKernel_d/function_objects_cartesian.h index 6a2aa65d..a0f97b9b 100644 --- a/thirdparty/CGAL/include/CGAL/NewKernel_d/function_objects_cartesian.h +++ b/thirdparty/CGAL/include/CGAL/NewKernel_d/function_objects_cartesian.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/NewKernel_d/functor_properties.h b/thirdparty/CGAL/include/CGAL/NewKernel_d/functor_properties.h index 8c6700f0..633bf4c8 100644 --- a/thirdparty/CGAL/include/CGAL/NewKernel_d/functor_properties.h +++ b/thirdparty/CGAL/include/CGAL/NewKernel_d/functor_properties.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/NewKernel_d/functor_tags.h b/thirdparty/CGAL/include/CGAL/NewKernel_d/functor_tags.h index 514f158b..b0385c01 100644 --- a/thirdparty/CGAL/include/CGAL/NewKernel_d/functor_tags.h +++ b/thirdparty/CGAL/include/CGAL/NewKernel_d/functor_tags.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/NewKernel_d/static_int.h b/thirdparty/CGAL/include/CGAL/NewKernel_d/static_int.h index f5c1c99e..1548f4b8 100644 --- a/thirdparty/CGAL/include/CGAL/NewKernel_d/static_int.h +++ b/thirdparty/CGAL/include/CGAL/NewKernel_d/static_int.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/NewKernel_d/store_kernel.h b/thirdparty/CGAL/include/CGAL/NewKernel_d/store_kernel.h index a66e2360..0a195629 100644 --- a/thirdparty/CGAL/include/CGAL/NewKernel_d/store_kernel.h +++ b/thirdparty/CGAL/include/CGAL/NewKernel_d/store_kernel.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/NewKernel_d/utils.h b/thirdparty/CGAL/include/CGAL/NewKernel_d/utils.h index 55a31aa9..507b1f55 100644 --- a/thirdparty/CGAL/include/CGAL/NewKernel_d/utils.h +++ b/thirdparty/CGAL/include/CGAL/NewKernel_d/utils.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/No_intersection_surface_sweep_2.h b/thirdparty/CGAL/include/CGAL/No_intersection_surface_sweep_2.h index 9c21ab8e..642ce1c4 100644 --- a/thirdparty/CGAL/include/CGAL/No_intersection_surface_sweep_2.h +++ b/thirdparty/CGAL/include/CGAL/No_intersection_surface_sweep_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Null_matrix.h b/thirdparty/CGAL/include/CGAL/Null_matrix.h index 89b1ec63..76933800 100644 --- a/thirdparty/CGAL/include/CGAL/Null_matrix.h +++ b/thirdparty/CGAL/include/CGAL/Null_matrix.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Number_type_checker.h b/thirdparty/CGAL/include/CGAL/Number_type_checker.h index 41017d16..84e90563 100644 --- a/thirdparty/CGAL/include/CGAL/Number_type_checker.h +++ b/thirdparty/CGAL/include/CGAL/Number_type_checker.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Number_types/internal/Exact_type_selector.h b/thirdparty/CGAL/include/CGAL/Number_types/internal/Exact_type_selector.h index 5e4e22f9..e2393318 100644 --- a/thirdparty/CGAL/include/CGAL/Number_types/internal/Exact_type_selector.h +++ b/thirdparty/CGAL/include/CGAL/Number_types/internal/Exact_type_selector.h @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace CGAL { namespace internal { // 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 --git a/thirdparty/CGAL/include/CGAL/Number_types/internal_functions_comparison_root_of_2.h b/thirdparty/CGAL/include/CGAL/Number_types/internal_functions_comparison_root_of_2.h index 3360a1c1..c9e270fb 100644 --- a/thirdparty/CGAL/include/CGAL/Number_types/internal_functions_comparison_root_of_2.h +++ b/thirdparty/CGAL/include/CGAL/Number_types/internal_functions_comparison_root_of_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/OFF_to_nef_3.h b/thirdparty/CGAL/include/CGAL/OFF_to_nef_3.h index 32a0f746..0b4ca4da 100644 --- a/thirdparty/CGAL/include/CGAL/OFF_to_nef_3.h +++ b/thirdparty/CGAL/include/CGAL/OFF_to_nef_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/OSQP_quadratic_program_traits.h b/thirdparty/CGAL/include/CGAL/OSQP_quadratic_program_traits.h index b32cb41c..ed9876f6 100644 --- a/thirdparty/CGAL/include/CGAL/OSQP_quadratic_program_traits.h +++ b/thirdparty/CGAL/include/CGAL/OSQP_quadratic_program_traits.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace CGAL { \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 --git a/thirdparty/CGAL/include/CGAL/OTR_2/Cost.h b/thirdparty/CGAL/include/CGAL/OTR_2/Cost.h index e18fb3ac..ee8b0235 100644 --- a/thirdparty/CGAL/include/CGAL/OTR_2/Cost.h +++ b/thirdparty/CGAL/include/CGAL/OTR_2/Cost.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/OTR_2/Reconstruction_edge_2.h b/thirdparty/CGAL/include/CGAL/OTR_2/Reconstruction_edge_2.h index 90798c32..5b9f9adf 100644 --- a/thirdparty/CGAL/include/CGAL/OTR_2/Reconstruction_edge_2.h +++ b/thirdparty/CGAL/include/CGAL/OTR_2/Reconstruction_edge_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/OTR_2/Reconstruction_face_base_2.h b/thirdparty/CGAL/include/CGAL/OTR_2/Reconstruction_face_base_2.h index 281ca959..1a01c25c 100644 --- a/thirdparty/CGAL/include/CGAL/OTR_2/Reconstruction_face_base_2.h +++ b/thirdparty/CGAL/include/CGAL/OTR_2/Reconstruction_face_base_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/OTR_2/Reconstruction_triangulation_2.h b/thirdparty/CGAL/include/CGAL/OTR_2/Reconstruction_triangulation_2.h index da18bc74..2bc921b6 100644 --- a/thirdparty/CGAL/include/CGAL/OTR_2/Reconstruction_triangulation_2.h +++ b/thirdparty/CGAL/include/CGAL/OTR_2/Reconstruction_triangulation_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/OTR_2/Reconstruction_vertex_base_2.h b/thirdparty/CGAL/include/CGAL/OTR_2/Reconstruction_vertex_base_2.h index ce6870f0..77a70438 100644 --- a/thirdparty/CGAL/include/CGAL/OTR_2/Reconstruction_vertex_base_2.h +++ b/thirdparty/CGAL/include/CGAL/OTR_2/Reconstruction_vertex_base_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/OTR_2/Sample.h b/thirdparty/CGAL/include/CGAL/OTR_2/Sample.h index 9de7a899..7b642156 100644 --- a/thirdparty/CGAL/include/CGAL/OTR_2/Sample.h +++ b/thirdparty/CGAL/include/CGAL/OTR_2/Sample.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Object.h b/thirdparty/CGAL/include/CGAL/Object.h index 94ee2c90..1849fb36 100644 --- a/thirdparty/CGAL/include/CGAL/Object.h +++ b/thirdparty/CGAL/include/CGAL/Object.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Octree.h b/thirdparty/CGAL/include/CGAL/Octree.h index 45cbf076..7baed3ad 100644 --- a/thirdparty/CGAL/include/CGAL/Octree.h +++ b/thirdparty/CGAL/include/CGAL/Octree.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/OpenGR/compute_registration_transformation.h b/thirdparty/CGAL/include/CGAL/OpenGR/compute_registration_transformation.h index a852cce9..b0190b0c 100644 --- a/thirdparty/CGAL/include/CGAL/OpenGR/compute_registration_transformation.h +++ b/thirdparty/CGAL/include/CGAL/OpenGR/compute_registration_transformation.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ compute_registration_transformation(const PointRange1& range1, const PointRan 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 @@ compute_registration_transformation (const PointRange1& point_set_1, const Point } -// 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 --git a/thirdparty/CGAL/include/CGAL/OpenGR/register_point_sets.h b/thirdparty/CGAL/include/CGAL/OpenGR/register_point_sets.h index 1b0917b0..dd07603d 100644 --- a/thirdparty/CGAL/include/CGAL/OpenGR/register_point_sets.h +++ b/thirdparty/CGAL/include/CGAL/OpenGR/register_point_sets.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ register_point_sets(const PointRange1& range1, PointRange2& range2, \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 @@ register_point_sets (const PointRange1& point_set_1, PointRange2& point_set_2, 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 --git a/thirdparty/CGAL/include/CGAL/OpenNL/bicgstab.h b/thirdparty/CGAL/include/CGAL/OpenNL/bicgstab.h index 7bade380..ee00556b 100644 --- a/thirdparty/CGAL/include/CGAL/OpenNL/bicgstab.h +++ b/thirdparty/CGAL/include/CGAL/OpenNL/bicgstab.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/OpenNL/blas.h b/thirdparty/CGAL/include/CGAL/OpenNL/blas.h index 857047e1..d2506bec 100644 --- a/thirdparty/CGAL/include/CGAL/OpenNL/blas.h +++ b/thirdparty/CGAL/include/CGAL/OpenNL/blas.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/OpenNL/conjugate_gradient.h b/thirdparty/CGAL/include/CGAL/OpenNL/conjugate_gradient.h index 8e3a2c4a..7a6860f1 100644 --- a/thirdparty/CGAL/include/CGAL/OpenNL/conjugate_gradient.h +++ b/thirdparty/CGAL/include/CGAL/OpenNL/conjugate_gradient.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/OpenNL/full_vector.h b/thirdparty/CGAL/include/CGAL/OpenNL/full_vector.h index 0ab38574..b17f724e 100644 --- a/thirdparty/CGAL/include/CGAL/OpenNL/full_vector.h +++ b/thirdparty/CGAL/include/CGAL/OpenNL/full_vector.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/OpenNL/linear_solver.h b/thirdparty/CGAL/include/CGAL/OpenNL/linear_solver.h index 740f5792..a4646ad7 100644 --- a/thirdparty/CGAL/include/CGAL/OpenNL/linear_solver.h +++ b/thirdparty/CGAL/include/CGAL/OpenNL/linear_solver.h @@ -22,7 +22,7 @@ * - Added SymmetricLinearSolverTraits * - copied Jacobi preconditioner from Graphite 1.9 code * - * $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/OpenNL/preconditioner.h b/thirdparty/CGAL/include/CGAL/OpenNL/preconditioner.h index fc7e3249..cabdc361 100644 --- a/thirdparty/CGAL/include/CGAL/OpenNL/preconditioner.h +++ b/thirdparty/CGAL/include/CGAL/OpenNL/preconditioner.h @@ -20,7 +20,7 @@ * - copied Jacobi preconditioner from Graphite 1.9 code * - Added OpenNL namespace * - * $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/OpenNL/sparse_matrix.h b/thirdparty/CGAL/include/CGAL/OpenNL/sparse_matrix.h index 56a314b4..5b978f94 100644 --- a/thirdparty/CGAL/include/CGAL/OpenNL/sparse_matrix.h +++ b/thirdparty/CGAL/include/CGAL/OpenNL/sparse_matrix.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/Optimal_bounding_box/Oriented_bounding_box_traits_3.h b/thirdparty/CGAL/include/CGAL/Optimal_bounding_box/Oriented_bounding_box_traits_3.h index 8215fae6..60e8d639 100644 --- a/thirdparty/CGAL/include/CGAL/Optimal_bounding_box/Oriented_bounding_box_traits_3.h +++ b/thirdparty/CGAL/include/CGAL/Optimal_bounding_box/Oriented_bounding_box_traits_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Optimal_bounding_box/internal/evolution.h b/thirdparty/CGAL/include/CGAL/Optimal_bounding_box/internal/evolution.h index 8f197230..6a517858 100644 --- a/thirdparty/CGAL/include/CGAL/Optimal_bounding_box/internal/evolution.h +++ b/thirdparty/CGAL/include/CGAL/Optimal_bounding_box/internal/evolution.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Optimal_bounding_box/internal/fitness_function.h b/thirdparty/CGAL/include/CGAL/Optimal_bounding_box/internal/fitness_function.h index 919418a2..2f4b43cb 100644 --- a/thirdparty/CGAL/include/CGAL/Optimal_bounding_box/internal/fitness_function.h +++ b/thirdparty/CGAL/include/CGAL/Optimal_bounding_box/internal/fitness_function.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Optimal_bounding_box/internal/helper.h b/thirdparty/CGAL/include/CGAL/Optimal_bounding_box/internal/helper.h index 31ed1d9c..57fa2a6b 100644 --- a/thirdparty/CGAL/include/CGAL/Optimal_bounding_box/internal/helper.h +++ b/thirdparty/CGAL/include/CGAL/Optimal_bounding_box/internal/helper.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Optimal_bounding_box/internal/nelder_mead_functions.h b/thirdparty/CGAL/include/CGAL/Optimal_bounding_box/internal/nelder_mead_functions.h index ad9d76e0..8a4c9cc3 100644 --- a/thirdparty/CGAL/include/CGAL/Optimal_bounding_box/internal/nelder_mead_functions.h +++ b/thirdparty/CGAL/include/CGAL/Optimal_bounding_box/internal/nelder_mead_functions.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Optimal_bounding_box/internal/optimize_2.h b/thirdparty/CGAL/include/CGAL/Optimal_bounding_box/internal/optimize_2.h index fb93f2e9..6b581764 100644 --- a/thirdparty/CGAL/include/CGAL/Optimal_bounding_box/internal/optimize_2.h +++ b/thirdparty/CGAL/include/CGAL/Optimal_bounding_box/internal/optimize_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Optimal_bounding_box/internal/population.h b/thirdparty/CGAL/include/CGAL/Optimal_bounding_box/internal/population.h index c631956a..63c61d30 100644 --- a/thirdparty/CGAL/include/CGAL/Optimal_bounding_box/internal/population.h +++ b/thirdparty/CGAL/include/CGAL/Optimal_bounding_box/internal/population.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Optimal_bounding_box/oriented_bounding_box.h b/thirdparty/CGAL/include/CGAL/Optimal_bounding_box/oriented_bounding_box.h index 5b79a5df..4be1c499 100644 --- a/thirdparty/CGAL/include/CGAL/Optimal_bounding_box/oriented_bounding_box.h +++ b/thirdparty/CGAL/include/CGAL/Optimal_bounding_box/oriented_bounding_box.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ void construct_oriented_bounding_box(const PointRange& points, 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 @@ void compute_best_transformation(const PointRange& points, 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 @@ void construct_oriented_bounding_box(const PointRange& points, /// 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 @@ void oriented_bounding_box(const PointRange& points, { 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 @@ void oriented_bounding_box(const PointRange& points, #endif typedef typename internal_np::Lookup_named_param_def::type Geom_traits; CGAL_static_assertion_msg(!(std::is_same::value), @@ -355,7 +351,8 @@ void oriented_bounding_box(const PointRange& points, 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 @@ void oriented_bounding_box(const PointRange& points, /// 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 @@ void oriented_bounding_box(const PolygonMesh& pmesh, 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 @@ void oriented_bounding_box(const PolygonMesh& pmesh, 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 --git a/thirdparty/CGAL/include/CGAL/Optimal_transportation_reconstruction_2.h b/thirdparty/CGAL/include/CGAL/Optimal_transportation_reconstruction_2.h index 00ceecb9..ae8cf998 100644 --- a/thirdparty/CGAL/include/CGAL/Optimal_transportation_reconstruction_2.h +++ b/thirdparty/CGAL/include/CGAL/Optimal_transportation_reconstruction_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Optimisation/Access_coordinates_begin_2.h b/thirdparty/CGAL/include/CGAL/Optimisation/Access_coordinates_begin_2.h index 7b103193..913fa748 100644 --- a/thirdparty/CGAL/include/CGAL/Optimisation/Access_coordinates_begin_2.h +++ b/thirdparty/CGAL/include/CGAL/Optimisation/Access_coordinates_begin_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Optimisation/Access_coordinates_begin_3.h b/thirdparty/CGAL/include/CGAL/Optimisation/Access_coordinates_begin_3.h index f3ebcde6..bc9f4811 100644 --- a/thirdparty/CGAL/include/CGAL/Optimisation/Access_coordinates_begin_3.h +++ b/thirdparty/CGAL/include/CGAL/Optimisation/Access_coordinates_begin_3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Optimisation/Access_coordinates_begin_d.h b/thirdparty/CGAL/include/CGAL/Optimisation/Access_coordinates_begin_d.h index a0992ca2..1a07c071 100644 --- a/thirdparty/CGAL/include/CGAL/Optimisation/Access_coordinates_begin_d.h +++ b/thirdparty/CGAL/include/CGAL/Optimisation/Access_coordinates_begin_d.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Optimisation/Access_dimension_2.h b/thirdparty/CGAL/include/CGAL/Optimisation/Access_dimension_2.h index 79ba7aad..ffb93f22 100644 --- a/thirdparty/CGAL/include/CGAL/Optimisation/Access_dimension_2.h +++ b/thirdparty/CGAL/include/CGAL/Optimisation/Access_dimension_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Optimisation/Access_dimension_3.h b/thirdparty/CGAL/include/CGAL/Optimisation/Access_dimension_3.h index bf8ccc3f..f8ac6c2e 100644 --- a/thirdparty/CGAL/include/CGAL/Optimisation/Access_dimension_3.h +++ b/thirdparty/CGAL/include/CGAL/Optimisation/Access_dimension_3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Optimisation/Access_dimension_d.h b/thirdparty/CGAL/include/CGAL/Optimisation/Access_dimension_d.h index b059ced3..6e447efd 100644 --- a/thirdparty/CGAL/include/CGAL/Optimisation/Access_dimension_d.h +++ b/thirdparty/CGAL/include/CGAL/Optimisation/Access_dimension_d.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Optimisation/Construct_point_2.h b/thirdparty/CGAL/include/CGAL/Optimisation/Construct_point_2.h index 4337adc9..fb177881 100644 --- a/thirdparty/CGAL/include/CGAL/Optimisation/Construct_point_2.h +++ b/thirdparty/CGAL/include/CGAL/Optimisation/Construct_point_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Optimisation/Construct_point_3.h b/thirdparty/CGAL/include/CGAL/Optimisation/Construct_point_3.h index e1f025b4..8f5de241 100644 --- a/thirdparty/CGAL/include/CGAL/Optimisation/Construct_point_3.h +++ b/thirdparty/CGAL/include/CGAL/Optimisation/Construct_point_3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Optimisation/Construct_point_d.h b/thirdparty/CGAL/include/CGAL/Optimisation/Construct_point_d.h index c82b2c4a..5daea1b4 100644 --- a/thirdparty/CGAL/include/CGAL/Optimisation/Construct_point_d.h +++ b/thirdparty/CGAL/include/CGAL/Optimisation/Construct_point_d.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Optimisation/assertions.h b/thirdparty/CGAL/include/CGAL/Optimisation/assertions.h index 45185918..1ba21872 100644 --- a/thirdparty/CGAL/include/CGAL/Optimisation/assertions.h +++ b/thirdparty/CGAL/include/CGAL/Optimisation/assertions.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Optimisation/basic.h b/thirdparty/CGAL/include/CGAL/Optimisation/basic.h index 716b7dc7..4a4880d2 100644 --- a/thirdparty/CGAL/include/CGAL/Optimisation/basic.h +++ b/thirdparty/CGAL/include/CGAL/Optimisation/basic.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Optimisation/debug.h b/thirdparty/CGAL/include/CGAL/Optimisation/debug.h index a9b8d08b..f512c88f 100644 --- a/thirdparty/CGAL/include/CGAL/Optimisation/debug.h +++ b/thirdparty/CGAL/include/CGAL/Optimisation/debug.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Optimisation_d_traits_2.h b/thirdparty/CGAL/include/CGAL/Optimisation_d_traits_2.h index f356858f..801be9b3 100644 --- a/thirdparty/CGAL/include/CGAL/Optimisation_d_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Optimisation_d_traits_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Optimisation_d_traits_3.h b/thirdparty/CGAL/include/CGAL/Optimisation_d_traits_3.h index fe616c14..6d55a948 100644 --- a/thirdparty/CGAL/include/CGAL/Optimisation_d_traits_3.h +++ b/thirdparty/CGAL/include/CGAL/Optimisation_d_traits_3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Optimisation_d_traits_d.h b/thirdparty/CGAL/include/CGAL/Optimisation_d_traits_d.h index 090b3312..0541e3a2 100644 --- a/thirdparty/CGAL/include/CGAL/Optimisation_d_traits_d.h +++ b/thirdparty/CGAL/include/CGAL/Optimisation_d_traits_d.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Orientation_Linf_2.h b/thirdparty/CGAL/include/CGAL/Orientation_Linf_2.h index 9666622a..4d04a71a 100644 --- a/thirdparty/CGAL/include/CGAL/Orientation_Linf_2.h +++ b/thirdparty/CGAL/include/CGAL/Orientation_Linf_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Origin.h b/thirdparty/CGAL/include/CGAL/Origin.h index 3f372b93..b8898a60 100644 --- a/thirdparty/CGAL/include/CGAL/Origin.h +++ b/thirdparty/CGAL/include/CGAL/Origin.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Origin_impl.h b/thirdparty/CGAL/include/CGAL/Origin_impl.h index b712ca2b..baa7211c 100644 --- a/thirdparty/CGAL/include/CGAL/Origin_impl.h +++ b/thirdparty/CGAL/include/CGAL/Origin_impl.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Orthogonal_incremental_neighbor_search.h b/thirdparty/CGAL/include/CGAL/Orthogonal_incremental_neighbor_search.h index d978e968..72d3a0ea 100644 --- a/thirdparty/CGAL/include/CGAL/Orthogonal_incremental_neighbor_search.h +++ b/thirdparty/CGAL/include/CGAL/Orthogonal_incremental_neighbor_search.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Orthogonal_k_neighbor_search.h b/thirdparty/CGAL/include/CGAL/Orthogonal_k_neighbor_search.h index 00ba1e6a..fdb2de55 100644 --- a/thirdparty/CGAL/include/CGAL/Orthogonal_k_neighbor_search.h +++ b/thirdparty/CGAL/include/CGAL/Orthogonal_k_neighbor_search.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Orthtree.h b/thirdparty/CGAL/include/CGAL/Orthtree.h index 6f2e8990..e03e921e 100644 --- a/thirdparty/CGAL/include/CGAL/Orthtree.h +++ b/thirdparty/CGAL/include/CGAL/Orthtree.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Orthtree } /*! - \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 --git a/thirdparty/CGAL/include/CGAL/Orthtree/Cartesian_ranges.h b/thirdparty/CGAL/include/CGAL/Orthtree/Cartesian_ranges.h index 41ab91da..bad78ec5 100644 --- a/thirdparty/CGAL/include/CGAL/Orthtree/Cartesian_ranges.h +++ b/thirdparty/CGAL/include/CGAL/Orthtree/Cartesian_ranges.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Orthtree/IO.h b/thirdparty/CGAL/include/CGAL/Orthtree/IO.h index 78fa3974..48501326 100644 --- a/thirdparty/CGAL/include/CGAL/Orthtree/IO.h +++ b/thirdparty/CGAL/include/CGAL/Orthtree/IO.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Orthtree/Node.h b/thirdparty/CGAL/include/CGAL/Orthtree/Node.h index 93503e90..0412824c 100644 --- a/thirdparty/CGAL/include/CGAL/Orthtree/Node.h +++ b/thirdparty/CGAL/include/CGAL/Orthtree/Node.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Orthtree/Split_predicates.h b/thirdparty/CGAL/include/CGAL/Orthtree/Split_predicates.h index 297eabc5..2803a62c 100644 --- a/thirdparty/CGAL/include/CGAL/Orthtree/Split_predicates.h +++ b/thirdparty/CGAL/include/CGAL/Orthtree/Split_predicates.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Orthtree/Traversal_iterator.h b/thirdparty/CGAL/include/CGAL/Orthtree/Traversal_iterator.h index b56953d7..cf6b1719 100644 --- a/thirdparty/CGAL/include/CGAL/Orthtree/Traversal_iterator.h +++ b/thirdparty/CGAL/include/CGAL/Orthtree/Traversal_iterator.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Orthtree/Traversals.h b/thirdparty/CGAL/include/CGAL/Orthtree/Traversals.h index 7bfc6ea2..f6ea2e74 100644 --- a/thirdparty/CGAL/include/CGAL/Orthtree/Traversals.h +++ b/thirdparty/CGAL/include/CGAL/Orthtree/Traversals.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Orthtree_traits_2.h b/thirdparty/CGAL/include/CGAL/Orthtree_traits_2.h index 89c3de6f..cb432b9b 100644 --- a/thirdparty/CGAL/include/CGAL/Orthtree_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Orthtree_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Orthtree_traits_3.h b/thirdparty/CGAL/include/CGAL/Orthtree_traits_3.h index 26cccc17..7e2bd444 100644 --- a/thirdparty/CGAL/include/CGAL/Orthtree_traits_3.h +++ b/thirdparty/CGAL/include/CGAL/Orthtree_traits_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Orthtree_traits_d.h b/thirdparty/CGAL/include/CGAL/Orthtree_traits_d.h index f55c3bfe..d16d3b72 100644 --- a/thirdparty/CGAL/include/CGAL/Orthtree_traits_d.h +++ b/thirdparty/CGAL/include/CGAL/Orthtree_traits_d.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/PCA_util.h b/thirdparty/CGAL/include/CGAL/PCA_util.h index 4c33eaf7..5e3b5bb1 100644 --- a/thirdparty/CGAL/include/CGAL/PCA_util.h +++ b/thirdparty/CGAL/include/CGAL/PCA_util.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Principal_component_analysis/include/CGAL/PCA_util.h $ -// $Id: PCA_util.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/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 // // Author(s) : Pierre Alliez and Sylvain Pion and Ankit Gupta @@ -723,7 +723,11 @@ fitting_plane_3(typename DiagonalizeTraits::Covariance_matrix& covariance, // co eigen_vectors[1], eigen_vectors[2]); plane = Plane(c,normal); - return FT(1) - eigen_values[0] / eigen_values[1]; + + if (eigen_values[1] == 0) + return FT(0); // line case + else + return FT(1) - eigen_values[0] / eigen_values[1]; // regular case } // end regular case } diff --git a/thirdparty/CGAL/include/CGAL/PCA_util_Eigen.h b/thirdparty/CGAL/include/CGAL/PCA_util_Eigen.h index 65473299..9ea7df76 100644 --- a/thirdparty/CGAL/include/CGAL/PCA_util_Eigen.h +++ b/thirdparty/CGAL/include/CGAL/PCA_util_Eigen.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Parabola_2.h b/thirdparty/CGAL/include/CGAL/Parabola_2.h index bc1473fc..dc95d3b8 100644 --- a/thirdparty/CGAL/include/CGAL/Parabola_2.h +++ b/thirdparty/CGAL/include/CGAL/Parabola_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Parabola_segment_2.h b/thirdparty/CGAL/include/CGAL/Parabola_segment_2.h index 7833da05..063b5abe 100644 --- a/thirdparty/CGAL/include/CGAL/Parabola_segment_2.h +++ b/thirdparty/CGAL/include/CGAL/Parabola_segment_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Partition_2/Circulator_pair.h b/thirdparty/CGAL/include/CGAL/Partition_2/Circulator_pair.h index d3589779..05eab7df 100644 --- a/thirdparty/CGAL/include/CGAL/Partition_2/Circulator_pair.h +++ b/thirdparty/CGAL/include/CGAL/Partition_2/Circulator_pair.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Partition_2/Indirect_edge_compare.h b/thirdparty/CGAL/include/CGAL/Partition_2/Indirect_edge_compare.h index 4acccaf0..32c8f971 100644 --- a/thirdparty/CGAL/include/CGAL/Partition_2/Indirect_edge_compare.h +++ b/thirdparty/CGAL/include/CGAL/Partition_2/Indirect_edge_compare.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Partition_2/Indirect_less_xy_2.h b/thirdparty/CGAL/include/CGAL/Partition_2/Indirect_less_xy_2.h index 7a90e3ba..4af86ef2 100644 --- a/thirdparty/CGAL/include/CGAL/Partition_2/Indirect_less_xy_2.h +++ b/thirdparty/CGAL/include/CGAL/Partition_2/Indirect_less_xy_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Partition_2/Indirect_not_less_yx_2.h b/thirdparty/CGAL/include/CGAL/Partition_2/Indirect_not_less_yx_2.h index 6b7378d9..59c8909a 100644 --- a/thirdparty/CGAL/include/CGAL/Partition_2/Indirect_not_less_yx_2.h +++ b/thirdparty/CGAL/include/CGAL/Partition_2/Indirect_not_less_yx_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Partition_2/Iterator_list.h b/thirdparty/CGAL/include/CGAL/Partition_2/Iterator_list.h index 59da12e0..9f70913b 100644 --- a/thirdparty/CGAL/include/CGAL/Partition_2/Iterator_list.h +++ b/thirdparty/CGAL/include/CGAL/Partition_2/Iterator_list.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Partition_2/Matrix.h b/thirdparty/CGAL/include/CGAL/Partition_2/Matrix.h index 26919d5e..c0123130 100644 --- a/thirdparty/CGAL/include/CGAL/Partition_2/Matrix.h +++ b/thirdparty/CGAL/include/CGAL/Partition_2/Matrix.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Partition_2/Partition_opt_cvx_diagonal_list.h b/thirdparty/CGAL/include/CGAL/Partition_2/Partition_opt_cvx_diagonal_list.h index 4e86e03d..1a75945b 100644 --- a/thirdparty/CGAL/include/CGAL/Partition_2/Partition_opt_cvx_diagonal_list.h +++ b/thirdparty/CGAL/include/CGAL/Partition_2/Partition_opt_cvx_diagonal_list.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Partition_2/Partition_opt_cvx_edge.h b/thirdparty/CGAL/include/CGAL/Partition_2/Partition_opt_cvx_edge.h index 390385a4..349811f7 100644 --- a/thirdparty/CGAL/include/CGAL/Partition_2/Partition_opt_cvx_edge.h +++ b/thirdparty/CGAL/include/CGAL/Partition_2/Partition_opt_cvx_edge.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Partition_2/Partition_opt_cvx_vertex.h b/thirdparty/CGAL/include/CGAL/Partition_2/Partition_opt_cvx_vertex.h index 3d44f561..960fc60f 100644 --- a/thirdparty/CGAL/include/CGAL/Partition_2/Partition_opt_cvx_vertex.h +++ b/thirdparty/CGAL/include/CGAL/Partition_2/Partition_opt_cvx_vertex.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Partition_2/Partition_traits_2_base.h b/thirdparty/CGAL/include/CGAL/Partition_2/Partition_traits_2_base.h index afe45805..772a776d 100644 --- a/thirdparty/CGAL/include/CGAL/Partition_2/Partition_traits_2_base.h +++ b/thirdparty/CGAL/include/CGAL/Partition_2/Partition_traits_2_base.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Partition_2/Partition_vertex_map.h b/thirdparty/CGAL/include/CGAL/Partition_2/Partition_vertex_map.h index f6eeed27..88ac3b55 100644 --- a/thirdparty/CGAL/include/CGAL/Partition_2/Partition_vertex_map.h +++ b/thirdparty/CGAL/include/CGAL/Partition_2/Partition_vertex_map.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Partition_2/Partitioned_polygon_2.h b/thirdparty/CGAL/include/CGAL/Partition_2/Partitioned_polygon_2.h index 761051f9..c0cbdd52 100644 --- a/thirdparty/CGAL/include/CGAL/Partition_2/Partitioned_polygon_2.h +++ b/thirdparty/CGAL/include/CGAL/Partition_2/Partitioned_polygon_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Partition_2/Point_pair_less_xy_2.h b/thirdparty/CGAL/include/CGAL/Partition_2/Point_pair_less_xy_2.h index e57192a7..66d22154 100644 --- a/thirdparty/CGAL/include/CGAL/Partition_2/Point_pair_less_xy_2.h +++ b/thirdparty/CGAL/include/CGAL/Partition_2/Point_pair_less_xy_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Partition_2/Rotation_tree_2.h b/thirdparty/CGAL/include/CGAL/Partition_2/Rotation_tree_2.h index 2c4d0570..bd69add3 100644 --- a/thirdparty/CGAL/include/CGAL/Partition_2/Rotation_tree_2.h +++ b/thirdparty/CGAL/include/CGAL/Partition_2/Rotation_tree_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Partition_2/Rotation_tree_2_impl.h b/thirdparty/CGAL/include/CGAL/Partition_2/Rotation_tree_2_impl.h index fe2f2e7d..125a0d11 100644 --- a/thirdparty/CGAL/include/CGAL/Partition_2/Rotation_tree_2_impl.h +++ b/thirdparty/CGAL/include/CGAL/Partition_2/Rotation_tree_2_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Partition_2/Rotation_tree_node_2.h b/thirdparty/CGAL/include/CGAL/Partition_2/Rotation_tree_node_2.h index 5c49e81f..195d1282 100644 --- a/thirdparty/CGAL/include/CGAL/Partition_2/Rotation_tree_node_2.h +++ b/thirdparty/CGAL/include/CGAL/Partition_2/Rotation_tree_node_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Partition_2/Segment_less_yx_2.h b/thirdparty/CGAL/include/CGAL/Partition_2/Segment_less_yx_2.h index 8cb31ab7..e949a98a 100644 --- a/thirdparty/CGAL/include/CGAL/Partition_2/Segment_less_yx_2.h +++ b/thirdparty/CGAL/include/CGAL/Partition_2/Segment_less_yx_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Partition_2/Triangulation_indirect_traits_2.h b/thirdparty/CGAL/include/CGAL/Partition_2/Triangulation_indirect_traits_2.h index 91be24ed..cbc30f89 100644 --- a/thirdparty/CGAL/include/CGAL/Partition_2/Triangulation_indirect_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Partition_2/Triangulation_indirect_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Partition_2/Turn_reverser.h b/thirdparty/CGAL/include/CGAL/Partition_2/Turn_reverser.h index a0c6c31a..6a8e27bb 100644 --- a/thirdparty/CGAL/include/CGAL/Partition_2/Turn_reverser.h +++ b/thirdparty/CGAL/include/CGAL/Partition_2/Turn_reverser.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Partition_2/Vertex_visibility_graph_2.h b/thirdparty/CGAL/include/CGAL/Partition_2/Vertex_visibility_graph_2.h index c1f09b03..2fb96569 100644 --- a/thirdparty/CGAL/include/CGAL/Partition_2/Vertex_visibility_graph_2.h +++ b/thirdparty/CGAL/include/CGAL/Partition_2/Vertex_visibility_graph_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Partition_2/Vertex_visibility_graph_2_impl.h b/thirdparty/CGAL/include/CGAL/Partition_2/Vertex_visibility_graph_2_impl.h index 7d71c087..94547b0e 100644 --- a/thirdparty/CGAL/include/CGAL/Partition_2/Vertex_visibility_graph_2_impl.h +++ b/thirdparty/CGAL/include/CGAL/Partition_2/Vertex_visibility_graph_2_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Partition_2/is_degenerate_polygon_2.h b/thirdparty/CGAL/include/CGAL/Partition_2/is_degenerate_polygon_2.h index f5848330..c4ad0826 100644 --- a/thirdparty/CGAL/include/CGAL/Partition_2/is_degenerate_polygon_2.h +++ b/thirdparty/CGAL/include/CGAL/Partition_2/is_degenerate_polygon_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Partition_2/partition_approx_convex_2.h b/thirdparty/CGAL/include/CGAL/Partition_2/partition_approx_convex_2.h index 421d1a55..59027bec 100644 --- a/thirdparty/CGAL/include/CGAL/Partition_2/partition_approx_convex_2.h +++ b/thirdparty/CGAL/include/CGAL/Partition_2/partition_approx_convex_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Partition_2/partition_assertions.h b/thirdparty/CGAL/include/CGAL/Partition_2/partition_assertions.h index 73b87edd..db19f115 100644 --- a/thirdparty/CGAL/include/CGAL/Partition_2/partition_assertions.h +++ b/thirdparty/CGAL/include/CGAL/Partition_2/partition_assertions.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Partition_2/partition_greene_approx_convex_2.h b/thirdparty/CGAL/include/CGAL/Partition_2/partition_greene_approx_convex_2.h index f37bcb8e..3fef97fd 100644 --- a/thirdparty/CGAL/include/CGAL/Partition_2/partition_greene_approx_convex_2.h +++ b/thirdparty/CGAL/include/CGAL/Partition_2/partition_greene_approx_convex_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Partition_2/partition_optimal_convex_2.h b/thirdparty/CGAL/include/CGAL/Partition_2/partition_optimal_convex_2.h index b347aa5d..7954ab88 100644 --- a/thirdparty/CGAL/include/CGAL/Partition_2/partition_optimal_convex_2.h +++ b/thirdparty/CGAL/include/CGAL/Partition_2/partition_optimal_convex_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Partition_2/partition_y_monotone_2.h b/thirdparty/CGAL/include/CGAL/Partition_2/partition_y_monotone_2.h index a9bb3a54..2cb8274c 100644 --- a/thirdparty/CGAL/include/CGAL/Partition_2/partition_y_monotone_2.h +++ b/thirdparty/CGAL/include/CGAL/Partition_2/partition_y_monotone_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Partition_is_valid_traits_2.h b/thirdparty/CGAL/include/CGAL/Partition_is_valid_traits_2.h index 1bfc7938..ffebf543 100644 --- a/thirdparty/CGAL/include/CGAL/Partition_is_valid_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Partition_is_valid_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Partition_traits_2.h b/thirdparty/CGAL/include/CGAL/Partition_traits_2.h index 50a3d9b3..b1e65d0c 100644 --- a/thirdparty/CGAL/include/CGAL/Partition_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Partition_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Partition_traits_adapter_2.h b/thirdparty/CGAL/include/CGAL/Partition_traits_adapter_2.h index 513b8bd9..e0dea308 100644 --- a/thirdparty/CGAL/include/CGAL/Partition_traits_adapter_2.h +++ b/thirdparty/CGAL/include/CGAL/Partition_traits_adapter_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Path_on_surface.h b/thirdparty/CGAL/include/CGAL/Path_on_surface.h index b43f51ac..869a526f 100644 --- a/thirdparty/CGAL/include/CGAL/Path_on_surface.h +++ b/thirdparty/CGAL/include/CGAL/Path_on_surface.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Path_on_surface { 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 @@ class Path_on_surface /// @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 --git a/thirdparty/CGAL/include/CGAL/Periodic_2_Delaunay_triangulation_2.h b/thirdparty/CGAL/include/CGAL/Periodic_2_Delaunay_triangulation_2.h index 35234213..2953dcc2 100644 --- a/thirdparty/CGAL/include/CGAL/Periodic_2_Delaunay_triangulation_2.h +++ b/thirdparty/CGAL/include/CGAL/Periodic_2_Delaunay_triangulation_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Periodic_2_Delaunay_triangulation_traits_2.h b/thirdparty/CGAL/include/CGAL/Periodic_2_Delaunay_triangulation_traits_2.h index d038310d..3c85df23 100644 --- a/thirdparty/CGAL/include/CGAL/Periodic_2_Delaunay_triangulation_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Periodic_2_Delaunay_triangulation_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Periodic_2_offset_2.h b/thirdparty/CGAL/include/CGAL/Periodic_2_offset_2.h index 4e38735e..59cd764a 100644 --- a/thirdparty/CGAL/include/CGAL/Periodic_2_offset_2.h +++ b/thirdparty/CGAL/include/CGAL/Periodic_2_offset_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Periodic_2_triangulation_2.h b/thirdparty/CGAL/include/CGAL/Periodic_2_triangulation_2.h index b57311f5..307b1bee 100644 --- a/thirdparty/CGAL/include/CGAL/Periodic_2_triangulation_2.h +++ b/thirdparty/CGAL/include/CGAL/Periodic_2_triangulation_2.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Periodic_2_triangulation_2/include/CGAL/Periodic_2_triangulation_2.h $ -// $Id: Periodic_2_triangulation_2.h 4e519a3 2021-05-05T13:15:37+02:00 Sébastien Loriot +// $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 // // Author(s) : Nico Kruithof @@ -4164,7 +4164,7 @@ Periodic_2_triangulation_2::save(std::ostream& os) const return os; // write the vertices - Unique_hash_map V; + Unique_hash_map V(0, number_of_vertices()); std::size_t i = 0; if (is_1_cover()) { @@ -4208,7 +4208,7 @@ Periodic_2_triangulation_2::save(std::ostream& os) const } CGAL_triangulation_postcondition(i == _cover[0]*_cover[1]*n); - Unique_hash_map F; + Unique_hash_map F(0, _tds.number_of_faces()); int inum = 0; // asks the tds for the combinatorial information // vertices of the faces diff --git a/thirdparty/CGAL/include/CGAL/Periodic_2_triangulation_2/internal/Functor_with_offset_points_adaptor_2.h b/thirdparty/CGAL/include/CGAL/Periodic_2_triangulation_2/internal/Functor_with_offset_points_adaptor_2.h index 00353ab7..d868d6a5 100644 --- a/thirdparty/CGAL/include/CGAL/Periodic_2_triangulation_2/internal/Functor_with_offset_points_adaptor_2.h +++ b/thirdparty/CGAL/include/CGAL/Periodic_2_triangulation_2/internal/Functor_with_offset_points_adaptor_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Periodic_2_triangulation_2/internal/Periodic_2_Delaunay_triangulation_filtered_traits_2.h b/thirdparty/CGAL/include/CGAL/Periodic_2_triangulation_2/internal/Periodic_2_Delaunay_triangulation_filtered_traits_2.h index 8c719ca8..aa860d8b 100644 --- a/thirdparty/CGAL/include/CGAL/Periodic_2_triangulation_2/internal/Periodic_2_Delaunay_triangulation_filtered_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Periodic_2_triangulation_2/internal/Periodic_2_Delaunay_triangulation_filtered_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Periodic_2_triangulation_2/internal/Periodic_2_Delaunay_triangulation_statically_filtered_traits_2.h b/thirdparty/CGAL/include/CGAL/Periodic_2_triangulation_2/internal/Periodic_2_Delaunay_triangulation_statically_filtered_traits_2.h index 672f4dc8..f63ec45e 100644 --- a/thirdparty/CGAL/include/CGAL/Periodic_2_triangulation_2/internal/Periodic_2_Delaunay_triangulation_statically_filtered_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Periodic_2_triangulation_2/internal/Periodic_2_Delaunay_triangulation_statically_filtered_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Periodic_2_triangulation_2/internal/Periodic_2_construct_point_2.h b/thirdparty/CGAL/include/CGAL/Periodic_2_triangulation_2/internal/Periodic_2_construct_point_2.h index 5a357c5c..23938ca2 100644 --- a/thirdparty/CGAL/include/CGAL/Periodic_2_triangulation_2/internal/Periodic_2_construct_point_2.h +++ b/thirdparty/CGAL/include/CGAL/Periodic_2_triangulation_2/internal/Periodic_2_construct_point_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Periodic_2_triangulation_2/internal/Periodic_2_triangulation_filtered_traits_2.h b/thirdparty/CGAL/include/CGAL/Periodic_2_triangulation_2/internal/Periodic_2_triangulation_filtered_traits_2.h index d526b224..fc8efc02 100644 --- a/thirdparty/CGAL/include/CGAL/Periodic_2_triangulation_2/internal/Periodic_2_triangulation_filtered_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Periodic_2_triangulation_2/internal/Periodic_2_triangulation_filtered_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Periodic_2_triangulation_2/internal/Periodic_2_triangulation_statically_filtered_traits_2.h b/thirdparty/CGAL/include/CGAL/Periodic_2_triangulation_2/internal/Periodic_2_triangulation_statically_filtered_traits_2.h index f6cd7381..b5300716 100644 --- a/thirdparty/CGAL/include/CGAL/Periodic_2_triangulation_2/internal/Periodic_2_triangulation_statically_filtered_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Periodic_2_triangulation_2/internal/Periodic_2_triangulation_statically_filtered_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Periodic_2_triangulation_2/internal/Static_filters/Periodic_2_orientation_2.h b/thirdparty/CGAL/include/CGAL/Periodic_2_triangulation_2/internal/Static_filters/Periodic_2_orientation_2.h index 27099a48..c220272f 100644 --- a/thirdparty/CGAL/include/CGAL/Periodic_2_triangulation_2/internal/Static_filters/Periodic_2_orientation_2.h +++ b/thirdparty/CGAL/include/CGAL/Periodic_2_triangulation_2/internal/Static_filters/Periodic_2_orientation_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Periodic_2_triangulation_2/internal/Static_filters/Periodic_2_side_of_oriented_circle_2.h b/thirdparty/CGAL/include/CGAL/Periodic_2_triangulation_2/internal/Static_filters/Periodic_2_side_of_oriented_circle_2.h index 2cb16179..de61aa62 100644 --- a/thirdparty/CGAL/include/CGAL/Periodic_2_triangulation_2/internal/Static_filters/Periodic_2_side_of_oriented_circle_2.h +++ b/thirdparty/CGAL/include/CGAL/Periodic_2_triangulation_2/internal/Static_filters/Periodic_2_side_of_oriented_circle_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Periodic_2_triangulation_dummy_12.h b/thirdparty/CGAL/include/CGAL/Periodic_2_triangulation_dummy_12.h index 01fa166c..fae21711 100644 --- a/thirdparty/CGAL/include/CGAL/Periodic_2_triangulation_dummy_12.h +++ b/thirdparty/CGAL/include/CGAL/Periodic_2_triangulation_dummy_12.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Periodic_2_triangulation_face_base_2.h b/thirdparty/CGAL/include/CGAL/Periodic_2_triangulation_face_base_2.h index b15a4f9b..e5d68a03 100644 --- a/thirdparty/CGAL/include/CGAL/Periodic_2_triangulation_face_base_2.h +++ b/thirdparty/CGAL/include/CGAL/Periodic_2_triangulation_face_base_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Periodic_2_triangulation_hierarchy_2.h b/thirdparty/CGAL/include/CGAL/Periodic_2_triangulation_hierarchy_2.h index 3daccbf5..84be7851 100644 --- a/thirdparty/CGAL/include/CGAL/Periodic_2_triangulation_hierarchy_2.h +++ b/thirdparty/CGAL/include/CGAL/Periodic_2_triangulation_hierarchy_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Periodic_2_triangulation_iterators_2.h b/thirdparty/CGAL/include/CGAL/Periodic_2_triangulation_iterators_2.h index e31b2b9f..2624c543 100644 --- a/thirdparty/CGAL/include/CGAL/Periodic_2_triangulation_iterators_2.h +++ b/thirdparty/CGAL/include/CGAL/Periodic_2_triangulation_iterators_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Periodic_2_triangulation_traits_2.h b/thirdparty/CGAL/include/CGAL/Periodic_2_triangulation_traits_2.h index b3f6f35a..7d1de510 100644 --- a/thirdparty/CGAL/include/CGAL/Periodic_2_triangulation_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Periodic_2_triangulation_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Periodic_2_triangulation_vertex_base_2.h b/thirdparty/CGAL/include/CGAL/Periodic_2_triangulation_vertex_base_2.h index 2df12b1d..80e998e3 100644 --- a/thirdparty/CGAL/include/CGAL/Periodic_2_triangulation_vertex_base_2.h +++ b/thirdparty/CGAL/include/CGAL/Periodic_2_triangulation_vertex_base_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Periodic_3_Delaunay_triangulation_3.h b/thirdparty/CGAL/include/CGAL/Periodic_3_Delaunay_triangulation_3.h index 75213f82..62bb7524 100644 --- a/thirdparty/CGAL/include/CGAL/Periodic_3_Delaunay_triangulation_3.h +++ b/thirdparty/CGAL/include/CGAL/Periodic_3_Delaunay_triangulation_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Periodic_3_Delaunay_triangulation_traits_3.h b/thirdparty/CGAL/include/CGAL/Periodic_3_Delaunay_triangulation_traits_3.h index d767aee8..af147a57 100644 --- a/thirdparty/CGAL/include/CGAL/Periodic_3_Delaunay_triangulation_traits_3.h +++ b/thirdparty/CGAL/include/CGAL/Periodic_3_Delaunay_triangulation_traits_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Periodic_3_function_wrapper.h b/thirdparty/CGAL/include/CGAL/Periodic_3_function_wrapper.h index aac57dc1..953dd23d 100644 --- a/thirdparty/CGAL/include/CGAL/Periodic_3_function_wrapper.h +++ b/thirdparty/CGAL/include/CGAL/Periodic_3_function_wrapper.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Periodic_3_mesh_3/IO/File_medit.h b/thirdparty/CGAL/include/CGAL/Periodic_3_mesh_3/IO/File_medit.h index 875dfb7b..2a909634 100644 --- a/thirdparty/CGAL/include/CGAL/Periodic_3_mesh_3/IO/File_medit.h +++ b/thirdparty/CGAL/include/CGAL/Periodic_3_mesh_3/IO/File_medit.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Periodic_3_mesh_3/Protect_edges_sizing_field.h b/thirdparty/CGAL/include/CGAL/Periodic_3_mesh_3/Protect_edges_sizing_field.h index 5d16a0c8..c15ff4f4 100644 --- a/thirdparty/CGAL/include/CGAL/Periodic_3_mesh_3/Protect_edges_sizing_field.h +++ b/thirdparty/CGAL/include/CGAL/Periodic_3_mesh_3/Protect_edges_sizing_field.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Periodic_3_mesh_3/config.h b/thirdparty/CGAL/include/CGAL/Periodic_3_mesh_3/config.h index 3bc1f81d..def8cece 100644 --- a/thirdparty/CGAL/include/CGAL/Periodic_3_mesh_3/config.h +++ b/thirdparty/CGAL/include/CGAL/Periodic_3_mesh_3/config.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Periodic_3_mesh_triangulation_3.h b/thirdparty/CGAL/include/CGAL/Periodic_3_mesh_triangulation_3.h index 31523df8..db7c7e0e 100644 --- a/thirdparty/CGAL/include/CGAL/Periodic_3_mesh_triangulation_3.h +++ b/thirdparty/CGAL/include/CGAL/Periodic_3_mesh_triangulation_3.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Periodic_3_offset_3.h b/thirdparty/CGAL/include/CGAL/Periodic_3_offset_3.h index 6062af66..044fc843 100644 --- a/thirdparty/CGAL/include/CGAL/Periodic_3_offset_3.h +++ b/thirdparty/CGAL/include/CGAL/Periodic_3_offset_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Periodic_3_regular_triangulation_3.h b/thirdparty/CGAL/include/CGAL/Periodic_3_regular_triangulation_3.h index b37da831..a665db8e 100644 --- a/thirdparty/CGAL/include/CGAL/Periodic_3_regular_triangulation_3.h +++ b/thirdparty/CGAL/include/CGAL/Periodic_3_regular_triangulation_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Periodic_3_regular_triangulation_traits_3.h b/thirdparty/CGAL/include/CGAL/Periodic_3_regular_triangulation_traits_3.h index 23306936..2f8f438b 100644 --- a/thirdparty/CGAL/include/CGAL/Periodic_3_regular_triangulation_traits_3.h +++ b/thirdparty/CGAL/include/CGAL/Periodic_3_regular_triangulation_traits_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3.h b/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3.h index f9d008e9..96f87c7a 100644 --- a/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3.h +++ b/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Periodic_3_triangulation_3/include/CGAL/Periodic_3_triangulation_3.h $ -// $Id: Periodic_3_triangulation_3.h 5945e48 2021-09-17T08:14:06+02:00 Sébastien Loriot +// $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 @@ -3205,7 +3205,7 @@ periodic_remove(Vertex_handle v, PointRemover& remover, CoverManager& cover_mana // in Euclidean space and make a map from the vertices in remover.tmp // towards the vertices in *this - Unique_hash_map vmap; + Unique_hash_map vmap(Vertex_handle(), vertices.size()); CellE_handle ch; remover.tmp.clear(); @@ -3256,6 +3256,7 @@ periodic_remove(Vertex_handle v, PointRemover& remover, CoverManager& cover_mana 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 @@ periodic_remove(Vertex_handle v, PointRemover& remover, CoverManager& cover_mana } } } - outer_map.erase(oit); } // finally set the neighboring relations @@ -4145,7 +4145,7 @@ operator<< (std::ostream& os,const Periodic_3_triangulation_3& tr) return os; // write the vertices - Unique_hash_map V; + Unique_hash_map V(0, tr.number_of_vertices()); std::size_t i=0; if(tr.is_1_cover()) { for(Vertex_iterator it=tr.vertices_begin(); it!=tr.vertices_end(); ++it) { diff --git a/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Functor_with_offset_points_adaptor_3.h b/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Functor_with_offset_points_adaptor_3.h index bb45061c..d43c0df2 100644 --- a/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Functor_with_offset_points_adaptor_3.h +++ b/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Functor_with_offset_points_adaptor_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Functor_with_offset_weighted_points_adaptor_3.h b/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Functor_with_offset_weighted_points_adaptor_3.h index 249f30ef..77d53057 100644 --- a/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Functor_with_offset_weighted_points_adaptor_3.h +++ b/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Functor_with_offset_weighted_points_adaptor_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_Delaunay_triangulation_filtered_traits_3.h b/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_Delaunay_triangulation_filtered_traits_3.h index 01884a62..495caa06 100644 --- a/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_Delaunay_triangulation_filtered_traits_3.h +++ b/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_Delaunay_triangulation_filtered_traits_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_Delaunay_triangulation_remove_traits_3.h b/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_Delaunay_triangulation_remove_traits_3.h index b4b9ecb4..bcfcd54f 100644 --- a/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_Delaunay_triangulation_remove_traits_3.h +++ b/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_Delaunay_triangulation_remove_traits_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_Delaunay_triangulation_statically_filtered_traits_3.h b/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_Delaunay_triangulation_statically_filtered_traits_3.h index ebaf9497..6ab4dcdc 100644 --- a/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_Delaunay_triangulation_statically_filtered_traits_3.h +++ b/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_Delaunay_triangulation_statically_filtered_traits_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_construct_point_3.h b/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_construct_point_3.h index 8bf0129d..b8dbe2e9 100644 --- a/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_construct_point_3.h +++ b/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_construct_point_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_construct_weighted_point_3.h b/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_construct_weighted_point_3.h index e7534573..f51a4a61 100644 --- a/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_construct_weighted_point_3.h +++ b/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_construct_weighted_point_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_regular_triangulation_dummy_288.h b/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_regular_triangulation_dummy_288.h index ce81ebed..6583c770 100644 --- a/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_regular_triangulation_dummy_288.h +++ b/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_regular_triangulation_dummy_288.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_regular_triangulation_filtered_traits_3.h b/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_regular_triangulation_filtered_traits_3.h index be80a9a0..fc15d252 100644 --- a/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_regular_triangulation_filtered_traits_3.h +++ b/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_regular_triangulation_filtered_traits_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_regular_triangulation_remove_traits_3.h b/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_regular_triangulation_remove_traits_3.h index 63775c88..3a5ffb63 100644 --- a/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_regular_triangulation_remove_traits_3.h +++ b/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_regular_triangulation_remove_traits_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_regular_triangulation_statically_filtered_traits_3.h b/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_regular_triangulation_statically_filtered_traits_3.h index ed4997bf..5358ba17 100644 --- a/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_regular_triangulation_statically_filtered_traits_3.h +++ b/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_regular_triangulation_statically_filtered_traits_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_triangulation_dummy_36.h b/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_triangulation_dummy_36.h index 05e87c70..5b5f97ec 100644 --- a/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_triangulation_dummy_36.h +++ b/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_triangulation_dummy_36.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_triangulation_filtered_traits_3.h b/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_triangulation_filtered_traits_3.h index c3317e79..f0b75245 100644 --- a/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_triangulation_filtered_traits_3.h +++ b/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_triangulation_filtered_traits_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_triangulation_iterators_3.h b/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_triangulation_iterators_3.h index ca994434..944e6539 100644 --- a/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_triangulation_iterators_3.h +++ b/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_triangulation_iterators_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_triangulation_statically_filtered_traits_3.h b/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_triangulation_statically_filtered_traits_3.h index 892ca4e3..651091da 100644 --- a/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_triangulation_statically_filtered_traits_3.h +++ b/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Periodic_3_triangulation_statically_filtered_traits_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Robust_periodic_weighted_circumcenter_traits_3.h b/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Robust_periodic_weighted_circumcenter_traits_3.h index 70e671ee..b4c5c0c9 100644 --- a/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Robust_periodic_weighted_circumcenter_traits_3.h +++ b/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Robust_periodic_weighted_circumcenter_traits_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Static_filters/Periodic_3_orientation_3.h b/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Static_filters/Periodic_3_orientation_3.h index 7ac223ce..08e79df1 100644 --- a/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Static_filters/Periodic_3_orientation_3.h +++ b/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Static_filters/Periodic_3_orientation_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Static_filters/Periodic_3_power_side_of_oriented_power_sphere_3.h b/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Static_filters/Periodic_3_power_side_of_oriented_power_sphere_3.h index 78ad929c..1acd5476 100644 --- a/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Static_filters/Periodic_3_power_side_of_oriented_power_sphere_3.h +++ b/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Static_filters/Periodic_3_power_side_of_oriented_power_sphere_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Static_filters/Periodic_3_side_of_oriented_sphere_3.h b/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Static_filters/Periodic_3_side_of_oriented_sphere_3.h index 476fda94..10fba4ff 100644 --- a/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Static_filters/Periodic_3_side_of_oriented_sphere_3.h +++ b/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/Static_filters/Periodic_3_side_of_oriented_sphere_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/canonicalize_helper.h b/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/canonicalize_helper.h index cacf3a58..d98d1f1c 100644 --- a/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/canonicalize_helper.h +++ b/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_3/internal/canonicalize_helper.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_ds_cell_base_3.h b/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_ds_cell_base_3.h index 90a398da..e1e18381 100644 --- a/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_ds_cell_base_3.h +++ b/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_ds_cell_base_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_ds_vertex_base_3.h b/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_ds_vertex_base_3.h index a5d59081..1ce67a02 100644 --- a/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_ds_vertex_base_3.h +++ b/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_ds_vertex_base_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_hierarchy_3.h b/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_hierarchy_3.h index 46f33a52..a7e6d246 100644 --- a/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_hierarchy_3.h +++ b/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_hierarchy_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_traits_3.h b/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_traits_3.h index 6300f51c..d5b39c20 100644 --- a/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_traits_3.h +++ b/thirdparty/CGAL/include/CGAL/Periodic_3_triangulation_traits_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Periodic_4_hyperbolic_Delaunay_triangulation_2.h b/thirdparty/CGAL/include/CGAL/Periodic_4_hyperbolic_Delaunay_triangulation_2.h index 26c25e48..30a359c8 100644 --- a/thirdparty/CGAL/include/CGAL/Periodic_4_hyperbolic_Delaunay_triangulation_2.h +++ b/thirdparty/CGAL/include/CGAL/Periodic_4_hyperbolic_Delaunay_triangulation_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Periodic_4_hyperbolic_Delaunay_triangulation_traits_2.h b/thirdparty/CGAL/include/CGAL/Periodic_4_hyperbolic_Delaunay_triangulation_traits_2.h index cdaf7880..421cf29c 100644 --- a/thirdparty/CGAL/include/CGAL/Periodic_4_hyperbolic_Delaunay_triangulation_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Periodic_4_hyperbolic_Delaunay_triangulation_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Periodic_4_hyperbolic_triangulation_2.h b/thirdparty/CGAL/include/CGAL/Periodic_4_hyperbolic_triangulation_2.h index 1884ba5c..b8ddf3ee 100644 --- a/thirdparty/CGAL/include/CGAL/Periodic_4_hyperbolic_triangulation_2.h +++ b/thirdparty/CGAL/include/CGAL/Periodic_4_hyperbolic_triangulation_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Periodic_4_hyperbolic_triangulation_2/internal/Dehn_hyperbolic_octagon_translation_word.h b/thirdparty/CGAL/include/CGAL/Periodic_4_hyperbolic_triangulation_2/internal/Dehn_hyperbolic_octagon_translation_word.h index 2ff222a4..739eb514 100644 --- a/thirdparty/CGAL/include/CGAL/Periodic_4_hyperbolic_triangulation_2/internal/Dehn_hyperbolic_octagon_translation_word.h +++ b/thirdparty/CGAL/include/CGAL/Periodic_4_hyperbolic_triangulation_2/internal/Dehn_hyperbolic_octagon_translation_word.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Periodic_4_hyperbolic_triangulation_2/internal/Hyperbolic_octagon_translation_matrix.h b/thirdparty/CGAL/include/CGAL/Periodic_4_hyperbolic_triangulation_2/internal/Hyperbolic_octagon_translation_matrix.h index 031389f6..370290a7 100644 --- a/thirdparty/CGAL/include/CGAL/Periodic_4_hyperbolic_triangulation_2/internal/Hyperbolic_octagon_translation_matrix.h +++ b/thirdparty/CGAL/include/CGAL/Periodic_4_hyperbolic_triangulation_2/internal/Hyperbolic_octagon_translation_matrix.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Periodic_4_hyperbolic_triangulation_2/internal/Hyperbolic_octagon_translation_word.h b/thirdparty/CGAL/include/CGAL/Periodic_4_hyperbolic_triangulation_2/internal/Hyperbolic_octagon_translation_word.h index aa11d844..aad8840c 100644 --- a/thirdparty/CGAL/include/CGAL/Periodic_4_hyperbolic_triangulation_2/internal/Hyperbolic_octagon_translation_word.h +++ b/thirdparty/CGAL/include/CGAL/Periodic_4_hyperbolic_triangulation_2/internal/Hyperbolic_octagon_translation_word.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Periodic_4_hyperbolic_triangulation_2/internal/Periodic_4_hyperbolic_triangulation_dummy_14.h b/thirdparty/CGAL/include/CGAL/Periodic_4_hyperbolic_triangulation_2/internal/Periodic_4_hyperbolic_triangulation_dummy_14.h index 81441a66..dc853205 100644 --- a/thirdparty/CGAL/include/CGAL/Periodic_4_hyperbolic_triangulation_2/internal/Periodic_4_hyperbolic_triangulation_dummy_14.h +++ b/thirdparty/CGAL/include/CGAL/Periodic_4_hyperbolic_triangulation_2/internal/Periodic_4_hyperbolic_triangulation_dummy_14.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Periodic_4_hyperbolic_triangulation_face_base_2.h b/thirdparty/CGAL/include/CGAL/Periodic_4_hyperbolic_triangulation_face_base_2.h index c3ec9411..f7a43d04 100644 --- a/thirdparty/CGAL/include/CGAL/Periodic_4_hyperbolic_triangulation_face_base_2.h +++ b/thirdparty/CGAL/include/CGAL/Periodic_4_hyperbolic_triangulation_face_base_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Periodic_4_hyperbolic_triangulation_vertex_base_2.h b/thirdparty/CGAL/include/CGAL/Periodic_4_hyperbolic_triangulation_vertex_base_2.h index f28fe100..661e4a32 100644 --- a/thirdparty/CGAL/include/CGAL/Periodic_4_hyperbolic_triangulation_vertex_base_2.h +++ b/thirdparty/CGAL/include/CGAL/Periodic_4_hyperbolic_triangulation_vertex_base_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Plane_3.h b/thirdparty/CGAL/include/CGAL/Plane_3.h index f9e69f10..bc943323 100644 --- a/thirdparty/CGAL/include/CGAL/Plane_3.h +++ b/thirdparty/CGAL/include/CGAL/Plane_3.h @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Plane_3 : public R_::Kernel_base::Plane_3 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 --git a/thirdparty/CGAL/include/CGAL/Plane_separator.h b/thirdparty/CGAL/include/CGAL/Plane_separator.h index 52e4f348..dfae6bd5 100644 --- a/thirdparty/CGAL/include/CGAL/Plane_separator.h +++ b/thirdparty/CGAL/include/CGAL/Plane_separator.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Point_2.h b/thirdparty/CGAL/include/CGAL/Point_2.h index 645c332f..0cfea58d 100644 --- a/thirdparty/CGAL/include/CGAL/Point_2.h +++ b/thirdparty/CGAL/include/CGAL/Point_2.h @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Kernel_23/include/CGAL/Point_2.h $ -// $Id: Point_2.h e7357ac 2021-07-19T14:53:27+02:00 Marc Glisse +// $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 // // @@ -88,7 +88,7 @@ class Point_2 : public R_::Kernel_base::Point_2 {} friend void swap(Self& a, Self& b) -#ifdef __cpp_lib_is_swappable +#if !defined(__INTEL_COMPILER) && defined(__cpp_lib_is_swappable) noexcept(std::is_nothrow_swappable_v) #endif { diff --git a/thirdparty/CGAL/include/CGAL/Point_3.h b/thirdparty/CGAL/include/CGAL/Point_3.h index f9bbf007..d8f96561 100644 --- a/thirdparty/CGAL/include/CGAL/Point_3.h +++ b/thirdparty/CGAL/include/CGAL/Point_3.h @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Kernel_23/include/CGAL/Point_3.h $ -// $Id: Point_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/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 // // @@ -85,7 +85,7 @@ class Point_3 : public R_::Kernel_base::Point_3 {} friend void swap(Self& a, Self& b) -#ifdef __cpp_lib_is_swappable +#if !defined(__INTEL_COMPILER) && defined(__cpp_lib_is_swappable) noexcept(std::is_nothrow_swappable_v) #endif { diff --git a/thirdparty/CGAL/include/CGAL/Point_container.h b/thirdparty/CGAL/include/CGAL/Point_container.h index 12ebeb9a..0701a4fd 100644 --- a/thirdparty/CGAL/include/CGAL/Point_container.h +++ b/thirdparty/CGAL/include/CGAL/Point_container.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Point_set_2.h b/thirdparty/CGAL/include/CGAL/Point_set_2.h index 47974c79..e01dda03 100644 --- a/thirdparty/CGAL/include/CGAL/Point_set_2.h +++ b/thirdparty/CGAL/include/CGAL/Point_set_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Point_set_3.h b/thirdparty/CGAL/include/CGAL/Point_set_3.h index 5485a491..598cdd6c 100644 --- a/thirdparty/CGAL/include/CGAL/Point_set_3.h +++ b/thirdparty/CGAL/include/CGAL/Point_set_3.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ -164,8 +165,11 @@ class Point_set_3 { 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 @@ class Point_set_3 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 @@ Point_set_3& operator+=(Point_set_3& ps, 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 --git a/thirdparty/CGAL/include/CGAL/Point_set_3/IO.h b/thirdparty/CGAL/include/CGAL/Point_set_3/IO.h index 3e5eba49..b52ff8b0 100644 --- a/thirdparty/CGAL/include/CGAL/Point_set_3/IO.h +++ b/thirdparty/CGAL/include/CGAL/Point_set_3/IO.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace IO { \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 @@ bool read_point_set(const std::string& fname, 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 @@ namespace IO { \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 @@ bool write_point_set(const std::string& fname, 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 --git a/thirdparty/CGAL/include/CGAL/Point_set_3/IO/LAS.h b/thirdparty/CGAL/include/CGAL/Point_set_3/IO/LAS.h index 4057ca4d..de51e84a 100644 --- a/thirdparty/CGAL/include/CGAL/Point_set_3/IO/LAS.h +++ b/thirdparty/CGAL/include/CGAL/Point_set_3/IO/LAS.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Point_set_3/IO/OFF.h b/thirdparty/CGAL/include/CGAL/Point_set_3/IO/OFF.h index 9b596451..2696607c 100644 --- a/thirdparty/CGAL/include/CGAL/Point_set_3/IO/OFF.h +++ b/thirdparty/CGAL/include/CGAL/Point_set_3/IO/OFF.h @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace IO { \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 @@ bool write_OFF(std::ostream& os, 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 @@ bool write_OFF(std::ostream& os, const CGAL::Point_set_3& point_s \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 --git a/thirdparty/CGAL/include/CGAL/Point_set_3/IO/PLY.h b/thirdparty/CGAL/include/CGAL/Point_set_3/IO/PLY.h index 6506cf1c..dcdc37fd 100644 --- a/thirdparty/CGAL/include/CGAL/Point_set_3/IO/PLY.h +++ b/thirdparty/CGAL/include/CGAL/Point_set_3/IO/PLY.h @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ bool read_PLY(std::istream& is, CGAL::Point_set_3& point_set) \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 @@ bool read_PLY(const std::string& fname, } /// \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 @@ namespace IO { \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 @@ bool write_PLY(std::ostream& os, /// \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 @@ bool write_PLY(std::ostream& os, const CGAL::Point_set_3& point_s \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 @@ bool write_PLY(const std::string& fname, /// \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 --git a/thirdparty/CGAL/include/CGAL/Point_set_3/IO/XYZ.h b/thirdparty/CGAL/include/CGAL/Point_set_3/IO/XYZ.h index d0159c0e..9ec7f92d 100644 --- a/thirdparty/CGAL/include/CGAL/Point_set_3/IO/XYZ.h +++ b/thirdparty/CGAL/include/CGAL/Point_set_3/IO/XYZ.h @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace IO { \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 @@ bool write_XYZ(std::ostream& os, 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 @@ bool write_XYZ(std::ostream& os, const CGAL::Point_set_3& point_s \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 --git a/thirdparty/CGAL/include/CGAL/Point_set_processing_3/internal/Callback_wrapper.h b/thirdparty/CGAL/include/CGAL/Point_set_processing_3/internal/Callback_wrapper.h index be4affd3..032293fb 100644 --- a/thirdparty/CGAL/include/CGAL/Point_set_processing_3/internal/Callback_wrapper.h +++ b/thirdparty/CGAL/include/CGAL/Point_set_processing_3/internal/Callback_wrapper.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Point_set_processing_3/internal/Neighbor_query.h b/thirdparty/CGAL/include/CGAL/Point_set_processing_3/internal/Neighbor_query.h index 172ed19b..502216ac 100644 --- a/thirdparty/CGAL/include/CGAL/Point_set_processing_3/internal/Neighbor_query.h +++ b/thirdparty/CGAL/include/CGAL/Point_set_processing_3/internal/Neighbor_query.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Point_set_processing_3/internal/Rich_grid.h b/thirdparty/CGAL/include/CGAL/Point_set_processing_3/internal/Rich_grid.h index 0672908f..c9a7dffb 100644 --- a/thirdparty/CGAL/include/CGAL/Point_set_processing_3/internal/Rich_grid.h +++ b/thirdparty/CGAL/include/CGAL/Point_set_processing_3/internal/Rich_grid.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Point_set_processing_3/internal/Search_traits_vertex_handle_3.h b/thirdparty/CGAL/include/CGAL/Point_set_processing_3/internal/Search_traits_vertex_handle_3.h index 6e6504d1..e6da4d65 100644 --- a/thirdparty/CGAL/include/CGAL/Point_set_processing_3/internal/Search_traits_vertex_handle_3.h +++ b/thirdparty/CGAL/include/CGAL/Point_set_processing_3/internal/Search_traits_vertex_handle_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Point_set_processing_3/internal/Voronoi_covariance_3/voronoi_covariance_3.h b/thirdparty/CGAL/include/CGAL/Point_set_processing_3/internal/Voronoi_covariance_3/voronoi_covariance_3.h index 5d4624a0..bb20181b 100644 --- a/thirdparty/CGAL/include/CGAL/Point_set_processing_3/internal/Voronoi_covariance_3/voronoi_covariance_3.h +++ b/thirdparty/CGAL/include/CGAL/Point_set_processing_3/internal/Voronoi_covariance_3/voronoi_covariance_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Point_set_processing_3/internal/Voronoi_covariance_3/voronoi_covariance_sphere_3.h b/thirdparty/CGAL/include/CGAL/Point_set_processing_3/internal/Voronoi_covariance_3/voronoi_covariance_sphere_3.h index 72610b7e..1e1b172f 100644 --- a/thirdparty/CGAL/include/CGAL/Point_set_processing_3/internal/Voronoi_covariance_3/voronoi_covariance_sphere_3.h +++ b/thirdparty/CGAL/include/CGAL/Point_set_processing_3/internal/Voronoi_covariance_3/voronoi_covariance_sphere_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Point_set_processing_3/internal/bbox_diagonal.h b/thirdparty/CGAL/include/CGAL/Point_set_processing_3/internal/bbox_diagonal.h index 1fc4f707..7f2ea1a9 100644 --- a/thirdparty/CGAL/include/CGAL/Point_set_processing_3/internal/bbox_diagonal.h +++ b/thirdparty/CGAL/include/CGAL/Point_set_processing_3/internal/bbox_diagonal.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Point_traits.h b/thirdparty/CGAL/include/CGAL/Point_traits.h index 5a5725e0..02d15a52 100644 --- a/thirdparty/CGAL/include/CGAL/Point_traits.h +++ b/thirdparty/CGAL/include/CGAL/Point_traits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Point_with_normal_3.h b/thirdparty/CGAL/include/CGAL/Point_with_normal_3.h index 9ea11476..39f45c2c 100644 --- a/thirdparty/CGAL/include/CGAL/Point_with_normal_3.h +++ b/thirdparty/CGAL/include/CGAL/Point_with_normal_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Point_with_psc_localisation.h b/thirdparty/CGAL/include/CGAL/Point_with_psc_localisation.h index 2166fc46..d0c26425 100644 --- a/thirdparty/CGAL/include/CGAL/Point_with_psc_localisation.h +++ b/thirdparty/CGAL/include/CGAL/Point_with_psc_localisation.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Point_with_surface_index.h b/thirdparty/CGAL/include/CGAL/Point_with_surface_index.h index 71be0d80..e8f624d8 100644 --- a/thirdparty/CGAL/include/CGAL/Point_with_surface_index.h +++ b/thirdparty/CGAL/include/CGAL/Point_with_surface_index.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Point_with_surface_index_geom_traits.h b/thirdparty/CGAL/include/CGAL/Point_with_surface_index_geom_traits.h index 328b79b5..54c4c035 100644 --- a/thirdparty/CGAL/include/CGAL/Point_with_surface_index_geom_traits.h +++ b/thirdparty/CGAL/include/CGAL/Point_with_surface_index_geom_traits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Poisson_implicit_surface_3.h b/thirdparty/CGAL/include/CGAL/Poisson_implicit_surface_3.h index a5b81e70..06556542 100644 --- a/thirdparty/CGAL/include/CGAL/Poisson_implicit_surface_3.h +++ b/thirdparty/CGAL/include/CGAL/Poisson_implicit_surface_3.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Poisson_mesh_cell_criteria_3.h b/thirdparty/CGAL/include/CGAL/Poisson_mesh_cell_criteria_3.h index 993a1e46..3344d617 100644 --- a/thirdparty/CGAL/include/CGAL/Poisson_mesh_cell_criteria_3.h +++ b/thirdparty/CGAL/include/CGAL/Poisson_mesh_cell_criteria_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Poisson_reconstruction_function.h b/thirdparty/CGAL/include/CGAL/Poisson_reconstruction_function.h index fb60baae..a5c05e99 100644 --- a/thirdparty/CGAL/include/CGAL/Poisson_reconstruction_function.h +++ b/thirdparty/CGAL/include/CGAL/Poisson_reconstruction_function.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Poisson_reconstruction_function /// 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 @@ class Poisson_reconstruction_function /// 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 --git a/thirdparty/CGAL/include/CGAL/Polychain_2.h b/thirdparty/CGAL/include/CGAL/Polychain_2.h index 4b968b56..4af691c4 100644 --- a/thirdparty/CGAL/include/CGAL/Polychain_2.h +++ b/thirdparty/CGAL/include/CGAL/Polychain_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polygon_2.h b/thirdparty/CGAL/include/CGAL/Polygon_2.h index e9b2d32e..4fd113e2 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_2.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_2.h @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Polygon/include/CGAL/Polygon_2.h $ -// $Id: Polygon_2.h ad00738 2020-08-13T14:44:45+02:00 Simon Giraudot +// $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 @@ class Polygon_2 { /// 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 @@ class Polygon_2 { typedef Polygon_2_edge_iterator Vertex_pair_iterator; + + typedef Iterator_range Edges; #endif // DOXYGEN_RUNNING /// @} @@ -157,11 +169,8 @@ class Polygon_2 { template Polygon_2(InputIterator first, InputIterator last, Traits p_traits = Traits()) - : d_container(), traits(p_traits) - { - // Sun STL switches off member templates for binary backward compat. - std::copy(first, last, std::back_inserter(d_container)); - } + : d_container(first,last), traits(p_traits) + {} #ifndef DOXYGEN_RUNNING Polygon_2& operator=(const Polygon_2&)=default; @@ -265,22 +274,28 @@ class Polygon_2 { /// 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()); } @@ -293,6 +308,12 @@ class Polygon_2 { 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 @@ -383,7 +404,7 @@ class Polygon_2 { 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 --git a/thirdparty/CGAL/include/CGAL/Polygon_2/Polygon_2_algorithms_impl.h b/thirdparty/CGAL/include/CGAL/Polygon_2/Polygon_2_algorithms_impl.h index a53d3797..84e07c6b 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_2/Polygon_2_algorithms_impl.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_2/Polygon_2_algorithms_impl.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polygon_2/Polygon_2_edge_circulator.h b/thirdparty/CGAL/include/CGAL/Polygon_2/Polygon_2_edge_circulator.h index aba3898b..926e90be 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_2/Polygon_2_edge_circulator.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_2/Polygon_2_edge_circulator.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polygon_2/Polygon_2_edge_iterator.h b/thirdparty/CGAL/include/CGAL/Polygon_2/Polygon_2_edge_iterator.h index a770d129..775bf20d 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_2/Polygon_2_edge_iterator.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_2/Polygon_2_edge_iterator.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polygon_2/Polygon_2_impl.h b/thirdparty/CGAL/include/CGAL/Polygon_2/Polygon_2_impl.h index 7900f5ab..97014163 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_2/Polygon_2_impl.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_2/Polygon_2_impl.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polygon_2/Polygon_2_simplicity.h b/thirdparty/CGAL/include/CGAL/Polygon_2/Polygon_2_simplicity.h index 186db9d4..c667f87e 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_2/Polygon_2_simplicity.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_2/Polygon_2_simplicity.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polygon_2/Polygon_2_vertex_circulator.h b/thirdparty/CGAL/include/CGAL/Polygon_2/Polygon_2_vertex_circulator.h index 23d91de7..3ef73a7c 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_2/Polygon_2_vertex_circulator.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_2/Polygon_2_vertex_circulator.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polygon_2/polygon_assertions.h b/thirdparty/CGAL/include/CGAL/Polygon_2/polygon_assertions.h index 039af6f4..89c203ab 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_2/polygon_assertions.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_2/polygon_assertions.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polygon_2_algorithms.h b/thirdparty/CGAL/include/CGAL/Polygon_2_algorithms.h index 69781a3b..792d8bb6 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_2_algorithms.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_2_algorithms.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polygon_convex_decomposition_2.h b/thirdparty/CGAL/include/CGAL/Polygon_convex_decomposition_2.h index 4e830ab0..2be406be 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_convex_decomposition_2.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_convex_decomposition_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/IO/polygon_mesh_io.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/IO/polygon_mesh_io.h index de8fe529..79965706 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/IO/polygon_mesh_io.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/IO/polygon_mesh_io.h @@ -6,8 +6,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace IO { /*! \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 @@ namespace IO { * * 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 @@ namespace IO { * * \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 @@ bool read_polygon_mesh(const std::string& fname, 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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/Non_manifold_feature_map.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/Non_manifold_feature_map.h index d58ebe55..12fd7bcb 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/Non_manifold_feature_map.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/Non_manifold_feature_map.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/angle_and_area_smoothing.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/angle_and_area_smoothing.h new file mode 100644 index 00000000..54d1b843 --- /dev/null +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/angle_and_area_smoothing.h @@ -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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/bbox.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/bbox.h index 15e63363..e9646160 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/bbox.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/bbox.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace CGAL { * \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 @@ namespace CGAL { /*! * \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 @@ namespace CGAL { * \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 @@ namespace CGAL { /*! * \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 @@ namespace CGAL { * \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 @@ namespace CGAL { /*! * \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 @@ namespace CGAL { * \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 @@ namespace CGAL { 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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/border.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/border.h index 756a44f0..cb495751 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/border.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/border.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ std::size_t border_size(typename boost::graph_traits::halfedge_desc }//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 @@ std::size_t border_size(typename boost::graph_traits::halfedge_desc * \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 @@ std::size_t border_size(typename boost::graph_traits::halfedge_desc 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 @@ std::size_t border_size(typename boost::graph_traits::halfedge_desc 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 @@ std::size_t border_size(typename boost::graph_traits::halfedge_desc } /// @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 @@ std::size_t border_size(typename boost::graph_traits::halfedge_desc /// @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 @@ std::size_t border_size(typename boost::graph_traits::halfedge_desc { 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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/clip.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/clip.h index d6089c6d..e39183ac 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/clip.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/clip.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/clip.h $ -// $Id: clip.h 94ee9b1 2021-10-07T14:27:16+02:00 Laurent Rineau +// $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 // // @@ -87,7 +87,7 @@ clip_to_bbox(const Plane_3& plane, }}; // description of faces of the bbox - constexpr std::array face_indices + static constexpr std::array face_indices { { 0, 1, 2, 3, 2, 1, 5, 6, 3, 2, 6, 7, @@ -95,7 +95,7 @@ clip_to_bbox(const Plane_3& plane, 4, 0, 3, 7, 6, 5, 4, 7 } }; - constexpr std::array edge_indices + static constexpr std::array edge_indices { { 0, 1, 2, 3, 1, 4, 5, 6, 2, 6, 7, 8, @@ -504,7 +504,7 @@ generic_clip_impl( 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 @@ generic_clip_impl( /** * \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 @@ generic_clip_impl( * * @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 @@ clip(TriangleMesh& tm, /** * \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 @@ clip(TriangleMesh& tm, * * @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 @@ bool clip(TriangleMesh& tm, 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 @@ bool clip(TriangleMesh& tm, /** * \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 @@ bool clip(TriangleMesh& tm, * * @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 @@ bool clip(TriangleMesh& tm, /*! * \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 @@ bool clip(TriangleMesh& tm, * \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 @@ void split(TriangleMesh& tm, /** * \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 @@ void split(TriangleMesh& tm, * 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 @@ void split(TriangleMesh& tm, 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 @@ void split(TriangleMesh& tm, /** * \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 @@ void split(TriangleMesh& tm, * \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 @@ void split(TriangleMesh& tm, * 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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/compute_normal.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/compute_normal.h index 48f4efe9..d666c7e8 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/compute_normal.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/compute_normal.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ void sum_normals(const PM& pmesh, /** * \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 @@ void sum_normals(const PM& pmesh, * * @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 @@ typename GetGeomTraits::type::Vector_3 #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 @@ compute_face_normal(typename boost::graph_traits::face_descriptor f 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 @@ compute_face_normal(typename boost::graph_traits::face_descriptor f * \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 @@ void compute_face_normals(const PolygonMesh& pmesh, } } -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 @@ compute_vertex_normal_as_sum_of_weighted_normals(typename boost::graph_traits +template #ifdef DOXYGEN_RUNNING Vector_3 #else @@ -660,7 +659,7 @@ typename GetGeomTraits::type::Vector_3 #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 @@ compute_vertex_normal(typename boost::graph_traits::vertex_descript 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 @@ compute_vertex_normal(typename boost::graph_traits::vertex_descript 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 @@ compute_vertex_normal(typename boost::graph_traits::vertex_descript * \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 @@ void compute_vertex_normals(const PolygonMesh& pmesh, 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 @@ void compute_vertex_normals(const PolygonMesh& pmesh, } } -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 @@ void compute_vertex_normals(const PolygonMesh& pmesh, VertexNormalMap vertex_nor * \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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/connected_components.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/connected_components.h index ec3a6549..0b611cfa 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/connected_components.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/connected_components.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 { } // 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" + * \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 + * \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 @@ namespace internal { * * \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 @@ connected_component(typename boost::graph_traits::face_descriptor s 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 @@ connected_component(typename boost::graph_traits::face_descriptor s * 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 @@ connected_component(typename boost::graph_traits::face_descriptor s * \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 @@ connected_components(const PolygonMesh& pmesh, 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 @@ namespace internal { // * // * \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 @@ std::size_t number_of_connected_components(const PolygonMesh& pmesh, 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 @@ std::size_t number_of_connected_components(const PolygonMesh& pmesh) * \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 @@ std::size_t keep_largest_connected_components(PolygonMesh& pmesh, 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 @@ std::size_t keep_largest_connected_components(PolygonMesh& pmesh, * \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 @@ std::size_t keep_large_connected_components(PolygonMesh& pmesh, 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 @@ void keep_or_remove_connected_components(PolygonMesh& pmesh 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 @@ void keep_or_remove_connected_components(PolygonMesh& pmesh 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 @@ void keep_or_remove_connected_components(PolygonMesh& pmesh } /*! -* \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 @@ void keep_or_remove_connected_components(PolygonMesh& pmesh * \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 @@ void remove_connected_components(PolygonMesh& pmesh * \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 @@ void remove_connected_components(PolygonMesh& pmesh 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 @@ void remove_connected_components(PolygonMesh& pmesh } /*! -* \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 @@ void remove_connected_components(PolygonMesh& pmesh * \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 @@ void keep_connected_components(PolygonMesh& pmesh 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 @@ void keep_connected_components(PolygonMesh& pmesh 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 @@ void split_connected_components_impl(FIMap fim, 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 @@ void split_connected_components_impl(FIMap fim, }//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 @@ void split_connected_components_impl(FIMap fim, * \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 @@ void split_connected_components(const PolygonMesh& pmesh, 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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/corefinement.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/corefinement.h index f9c7f7dd..ad0de49f 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/corefinement.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/corefinement.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 Polygon_mesh_processing { 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 @@ enum Boolean_operation_type {UNION = 0, INTERSECTION=1, /** * \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 @@ enum Boolean_operation_type {UNION = 0, INTERSECTION=1, * \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 @@ enum Boolean_operation_type {UNION = 0, INTERSECTION=1, * 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 @@ corefine_and_compute_boolean_operations( 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 @@ corefine_and_compute_boolean_operations( * \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 @@ corefine_and_compute_boolean_operations( * 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 @@ corefine_and_compute_union( TriangleMesh& tm1, * \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 @@ corefine_and_compute_intersection( TriangleMesh& tm1, * \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 @@ corefine_and_compute_difference( TriangleMesh& tm1, * \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 @@ corefine_and_compute_difference( TriangleMesh& tm1, * */ 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 @@ corefine( TriangleMesh& tm1, 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 @@ corefine( TriangleMesh& tm1, 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 @@ namespace experimental { * 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 @@ namespace experimental { * */ 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 @@ autorefine( TriangleMesh& tm, * 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 @@ autorefine( TriangleMesh& tm, * */ 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 @@ autorefine_and_remove_self_intersections( TriangleMesh& tm, }// 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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/detect_features.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/detect_features.h index 58e76a7f..561d2e1c 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/detect_features.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/detect_features.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ void put(PatchIdMapWrapper >& map, Handle_type h } 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 @@ detect_surface_patches(const PolygonMesh& p, .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 @@ void sharp_call(const FT angle_in_deg, /*! * \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 @@ void sharp_call(const FT angle_in_deg, * \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 @@ void detect_sharp_edges(const PolygonMesh& pmesh, 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 @@ void detect_sharp_edges(const PolygonMesh& pmesh, * * \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 @@ void detect_sharp_edges(const PolygonMesh& pmesh, * \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 @@ template #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 @@ sharp_edges_segmentation(const PolygonMesh& pmesh, #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 @@ sharp_edges_segmentation(const PolygonMesh& pmesh, 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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/distance.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/distance.h index e3a369e7..b6e1044f 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/distance.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/distance.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ triangle_grid_sampling(const typename Kernel::Point_3& p0, 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 @@ struct Triangle_structure_sampler_base {} 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 @@ struct Triangle_structure_sampler_base 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 @@ struct Triangle_structure_sampler_base { 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 @@ struct Triangle_structure_sampler_base 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 @@ struct Triangle_structure_sampler_base } // 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 @@ sample_triangles(const FaceRange& triangles, { 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 @@ sample_triangles(const FaceRange& triangles, 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 @@ struct Triangle_structure_sampler_for_triangle_mesh 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 @@ struct Triangle_structure_sampler_for_triangle_mesh 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 @@ struct Triangle_structure_sampler_for_triangle_mesh { 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 @@ struct Triangle_structure_sampler_for_triangle_mesh 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 @@ struct Triangle_structure_sampler_for_triangle_mesh 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 @@ struct Triangle_structure_sampler_for_triangle_mesh 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 @@ struct Triangle_structure_sampler_for_triangle_mesh 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 @@ struct Triangle_structure_sampler_for_triangle_soup 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 @@ struct Triangle_structure_sampler_for_triangle_soup 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 @@ struct Triangle_structure_sampler_for_triangle_soup 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 @@ struct Triangle_structure_sampler_for_triangle_soup 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 @@ struct Triangle_structure_sampler_for_triangle_soup 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 @@ struct Triangle_structure_sampler_for_triangle_soup { std::array points; for(int i=0; i<3; ++i) - { points[i] = this->points[tr[i]]; - } + return points; } @@ -681,7 +716,7 @@ struct Triangle_structure_sampler_for_triangle_soup Randomizer get_randomizer() { - return Randomizer(triangles, points); + return Randomizer(triangles, points, rnd); } void internal_sample_triangles(double distance, bool, bool) @@ -737,6 +772,12 @@ struct Triangle_structure_sampler_for_triangle_soup * \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 @@ struct Triangle_structure_sampler_for_triangle_soup * * @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 @@ sample_triangle_mesh(const TriangleMesh& tm, * \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 @@ sample_triangle_mesh(const TriangleMesh& tm, 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."); + + CGAL_precondition(!triangles.empty()); - 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); - - return internal::approximate_Hausdorff_distance_impl - (sample_points, tree, hint); -} + typedef typename GetGeomTraits::type GeomTraits; + typedef typename GeomTraits::Point_3 Point_3; -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); + GeomTraits gt = choose_parameter(get_parameter(np, internal_np::geom_traits)); - return approximate_Hausdorff_distance(sample_points, tm2, vpm_2); -} + typedef typename GetVertexPointMap::const_type VPM; + VPM vpm = choose_parameter(get_parameter(np, internal_np::vertex_point), + get_const_property_map(vertex_point, tm)); + +#ifdef CGAL_HAUSDORFF_DEBUG + std::cout << "Nb sample points " << points.size() << "\n"; +#endif -// documented functions + 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); + + 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 @@ double approximate_Hausdorff_distance( * @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 @@ double approximate_Hausdorff_distance( * \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) + 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 GetGeomTraits::type GeomTraits; + typedef typename GeomTraits::Point_3 Point_3; - 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))); -} + CGAL_precondition(!is_empty(tm1) && is_triangle_mesh(tm1)); + CGAL_precondition(!is_empty(tm2) && is_triangle_mesh(tm2)); -/** - * \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) - ); + 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 @@ double max_distance_to_triangle_mesh(const PointRange& points, * \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 @@ double approximate_max_distance_to_point_set(const TriangleMesh& tm, } 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 @@ double approximate_symmetric_Hausdorff_distance(const TriangleMesh& tm1, // 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 @@ std::pair preprocess_bounded_error_Hausdorff_impl( // 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 @@ std::pair preprocess_bounded_error_Hausdorff_impl( 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 @@ double bounded_error_Hausdorff_impl( 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 - // Update global upper Hausdorff bound after subdivision. - const FT current_max = candidate_triangles.top().bounds.upper; - CGAL_assertion(current_max >= FT(0)); + // 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) }; - 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; + // 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; + + 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 @@ double bounded_error_Hausdorff_impl( *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) { } - - bool is_tm1_wrapper(const boost::any& operand) const { - return operand.type() == typeid(TM1Wrapper); - } + Bounded_error_preprocessing(Bounded_error_preprocessing& s, tbb::split) + : tm_wrappers(s.tm_wrappers) + { } - 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) + 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 +#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 @@ double bounded_error_one_sided_Hausdorff_impl( // 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 @@ double bounded_error_one_sided_Hausdorff_impl( 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.); - #ifdef CGAL_HAUSDORFF_DEBUG + const FT sq_initial_bound = square(FT(error_bound)); + FT sq_hdist = FT(-1); + +#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_assertion(hdist >= 0.0); - return hdist; + CGAL_postcondition(sq_hdist >= FT(0)); + + 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) + 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 +#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 @@ double bounded_error_symmetric_Hausdorff_impl( 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); - - 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); + FT sq_initial_bound = sq_error_bound; + FT sq_dista = sq_error_bound; + + 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 @@ double bounded_error_symmetric_Hausdorff_impl( } // 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); - - 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); + 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)) + { + 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) +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) { - // 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))); + 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 @@ double bounded_error_Hausdorff_naive_impl( 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 @@ double bounded_error_Hausdorff_naive_impl( * * \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) + 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()) { - 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!"); - 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()); + auto out = choose_parameter(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); -} + CGAL_precondition(error_bound >= 0.); -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()); -} + 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); -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()); + 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) + 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()) { - 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!"); - 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 @@ double bounded_error_symmetric_Hausdorff_distance( * \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) + 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()) { - 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!"); - 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) + 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()) { - 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!"); - 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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/extrude.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/extrude.h index faaf8f38..37f5868e 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/extrude.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/extrude.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ template 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 @@ void extrude_mesh(const InputMesh& input, 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 @@ void extrude_mesh(const InputMesh& input, * @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 @@ void extrude_mesh(const InputMesh& input, */ 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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/fair.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/fair.h index 888774bd..b8898004 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/fair.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/fair.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace internal { /*! \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 @@ namespace internal { \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 @@ namespace internal { 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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/AABB_traversal_traits_with_Hausdorff_distance.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/AABB_traversal_traits_with_Hausdorff_distance.h index 08edffff..435b15df 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/AABB_traversal_traits_with_Hausdorff_distance.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/AABB_traversal_traits_with_Hausdorff_distance.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 { +#include +#include +#include +#include - // 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()); - } - }; - - // 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; - } - }; - - // Hausdorff primitive traits on TM2. - template< class AABBTraits, - class Query, - class Kernel, - class TriangleMesh1, - class TriangleMesh2, - class VPM2> - class Hausdorff_primitive_traits_tm2 +namespace CGAL { +namespace Polygon_mesh_processing { +namespace internal { + +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; + + Global_bounds(const FT infinity_value) : Base(infinity_value) { } + Global_bounds(const FT lower, const FT upper) : Base(lower, upper) { } + + std::pair lpair = default_face_pair(); + std::pair upair = default_face_pair(); + + 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 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) { - 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; + if(m_early_exit) + return; + +#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(); } - // 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); + // 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(); } - // 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)); - } +#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)); + +#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); + } + + template + bool do_intersect(const Query& query, const Node& node) const + { + if(m_early_exit) + return false; + +#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)); + + // 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; } + + // 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 - bool do_intersect(const Query& query, const Node& node) const { - return this->do_intersect_with_priority(query, node).first; - } + update_global_bounds(); + return m_global_bounds; + } - // Return the local Hausdorff bounds computed for the passed query triangle. - Local_bounds get_local_bounds() const { - return h_local_bounds; + // 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); } - - 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); - } + else + { + if(sq_dist1 > sq_dist2) + return std::make_pair(sq_dist1, pair1.second); + else + return std::make_pair(sq_dist2, pair2.second); } + } - 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 + // In case, we did not enter any loop, we set the realizing triangles here. + void update_global_bounds() { - 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); + 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; } - - // 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; + 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; } + } - // 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)); - } + // Traversal-related + bool early_exit() const { return m_early_exit; } - // 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)); - } - } + // If the distance is already larger than the user-defined bound, traversal can stop + bool go_further() const { return !m_early_exit; } - template - bool do_intersect(const Query& query, const Node& node) { - return this->do_intersect_with_priority(query, node).first; + // Compute Hausdorff distance bounds between a TM1 face and TM2 + template + void intersection(const Query&, const Primitive& primitive) + { + if(m_early_exit) + return; + +#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; } - 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); - } + // 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; } - bool early_quit() const { - return m_early_quit; - } + CGAL_postcondition(m_global_bounds.upper >= m_global_bounds.lower); - // 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; + // 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; } - // Return the global Hausdorff bounds computed for the passed query triangle. - Global_bounds get_global_bounds() { - - 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); + // 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); + } - update_global_bounds(); - return h_global_bounds; - } + // 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)); + +#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); + } + + template + bool do_intersect(const Query& query, const Node& node) + { + if(m_early_exit) + return false; + +#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!"); - // 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); - } + for(PrimitiveConstIterator it = group_begin; it != group_end; ++it) + this->intersection(query, *it); + } +}; - 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; - } - } - }; -} +} // namespace internal +} // namespace Polygon_mesh_processing +} // namespace CGAL #endif // CGAL_PMP_INTERNAL_AABB_TRAVERSAL_TRAITS_WITH_HAUSDORFF_DISTANCE diff --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/AABB_traversal_traits_with_transformation.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/AABB_traversal_traits_with_transformation.h index 7076f5e5..35144e0b 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/AABB_traversal_traits_with_transformation.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/AABB_traversal_traits_with_transformation.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Corefinement/Face_graph_output_builder.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Corefinement/Face_graph_output_builder.h index 5e71ff36..9a9c46c3 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Corefinement/Face_graph_output_builder.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Corefinement/Face_graph_output_builder.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 CGAL { 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 @@ class Face_graph_output_builder // 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 @@ class Face_graph_output_builder 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 @@ class Face_graph_output_builder , 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 @@ class Face_graph_output_builder 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 @@ class Face_graph_output_builder // 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 @@ class Face_graph_output_builder 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 @@ class Face_graph_output_builder 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 @@ class Face_graph_output_builder ++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 @@ class Face_graph_output_builder 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 @@ class Face_graph_output_builder 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 @@ class Face_graph_output_builder 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 @@ class Face_graph_output_builder /// 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 @@ class Face_graph_output_builder 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 @@ class Face_graph_output_builder 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 @@ class Face_graph_output_builder 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 @@ class Face_graph_output_builder 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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Corefinement/Generic_clip_output_builder.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Corefinement/Generic_clip_output_builder.h index 6f29d39b..41ea2667 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Corefinement/Generic_clip_output_builder.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Corefinement/Generic_clip_output_builder.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Generic_clip_output_builder , 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 @@ class Generic_clip_output_builder 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 @@ class Generic_clip_output_builder } } - 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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Corefinement/Intersection_type.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Corefinement/Intersection_type.h index 26b2ca7b..f2fe300f 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Corefinement/Intersection_type.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Corefinement/Intersection_type.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Corefinement/Output_builder_for_autorefinement.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Corefinement/Output_builder_for_autorefinement.h index c6f31895..54f73546 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Corefinement/Output_builder_for_autorefinement.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Corefinement/Output_builder_for_autorefinement.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 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 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 @@ class Output_builder_for_autorefinement , 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 @@ class Output_builder_for_autorefinement { // 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 @@ class Output_builder_for_autorefinement 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 @@ class Output_builder_for_autorefinement // 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 @@ class Output_builder_for_autorefinement 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 @@ class Output_builder_for_autorefinement //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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Corefinement/Visitor.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Corefinement/Visitor.h index d44c4745..d8fd277b 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Corefinement/Visitor.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Corefinement/Visitor.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Graph_node_classifier } }; +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 @@ class Surface_intersection_visitor_for_corefinement{ 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 @@ class Surface_intersection_visitor_for_corefinement{ { return get(ecm, ed); } - // visitor public functions public: Surface_intersection_visitor_for_corefinement( @@ -460,6 +552,69 @@ class Surface_intersection_visitor_for_corefinement{ , 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 @@ class Surface_intersection_visitor_for_corefinement{ 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 @@ class Surface_intersection_visitor_for_corefinement{ 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 @@ class Surface_intersection_visitor_for_corefinement{ 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 @@ class Surface_intersection_visitor_for_corefinement{ 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 @@ class Surface_intersection_visitor_for_corefinement{ }; - 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 @@ class Surface_intersection_visitor_for_corefinement{ 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 @@ class Surface_intersection_visitor_for_corefinement{ 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 @@ class Surface_intersection_visitor_for_corefinement{ 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 @@ class Surface_intersection_visitor_for_corefinement{ 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 @@ class Surface_intersection_visitor_for_corefinement{ 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 @@ class Surface_intersection_visitor_for_corefinement{ 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 @@ class Surface_intersection_visitor_for_corefinement{ } } + 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 @@ class Surface_intersection_visitor_for_corefinement{ 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 @@ class Surface_intersection_visitor_for_corefinement{ //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 @@ class Surface_intersection_visitor_for_corefinement{ 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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Corefinement/face_graph_utils.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Corefinement/face_graph_utils.h index 137375e6..e45d7a36 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Corefinement/face_graph_utils.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Corefinement/face_graph_utils.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 CGAL { 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 @@ struct Default_visitor{ 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 @@ struct Default_visitor{ 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 @@ triangulate_a_face( 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 @@ triangulate_a_face( 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 @@ triangulate_a_face( 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 @@ triangulate_a_face( 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 @@ class Border_edge_map { 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 @@ struct Triangle_mesh_extension_helper 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 @@ struct Triangle_mesh_extension_helper 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 @@ void append_patches_to_triangle_mesh( 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 @@ void append_patches_to_triangle_mesh( } set_next(h_out, candidate, output); } + for(halfedge_descriptor h_out : border_halfedges_source_to_link) { halfedge_descriptor candidate = @@ -1333,8 +1368,8 @@ void fill_new_triangle_mesh( //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 @@ void disconnect_patches( // 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 @@ void compute_inplace_operation_delay_removal_and_insideout( 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 @@ void compute_inplace_operation( 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 @@ void compute_inplace_operation( 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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Corefinement/intersect_triangle_and_segment_3.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Corefinement/intersect_triangle_and_segment_3.h index dcbec1d7..464eb8e4 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Corefinement/intersect_triangle_and_segment_3.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Corefinement/intersect_triangle_and_segment_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Corefinement/intersection_callbacks.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Corefinement/intersection_callbacks.h index e781e5e3..684aa930 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Corefinement/intersection_callbacks.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Corefinement/intersection_callbacks.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 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") + {} +}; + template class Collect_face_bbox_per_edge_bbox { protected: @@ -69,7 +77,8 @@ class Collect_face_bbox_per_edge_bbox { template + class CoplanarFaceSet, + class Visitor> class Collect_face_bbox_per_edge_bbox_with_coplanar_handling { protected: const TriangleMesh& tm_faces; @@ -78,6 +87,7 @@ class Collect_face_bbox_per_edge_bbox_with_coplanar_handling { 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 @@ class Collect_face_bbox_per_edge_bbox_with_coplanar_handling { 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 @@ class Collect_face_bbox_per_edge_bbox_with_coplanar_handling { 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 @@ class Collect_face_bbox_per_edge_bbox_with_coplanar_handling { 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 @@ class Callback_with_self_intersection_report 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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Corefinement/intersection_impl.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Corefinement/intersection_impl.h index e29305d3..d7ec5236 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Corefinement/intersection_impl.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Corefinement/intersection_impl.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ struct Default_surface_intersection_visitor{ 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 @@ struct Default_surface_intersection_visitor{ 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 @@ struct Node_id_set { } ++size_; } - else{ - CGAL_assertion( (size_ == 2 && (v == first || v == second) ) || v==first ); - } } std::size_t size() const @@ -194,8 +206,8 @@ class Intersection_of_triangle_meshes 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 @@ class Intersection_of_triangle_meshes // 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 @@ class Intersection_of_triangle_meshes 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 @@ class Intersection_of_triangle_meshes 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 @@ class Intersection_of_triangle_meshes 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 @@ class Intersection_of_triangle_meshes } } } + visitor.end_handling_intersection_of_coplanar_faces(); } //add a new node in the final graph. @@ -843,10 +933,12 @@ class Intersection_of_triangle_meshes { 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 @@ class Intersection_of_triangle_meshes } // 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 @@ class Intersection_of_triangle_meshes 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 @@ class Intersection_of_triangle_meshes 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 @@ class Intersection_of_triangle_meshes // 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 @@ class Intersection_of_triangle_meshes 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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Corefinement/intersection_nodes.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Corefinement/intersection_nodes.h index df29370a..bf83e8af 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Corefinement/intersection_nodes.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Corefinement/intersection_nodes.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Intersection_nodes 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 @@ class Intersection_nodes(enodes.begin(), enodes.end()).size()); } @@ -422,7 +420,7 @@ class Intersection_nodes // VertexPointMap1 or VertexPointMap2 void call_put(const VPM& vpm, vertex_descriptor vd, std::size_t i, TriangleMesh&) @@ -437,7 +435,7 @@ class Intersection_nodes(nodes.begin(), nodes.end()).size()); } diff --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Corefinement/intersection_of_coplanar_triangles_3.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Corefinement/intersection_of_coplanar_triangles_3.h index 134f11a3..002f40f0 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Corefinement/intersection_of_coplanar_triangles_3.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Corefinement/intersection_of_coplanar_triangles_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Corefinement/predicates.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Corefinement/predicates.h index a33f12ab..ce83d616 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Corefinement/predicates.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Corefinement/predicates.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Hole_filling/Triangulate_hole_polygon_mesh.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Hole_filling/Triangulate_hole_polygon_mesh.h index 0fc5e64f..cd186e2b 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Hole_filling/Triangulate_hole_polygon_mesh.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Hole_filling/Triangulate_hole_polygon_mesh.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ struct Tracer_polyhedron 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 @@ struct Tracer_polyhedron 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 @@ struct Tracer_polyhedron }; // 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 @@ triangulate_hole_polygon_mesh(PolygonMesh& pmesh, 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 @@ triangulate_hole_polygon_mesh(PolygonMesh& pmesh, 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 @@ triangulate_hole_polygon_mesh(PolygonMesh& pmesh, 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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Hole_filling/Triangulate_hole_polyline.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Hole_filling/Triangulate_hole_polyline.h index e5712a7c..2a33b221 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Hole_filling/Triangulate_hole_polyline.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Hole_filling/Triangulate_hole_polyline.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Hole_filling/Triangulate_hole_polyline.h $ -// $Id: Triangulate_hole_polyline.h d26246b 2021-09-01T17:46:33+02:00 Sébastien Loriot +// $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 @@ struct Edge_graph } }; - 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 @@ template< class Kernel, class Tracer, class WeightCalculator, + class Visitor, template class LookupTable = Lookup_table > class Triangulate_hole_polyline; @@ -745,6 +744,7 @@ template< class Kernel, class Tracer, class WeightCalculator, + class Visitor, template class LookupTable = Lookup_table_map > class Triangulate_hole_polyline_DT @@ -781,7 +781,8 @@ class Triangulate_hole_polyline_DT 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 @@ class Triangulate_hole_polyline_DT 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 @@ class Triangulate_hole_polyline_DT } // 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 @@ class Triangulate_hole_polyline_DT 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 @@ class Triangulate_hole_polyline_DT Edge_DT e, const Triangulation_DT& tr, const WeightCalculator& WC, + Visitor& visitor, const bool produce_incomplete) const { /********************************************************************** @@ -881,6 +890,8 @@ class Triangulate_hole_polyline_DT 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 @@ class Triangulate_hole_polyline_DT 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 @@ class Triangulate_hole_polyline_DT 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 @@ class Triangulate_hole_polyline_DT } // 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 @@ class Triangulate_hole_polyline_DT // 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 @@ class Triangulate_hole_polyline_DT 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 @@ class Triangulate_hole_polyline_DT 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 @@ class Triangulate_hole_polyline_DT 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 @@ class Triangulate_hole_polyline_DT // 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 @@ class Triangulate_hole_polyline_DT // 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 @@ class Triangulate_hole_polyline_DT 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 @@ class Triangulate_hole_polyline_DT 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 @@ template< class Kernel, class Tracer, class WeightCalculator, + class Visitor, template class LookupTable > class Triangulate_hole_polyline { @@ -1154,7 +1169,8 @@ class Triangulate_hole_polyline { 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 @@ class Triangulate_hole_polyline { 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 @@ class Triangulate_hole_polyline { 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 @@ class Triangulate_hole_polyline { 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(points.size() - 1); // the first equals to the last if (n < 3) { return false; // cant be a plane! } @@ -1256,8 +1280,8 @@ bool is_planar_2( // Compute covariance matrix. FT xx = FT(0), yy = FT(0), zz = FT(0); FT xy = FT(0), xz = FT(0), yz = FT(0); - for (std::size_t i = 0; i < n; ++i) { - const Point_3& p = points[i]; + for (const Point_3& p : points) + { const FT dx = p.x() - centroid.x(); const FT dy = p.y() - centroid.y(); const FT dz = p.z() - centroid.z(); @@ -1278,15 +1302,14 @@ bool is_planar_2( } // Here, avg_squared_distance is a little bit more tolerant than avg_distance^2. - CGAL_assertion(avg_normal != typename Traits::Vector_3()); const Plane_3 plane = Plane_3(centroid, avg_normal); FT avg_squared_distance = FT(0); - for (std::size_t i = 0; i < n; ++i) { - const Point_3& p = points[i]; + for (const Point_3& p : points) + { const Point_3 q = projection_3(plane, p); avg_squared_distance += CGAL::abs(squared_distance_3(p, q)); } - avg_squared_distance /= static_cast(n); + avg_squared_distance /= FT(n); // std::cout << "avg squared distance: " << avg_squared_distance << std::endl; CGAL_assertion(max_squared_distance >= FT(0)); @@ -1301,12 +1324,14 @@ bool is_planar_2( template < typename PointRange, // need size() typename Tracer, + typename Visitor, typename Validity_checker, typename Traits > 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) @@ -1316,6 +1341,8 @@ triangulate_hole_polyline_with_cdt(const PointRange& points, 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(); @@ -1327,7 +1354,7 @@ triangulate_hole_polyline_with_cdt(const PointRange& points, } FT x = FT(0), y = FT(0), z = FT(0); - std::size_t num_normals = 0; + int num_normals = 0; const Point_3& ref_point = P[0]; const std::size_t size = P.size() - 1; for (std::size_t i = 1; i < size - 1; ++i) { @@ -1358,19 +1385,26 @@ triangulate_hole_polyline_with_cdt(const PointRange& points, 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; } // Setting the final normal. - x /= static_cast(num_normals); - y /= static_cast(num_normals); - z /= static_cast(num_normals); + FT ft_nn(num_normals); + x /= ft_nn; + y /= ft_nn; + z /= ft_nn; const Vector_3 avg_normal = Vector_3(x, y, z); // std::cout << "avg normal: " << avg_normal << std::endl; + 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; } @@ -1379,6 +1413,7 @@ triangulate_hole_polyline_with_cdt(const PointRange& points, 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; } @@ -1440,6 +1475,7 @@ triangulate_hole_polyline_with_cdt(const PointRange& points, 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; } @@ -1457,6 +1493,7 @@ triangulate_hole_polyline_with_cdt(const PointRange& points, 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; } } @@ -1465,6 +1502,7 @@ triangulate_hole_polyline_with_cdt(const PointRange& points, // 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; } @@ -1478,6 +1516,7 @@ template < typename PointRange2, typename Tracer, typename WeightCalculator, + typename Visitor, typename Kernel > typename WeightCalculator::Weight @@ -1485,19 +1524,23 @@ triangulate_hole_polyline(const PointRange1& points, 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)); @@ -1510,20 +1553,23 @@ triangulate_hole_polyline(const PointRange1& points, } 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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Hole_filling/do_not_use_DT3.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Hole_filling/do_not_use_DT3.h index 1b9b6f5d..8beac13d 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Hole_filling/do_not_use_DT3.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Hole_filling/do_not_use_DT3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Hole_filling/experimental/experimental_code.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Hole_filling/experimental/experimental_code.h index a93aa623..0dc2bdf5 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Hole_filling/experimental/experimental_code.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Hole_filling/experimental/experimental_code.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ triangulate_hole_polyline_incomplete(InputIterator pbegin, InputIterator pend, 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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Isotropic_remeshing/AABB_filtered_projection_traits.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Isotropic_remeshing/AABB_filtered_projection_traits.h index 5edced2d..499a77d1 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Isotropic_remeshing/AABB_filtered_projection_traits.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Isotropic_remeshing/AABB_filtered_projection_traits.h @@ -4,8 +4,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Filtered_projection_traits 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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Isotropic_remeshing/remesh_impl.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Isotropic_remeshing/remesh_impl.h index 63c42aab..50c84085 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Isotropic_remeshing/remesh_impl.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Isotropic_remeshing/remesh_impl.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace internal { , 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 @@ namespace internal { 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 @@ namespace internal { #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 @@ namespace internal { 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 @@ namespace internal { #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 @@ namespace internal { // "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) ); - } + // 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); - // perform moves - for(const VP_pair& vp : new_locations) + // property map of constrained vertices for relaxation + auto vertex_constraint = [&](const vertex_descriptor v) + { + for (halfedge_descriptor h : halfedges_around_target(v, mesh_)) { - 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 + 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 @@ namespace internal { 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 @@ namespace internal { { 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 @@ namespace internal { { 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 @@ namespace internal { { 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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Polygon_mesh_slicer/Axis_parallel_plane_traits.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Polygon_mesh_slicer/Axis_parallel_plane_traits.h index ed4a6a4f..77761e4f 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Polygon_mesh_slicer/Axis_parallel_plane_traits.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Polygon_mesh_slicer/Axis_parallel_plane_traits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Polygon_mesh_slicer/Traversal_traits.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Polygon_mesh_slicer/Traversal_traits.h index 15b97bc9..948c5c58 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Polygon_mesh_slicer/Traversal_traits.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Polygon_mesh_slicer/Traversal_traits.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Traversal_traits , 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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Side_of_triangle_mesh/Point_inside_vertical_ray_cast.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Side_of_triangle_mesh/Point_inside_vertical_ray_cast.h index 095dbeae..c35c704f 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Side_of_triangle_mesh/Point_inside_vertical_ray_cast.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Side_of_triangle_mesh/Point_inside_vertical_ray_cast.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Side_of_triangle_mesh/Ray_3_Triangle_3_traversal_traits.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Side_of_triangle_mesh/Ray_3_Triangle_3_traversal_traits.h index 90616737..5f9ee981 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Side_of_triangle_mesh/Ray_3_Triangle_3_traversal_traits.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Side_of_triangle_mesh/Ray_3_Triangle_3_traversal_traits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Smoothing/ceres_support.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Smoothing/ceres_support.h index cb8bfcf5..99075bd8 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Smoothing/ceres_support.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Smoothing/ceres_support.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Smoothing/curvature_flow_impl.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Smoothing/curvature_flow_impl.h index 660fec3e..ad9de4c7 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Smoothing/curvature_flow_impl.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Smoothing/curvature_flow_impl.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Smoothing/mesh_smoothing_impl.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Smoothing/mesh_smoothing_impl.h index 27055a40..f1c68331 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Smoothing/mesh_smoothing_impl.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Smoothing/mesh_smoothing_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Smoothing/smoothing_evaluation.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Smoothing/smoothing_evaluation.h index 6a4f8b86..a0e5aaf7 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Smoothing/smoothing_evaluation.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Smoothing/smoothing_evaluation.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Snapping/helper.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Snapping/helper.h index c10744d2..99f9088b 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Snapping/helper.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Snapping/helper.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ void vertices_as_halfedges(const VertexRange& vertex_range, 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 @@ void assign_tolerance_with_local_edge_length_bound(const HalfedgeRange& halfedge } } -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 @@ struct Snapping_default_visitor 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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Snapping/snap.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Snapping/snap.h index 426d2901..f62ace94 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Snapping/snap.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Snapping/snap.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ void simplify_range(HalfedgeRange& halfedge_range, 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 @@ void simplify_range(HalfedgeRange& halfedge_range, 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 @@ std::size_t split_edges(EdgesToSplitContainer& edges_to_split, 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 @@ std::size_t snap_non_conformal(HalfedgeRange& halfedge_range_A, >::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 @@ std::size_t snap_non_conformal(HalfedgeRange& halfedge_range_A, 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 @@ namespace experimental { 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 @@ std::size_t snap_borders(TriangleMesh& tm_A, 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 @@ std::size_t snap_borders(TriangleMesh& tm_A, 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 @@ std::size_t snap_borders(TriangleMesh& tm_A, 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 @@ std::size_t snap_borders(TriangleMesh& tm, 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 @@ std::size_t snap_borders(TriangleMesh& tm, 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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Snapping/snap_vertices.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Snapping/snap_vertices.h index ccc02558..d60fdd9f 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Snapping/snap_vertices.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/Snapping/snap_vertices.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ std::size_t snap_vertices_two_way(const HalfedgeRange_A& halfedge_range_A, 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 @@ namespace experimental { 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 @@ std::size_t snap_vertices(const HalfedgeRange_A& halfedge_range_A, 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 @@ std::size_t snap_vertices(const HalfedgeRange_A& halfedge_range_A, 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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/do_no_use_CDT2.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/do_no_use_CDT2.h index 588b0af4..d048a641 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/do_no_use_CDT2.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/do_no_use_CDT2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/fair_impl.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/fair_impl.h index b572add8..b11b0e6e 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/fair_impl.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/fair_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/mesh_to_point_set_hausdorff_distance.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/mesh_to_point_set_hausdorff_distance.h index 30315b5b..7befd730 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/mesh_to_point_set_hausdorff_distance.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/mesh_to_point_set_hausdorff_distance.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/named_function_params.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/named_function_params.h deleted file mode 100644 index 3a4dca25..00000000 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/named_function_params.h +++ /dev/null @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/named_params_helper.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/named_params_helper.h index 9e6940e5..bc5afbcb 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/named_params_helper.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/named_params_helper.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/refine_impl.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/refine_impl.h index 9498517e..47bc9bcc 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/refine_impl.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/refine_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/repair_extra.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/repair_extra.h index 48b1a0e1..96a73926 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/repair_extra.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/repair_extra.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace internal { 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 @@ struct Edges_proximity_report{ 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 @@ struct Edges_proximity_report{ 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 @@ void collect_close_stitchable_boundary_edges(PM& pm, 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 @@ void collect_close_stitchable_boundary_edges(PM& pm, 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 @@ void collect_close_stitchable_boundary_edges(PM& pm, 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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/simplify_polyline.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/simplify_polyline.h index 3ff1f2e8..ea17c9aa 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/simplify_polyline.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/internal/simplify_polyline.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace experimental { 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 @@ void simplify_polyline(const PointRangeIn& input, 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 @@ void simplify_polyline(const PointRangeIn& input, } } - -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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/intersection.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/intersection.h index c3b87d53..81090dd0 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/intersection.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/intersection.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ struct Throw_at_first_output { }; // 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 @@ compute_face_face_intersection(const FaceRange& face_range1, } // 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 @@ template 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 @@ compute_face_polyline_intersection( const FaceRange& face_range, } // 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 @@ compute_face_polylines_intersection(const FaceRange& face_range, } // 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 @@ compute_polyline_polyline_intersection(const Polyline& polyline1, } // 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 @@ compute_polylines_polylines_intersection(const PolylineRange& polylines1, } // 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 @@ compute_face_face_intersection(const TriangleMesh& tm1, } // 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 @@ compute_face_face_intersection(const TriangleMesh& tm1, * \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 @@ template 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 @@ void get_one_point_per_cc(TriangleMesh& tm, 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 @@ bool is_mesh2_in_mesh1(const TriangleMesh& tm1, }// 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 @@ bool do_intersect(const PolylineRange& polylines1, } /** - * \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 @@ bool do_intersect(const Polyline& polyline1, } /** - * \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 @@ bool do_intersect(const Polyline& polyline1, * \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 @@ bool do_intersect(const TriangleMesh& tm1, 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 @@ bool do_intersect(const TriangleMesh& tm1, 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 @@ bool do_intersect(const TriangleMesh& tm1, */ 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 @@ bool do_intersect(const TriangleMesh& tm, } /** - * \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 @@ bool do_intersect(const TriangleMesh& tm, */ 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 @@ bool do_intersect(const TriangleMesh& tm, 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 @@ struct Mesh_callback }//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 @@ struct Mesh_callback * \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 @@ template 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 @@ OutputIterator intersecting_meshes(const TriangleMeshRange& range, * \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 @@ namespace experimental { */ 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; @@ -1829,77 +1811,6 @@ surface_self_intersection(const TriangleMesh& tm, return polyline_output; } -} //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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/locate.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/locate.h index 247cbb94..abf368ce 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/locate.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/locate.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ struct Ray_type_selector // Just for convenience template > + typename NamedParameters = parameters::Default_named_parameters> struct Location_traits { typedef typename GetVertexPointMap::const_type VertexPointMap; @@ -586,7 +586,7 @@ get_descriptor_from_location(const std::pair +template #ifdef DOXYGEN_RUNNING Point construct_point(const Face_location& loc, @@ -596,7 +596,7 @@ construct_point(const std::pair::face 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 @@ construct_point(const std::pair::face 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 @@ locate_on_halfedge(const typename boost::graph_traits::halfedge_de /// 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 @@ locate_in_face(const typename internal::Location_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 @@ locate_in_face(const typename internal::Location_traits -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 @@ void build_AABB_tree(const TriangleMesh& tm, /// \cgalParamNEnd /// \cgalNamedParamsEnd /// -template +template void build_AABB_tree(const TriangleMesh& tm, AABB_tree< @@ -1600,7 +1577,7 @@ build_AABB_tree(const TriangleMesh& tm, 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 @@ build_AABB_tree(const TriangleMesh& tm, 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 @@ void build_AABB_tree(const TriangleMesh& tm, AABB_tree& outTree) /// 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 @@ locate_with_AABB_tree(const typename internal::Location_traits > >& 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 @@ locate_with_AABB_tree(const typename internal::Location_traits -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 @@ locate_with_AABB_tree(const typename internal::Location_traits::Po /// \cgalParamNEnd /// \cgalNamedParamsEnd /// -template +template #ifdef DOXYGEN_RUNNING Face_location locate(const Point& p, @@ -1780,7 +1738,7 @@ typename internal::Location_traits::Face_location 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 @@ locate(const typename internal::Location_traits:: 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 @@ locate(const typename property_map_value::t /// /// \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 @@ locate_with_AABB_tree(const typename internal::Location_traits >& tree, #endif const TriangleMesh& tm, - const NamedParameters& np) + const NamedParameters& np = parameters::default_values()) { typedef typename GetGeomTraits::type Geom_traits; @@ -1952,17 +1900,6 @@ locate_with_AABB_tree(const typename internal::Location_traits -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 @@ locate_with_AABB_tree(const typename internal::Location_traits::Ra /// /// \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 @@ typename internal::Location_traits::Face_location 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 @@ locate(const typename internal::Location_traits:: 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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/manifoldness.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/manifoldness.h index e9ba272d..cf86e2b8 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/manifoldness.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/manifoldness.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 CGAL { 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 @@ std::size_t make_umbrella_manifold(typename boost::graph_traits::ha } // 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 @@ std::size_t make_umbrella_manifold(typename boost::graph_traits::ha /// @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 @@ OutputIterator non_manifold_vertices(const PolygonMesh& pm, } /// \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 @@ OutputIterator non_manifold_vertices(const PolygonMesh& pm, /// \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 @@ std::size_t duplicate_non_manifold_vertices(PolygonMesh& pm, 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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/measure.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/measure.h index e417c300..14868789 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/measure.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/measure.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ inline void rearrange_face_ids(boost::container::small_vector& i }//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 @@ inline void rearrange_face_ids(boost::container::small_vector& i * \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 @@ typename GetGeomTraits::type::FT #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 @@ edge_length(typename boost::graph_traits::halfedge_descriptor h, 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 @@ edge_length(typename boost::graph_traits::edge_descriptor e, * \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 @@ typename GetGeomTraits::type::FT #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 @@ squared_edge_length(typename boost::graph_traits::halfedge_descript 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 @@ squared_edge_length(typename boost::graph_traits::edge_descriptor e * \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 @@ typename GetGeomTraits::type::FT #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 @@ face_border_length(typename boost::graph_traits::halfedge_descripto 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 @@ face_border_length(typename boost::graph_traits::halfedge_descripto * 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 @@ longest_border(const PolygonMesh& pmesh, 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 @@ longest_border(const PolygonMesh& pmesh) * @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 @@ face_area(typename boost::graph_traits::face_descriptor f, 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 @@ face_area(typename boost::graph_traits::face_descriptor f, 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 @@ face_area(typename boost::graph_traits::face_descriptor f, * @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 @@ squared_face_area(typename boost::graph_traits::face_descriptor f, 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 @@ squared_face_area(typename boost::graph_traits::face_descriptor f, 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 @@ squared_face_area(typename boost::graph_traits::face_descriptor f, * \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 @@ area(FaceRange face_range, 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 @@ area(FaceRange face_range, const TriangleMesh& tmesh) * \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 @@ area(const TriangleMesh& tmesh) * \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 @@ volume(const TriangleMesh& tmesh, 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 @@ volume(const TriangleMesh& tmesh, 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 @@ volume(const TriangleMesh& tmesh) * * @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 @@ face_aspect_ratio(typename boost::graph_traits::face_descriptor f, 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 @@ face_aspect_ratio(typename boost::graph_traits::face_descriptor f, * * @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 @@ centroid(const TriangleMesh& tmesh, const CGAL_PMP_NP_CLASS& np) 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 @@ centroid(const TriangleMesh& tmesh, const CGAL_PMP_NP_CLASS& np) 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 @@ centroid(const TriangleMesh& tmesh) * @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 @@ template< typename PolygonMesh1, 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 @@ void match_faces(const PolygonMesh1& m1, const PolygonMesh2& m2, } } -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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/merge_border_vertices.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/merge_border_vertices.h index 19153f38..9ae2b039 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/merge_border_vertices.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/merge_border_vertices.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ struct Less_on_point_of_target 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 @@ void detect_identical_mergeable_vertices( } // \ingroup PMP_repairing_grp +// // merges target vertices of a list of halfedges. // Halfedges must be sorted in the list. // @@ -259,6 +260,7 @@ void merge_vertices_in_range(const HalfedgeRange& sorted_hedges, } // 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 @@ void merge_vertices_in_range(const HalfedgeRange& sorted_hedges, /// \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 @@ void merge_duplicated_vertices_in_boundary_cycle( } /// \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 @@ void merge_duplicated_vertices_in_boundary_cycle( /// \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 @@ void merge_duplicated_vertices_in_boundary_cycles( PolygonMesh& pm, 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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/orient_polygon_soup.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/orient_polygon_soup.h index e1e7f0cb..ab3b576e 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/orient_polygon_soup.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/orient_polygon_soup.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ struct Polygon_soup_orienter /** * \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 @@ struct Polygon_soup_orienter * @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 @@ bool orient_polygon_soup(PointRange& points, 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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/orient_polygon_soup_extension.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/orient_polygon_soup_extension.h index 09d4f46a..f830af85 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/orient_polygon_soup_extension.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/orient_polygon_soup_extension.h @@ -3,12 +3,14 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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:: @@ -77,6 +82,151 @@ duplicate_non_manifold_edges_in_polygon_soup(PointRange& points, return inital_nb_pts==points.size(); } +/*! + * \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 * @@ -84,19 +234,18 @@ duplicate_non_manifold_edges_in_polygon_soup(PointRange& points, * 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 @@ duplicate_non_manifold_edges_in_polygon_soup(PointRange& points, * * \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 @@ orient_triangle_soup_with_reference_triangle_mesh( // 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 @@ orient_triangle_soup_with_reference_triangle_mesh( 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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/orientation.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/orientation.h index e67de101..5727af69 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/orientation.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/orientation.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace internal{ /** * \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 @@ namespace internal{ * * \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 @@ bool is_outward_oriented(const TriangleMesh& tm, 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 @@ void reverse_orientation(typename boost::graph_traits::halfedge_des /** * \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 @@ void reverse_face_orientations_of_mesh_with_polylines(PolygonMesh& pmesh) 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 @@ void reverse_face_orientations_of_mesh_with_polylines(PolygonMesh& pmesh) /** * \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 @@ void reverse_face_orientations(const FaceRange& face_range, PolygonMesh& pmesh) /** * \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 @@ void reverse_face_orientations(const FaceRange& face_range, PolygonMesh& pmesh) * \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 @@ void orient(TriangleMesh& tm, 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 @@ void orient(TriangleMesh& tm, //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 @@ void set_cc_intersecting_pairs( /*! * \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 @@ void set_cc_intersecting_pairs( * * \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 @@ volume_connected_components(const TriangleMesh& tm, 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 @@ volume_connected_components(const TriangleMesh& tm, * 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 @@ volume_connected_components(const TriangleMesh& tm, * * @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 @@ volume_connected_components(const TriangleMesh& tm, * * \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 @@ bool does_bound_a_volume(const TriangleMesh& tm, const NamedParameters& np) 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 @@ std::size_t volume_connected_components(const TriangleMesh& tm, VolumeFaceIndexM * * \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 @@ void orient_to_bound_a_volume(TriangleMesh& tm, 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 @@ void orient_to_bound_a_volume(TriangleMesh& tm) * \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 @@ void merge_reversible_connected_components(PolygonMesh& pm, } } -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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/polygon_mesh_to_polygon_soup.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/polygon_mesh_to_polygon_soup.h index 06695589..bcd2741b 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/polygon_mesh_to_polygon_soup.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/polygon_mesh_to_polygon_soup.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace Polygon_mesh_processing { /// 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 @@ void polygon_mesh_to_polygon_soup(const PolygonMesh& mesh, 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 @@ void polygon_mesh_to_polygon_soup(const PolygonMesh& mesh, } } -/// \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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/polygon_soup_to_polygon_mesh.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/polygon_soup_to_polygon_mesh.h index b15abe36..1ed0f61d 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/polygon_soup_to_polygon_mesh.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/polygon_soup_to_polygon_mesh.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class PS_to_PM_converter /** * \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 @@ class PS_to_PM_converter * @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 @@ bool is_polygon_soup_a_polygon_mesh(const PolygonRange& polygons) /** * \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 @@ bool is_polygon_soup_a_polygon_mesh(const PolygonRange& polygons) */ 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 @@ void polygon_soup_to_polygon_mesh(const PointRange& points, 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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/random_perturbation.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/random_perturbation.h index 4817f477..2cb622e7 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/random_perturbation.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/random_perturbation.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace internal { /*! * \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 @@ namespace internal { * \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 @@ void random_perturbation(VertexRange vertices /*! * \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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/refine.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/refine.h index bd830093..f993c25b 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/refine.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/refine.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace Polygon_mesh_processing { /*! \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 @@ namespace Polygon_mesh_processing { 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 @@ namespace Polygon_mesh_processing { 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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/remesh.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/remesh.h index 9ab7450b..3483e2d7 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/remesh.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/remesh.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace Polygon_mesh_processing { /*! * \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 @@ namespace Polygon_mesh_processing { * @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 @@ namespace Polygon_mesh_processing { * * \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 @@ namespace Polygon_mesh_processing { * * \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 @@ namespace Polygon_mesh_processing { */ 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 @@ void isotropic_remeshing(const FaceRange& faces #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 @@ void isotropic_remeshing(const FaceRange& faces 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 @@ void isotropic_remeshing(const FaceRange& faces } 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 @@ void isotropic_remeshing(const FaceRange& faces #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 @@ void isotropic_remeshing( */ 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 @@ void split_long_edges(const EdgeRange& edges 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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/repair.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/repair.h index 4f94686c..e20221d8 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/repair.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/repair.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/repair.h $ -// $Id: repair.h 40338b2 2020-10-09T16:50:29+02:00 Laurent Rineau +// $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 CGAL { 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 @@ std::size_t remove_isolated_vertices(PolygonMesh& pmesh) /// \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 @@ std::size_t remove_isolated_vertices(PolygonMesh& pmesh) /// /// \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 @@ std::size_t remove_connected_components_of_negligible_size(TriangleMesh& tmesh, 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); @@ -245,7 +247,9 @@ std::size_t remove_connected_components_of_negligible_size(TriangleMesh& tmesh, { const FT fa = face_area(f, tmesh, np); component_areas[face_cc[f]] += fa; + exact(component_areas[face_cc[f]]); total_area += fa; + exact(total_area); } #ifdef CGAL_PMP_DEBUG_SMALL_CC_REMOVAL @@ -281,6 +285,7 @@ std::size_t remove_connected_components_of_negligible_size(TriangleMesh& tmesh, get(vpm, target(prev(halfedge(f, tmesh), tmesh), tmesh))); component_volumes[i] += fv; + exact(component_volumes[i]); } // negative volume means the CC was oriented inward @@ -289,6 +294,7 @@ std::size_t remove_connected_components_of_negligible_size(TriangleMesh& tmesh, { component_volumes[i] = CGAL::abs(component_volumes[i]); total_volume += component_volumes[i]; + exact(total_volume); } #ifdef CGAL_PMP_DEBUG_SMALL_CC_REMOVAL @@ -339,12 +345,6 @@ std::size_t remove_connected_components_of_negligible_size(TriangleMesh& tmesh, 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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/repair_degeneracies.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/repair_degeneracies.h index 2485f13d..de578f60 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/repair_degeneracies.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/repair_degeneracies.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/repair_degeneracies.h $ -// $Id: repair_degeneracies.h 2337757 2021-09-14T21:43:41+02:00 Sébastien Loriot +// $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 @@ is_badly_shaped(const typename boost::graph_traits::face_descripto 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 @@ is_badly_shaped(const typename boost::graph_traits::face_descripto } 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 @@ void collect_badly_shaped_triangles(const typename boost::graph_traits 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()) { @@ -187,6 +196,7 @@ bool is_collapse_geometrically_valid(typename boost::graph_traits: } */ +// @todo handle boundary edges template boost::optional get_collapse_volume(typename boost::graph_traits::halfedge_descriptor h, @@ -202,10 +212,10 @@ get_collapse_volume(typename boost::graph_traits::halfedge_descrip const typename Traits::Point_3 origin(ORIGIN); -// @todo handle boundary edges - h = opposite(h, tmesh); // Euler::collapse edge keeps the target and removes the source + typename Traits::Compute_volume_3 volume = gt.compute_volume_3_object(); + // source is kept, target is removed Point_ref kept = get(vpm, source(h, tmesh)); Point_ref removed= get(vpm, target(h, tmesh)); @@ -529,13 +539,13 @@ struct Filter_wrapper_for_cap_needle_removal +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; @@ -579,6 +589,9 @@ bool remove_almost_degenerate_faces(const FaceRange& face_range, 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)); @@ -610,7 +623,8 @@ bool remove_almost_degenerate_faces(const FaceRange& face_range, 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); } @@ -670,7 +684,7 @@ bool remove_almost_degenerate_faces(const FaceRange& face_range, // 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) { @@ -756,7 +770,8 @@ bool remove_almost_degenerate_faces(const FaceRange& face_range, 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); } } @@ -805,7 +820,7 @@ bool remove_almost_degenerate_faces(const FaceRange& face_range, 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) { @@ -818,6 +833,18 @@ bool remove_almost_degenerate_faces(const FaceRange& face_range, // 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 @@ -867,7 +894,8 @@ bool remove_almost_degenerate_faces(const FaceRange& face_range, 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]); @@ -908,40 +936,17 @@ bool remove_almost_degenerate_faces(const FaceRange& face_range, 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 //////////////////////////////////////////////////////////////////////////////////////////////////// @@ -1225,11 +1230,50 @@ remove_a_border_edge(typename boost::graph_traits::edge_descriptor 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)); @@ -1265,7 +1309,7 @@ bool remove_degenerate_edges(const EdgeRange& edge_range, all_removed = true; std::set degenerate_edges_to_remove; degenerate_edges(local_edge_range, tmesh, std::inserter(degenerate_edges_to_remove, - degenerate_edges_to_remove.end())); + degenerate_edges_to_remove.end()), np); #ifdef CGAL_PMP_REMOVE_DEGENERATE_FACES_DEBUG std::cout << "Found " << degenerate_edges_to_remove.size() << " null edges.\n"; @@ -1728,39 +1772,25 @@ bool remove_degenerate_edges(const EdgeRange& edge_range, 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. @@ -1770,7 +1800,7 @@ bool remove_degenerate_edges(TriangleMesh& 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 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 @@ -1791,7 +1821,7 @@ bool remove_degenerate_edges(TriangleMesh& tmesh) // - `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 @@ -1801,10 +1831,12 @@ bool remove_degenerate_edges(TriangleMesh& tmesh) // 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)); @@ -2617,26 +2649,13 @@ bool remove_degenerate_faces(const FaceRange& face_range, 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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/repair_polygon_soup.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/repair_polygon_soup.h index 65d803cc..4fcb21e0 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/repair_polygon_soup.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/repair_polygon_soup.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ bool simplify_polygon(PointRange& points, // \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 @@ std::size_t simplify_polygons_in_polygon_soup(PointRange& points, // \cgalParamNEnd // \cgalNamedParamsEnd // +// \sa `repair_polygon_soup()` template std::size_t split_pinched_polygons_in_polygon_soup(PointRange& points, PolygonRange& polygons, @@ -312,6 +315,7 @@ std::size_t split_pinched_polygons_in_polygon_soup(PointRange& points, // \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 @@ std::size_t remove_invalid_polygons_in_polygon_soup(PointRange& /*points*/, /// /// \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 @@ std::size_t remove_isolated_points_in_polygon_soup(PointRange& points, /// \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 @@ std::size_t remove_isolated_points_in_polygon_soup(PointRange& points, /// /// \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 @@ std::size_t merge_duplicate_points_in_polygon_soup(PointRange& points, 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 @@ Polygon construct_canonical_polygon_with_markers(const Polygon& polygon, 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 // polygon ids `i0`, `i1`, etc. such that `polygons[i0] = polygons[i1] = ...` // \param same_orientation whether two polygons should have the same orientation to be duplicates. // +// \sa `repair_polygon_soup()` template DuplicateOutputIterator collect_duplicate_polygons(const PointRange& points, const PolygonRange& polygons, @@ -881,10 +891,11 @@ DuplicateOutputIterator collect_duplicate_polygons(const PointRange& points, /// /// \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 @@ std::size_t merge_duplicate_polygons_in_polygon_soup(const PointRange& points, return removed_polygons_n; } -template -std::size_t merge_duplicate_polygons_in_polygon_soup(PointRange& points, - PolygonRange& polygons) +namespace internal { + +template ::Polygon_3> +struct Polygon_soup_fixer { - return merge_duplicate_polygons_in_polygon_soup(points, polygons, CGAL::parameters::all_default()); -} + 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 @@ std::size_t merge_duplicate_polygons_in_polygon_soup(PointRange& points, /// 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 @@ std::size_t merge_duplicate_polygons_in_polygon_soup(PointRange& points, /// \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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/repair_self_intersections.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/repair_self_intersections.h index c0b3d8fc..bf1231f2 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/repair_self_intersections.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/repair_self_intersections.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ static int self_intersections_solved_by_unconstrained_hole_filling = 0; // -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*- +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 @@ FaceOutputIterator replace_faces_with_patch(const std::vector::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 @@ FaceOutputIterator replace_faces_with_patch(const std::vector vertex_stack(interior_vertices.begin(), interior_vertices.end()); std::vector edge_stack(interior_edges.begin(), interior_edges.end()); @@ -108,11 +204,11 @@ FaceOutputIterator replace_faces_with_patch(const 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 @@ FaceOutputIterator replace_faces_with_patch(const std::vector::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 @@ FaceOutputIterator replace_faces_with_patch(const std::vector::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 @@ FaceOutputIterator replace_faces_with_patch(const std::vector::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 @@ FaceOutputIterator replace_faces_with_patch(const std::vector::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 @@ FaceOutputIterator replace_faces_with_patch(const std::vector +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 @@ FaceOutputIterator replace_faces_with_patch(const std::set +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 @@ void replace_faces_with_patch(const std::set -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 @@ void constrain_sharp_and_border_edges(const FaceRange& faces, 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 @@ void constrain_sharp_and_border_edges(const FaceRange& faces, 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 @@ void constrain_sharp_and_border_edges(const FaceRange& faces, 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 @@ void constrain_sharp_and_border_edges(const FaceRange& faces, 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 @@ bool remove_self_intersections_with_smoothing(std::set > patch; for(const face_descriptor f : faces(local_mesh)) { @@ -515,7 +587,6 @@ bool remove_self_intersections_with_smoothing(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 @@ bool order_border_halfedge_range(std::vector +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 @@ void dump_tentative_hole(std::vector >& point_patch, 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 @@ construct_artificial_third_point(const typename boost::graph_traits -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]; + + 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; - cc_interior_edges.insert(edge(h, tmesh)); + 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()) - { -#ifndef CGAL_HOLE_FILLING_DO_NOT_USE_DT3 - #ifdef CGAL_PMP_REMOVE_SELF_INTERSECTION_DEBUG +// 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 @@ bool construct_tentative_hole_patch(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)); + } - 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) + Point_3 operator()(const Point_3& p) const { return tree.closest_point(p); } + +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 @@ bool construct_tentative_hole_patch(std::vector::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 @@ bool construct_tentative_hole_patch(std::vector= 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 @@ bool construct_tentative_sub_hole_patch(std::vector cc_interior_vertices; std::set cc_interior_edges; @@ -953,99 +1429,25 @@ bool construct_tentative_sub_hole_patch(std::vector -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 @@ bool fill_hole(std::vector::halfedge_ 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 @@ bool fill_hole(std::vector::halfedge_ 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 @@ bool fill_hole(std::vector::halfedge_ 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 @@ bool fill_hole(std::vector::halfedge_ 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 @@ bool fill_hole(std::vector::halfedge_ } // 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 @@ bool fill_hole(std::set::face_descrip } 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 @@ bool fill_hole_with_constraints(std::vector::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 @@ bool fill_hole_with_constraints(std::vector 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 + + std::vector is_hole_incident_to_patch(boundary_reps.size()); + std::vector hole_lengths(boundary_reps.size()); + + 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); - typedef typename boost::property_traits::reference Point_ref; + std::vector border_vertices; + border_vertices.reserve(border_hedges.size()); + all_border_vertices.reserve(all_border_vertices.size() + border_hedges.size()); - typedef CGAL::Box_intersection_d::ID_FROM_BOX_ADDRESS Box_policy; - typedef CGAL::Box_intersection_d::Box_with_info_d Box; + std::vector hole_points, third_points; + hole_points.reserve(border_hedges.size()); + third_points.reserve(border_hedges.size()); - std::vector boxes; - boxes.reserve(cc_border_hedges.size()); + for(const halfedge_descriptor h : border_hedges) + { + CGAL_assertion(!is_border(h, tmesh)); - 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)); + const vertex_descriptor v = source(h, tmesh); + hole_points.push_back(get(vpm, v)); - boxes.emplace_back(p.bbox() + q.bbox(), h); - } + border_vertices.push_back(v); + all_border_vertices.push_back(v); - // generate box pointers - std::vector box_ptr; - box_ptr.reserve(boxes.size()); + 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))); + } - for(Box& b : boxes) - box_ptr.push_back(&b); + std::set interior_vertices; + std::set interior_edges; - 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()); + 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 - 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; + return false; + } } - return true; -} - -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); - return success; + // 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 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 @@ remove_self_intersections_one_step(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 @@ remove_self_intersections_one_step(std::set::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 @@ remove_self_intersections_one_step(std::set 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 @@ remove_self_intersections_one_step(std::set > 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); -#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); - } - } + fname = "results/expanded_compactified_step_"+std::to_string(step)+"_CC_"+std::to_string(cc_id)+".off"; + dump_cc(fname, cc_faces, tmesh, vpm); +#endif - // 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 @@ remove_self_intersections_one_step(std::set 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 @@ remove_self_intersections_one_step(std::set 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 @@ struct Remove_self_intersection_default_visitor 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 @@ bool remove_self_intersections(const FaceRange& face_range, 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 @@ bool remove_self_intersections(const FaceRange& face_range, 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 @@ bool remove_self_intersections(const FaceRange& face_range, // 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 @@ bool remove_self_intersections(const FaceRange& face_range, // 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 @@ bool remove_self_intersections(const FaceRange& face_range, 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 @@ bool remove_self_intersections(const FaceRange& face_range, 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 @@ bool remove_self_intersections(const FaceRange& face_range, // 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 @@ bool remove_self_intersections(const FaceRange& face_range, 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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/self_intersections.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/self_intersections.h index 30a7660e..24a4d0a5 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/self_intersections.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/self_intersections.h @@ -4,8 +4,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ bool do_faces_intersect(typename boost::graph_traits::halfedge_descriptor h, return true; return false; -}; +} template @@ -238,7 +233,7 @@ self_intersections_impl(const FaceRange& face_range, 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 @@ self_intersections_impl(const FaceRange& face_range, 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 @@ self_intersections_impl(const FaceRange& face_range, 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 @@ self_intersections_impl(const FaceRange& face_range, /*! * \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 @@ self_intersections_impl(const FaceRange& face_range, * \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 @@ self_intersections(const FaceRange& face_range, * \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 @@ self_intersections(const TriangleMesh& tmesh, FacePairOutputIterator out) * \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 @@ bool does_self_intersect(const FaceRange& face_range, /** * \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 @@ bool does_self_intersect(const FaceRange& face_range, * \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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/shape_predicates.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/shape_predicates.h index d4f764ec..50a3fafe 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/shape_predicates.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/shape_predicates.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 CGAL { 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 @@ namespace Polygon_mesh_processing { /// \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 @@ bool is_degenerate_edge(typename boost::graph_traits::edge_descript 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 @@ bool is_degenerate_edge(typename boost::graph_traits::edge_descript /// \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 @@ OutputIterator degenerate_edges(const EdgeRange& edges, 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 @@ OutputIterator degenerate_edges(const TriangleMesh& tm, OutputIterator out) /// \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 @@ bool is_degenerate_triangle_face(typename boost::graph_traits::fac 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 @@ bool is_degenerate_triangle_face(typename boost::graph_traits::fac /// \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 @@ OutputIterator degenerate_faces(const FaceRange& faces, 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; + + 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; -/// \ingroup PMP_repairing_grp + 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 @@ OutputIterator degenerate_faces(const TriangleMesh& tm, OutputIterator out) /// /// \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 @@ is_needle_triangle_face(typename boost::graph_traits::face_descrip 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) + // 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; + + auto handle_triplet = [&](const typename K::Point_3& pa, + const typename K::Point_3& pb, + const typename K::Point_3& pc, int pos) -> bool { - min_h = h; - min_sq_length = sq_length; - } + 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; + + return -1; } +}; - if(min_sq_length == 0) - return min_h; - - 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; - } - else - return boost::graph_traits::null_halfedge(); -} +template +struct Is_cap_angle_over_threshold + : public Is_cap_angle_over_threshold_impl +{ + using Is_cap_angle_over_threshold_impl::operator(); +}; -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 Get_filtered_predicate_RT::type { - return is_needle_triangle_face(f, tm, threshold, parameters::all_default()); -} + 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 @@ is_needle_triangle_face(typename boost::graph_traits::face_descrip /// \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 @@ is_cap_triangle_face(typename boost::graph_traits::face_descriptor 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 @@ is_cap_triangle_face(typename boost::graph_traits::face_descriptor 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 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; - } + const halfedge_descriptor h = halfedge(f, tm); - 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(); -} + 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)); -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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/smooth_mesh.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/smooth_mesh.h index 37d99447..3028aa29 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/smooth_mesh.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/smooth_mesh.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 +#define CGAL_DEPRECATED_HEADER "" +#define CGAL_REPLACEMENT_HEADER "" +#include -#include -#include +#include -#include - -#ifdef DOXYGEN_RUNNING -#define CGAL_PMP_NP_TEMPLATE_PARAMETERS NamedParameters -#define CGAL_PMP_NP_CLASS NamedParameters -#endif +#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 -* -* \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. +* \ingroup PMPDeprecated * -* @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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/smooth_shape.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/smooth_shape.h index d6e9f29e..d0cd7679 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/smooth_shape.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/smooth_shape.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace Polygon_mesh_processing { * \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 @@ void smooth_shape(const FaceRange& faces, } /// \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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/stitch_borders.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/stitch_borders.h index 6ccf35a6..5704a4ee 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/stitch_borders.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/stitch_borders.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace internal { ////// 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 @@ template + 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 @@ void fill_pairs(const Halfedge& he, 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 @@ template + 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 @@ OutputIterator collect_duplicated_stitchable_boundary_edges(const HalfedgeRange& 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 @@ OutputIterator collect_duplicated_stitchable_boundary_edges(const HalfedgeRange& 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 @@ OutputIterator collect_duplicated_stitchable_boundary_edges(const HalfedgeRange& { 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 @@ filter_stitchable_pairs(PolygonMesh& pmesh, // 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 @@ std::size_t stitch_halfedge_range_dispatcher(const HalfedgePairRange& to_stitch_ // 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 @@ std::size_t zip_boundary_cycle(typename boost::graph_traits::halfed 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 @@ std::size_t zip_boundary_cycle(typename boost::graph_traits::halfed 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 @@ std::size_t zip_boundary_cycle(typename boost::graph_traits::halfed /// 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 @@ std::size_t stitch_boundary_cycle(const typename boost::graph_traits::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 @@ std::size_t stitch_boundary_cycle(const typename boost::graph_traits::null_halfedge()) // stitched everything { cycle_reps_maintainer.remove_representative(bh); @@ -1090,7 +1121,8 @@ std::size_t stitch_boundary_cycle(const typename boost::graph_traits +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 @@ std::size_t stitch_boundary_cycles(const BorderHalfedgeRange& boundary_cycle_rep /// \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 @@ std::size_t stitch_boundary_cycles(const BorderHalfedgeRange& boundary_cycle_rep /// \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 @@ std::size_t stitch_boundary_cycles(const BorderHalfedgeRange& boundary_cycle_rep ///\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 @@ std::size_t stitch_boundary_cycles(PolygonMesh& pmesh, 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 @@ std::size_t stitch_borders(PolygonMesh& pmesh, * * \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 @@ std::size_t stitch_borders(const BorderHalfedgeRange& boundary_cycle_representat 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 @@ std::size_t stitch_borders(const BorderHalfedgeRange& boundary_cycle_representat /// \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 @@ std::size_t stitch_borders(const BorderHalfedgeRange& boundary_cycle_representat /// \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 @@ std::size_t stitch_borders(PolygonMesh& pmesh, 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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/tangential_relaxation.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/tangential_relaxation.h new file mode 100644 index 00000000..c6f153e8 --- /dev/null +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/tangential_relaxation.h @@ -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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/transform.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/transform.h index ba97b2c0..3c0268d3 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/transform.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/transform.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace Polygon_mesh_processing{ * \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 @@ void transform(const Transformation& transformation, } } -/// \cond SKIP_IN_MANUAL -template -void transform(const Transformation& transformation, - PolygonMesh& mesh) -{ - transform(transformation, mesh, parameters::all_default()); -} -/// \endcond } } diff --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/triangulate_faces.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/triangulate_faces.h index 53c22548..52d178e4 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/triangulate_faces.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/triangulate_faces.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Triangulate_modifier 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 @@ class Triangulate_modifier 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 @@ class Triangulate_modifier /** * \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 @@ class Triangulate_modifier * \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 @@ bool triangulate_face(typename boost::graph_traits::face_descriptor 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 @@ bool triangulate_face(typename boost::graph_traits::face_descriptor * * @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 @@ bool triangulate_faces(FaceRange face_range, 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 @@ bool triangulate_faces(FaceRange face_range, PolygonMesh& pmesh) * * @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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/triangulate_hole.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/triangulate_hole.h index e558409d..fc111835 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/triangulate_hole.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_processing/triangulate_hole.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace Polygon_mesh_processing { \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 @@ namespace Polygon_mesh_processing { */ 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 @@ namespace Polygon_mesh_processing { 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 @@ namespace Polygon_mesh_processing { 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 @@ namespace Polygon_mesh_processing { 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 @@ namespace Polygon_mesh_processing { 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 @@ namespace Polygon_mesh_processing { 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)); + Hole_filling::Default_visitor default_visitor; + typedef typename internal_np::Lookup_named_param_def::reference Visitor; - 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()); + 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 @@ namespace Polygon_mesh_processing { 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 @@ namespace Polygon_mesh_processing { 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 @@ namespace Polygon_mesh_processing { \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 @@ namespace Polygon_mesh_processing { 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 @@ bool use_dt3 = 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 @@ bool use_dt3 = 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 @@ bool use_dt3 = } #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 @@ bool use_dt3 = 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 --git a/thirdparty/CGAL/include/CGAL/Polygon_mesh_slicer.h b/thirdparty/CGAL/include/CGAL/Polygon_mesh_slicer.h index 8df93cc8..fd00509c 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_mesh_slicer.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_mesh_slicer.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polygon_nop_decomposition_2.h b/thirdparty/CGAL/include/CGAL/Polygon_nop_decomposition_2.h index ddb0de97..15e5100f 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_nop_decomposition_2.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_nop_decomposition_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polygon_offset_builder_2.h b/thirdparty/CGAL/include/CGAL/Polygon_offset_builder_2.h index b5ef16a5..4d64b89a 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_offset_builder_2.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_offset_builder_2.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polygon_offset_builder_traits_2.h b/thirdparty/CGAL/include/CGAL/Polygon_offset_builder_traits_2.h index 78be1b9c..da8f4ed4 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_offset_builder_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_offset_builder_traits_2.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polygon_set_2.h b/thirdparty/CGAL/include/CGAL/Polygon_set_2.h index 8e205bcc..baf14fc9 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_set_2.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_set_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polygon_traits_2.h b/thirdparty/CGAL/include/CGAL/Polygon_traits_2.h index 5cc579b7..536a580b 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_traits_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polygon_triangulation_decomposition_2.h b/thirdparty/CGAL/include/CGAL/Polygon_triangulation_decomposition_2.h index afc05301..81756c42 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_triangulation_decomposition_2.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_triangulation_decomposition_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polygon_vertical_decomposition_2.h b/thirdparty/CGAL/include/CGAL/Polygon_vertical_decomposition_2.h index 8cb67abe..9502fe01 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_vertical_decomposition_2.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_vertical_decomposition_2.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Polygon_vertical_decomposition_2 { 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 --git a/thirdparty/CGAL/include/CGAL/Polygon_with_holes_2.h b/thirdparty/CGAL/include/CGAL/Polygon_with_holes_2.h index 763b5322..23487151 100644 --- a/thirdparty/CGAL/include/CGAL/Polygon_with_holes_2.h +++ b/thirdparty/CGAL/include/CGAL/Polygon_with_holes_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polygonal_schema.h b/thirdparty/CGAL/include/CGAL/Polygonal_schema.h index baee8804..32023382 100644 --- a/thirdparty/CGAL/include/CGAL/Polygonal_schema.h +++ b/thirdparty/CGAL/include/CGAL/Polygonal_schema.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polygonal_schema_fwd.h b/thirdparty/CGAL/include/CGAL/Polygonal_schema_fwd.h index 31cdeee4..3bcf8b5c 100644 --- a/thirdparty/CGAL/include/CGAL/Polygonal_schema_fwd.h +++ b/thirdparty/CGAL/include/CGAL/Polygonal_schema_fwd.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polygonal_schema_min_items.h b/thirdparty/CGAL/include/CGAL/Polygonal_schema_min_items.h index 4eb217b1..bac42681 100644 --- a/thirdparty/CGAL/include/CGAL/Polygonal_schema_min_items.h +++ b/thirdparty/CGAL/include/CGAL/Polygonal_schema_min_items.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polygonal_surface_reconstruction.h b/thirdparty/CGAL/include/CGAL/Polygonal_surface_reconstruction.h index bda1b953..329d124d 100644 --- a/thirdparty/CGAL/include/CGAL/Polygonal_surface_reconstruction.h +++ b/thirdparty/CGAL/include/CGAL/Polygonal_surface_reconstruction.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polygonal_surface_reconstruction/internal/alpha_shape_mesh.h b/thirdparty/CGAL/include/CGAL/Polygonal_surface_reconstruction/internal/alpha_shape_mesh.h index 83eb3a44..d0557cef 100644 --- a/thirdparty/CGAL/include/CGAL/Polygonal_surface_reconstruction/internal/alpha_shape_mesh.h +++ b/thirdparty/CGAL/include/CGAL/Polygonal_surface_reconstruction/internal/alpha_shape_mesh.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polygonal_surface_reconstruction/internal/compute_confidences.h b/thirdparty/CGAL/include/CGAL/Polygonal_surface_reconstruction/internal/compute_confidences.h index e23e13eb..d0c880d0 100644 --- a/thirdparty/CGAL/include/CGAL/Polygonal_surface_reconstruction/internal/compute_confidences.h +++ b/thirdparty/CGAL/include/CGAL/Polygonal_surface_reconstruction/internal/compute_confidences.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polygonal_surface_reconstruction/internal/hypothesis.h b/thirdparty/CGAL/include/CGAL/Polygonal_surface_reconstruction/internal/hypothesis.h index b181ac23..fa853330 100644 --- a/thirdparty/CGAL/include/CGAL/Polygonal_surface_reconstruction/internal/hypothesis.h +++ b/thirdparty/CGAL/include/CGAL/Polygonal_surface_reconstruction/internal/hypothesis.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polygonal_surface_reconstruction/internal/parameters.h b/thirdparty/CGAL/include/CGAL/Polygonal_surface_reconstruction/internal/parameters.h index ed063909..d9a35863 100644 --- a/thirdparty/CGAL/include/CGAL/Polygonal_surface_reconstruction/internal/parameters.h +++ b/thirdparty/CGAL/include/CGAL/Polygonal_surface_reconstruction/internal/parameters.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polygonal_surface_reconstruction/internal/point_set_with_planes.h b/thirdparty/CGAL/include/CGAL/Polygonal_surface_reconstruction/internal/point_set_with_planes.h index 746ded18..50e16e23 100644 --- a/thirdparty/CGAL/include/CGAL/Polygonal_surface_reconstruction/internal/point_set_with_planes.h +++ b/thirdparty/CGAL/include/CGAL/Polygonal_surface_reconstruction/internal/point_set_with_planes.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/PolyhedralSurf_neighbors.h b/thirdparty/CGAL/include/CGAL/PolyhedralSurf_neighbors.h index 3bb9a5c7..2074c8ce 100644 --- a/thirdparty/CGAL/include/CGAL/PolyhedralSurf_neighbors.h +++ b/thirdparty/CGAL/include/CGAL/PolyhedralSurf_neighbors.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polyhedral_complex_mesh_domain_3.h b/thirdparty/CGAL/include/CGAL/Polyhedral_complex_mesh_domain_3.h index 1958d460..868d93a9 100644 --- a/thirdparty/CGAL/include/CGAL/Polyhedral_complex_mesh_domain_3.h +++ b/thirdparty/CGAL/include/CGAL/Polyhedral_complex_mesh_domain_3.h @@ -4,8 +4,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ detect_features(FT angle_in_degree, 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 --git a/thirdparty/CGAL/include/CGAL/Polyhedral_envelope.h b/thirdparty/CGAL/include/CGAL/Polyhedral_envelope.h index 026a42a2..bfee899b 100644 --- a/thirdparty/CGAL/include/CGAL/Polyhedral_envelope.h +++ b/thirdparty/CGAL/include/CGAL/Polyhedral_envelope.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ struct Polyhedral_envelope { * \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 @@ struct Polyhedral_envelope { 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 @@ struct Polyhedral_envelope { * \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 @@ struct Polyhedral_envelope { 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 @@ struct Polyhedral_envelope { * \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 @@ struct Polyhedral_envelope { * \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 @@ struct Polyhedral_envelope { 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 @@ struct Polyhedral_envelope { /// @} -#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 @@ struct Polyhedral_envelope { 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 @@ struct Polyhedral_envelope { 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 @@ struct Polyhedral_envelope { * 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 @@ struct Polyhedral_envelope { 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 @@ struct Polyhedral_envelope { * \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 @@ struct Polyhedral_envelope { 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 --git a/thirdparty/CGAL/include/CGAL/Polyhedral_mesh_domain_3.h b/thirdparty/CGAL/include/CGAL/Polyhedral_mesh_domain_3.h index 073531bb..f5a8b9ba 100644 --- a/thirdparty/CGAL/include/CGAL/Polyhedral_mesh_domain_3.h +++ b/thirdparty/CGAL/include/CGAL/Polyhedral_mesh_domain_3.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polyhedral_mesh_domain_with_features_3.h b/thirdparty/CGAL/include/CGAL/Polyhedral_mesh_domain_with_features_3.h index 5afde419..17f62fd5 100644 --- a/thirdparty/CGAL/include/CGAL/Polyhedral_mesh_domain_with_features_3.h +++ b/thirdparty/CGAL/include/CGAL/Polyhedral_mesh_domain_with_features_3.h @@ -4,8 +4,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ detect_features(FT angle_in_degree, std::vector& poly) 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 --git a/thirdparty/CGAL/include/CGAL/Polyhedron_3.h b/thirdparty/CGAL/include/CGAL/Polyhedron_3.h index 9c39460c..d46e0f91 100644 --- a/thirdparty/CGAL/include/CGAL/Polyhedron_3.h +++ b/thirdparty/CGAL/include/CGAL/Polyhedron_3.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Polyhedron_3 { /// 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 --git a/thirdparty/CGAL/include/CGAL/Polyhedron_3_fwd.h b/thirdparty/CGAL/include/CGAL/Polyhedron_3_fwd.h index 2d139b52..d47cb81c 100644 --- a/thirdparty/CGAL/include/CGAL/Polyhedron_3_fwd.h +++ b/thirdparty/CGAL/include/CGAL/Polyhedron_3_fwd.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polyhedron_3_to_lcc.h b/thirdparty/CGAL/include/CGAL/Polyhedron_3_to_lcc.h index cca9a4ff..2070db6b 100644 --- a/thirdparty/CGAL/include/CGAL/Polyhedron_3_to_lcc.h +++ b/thirdparty/CGAL/include/CGAL/Polyhedron_3_to_lcc.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polyhedron_copy_3.h b/thirdparty/CGAL/include/CGAL/Polyhedron_copy_3.h index 86b82540..8b43962c 100644 --- a/thirdparty/CGAL/include/CGAL/Polyhedron_copy_3.h +++ b/thirdparty/CGAL/include/CGAL/Polyhedron_copy_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polyhedron_incremental_builder_3.h b/thirdparty/CGAL/include/CGAL/Polyhedron_incremental_builder_3.h index c40fc6b8..eb02033a 100644 --- a/thirdparty/CGAL/include/CGAL/Polyhedron_incremental_builder_3.h +++ b/thirdparty/CGAL/include/CGAL/Polyhedron_incremental_builder_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polyhedron_items_3.h b/thirdparty/CGAL/include/CGAL/Polyhedron_items_3.h index d5046f61..435d1270 100644 --- a/thirdparty/CGAL/include/CGAL/Polyhedron_items_3.h +++ b/thirdparty/CGAL/include/CGAL/Polyhedron_items_3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polyhedron_items_with_id_3.h b/thirdparty/CGAL/include/CGAL/Polyhedron_items_with_id_3.h index b4efcbe2..f7906c14 100644 --- a/thirdparty/CGAL/include/CGAL/Polyhedron_items_with_id_3.h +++ b/thirdparty/CGAL/include/CGAL/Polyhedron_items_with_id_3.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polyhedron_min_items_3.h b/thirdparty/CGAL/include/CGAL/Polyhedron_min_items_3.h index d99f81a8..c6949d88 100644 --- a/thirdparty/CGAL/include/CGAL/Polyhedron_min_items_3.h +++ b/thirdparty/CGAL/include/CGAL/Polyhedron_min_items_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polyhedron_traits_3.h b/thirdparty/CGAL/include/CGAL/Polyhedron_traits_3.h index b9e2834c..f1b28878 100644 --- a/thirdparty/CGAL/include/CGAL/Polyhedron_traits_3.h +++ b/thirdparty/CGAL/include/CGAL/Polyhedron_traits_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polyhedron_traits_with_normals_3.h b/thirdparty/CGAL/include/CGAL/Polyhedron_traits_with_normals_3.h index 04043f6b..d3113edc 100644 --- a/thirdparty/CGAL/include/CGAL/Polyhedron_traits_with_normals_3.h +++ b/thirdparty/CGAL/include/CGAL/Polyhedron_traits_with_normals_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polyline_simplification_2/Hybrid_squared_distance_cost.h b/thirdparty/CGAL/include/CGAL/Polyline_simplification_2/Hybrid_squared_distance_cost.h index aaba9791..501bfd7e 100644 --- a/thirdparty/CGAL/include/CGAL/Polyline_simplification_2/Hybrid_squared_distance_cost.h +++ b/thirdparty/CGAL/include/CGAL/Polyline_simplification_2/Hybrid_squared_distance_cost.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polyline_simplification_2/Scaled_squared_distance_cost.h b/thirdparty/CGAL/include/CGAL/Polyline_simplification_2/Scaled_squared_distance_cost.h index 87b1f564..41c6b531 100644 --- a/thirdparty/CGAL/include/CGAL/Polyline_simplification_2/Scaled_squared_distance_cost.h +++ b/thirdparty/CGAL/include/CGAL/Polyline_simplification_2/Scaled_squared_distance_cost.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polyline_simplification_2/Squared_distance_cost.h b/thirdparty/CGAL/include/CGAL/Polyline_simplification_2/Squared_distance_cost.h index b1c3f9a8..5d2c5661 100644 --- a/thirdparty/CGAL/include/CGAL/Polyline_simplification_2/Squared_distance_cost.h +++ b/thirdparty/CGAL/include/CGAL/Polyline_simplification_2/Squared_distance_cost.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polyline_simplification_2/Stop_above_cost_threshold.h b/thirdparty/CGAL/include/CGAL/Polyline_simplification_2/Stop_above_cost_threshold.h index c84834a4..2fffaed5 100644 --- a/thirdparty/CGAL/include/CGAL/Polyline_simplification_2/Stop_above_cost_threshold.h +++ b/thirdparty/CGAL/include/CGAL/Polyline_simplification_2/Stop_above_cost_threshold.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polyline_simplification_2/Stop_below_count_ratio_threshold.h b/thirdparty/CGAL/include/CGAL/Polyline_simplification_2/Stop_below_count_ratio_threshold.h index 95e882d3..ff7a4174 100644 --- a/thirdparty/CGAL/include/CGAL/Polyline_simplification_2/Stop_below_count_ratio_threshold.h +++ b/thirdparty/CGAL/include/CGAL/Polyline_simplification_2/Stop_below_count_ratio_threshold.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polyline_simplification_2/Stop_below_count_threshold.h b/thirdparty/CGAL/include/CGAL/Polyline_simplification_2/Stop_below_count_threshold.h index 7250608d..627b40de 100644 --- a/thirdparty/CGAL/include/CGAL/Polyline_simplification_2/Stop_below_count_threshold.h +++ b/thirdparty/CGAL/include/CGAL/Polyline_simplification_2/Stop_below_count_threshold.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polyline_simplification_2/Vertex_base_2.h b/thirdparty/CGAL/include/CGAL/Polyline_simplification_2/Vertex_base_2.h index 5ecc99ce..d2328e1c 100644 --- a/thirdparty/CGAL/include/CGAL/Polyline_simplification_2/Vertex_base_2.h +++ b/thirdparty/CGAL/include/CGAL/Polyline_simplification_2/Vertex_base_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polyline_simplification_2/simplify.h b/thirdparty/CGAL/include/CGAL/Polyline_simplification_2/simplify.h index ac34409a..f10aecc5 100644 --- a/thirdparty/CGAL/include/CGAL/Polyline_simplification_2/simplify.h +++ b/thirdparty/CGAL/include/CGAL/Polyline_simplification_2/simplify.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ operator()() } else { (*u)->set_cost(*dist); if(mpq->contains(*u)){ - mpq->update(*u, true); + mpq->update(*u); } else{ mpq->push(*u); @@ -353,7 +353,7 @@ operator()() } else { (*w)->set_cost(*dist); if(mpq->contains(*w)){ - mpq->update(*w, true); + mpq->update(*w); } else{ mpq->push(*w); diff --git a/thirdparty/CGAL/include/CGAL/Polynomial.h b/thirdparty/CGAL/include/CGAL/Polynomial.h index 49c21d57..53729d85 100644 --- a/thirdparty/CGAL/include/CGAL/Polynomial.h +++ b/thirdparty/CGAL/include/CGAL/Polynomial.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polynomial/Algebraic_structure_traits.h b/thirdparty/CGAL/include/CGAL/Polynomial/Algebraic_structure_traits.h index 5cec0390..f8416170 100644 --- a/thirdparty/CGAL/include/CGAL/Polynomial/Algebraic_structure_traits.h +++ b/thirdparty/CGAL/include/CGAL/Polynomial/Algebraic_structure_traits.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polynomial/Cached_extended_euclidean_algorithm.h b/thirdparty/CGAL/include/CGAL/Polynomial/Cached_extended_euclidean_algorithm.h index 3b113ac8..ab2b6295 100644 --- a/thirdparty/CGAL/include/CGAL/Polynomial/Cached_extended_euclidean_algorithm.h +++ b/thirdparty/CGAL/include/CGAL/Polynomial/Cached_extended_euclidean_algorithm.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polynomial/Chinese_remainder_traits.h b/thirdparty/CGAL/include/CGAL/Polynomial/Chinese_remainder_traits.h index 358f56de..99183082 100644 --- a/thirdparty/CGAL/include/CGAL/Polynomial/Chinese_remainder_traits.h +++ b/thirdparty/CGAL/include/CGAL/Polynomial/Chinese_remainder_traits.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polynomial/Coercion_traits.h b/thirdparty/CGAL/include/CGAL/Polynomial/Coercion_traits.h index 60b33d65..b2411050 100644 --- a/thirdparty/CGAL/include/CGAL/Polynomial/Coercion_traits.h +++ b/thirdparty/CGAL/include/CGAL/Polynomial/Coercion_traits.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polynomial/Degree.h b/thirdparty/CGAL/include/CGAL/Polynomial/Degree.h index 61c3d9e3..1147d3d5 100644 --- a/thirdparty/CGAL/include/CGAL/Polynomial/Degree.h +++ b/thirdparty/CGAL/include/CGAL/Polynomial/Degree.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polynomial/Fraction_traits.h b/thirdparty/CGAL/include/CGAL/Polynomial/Fraction_traits.h index 54a23939..4cd4eee1 100644 --- a/thirdparty/CGAL/include/CGAL/Polynomial/Fraction_traits.h +++ b/thirdparty/CGAL/include/CGAL/Polynomial/Fraction_traits.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polynomial/Get_arithmetic_kernel.h b/thirdparty/CGAL/include/CGAL/Polynomial/Get_arithmetic_kernel.h index 5507f68a..5d25a383 100644 --- a/thirdparty/CGAL/include/CGAL/Polynomial/Get_arithmetic_kernel.h +++ b/thirdparty/CGAL/include/CGAL/Polynomial/Get_arithmetic_kernel.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polynomial/Interpolator.h b/thirdparty/CGAL/include/CGAL/Polynomial/Interpolator.h index 4614d33b..2e94f596 100644 --- a/thirdparty/CGAL/include/CGAL/Polynomial/Interpolator.h +++ b/thirdparty/CGAL/include/CGAL/Polynomial/Interpolator.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polynomial/Modular_traits.h b/thirdparty/CGAL/include/CGAL/Polynomial/Modular_traits.h index f7be9ce3..d4f85716 100644 --- a/thirdparty/CGAL/include/CGAL/Polynomial/Modular_traits.h +++ b/thirdparty/CGAL/include/CGAL/Polynomial/Modular_traits.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polynomial/Monomial_representation.h b/thirdparty/CGAL/include/CGAL/Polynomial/Monomial_representation.h index 7a02e318..db51f149 100644 --- a/thirdparty/CGAL/include/CGAL/Polynomial/Monomial_representation.h +++ b/thirdparty/CGAL/include/CGAL/Polynomial/Monomial_representation.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polynomial/Polynomial_type.h b/thirdparty/CGAL/include/CGAL/Polynomial/Polynomial_type.h index fd4535f9..c747706a 100644 --- a/thirdparty/CGAL/include/CGAL/Polynomial/Polynomial_type.h +++ b/thirdparty/CGAL/include/CGAL/Polynomial/Polynomial_type.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polynomial/Real_embeddable_traits.h b/thirdparty/CGAL/include/CGAL/Polynomial/Real_embeddable_traits.h index fa0fbd5d..e2a4bfb9 100644 --- a/thirdparty/CGAL/include/CGAL/Polynomial/Real_embeddable_traits.h +++ b/thirdparty/CGAL/include/CGAL/Polynomial/Real_embeddable_traits.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polynomial/Scalar_factor_traits.h b/thirdparty/CGAL/include/CGAL/Polynomial/Scalar_factor_traits.h index 9ad3b261..009fa97a 100644 --- a/thirdparty/CGAL/include/CGAL/Polynomial/Scalar_factor_traits.h +++ b/thirdparty/CGAL/include/CGAL/Polynomial/Scalar_factor_traits.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polynomial/bezout_matrix.h b/thirdparty/CGAL/include/CGAL/Polynomial/bezout_matrix.h index 7488ff78..5c1c45c7 100644 --- a/thirdparty/CGAL/include/CGAL/Polynomial/bezout_matrix.h +++ b/thirdparty/CGAL/include/CGAL/Polynomial/bezout_matrix.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polynomial/determinant.h b/thirdparty/CGAL/include/CGAL/Polynomial/determinant.h index 270cfd23..5c099389 100644 --- a/thirdparty/CGAL/include/CGAL/Polynomial/determinant.h +++ b/thirdparty/CGAL/include/CGAL/Polynomial/determinant.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polynomial/fwd.h b/thirdparty/CGAL/include/CGAL/Polynomial/fwd.h index de49f376..29a2461d 100644 --- a/thirdparty/CGAL/include/CGAL/Polynomial/fwd.h +++ b/thirdparty/CGAL/include/CGAL/Polynomial/fwd.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polynomial/hgdelta_update.h b/thirdparty/CGAL/include/CGAL/Polynomial/hgdelta_update.h index 9bf9338b..6412e00b 100644 --- a/thirdparty/CGAL/include/CGAL/Polynomial/hgdelta_update.h +++ b/thirdparty/CGAL/include/CGAL/Polynomial/hgdelta_update.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polynomial/misc.h b/thirdparty/CGAL/include/CGAL/Polynomial/misc.h index 1acab024..bf64e7d0 100644 --- a/thirdparty/CGAL/include/CGAL/Polynomial/misc.h +++ b/thirdparty/CGAL/include/CGAL/Polynomial/misc.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polynomial/modular_filter.h b/thirdparty/CGAL/include/CGAL/Polynomial/modular_filter.h index 12715dee..6f66a8f5 100644 --- a/thirdparty/CGAL/include/CGAL/Polynomial/modular_filter.h +++ b/thirdparty/CGAL/include/CGAL/Polynomial/modular_filter.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polynomial/modular_gcd.h b/thirdparty/CGAL/include/CGAL/Polynomial/modular_gcd.h index ae36c0a6..9bdab90e 100644 --- a/thirdparty/CGAL/include/CGAL/Polynomial/modular_gcd.h +++ b/thirdparty/CGAL/include/CGAL/Polynomial/modular_gcd.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polynomial/modular_gcd_utcf_algorithm_M.h b/thirdparty/CGAL/include/CGAL/Polynomial/modular_gcd_utcf_algorithm_M.h index a9e65b46..d8b16063 100644 --- a/thirdparty/CGAL/include/CGAL/Polynomial/modular_gcd_utcf_algorithm_M.h +++ b/thirdparty/CGAL/include/CGAL/Polynomial/modular_gcd_utcf_algorithm_M.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polynomial/modular_gcd_utcf_dfai.h b/thirdparty/CGAL/include/CGAL/Polynomial/modular_gcd_utcf_dfai.h index edf7e93c..926f9c10 100644 --- a/thirdparty/CGAL/include/CGAL/Polynomial/modular_gcd_utcf_dfai.h +++ b/thirdparty/CGAL/include/CGAL/Polynomial/modular_gcd_utcf_dfai.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polynomial/modular_gcd_utils.h b/thirdparty/CGAL/include/CGAL/Polynomial/modular_gcd_utils.h index 7d7fa894..982f7c0e 100644 --- a/thirdparty/CGAL/include/CGAL/Polynomial/modular_gcd_utils.h +++ b/thirdparty/CGAL/include/CGAL/Polynomial/modular_gcd_utils.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polynomial/polynomial_gcd.h b/thirdparty/CGAL/include/CGAL/Polynomial/polynomial_gcd.h index 21b6ef75..f692eda8 100644 --- a/thirdparty/CGAL/include/CGAL/Polynomial/polynomial_gcd.h +++ b/thirdparty/CGAL/include/CGAL/Polynomial/polynomial_gcd.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polynomial/polynomial_gcd_implementations.h b/thirdparty/CGAL/include/CGAL/Polynomial/polynomial_gcd_implementations.h index 0c7f79e6..d546f1c0 100644 --- a/thirdparty/CGAL/include/CGAL/Polynomial/polynomial_gcd_implementations.h +++ b/thirdparty/CGAL/include/CGAL/Polynomial/polynomial_gcd_implementations.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polynomial/polynomial_gcd_ntl.h b/thirdparty/CGAL/include/CGAL/Polynomial/polynomial_gcd_ntl.h index 820ac1b9..d8d1fe0a 100644 --- a/thirdparty/CGAL/include/CGAL/Polynomial/polynomial_gcd_ntl.h +++ b/thirdparty/CGAL/include/CGAL/Polynomial/polynomial_gcd_ntl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polynomial/prs_resultant.h b/thirdparty/CGAL/include/CGAL/Polynomial/prs_resultant.h index 8c0d2ddb..e9845fd3 100644 --- a/thirdparty/CGAL/include/CGAL/Polynomial/prs_resultant.h +++ b/thirdparty/CGAL/include/CGAL/Polynomial/prs_resultant.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polynomial/resultant.h b/thirdparty/CGAL/include/CGAL/Polynomial/resultant.h index d418883b..6c1d435c 100644 --- a/thirdparty/CGAL/include/CGAL/Polynomial/resultant.h +++ b/thirdparty/CGAL/include/CGAL/Polynomial/resultant.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polynomial/square_free_factorize.h b/thirdparty/CGAL/include/CGAL/Polynomial/square_free_factorize.h index 59be5e87..45aeb7bf 100644 --- a/thirdparty/CGAL/include/CGAL/Polynomial/square_free_factorize.h +++ b/thirdparty/CGAL/include/CGAL/Polynomial/square_free_factorize.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polynomial/sturm_habicht_sequence.h b/thirdparty/CGAL/include/CGAL/Polynomial/sturm_habicht_sequence.h index 5c1ba590..cda84fc0 100644 --- a/thirdparty/CGAL/include/CGAL/Polynomial/sturm_habicht_sequence.h +++ b/thirdparty/CGAL/include/CGAL/Polynomial/sturm_habicht_sequence.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polynomial/subresultants.h b/thirdparty/CGAL/include/CGAL/Polynomial/subresultants.h index bc493c5c..16ad9b1b 100644 --- a/thirdparty/CGAL/include/CGAL/Polynomial/subresultants.h +++ b/thirdparty/CGAL/include/CGAL/Polynomial/subresultants.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polynomial_traits_d.h b/thirdparty/CGAL/include/CGAL/Polynomial_traits_d.h index 67befca4..fa7f890a 100644 --- a/thirdparty/CGAL/include/CGAL/Polynomial_traits_d.h +++ b/thirdparty/CGAL/include/CGAL/Polynomial_traits_d.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polynomial_type_generator.h b/thirdparty/CGAL/include/CGAL/Polynomial_type_generator.h index 159f05c2..aeb933e8 100644 --- a/thirdparty/CGAL/include/CGAL/Polynomial_type_generator.h +++ b/thirdparty/CGAL/include/CGAL/Polynomial_type_generator.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polynomials_1_2.h b/thirdparty/CGAL/include/CGAL/Polynomials_1_2.h index ae55cdb9..b6fb2f1e 100644 --- a/thirdparty/CGAL/include/CGAL/Polynomials_1_2.h +++ b/thirdparty/CGAL/include/CGAL/Polynomials_1_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polynomials_1_3.h b/thirdparty/CGAL/include/CGAL/Polynomials_1_3.h index e9b65062..0e700b3f 100644 --- a/thirdparty/CGAL/include/CGAL/Polynomials_1_3.h +++ b/thirdparty/CGAL/include/CGAL/Polynomials_1_3.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/Polynomials_2_2.h b/thirdparty/CGAL/include/CGAL/Polynomials_2_2.h index c5c37b4a..d1e1956d 100644 --- a/thirdparty/CGAL/include/CGAL/Polynomials_2_2.h +++ b/thirdparty/CGAL/include/CGAL/Polynomials_2_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polynomials_2_3.h b/thirdparty/CGAL/include/CGAL/Polynomials_2_3.h index a70d05ef..779c6e76 100644 --- a/thirdparty/CGAL/include/CGAL/Polynomials_2_3.h +++ b/thirdparty/CGAL/include/CGAL/Polynomials_2_3.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/Polynomials_for_line_3.h b/thirdparty/CGAL/include/CGAL/Polynomials_for_line_3.h index 08fa6344..26a890c4 100644 --- a/thirdparty/CGAL/include/CGAL/Polynomials_for_line_3.h +++ b/thirdparty/CGAL/include/CGAL/Polynomials_for_line_3.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/Polytope_distance_d.h b/thirdparty/CGAL/include/CGAL/Polytope_distance_d.h index fd3edb40..f8293496 100644 --- a/thirdparty/CGAL/include/CGAL/Polytope_distance_d.h +++ b/thirdparty/CGAL/include/CGAL/Polytope_distance_d.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polytope_distance_d_traits_2.h b/thirdparty/CGAL/include/CGAL/Polytope_distance_d_traits_2.h index 194e3c3d..7d6fc0d7 100644 --- a/thirdparty/CGAL/include/CGAL/Polytope_distance_d_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Polytope_distance_d_traits_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polytope_distance_d_traits_3.h b/thirdparty/CGAL/include/CGAL/Polytope_distance_d_traits_3.h index 4ff82720..589eacc9 100644 --- a/thirdparty/CGAL/include/CGAL/Polytope_distance_d_traits_3.h +++ b/thirdparty/CGAL/include/CGAL/Polytope_distance_d_traits_3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Polytope_distance_d_traits_d.h b/thirdparty/CGAL/include/CGAL/Polytope_distance_d_traits_d.h index d0472c0a..4c287222 100644 --- a/thirdparty/CGAL/include/CGAL/Polytope_distance_d_traits_d.h +++ b/thirdparty/CGAL/include/CGAL/Polytope_distance_d_traits_d.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Profile_counter.h b/thirdparty/CGAL/include/CGAL/Profile_counter.h index ae93f4b1..c4791811 100644 --- a/thirdparty/CGAL/include/CGAL/Profile_counter.h +++ b/thirdparty/CGAL/include/CGAL/Profile_counter.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Profile_timer.h b/thirdparty/CGAL/include/CGAL/Profile_timer.h index f67c40a4..29c7f104 100644 --- a/thirdparty/CGAL/include/CGAL/Profile_timer.h +++ b/thirdparty/CGAL/include/CGAL/Profile_timer.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Projection_on_sphere_traits_3.h b/thirdparty/CGAL/include/CGAL/Projection_on_sphere_traits_3.h index 5811998c..b6f35f6b 100644 --- a/thirdparty/CGAL/include/CGAL/Projection_on_sphere_traits_3.h +++ b/thirdparty/CGAL/include/CGAL/Projection_on_sphere_traits_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Projection_traits_3.h b/thirdparty/CGAL/include/CGAL/Projection_traits_3.h index 8ee5dca0..508c95e5 100644 --- a/thirdparty/CGAL/include/CGAL/Projection_traits_3.h +++ b/thirdparty/CGAL/include/CGAL/Projection_traits_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Projection_traits_xy_3.h b/thirdparty/CGAL/include/CGAL/Projection_traits_xy_3.h index 2057d6ba..bf8e8fb2 100644 --- a/thirdparty/CGAL/include/CGAL/Projection_traits_xy_3.h +++ b/thirdparty/CGAL/include/CGAL/Projection_traits_xy_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Projection_traits_xz_3.h b/thirdparty/CGAL/include/CGAL/Projection_traits_xz_3.h index 8d42fa16..aabf1bbd 100644 --- a/thirdparty/CGAL/include/CGAL/Projection_traits_xz_3.h +++ b/thirdparty/CGAL/include/CGAL/Projection_traits_xz_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Projection_traits_yz_3.h b/thirdparty/CGAL/include/CGAL/Projection_traits_yz_3.h index 5e2079e9..5f60a502 100644 --- a/thirdparty/CGAL/include/CGAL/Projection_traits_yz_3.h +++ b/thirdparty/CGAL/include/CGAL/Projection_traits_yz_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/QP_functions.h b/thirdparty/CGAL/include/CGAL/QP_functions.h index ce4fc972..0784101d 100644 --- a/thirdparty/CGAL/include/CGAL/QP_functions.h +++ b/thirdparty/CGAL/include/CGAL/QP_functions.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/QP_models.h b/thirdparty/CGAL/include/CGAL/QP_models.h index 6a90ca5c..6c6ca89d 100644 --- a/thirdparty/CGAL/include/CGAL/QP_models.h +++ b/thirdparty/CGAL/include/CGAL/QP_models.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/QP_options.h b/thirdparty/CGAL/include/CGAL/QP_options.h index b20bd12c..c54819ab 100644 --- a/thirdparty/CGAL/include/CGAL/QP_options.h +++ b/thirdparty/CGAL/include/CGAL/QP_options.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/QP_solution.h b/thirdparty/CGAL/include/CGAL/QP_solution.h index a3636980..fe9b10c2 100644 --- a/thirdparty/CGAL/include/CGAL/QP_solution.h +++ b/thirdparty/CGAL/include/CGAL/QP_solution.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/QP_solver/Initialization.h b/thirdparty/CGAL/include/CGAL/QP_solver/Initialization.h index 819feac4..4d98a2cc 100644 --- a/thirdparty/CGAL/include/CGAL/QP_solver/Initialization.h +++ b/thirdparty/CGAL/include/CGAL/QP_solver/Initialization.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/QP_solver/QP__filtered_base.h b/thirdparty/CGAL/include/CGAL/QP_solver/QP__filtered_base.h index 35d592a8..de53cde7 100644 --- a/thirdparty/CGAL/include/CGAL/QP_solver/QP__filtered_base.h +++ b/thirdparty/CGAL/include/CGAL/QP_solver/QP__filtered_base.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/QP_solver/QP__filtered_base_impl.h b/thirdparty/CGAL/include/CGAL/QP_solver/QP__filtered_base_impl.h index 4d57a46a..88c55969 100644 --- a/thirdparty/CGAL/include/CGAL/QP_solver/QP__filtered_base_impl.h +++ b/thirdparty/CGAL/include/CGAL/QP_solver/QP__filtered_base_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/QP_solver/QP__partial_base.h b/thirdparty/CGAL/include/CGAL/QP_solver/QP__partial_base.h index e6e23289..848d5e59 100644 --- a/thirdparty/CGAL/include/CGAL/QP_solver/QP__partial_base.h +++ b/thirdparty/CGAL/include/CGAL/QP_solver/QP__partial_base.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/QP_solver/QP_basis_inverse.h b/thirdparty/CGAL/include/CGAL/QP_solver/QP_basis_inverse.h index 03b28c51..738f3e5b 100644 --- a/thirdparty/CGAL/include/CGAL/QP_solver/QP_basis_inverse.h +++ b/thirdparty/CGAL/include/CGAL/QP_solver/QP_basis_inverse.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/QP_solver/QP_basis_inverse_impl.h b/thirdparty/CGAL/include/CGAL/QP_solver/QP_basis_inverse_impl.h index 232515c0..d5014fe9 100644 --- a/thirdparty/CGAL/include/CGAL/QP_solver/QP_basis_inverse_impl.h +++ b/thirdparty/CGAL/include/CGAL/QP_solver/QP_basis_inverse_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/QP_solver/QP_exact_bland_pricing.h b/thirdparty/CGAL/include/CGAL/QP_solver/QP_exact_bland_pricing.h index 0f0c27e5..7d901470 100644 --- a/thirdparty/CGAL/include/CGAL/QP_solver/QP_exact_bland_pricing.h +++ b/thirdparty/CGAL/include/CGAL/QP_solver/QP_exact_bland_pricing.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/QP_solver/QP_full_exact_pricing.h b/thirdparty/CGAL/include/CGAL/QP_solver/QP_full_exact_pricing.h index ba8d25e1..b2e3af7b 100644 --- a/thirdparty/CGAL/include/CGAL/QP_solver/QP_full_exact_pricing.h +++ b/thirdparty/CGAL/include/CGAL/QP_solver/QP_full_exact_pricing.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/QP_solver/QP_full_filtered_pricing.h b/thirdparty/CGAL/include/CGAL/QP_solver/QP_full_filtered_pricing.h index 6615236e..0236bb33 100644 --- a/thirdparty/CGAL/include/CGAL/QP_solver/QP_full_filtered_pricing.h +++ b/thirdparty/CGAL/include/CGAL/QP_solver/QP_full_filtered_pricing.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/QP_solver/QP_functions_impl.h b/thirdparty/CGAL/include/CGAL/QP_solver/QP_functions_impl.h index b1016fb2..c1c0d5b8 100644 --- a/thirdparty/CGAL/include/CGAL/QP_solver/QP_functions_impl.h +++ b/thirdparty/CGAL/include/CGAL/QP_solver/QP_functions_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/QP_solver/QP_partial_exact_pricing.h b/thirdparty/CGAL/include/CGAL/QP_solver/QP_partial_exact_pricing.h index 8de2f4bf..31ecdb74 100644 --- a/thirdparty/CGAL/include/CGAL/QP_solver/QP_partial_exact_pricing.h +++ b/thirdparty/CGAL/include/CGAL/QP_solver/QP_partial_exact_pricing.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/QP_solver/QP_partial_filtered_pricing.h b/thirdparty/CGAL/include/CGAL/QP_solver/QP_partial_filtered_pricing.h index 0bd5f640..33fe35a5 100644 --- a/thirdparty/CGAL/include/CGAL/QP_solver/QP_partial_filtered_pricing.h +++ b/thirdparty/CGAL/include/CGAL/QP_solver/QP_partial_filtered_pricing.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/QP_solver/QP_pricing_strategy.h b/thirdparty/CGAL/include/CGAL/QP_solver/QP_pricing_strategy.h index 80ec20c4..71fdb34a 100644 --- a/thirdparty/CGAL/include/CGAL/QP_solver/QP_pricing_strategy.h +++ b/thirdparty/CGAL/include/CGAL/QP_solver/QP_pricing_strategy.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/QP_solver/QP_solution_impl.h b/thirdparty/CGAL/include/CGAL/QP_solver/QP_solution_impl.h index b5eba130..d962a59a 100644 --- a/thirdparty/CGAL/include/CGAL/QP_solver/QP_solution_impl.h +++ b/thirdparty/CGAL/include/CGAL/QP_solver/QP_solution_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/QP_solver/QP_solver.h b/thirdparty/CGAL/include/CGAL/QP_solver/QP_solver.h index 08c15422..8f954678 100644 --- a/thirdparty/CGAL/include/CGAL/QP_solver/QP_solver.h +++ b/thirdparty/CGAL/include/CGAL/QP_solver/QP_solver.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/QP_solver/QP_solver_bounds_impl.h b/thirdparty/CGAL/include/CGAL/QP_solver/QP_solver_bounds_impl.h index 46943ee3..9b301ef1 100644 --- a/thirdparty/CGAL/include/CGAL/QP_solver/QP_solver_bounds_impl.h +++ b/thirdparty/CGAL/include/CGAL/QP_solver/QP_solver_bounds_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/QP_solver/QP_solver_impl.h b/thirdparty/CGAL/include/CGAL/QP_solver/QP_solver_impl.h index d7d4ad8a..21aff9f5 100644 --- a/thirdparty/CGAL/include/CGAL/QP_solver/QP_solver_impl.h +++ b/thirdparty/CGAL/include/CGAL/QP_solver/QP_solver_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/QP_solver/QP_solver_nonstandardform_impl.h b/thirdparty/CGAL/include/CGAL/QP_solver/QP_solver_nonstandardform_impl.h index a53de852..e7ddbc8b 100644 --- a/thirdparty/CGAL/include/CGAL/QP_solver/QP_solver_nonstandardform_impl.h +++ b/thirdparty/CGAL/include/CGAL/QP_solver/QP_solver_nonstandardform_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/QP_solver/Unbounded_direction.h b/thirdparty/CGAL/include/CGAL/QP_solver/Unbounded_direction.h index d95dc7fc..1605a417 100644 --- a/thirdparty/CGAL/include/CGAL/QP_solver/Unbounded_direction.h +++ b/thirdparty/CGAL/include/CGAL/QP_solver/Unbounded_direction.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/QP_solver/assertions.h b/thirdparty/CGAL/include/CGAL/QP_solver/assertions.h index 2a63ef5c..acd6e26c 100644 --- a/thirdparty/CGAL/include/CGAL/QP_solver/assertions.h +++ b/thirdparty/CGAL/include/CGAL/QP_solver/assertions.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/QP_solver/basic.h b/thirdparty/CGAL/include/CGAL/QP_solver/basic.h index bdb2aad2..a2dd6ee9 100644 --- a/thirdparty/CGAL/include/CGAL/QP_solver/basic.h +++ b/thirdparty/CGAL/include/CGAL/QP_solver/basic.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/QP_solver/debug.h b/thirdparty/CGAL/include/CGAL/QP_solver/debug.h index 585c9a5f..bfde65b2 100644 --- a/thirdparty/CGAL/include/CGAL/QP_solver/debug.h +++ b/thirdparty/CGAL/include/CGAL/QP_solver/debug.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/QP_solver/functors.h b/thirdparty/CGAL/include/CGAL/QP_solver/functors.h index bbc5bd1a..31d492e1 100644 --- a/thirdparty/CGAL/include/CGAL/QP_solver/functors.h +++ b/thirdparty/CGAL/include/CGAL/QP_solver/functors.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/QP_solver/include/CGAL/QP_solver/functors.h $ -// $Id: functors.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot +// $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 // // @@ -254,6 +254,7 @@ class Map_with_default { : map(m), d(v) {} +#if defined(BOOST_MSVC) && (_MSC_VER < 1920) // 1920 is Visual Studio 2019 version 16.0.0 // Added as workaround for VC2017 with /arch:AVX to fix // https://cgal.geometryfactory.com/CGAL/testsuite/CGAL-4.14-I-95/QP_solver/TestReport_afabri_x64_Cygwin-Windows10_MSVC2017-Release-64bits.gz Map_with_default& operator=(const Map_with_default& other) @@ -262,6 +263,7 @@ class Map_with_default { d = other.d; return *this; } +#endif // operator() const mapped_type& operator() (key_type n) const { diff --git a/thirdparty/CGAL/include/CGAL/Qt/AlphaShapeGraphicsItem.h b/thirdparty/CGAL/include/CGAL/Qt/AlphaShapeGraphicsItem.h index 9458f267..cfb5ce72 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/AlphaShapeGraphicsItem.h +++ b/thirdparty/CGAL/include/CGAL/Qt/AlphaShapeGraphicsItem.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Qt/ApolloniusGraphGraphicsItem.h b/thirdparty/CGAL/include/CGAL/Qt/ApolloniusGraphGraphicsItem.h index 309fe9d8..cec25b51 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/ApolloniusGraphGraphicsItem.h +++ b/thirdparty/CGAL/include/CGAL/Qt/ApolloniusGraphGraphicsItem.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Qt/Basic_viewer_qt.h b/thirdparty/CGAL/include/CGAL/Qt/Basic_viewer_qt.h index 36d2df2d..f7031bf3 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/Basic_viewer_qt.h +++ b/thirdparty/CGAL/include/CGAL/Qt/Basic_viewer_qt.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Basic_viewer_qt : public CGAL::QGLViewer vao[VAO_MONO_POINTS].bind(); unsigned int bufn = 0; - assert(bufn(arrays[POS_MONO_POINTS].size()*sizeof(float))); @@ -629,7 +630,7 @@ class Basic_viewer_qt : public CGAL::QGLViewer vao[VAO_COLORED_POINTS].bind(); ++bufn; - assert(bufn(arrays[POS_COLORED_POINTS].size()*sizeof(float))); @@ -638,7 +639,7 @@ class Basic_viewer_qt : public CGAL::QGLViewer buffers[bufn].release(); ++bufn; - assert(bufn(arrays[COLOR_POINTS].size()*sizeof(float))); @@ -654,7 +655,7 @@ class Basic_viewer_qt : public CGAL::QGLViewer vao[VAO_MONO_SEGMENTS].bind(); ++bufn; - assert(bufn(arrays[POS_MONO_SEGMENTS].size()*sizeof(float))); @@ -671,7 +672,7 @@ class Basic_viewer_qt : public CGAL::QGLViewer vao[VAO_COLORED_SEGMENTS].bind(); ++bufn; - assert(bufn(arrays[POS_COLORED_SEGMENTS].size()*sizeof(float))); @@ -681,7 +682,7 @@ class Basic_viewer_qt : public CGAL::QGLViewer buffers[bufn].release(); ++bufn; - assert(bufn(arrays[COLOR_SEGMENTS].size()*sizeof(float))); @@ -699,7 +700,7 @@ class Basic_viewer_qt : public CGAL::QGLViewer vao[VAO_MONO_RAYS].bind(); ++bufn; - assert(bufn(arrays[POS_MONO_RAYS].size()*sizeof(float))); @@ -717,7 +718,7 @@ class Basic_viewer_qt : public CGAL::QGLViewer vao[VAO_COLORED_RAYS].bind(); ++bufn; - assert(bufn(arrays[POS_COLORED_RAYS].size()*sizeof(float))); @@ -727,7 +728,7 @@ class Basic_viewer_qt : public CGAL::QGLViewer buffers[bufn].release(); ++bufn; - assert(bufn(arrays[COLOR_RAYS].size()*sizeof(float))); @@ -744,7 +745,7 @@ class Basic_viewer_qt : public CGAL::QGLViewer vao[VAO_MONO_LINES].bind(); ++bufn; - assert(bufn(arrays[POS_MONO_LINES].size()*sizeof(float))); @@ -762,7 +763,7 @@ class Basic_viewer_qt : public CGAL::QGLViewer vao[VAO_COLORED_LINES].bind(); ++bufn; - assert(bufn(arrays[POS_COLORED_LINES].size()*sizeof(float))); @@ -772,7 +773,7 @@ class Basic_viewer_qt : public CGAL::QGLViewer buffers[bufn].release(); ++bufn; - assert(bufn(arrays[COLOR_LINES].size()*sizeof(float))); @@ -792,7 +793,7 @@ class Basic_viewer_qt : public CGAL::QGLViewer // 5.1.1) points of the mono faces ++bufn; - assert(bufn(arrays[POS_MONO_FACES].size()*sizeof(float))); @@ -803,7 +804,7 @@ class Basic_viewer_qt : public CGAL::QGLViewer // 5.1.2) normals of the mono faces ++bufn; - assert(bufn(arrays[POS_COLORED_FACES].size()*sizeof(float))); @@ -842,7 +843,7 @@ class Basic_viewer_qt : public CGAL::QGLViewer // 5.2.2) normals of the color faces ++bufn; - assert(bufn(arrays[COLOR_FACES].size()*sizeof(float))); @@ -886,7 +887,7 @@ class Basic_viewer_qt : public CGAL::QGLViewer 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 --git a/thirdparty/CGAL/include/CGAL/Qt/CGAL_Qt_config.h b/thirdparty/CGAL/include/CGAL/Qt/CGAL_Qt_config.h index 3d19f53e..991f91f9 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/CGAL_Qt_config.h +++ b/thirdparty/CGAL/include/CGAL/Qt/CGAL_Qt_config.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Qt/CircularArcGraphicsItem.h b/thirdparty/CGAL/include/CGAL/Qt/CircularArcGraphicsItem.h index 321c5a2e..7c795e67 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/CircularArcGraphicsItem.h +++ b/thirdparty/CGAL/include/CGAL/Qt/CircularArcGraphicsItem.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Qt/ConstrainedTriangulationGraphicsItem.h b/thirdparty/CGAL/include/CGAL/Qt/ConstrainedTriangulationGraphicsItem.h index 72cfe700..3ef13ee6 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/ConstrainedTriangulationGraphicsItem.h +++ b/thirdparty/CGAL/include/CGAL/Qt/ConstrainedTriangulationGraphicsItem.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Qt/Converter.h b/thirdparty/CGAL/include/CGAL/Qt/Converter.h index eff6ee45..43aa91ec 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/Converter.h +++ b/thirdparty/CGAL/include/CGAL/Qt/Converter.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Qt/CreateOpenGLContext.h b/thirdparty/CGAL/include/CGAL/Qt/CreateOpenGLContext.h index 5a00b6c6..a3362c45 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/CreateOpenGLContext.h +++ b/thirdparty/CGAL/include/CGAL/Qt/CreateOpenGLContext.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Qt/DelaunayMeshTriangulationGraphicsItem.h b/thirdparty/CGAL/include/CGAL/Qt/DelaunayMeshTriangulationGraphicsItem.h index 89a92eb5..18487230 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/DelaunayMeshTriangulationGraphicsItem.h +++ b/thirdparty/CGAL/include/CGAL/Qt/DelaunayMeshTriangulationGraphicsItem.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Qt/DemosMainWindow.h b/thirdparty/CGAL/include/CGAL/Qt/DemosMainWindow.h index deaef133..1e52072b 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/DemosMainWindow.h +++ b/thirdparty/CGAL/include/CGAL/Qt/DemosMainWindow.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Qt/DemosMainWindow_impl.h b/thirdparty/CGAL/include/CGAL/Qt/DemosMainWindow_impl.h index 9e51ceae..23505d96 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/DemosMainWindow_impl.h +++ b/thirdparty/CGAL/include/CGAL/Qt/DemosMainWindow_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Qt/GraphicsItem.h b/thirdparty/CGAL/include/CGAL/Qt/GraphicsItem.h index 8e32284d..3caaa778 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/GraphicsItem.h +++ b/thirdparty/CGAL/include/CGAL/Qt/GraphicsItem.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Qt/GraphicsViewCircleInput.h b/thirdparty/CGAL/include/CGAL/Qt/GraphicsViewCircleInput.h index bbe5eb11..f3a3a468 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/GraphicsViewCircleInput.h +++ b/thirdparty/CGAL/include/CGAL/Qt/GraphicsViewCircleInput.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Qt/GraphicsViewCircularArcInput.h b/thirdparty/CGAL/include/CGAL/Qt/GraphicsViewCircularArcInput.h index e10c8c1f..fed2c954 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/GraphicsViewCircularArcInput.h +++ b/thirdparty/CGAL/include/CGAL/Qt/GraphicsViewCircularArcInput.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Qt/GraphicsViewInput.h b/thirdparty/CGAL/include/CGAL/Qt/GraphicsViewInput.h index 58d2ea38..c5e01205 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/GraphicsViewInput.h +++ b/thirdparty/CGAL/include/CGAL/Qt/GraphicsViewInput.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Qt/GraphicsViewIsoRectangleInput.h b/thirdparty/CGAL/include/CGAL/Qt/GraphicsViewIsoRectangleInput.h index 9b51de40..eac516db 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/GraphicsViewIsoRectangleInput.h +++ b/thirdparty/CGAL/include/CGAL/Qt/GraphicsViewIsoRectangleInput.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Qt/GraphicsViewLineInput.h b/thirdparty/CGAL/include/CGAL/Qt/GraphicsViewLineInput.h index 325e6e3c..7e935ff9 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/GraphicsViewLineInput.h +++ b/thirdparty/CGAL/include/CGAL/Qt/GraphicsViewLineInput.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Qt/GraphicsViewNavigation.h b/thirdparty/CGAL/include/CGAL/Qt/GraphicsViewNavigation.h index e947167b..a44f450d 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/GraphicsViewNavigation.h +++ b/thirdparty/CGAL/include/CGAL/Qt/GraphicsViewNavigation.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Qt/GraphicsViewNavigation_impl.h b/thirdparty/CGAL/include/CGAL/Qt/GraphicsViewNavigation_impl.h index 4bd887ac..ff0df782 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/GraphicsViewNavigation_impl.h +++ b/thirdparty/CGAL/include/CGAL/Qt/GraphicsViewNavigation_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Qt/GraphicsViewPointInput.h b/thirdparty/CGAL/include/CGAL/Qt/GraphicsViewPointInput.h index 5079eea0..e68f8077 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/GraphicsViewPointInput.h +++ b/thirdparty/CGAL/include/CGAL/Qt/GraphicsViewPointInput.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Qt/GraphicsViewPolygonWithHolesInput.h b/thirdparty/CGAL/include/CGAL/Qt/GraphicsViewPolygonWithHolesInput.h index 086d1a93..c07c1d3e 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/GraphicsViewPolygonWithHolesInput.h +++ b/thirdparty/CGAL/include/CGAL/Qt/GraphicsViewPolygonWithHolesInput.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Qt/GraphicsViewPolylineInput.h b/thirdparty/CGAL/include/CGAL/Qt/GraphicsViewPolylineInput.h index 52e525db..eab6e70e 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/GraphicsViewPolylineInput.h +++ b/thirdparty/CGAL/include/CGAL/Qt/GraphicsViewPolylineInput.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Qt/GraphicsViewPolylineInput_impl.h b/thirdparty/CGAL/include/CGAL/Qt/GraphicsViewPolylineInput_impl.h index 07fb3b2f..601e4100 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/GraphicsViewPolylineInput_impl.h +++ b/thirdparty/CGAL/include/CGAL/Qt/GraphicsViewPolylineInput_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Qt/LineGraphicsItem.h b/thirdparty/CGAL/include/CGAL/Qt/LineGraphicsItem.h index 819370a2..7dd4ed55 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/LineGraphicsItem.h +++ b/thirdparty/CGAL/include/CGAL/Qt/LineGraphicsItem.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Qt/PainterOstream.h b/thirdparty/CGAL/include/CGAL/Qt/PainterOstream.h index 1454d8d1..27647aa3 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/PainterOstream.h +++ b/thirdparty/CGAL/include/CGAL/Qt/PainterOstream.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Qt/PointsGraphicsItem.h b/thirdparty/CGAL/include/CGAL/Qt/PointsGraphicsItem.h index 26dec9e5..b62a6e41 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/PointsGraphicsItem.h +++ b/thirdparty/CGAL/include/CGAL/Qt/PointsGraphicsItem.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Qt/PointsInKdTreeGraphicsItem.h b/thirdparty/CGAL/include/CGAL/Qt/PointsInKdTreeGraphicsItem.h index 191b1444..330fff4a 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/PointsInKdTreeGraphicsItem.h +++ b/thirdparty/CGAL/include/CGAL/Qt/PointsInKdTreeGraphicsItem.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Qt/PolygonGraphicsItem.h b/thirdparty/CGAL/include/CGAL/Qt/PolygonGraphicsItem.h index 355cf742..eddbb419 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/PolygonGraphicsItem.h +++ b/thirdparty/CGAL/include/CGAL/Qt/PolygonGraphicsItem.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Qt/PolygonWithHolesGraphicsItem.h b/thirdparty/CGAL/include/CGAL/Qt/PolygonWithHolesGraphicsItem.h index 9c00d368..8edb7954 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/PolygonWithHolesGraphicsItem.h +++ b/thirdparty/CGAL/include/CGAL/Qt/PolygonWithHolesGraphicsItem.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Qt/PolylinesGraphicsItem.h b/thirdparty/CGAL/include/CGAL/Qt/PolylinesGraphicsItem.h index 8289600d..6c32bfce 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/PolylinesGraphicsItem.h +++ b/thirdparty/CGAL/include/CGAL/Qt/PolylinesGraphicsItem.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Qt/PowerdiagramGraphicsItem.h b/thirdparty/CGAL/include/CGAL/Qt/PowerdiagramGraphicsItem.h index 7cdf0d47..56bac659 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/PowerdiagramGraphicsItem.h +++ b/thirdparty/CGAL/include/CGAL/Qt/PowerdiagramGraphicsItem.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Qt/RegularGridGraphicsItem.h b/thirdparty/CGAL/include/CGAL/Qt/RegularGridGraphicsItem.h index c8c5496a..e12fdace 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/RegularGridGraphicsItem.h +++ b/thirdparty/CGAL/include/CGAL/Qt/RegularGridGraphicsItem.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Qt/RegularGridVectorFieldGraphicsItem.h b/thirdparty/CGAL/include/CGAL/Qt/RegularGridVectorFieldGraphicsItem.h index e4ddfa94..245905da 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/RegularGridVectorFieldGraphicsItem.h +++ b/thirdparty/CGAL/include/CGAL/Qt/RegularGridVectorFieldGraphicsItem.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Qt/RegularTriangulationGraphicsItem.h b/thirdparty/CGAL/include/CGAL/Qt/RegularTriangulationGraphicsItem.h index 0c90c46c..2a44f50a 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/RegularTriangulationGraphicsItem.h +++ b/thirdparty/CGAL/include/CGAL/Qt/RegularTriangulationGraphicsItem.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Qt/SegmentDelaunayGraphGraphicsItem.h b/thirdparty/CGAL/include/CGAL/Qt/SegmentDelaunayGraphGraphicsItem.h index 781fdd00..4e24ff75 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/SegmentDelaunayGraphGraphicsItem.h +++ b/thirdparty/CGAL/include/CGAL/Qt/SegmentDelaunayGraphGraphicsItem.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Qt/SegmentDelaunayGraphLinfGraphicsItem.h b/thirdparty/CGAL/include/CGAL/Qt/SegmentDelaunayGraphLinfGraphicsItem.h index af3da5b8..fadb0517 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/SegmentDelaunayGraphLinfGraphicsItem.h +++ b/thirdparty/CGAL/include/CGAL/Qt/SegmentDelaunayGraphLinfGraphicsItem.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Qt/SegmentsGraphicsItem.h b/thirdparty/CGAL/include/CGAL/Qt/SegmentsGraphicsItem.h index c8e6115c..6116623a 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/SegmentsGraphicsItem.h +++ b/thirdparty/CGAL/include/CGAL/Qt/SegmentsGraphicsItem.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Qt/StreamLinesGraphicsItem.h b/thirdparty/CGAL/include/CGAL/Qt/StreamLinesGraphicsItem.h index 357cb946..6e667459 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/StreamLinesGraphicsItem.h +++ b/thirdparty/CGAL/include/CGAL/Qt/StreamLinesGraphicsItem.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Qt/TriangulationGraphicsItem.h b/thirdparty/CGAL/include/CGAL/Qt/TriangulationGraphicsItem.h index ed4b54ba..f34efc4c 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/TriangulationGraphicsItem.h +++ b/thirdparty/CGAL/include/CGAL/Qt/TriangulationGraphicsItem.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Qt/VoronoiGraphicsItem.h b/thirdparty/CGAL/include/CGAL/Qt/VoronoiGraphicsItem.h index 2461dced..dcc0a388 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/VoronoiGraphicsItem.h +++ b/thirdparty/CGAL/include/CGAL/Qt/VoronoiGraphicsItem.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Qt/camera.h b/thirdparty/CGAL/include/CGAL/Qt/camera.h index 63b15a79..94da244c 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/camera.h +++ b/thirdparty/CGAL/include/CGAL/Qt/camera.h @@ -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/GraphicsView/include/CGAL/Qt/camera.h $ -// $Id: camera.h 9cd0d45 2021-02-09T11:31:34+01:00 Maxime Gimeno +// $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 @@ -18,6 +18,7 @@ #include #include #include +#include namespace CGAL{ class QGLViewer; @@ -199,6 +200,7 @@ public Q_SLOTS: CGAL::QGLViewer's window dimensions when the Camera is attached to a CGAL::QGLViewer. See also QOpenGLWidget::height() */ int screenHeight() const { return screenHeight_; } + qreal devicePixelRatio() const { return devicePixelRatio_; } void getViewport(GLint viewport[4]) const; qreal pixelGLRatio(const Vec &position) const; @@ -279,7 +281,7 @@ public Q_SLOTS: setScreenWidthAndHeight(int(100.0 * aspect), 100); } - void setScreenWidthAndHeight(int width, int height); + void setScreenWidthAndHeight(int width, int height, qreal devicePixelRatio = 1.0); /*! Sets the zNearCoefficient() value. */ void setZNearCoefficient(qreal coef) { zNearCoef_ = coef; @@ -444,6 +446,7 @@ private Q_SLOTS: // C a m e r a p a r a m e t e r s int screenWidth_, screenHeight_; // size of the window, in pixels + qreal devicePixelRatio_; qreal fieldOfView_; // in radians Vec sceneCenter_; qreal sceneRadius_; // OpenGL units @@ -467,6 +470,36 @@ private Q_SLOTS: KeyFrameInterpolator *interpolationKfi_; }; +inline void read_pixel(const QPoint &pixel, QOpenGLFunctions *p, + const Camera *camera, GLenum format, GLenum type, + GLvoid *pixel_data) { + const auto pixel_ratio = camera->devicePixelRatio(); + p->glReadPixels(pixel.x() * pixel_ratio, + (camera->screenHeight() - pixel.y()) * pixel_ratio - 1, 1, 1, + format, type, pixel_data); +} + +inline auto read_pixel_as_float_rgb(const QPoint &pixel, QOpenGLFunctions *p, + const Camera *camera) { + std::array res; + read_pixel(pixel, p, camera, GL_RGB, GL_FLOAT, res.data()); + return res; +} + +inline auto read_pixel_as_ubyte_rgba(const QPoint &pixel, QOpenGLFunctions *p, + const Camera *camera) { + std::array res; + read_pixel(pixel, p, camera, GL_RGBA, GL_UNSIGNED_BYTE, res.data()); + return res; +} + +inline float read_depth_under_pixel(const QPoint &pixel, QOpenGLFunctions *p, + const Camera *camera) { + float depth = 2.0f; + read_pixel(pixel, p, camera, GL_DEPTH_COMPONENT, GL_FLOAT, &depth); + return depth; +} + } // namespace qglviewer } //CGAL #endif // QGLVIEWER_CAMERA_H diff --git a/thirdparty/CGAL/include/CGAL/Qt/camera_impl.h b/thirdparty/CGAL/include/CGAL/Qt/camera_impl.h index 75358f09..ba5523af 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/camera_impl.h +++ b/thirdparty/CGAL/include/CGAL/Qt/camera_impl.h @@ -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/GraphicsView/include/CGAL/Qt/camera_impl.h $ -// $Id: camera_impl.h db338aa 2021-02-18T15:19:06+01:00 Laurent Rineau +// $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 #ifdef CGAL_HEADER_ONLY @@ -160,10 +160,11 @@ frustrum coherence. If your Camera is used without a CGAL::QGLViewer (offscreen rendering, shadow maps), use setAspectRatio() instead to define the projection matrix. */ CGAL_INLINE_FUNCTION -void Camera::setScreenWidthAndHeight(int width, int height) { +void Camera::setScreenWidthAndHeight(int width, int height, qreal devicePixelRatio) { // Prevent negative and zero dimensions that would cause divisions by zero. screenWidth_ = width > 0 ? width : 1; screenHeight_ = height > 0 ? height : 1; + devicePixelRatio_ = devicePixelRatio; projectionMatrixIsUpToDate_ = false; } @@ -884,8 +885,7 @@ Vec Camera::pointUnderPixel(const QPoint &pixel, bool &found) const { // Qt uses upper corner for its origin while GL uses the lower corner. if(auto p = dynamic_cast(parent())) { - p->glReadPixels(pixel.x(), screenHeight() - 1 - pixel.y(), 1, 1, - GL_DEPTH_COMPONENT, GL_FLOAT, &depth); + depth = read_depth_under_pixel(pixel, p, this); } found = depth < 1.0; Vec point(pixel.x(), pixel.y(), depth); diff --git a/thirdparty/CGAL/include/CGAL/Qt/constraint.h b/thirdparty/CGAL/include/CGAL/Qt/constraint.h index 49798930..6f98fb24 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/constraint.h +++ b/thirdparty/CGAL/include/CGAL/Qt/constraint.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/Qt/constraint_impl.h b/thirdparty/CGAL/include/CGAL/Qt/constraint_impl.h index bff28b23..486abb83 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/constraint_impl.h +++ b/thirdparty/CGAL/include/CGAL/Qt/constraint_impl.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/Qt/debug.h b/thirdparty/CGAL/include/CGAL/Qt/debug.h index c3961657..c44e93ac 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/debug.h +++ b/thirdparty/CGAL/include/CGAL/Qt/debug.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Qt/debug_impl.h b/thirdparty/CGAL/include/CGAL/Qt/debug_impl.h index 09c0f68b..0b6d2a55 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/debug_impl.h +++ b/thirdparty/CGAL/include/CGAL/Qt/debug_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Qt/frame.h b/thirdparty/CGAL/include/CGAL/Qt/frame.h index 3c4af2ae..be314adf 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/frame.h +++ b/thirdparty/CGAL/include/CGAL/Qt/frame.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/Qt/frame_impl.h b/thirdparty/CGAL/include/CGAL/Qt/frame_impl.h index 84e6d26d..6a2ac6de 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/frame_impl.h +++ b/thirdparty/CGAL/include/CGAL/Qt/frame_impl.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/Qt/image_interface.h b/thirdparty/CGAL/include/CGAL/Qt/image_interface.h index b2723220..1bbe0a48 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/image_interface.h +++ b/thirdparty/CGAL/include/CGAL/Qt/image_interface.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/Qt/init_ogl_context.h b/thirdparty/CGAL/include/CGAL/Qt/init_ogl_context.h index ac0b9a82..d800de18 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/init_ogl_context.h +++ b/thirdparty/CGAL/include/CGAL/Qt/init_ogl_context.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Qt/keyFrameInterpolator.h b/thirdparty/CGAL/include/CGAL/Qt/keyFrameInterpolator.h index d9043b77..f3aac110 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/keyFrameInterpolator.h +++ b/thirdparty/CGAL/include/CGAL/Qt/keyFrameInterpolator.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/Qt/keyFrameInterpolator_impl.h b/thirdparty/CGAL/include/CGAL/Qt/keyFrameInterpolator_impl.h index ab128754..a74bea2d 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/keyFrameInterpolator_impl.h +++ b/thirdparty/CGAL/include/CGAL/Qt/keyFrameInterpolator_impl.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/Qt/manipulatedCameraFrame.h b/thirdparty/CGAL/include/CGAL/Qt/manipulatedCameraFrame.h index 0c3629fb..719a88ef 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/manipulatedCameraFrame.h +++ b/thirdparty/CGAL/include/CGAL/Qt/manipulatedCameraFrame.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/Qt/manipulatedCameraFrame_impl.h b/thirdparty/CGAL/include/CGAL/Qt/manipulatedCameraFrame_impl.h index 74472c16..c9c64a8f 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/manipulatedCameraFrame_impl.h +++ b/thirdparty/CGAL/include/CGAL/Qt/manipulatedCameraFrame_impl.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/Qt/manipulatedFrame.h b/thirdparty/CGAL/include/CGAL/Qt/manipulatedFrame.h index 76a2e953..cc21e3eb 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/manipulatedFrame.h +++ b/thirdparty/CGAL/include/CGAL/Qt/manipulatedFrame.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/Qt/manipulatedFrame_impl.h b/thirdparty/CGAL/include/CGAL/Qt/manipulatedFrame_impl.h index 93fc85a8..cb55fa81 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/manipulatedFrame_impl.h +++ b/thirdparty/CGAL/include/CGAL/Qt/manipulatedFrame_impl.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/Qt/mouseGrabber.h b/thirdparty/CGAL/include/CGAL/Qt/mouseGrabber.h index e8689985..3e25e7be 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/mouseGrabber.h +++ b/thirdparty/CGAL/include/CGAL/Qt/mouseGrabber.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/Qt/mouseGrabber_impl.h b/thirdparty/CGAL/include/CGAL/Qt/mouseGrabber_impl.h index dabed15d..39469845 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/mouseGrabber_impl.h +++ b/thirdparty/CGAL/include/CGAL/Qt/mouseGrabber_impl.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/Qt/qglviewer.h b/thirdparty/CGAL/include/CGAL/Qt/qglviewer.h index 746adbd6..adcf1df8 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/qglviewer.h +++ b/thirdparty/CGAL/include/CGAL/Qt/qglviewer.h @@ -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/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 @@ public Q_SLOTS: */ 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 --git a/thirdparty/CGAL/include/CGAL/Qt/qglviewer_impl.h b/thirdparty/CGAL/include/CGAL/Qt/qglviewer_impl.h index 0db3839b..8511a86c 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/qglviewer_impl.h +++ b/thirdparty/CGAL/include/CGAL/Qt/qglviewer_impl.h @@ -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/GraphicsView/include/CGAL/Qt/qglviewer_impl.h $ -// $Id: qglviewer_impl.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_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 @@ -807,7 +807,7 @@ void CGAL::QGLViewer::setCamera(qglviewer::Camera *const camera) { camera->setSceneRadius(sceneRadius()); camera->setSceneCenter(sceneCenter()); - camera->setScreenWidthAndHeight(width(), height()); + camera->setScreenWidthAndHeight(width(), height(), devicePixelRatio()); // Disconnect current camera from this viewer. disconnect(this->camera()->frame(), SIGNAL(manipulated()), this, @@ -1147,7 +1147,9 @@ void CGAL::QGLViewer::beginSelection(const QPoint &point) { makeCurrent(); glEnable(GL_SCISSOR_TEST); - glScissor(point.x(), camera()->screenHeight()-1-point.y(), 1, 1); + glScissor(point.x() * devicePixelRatio(), + (camera()->screenHeight() - point.y()) * devicePixelRatio() - 1, 1, + 1); } /*! This method is called by select() after scene elements were drawn by @@ -2369,7 +2371,7 @@ CGAL_INLINE_FUNCTION void CGAL::QGLViewer::resizeGL(int width, int height) { QOpenGLWidget::resizeGL(width, height); glViewport(0, 0, GLint(width), GLint(height)); - camera()->setScreenWidthAndHeight(this->width(), this->height()); + camera()->setScreenWidthAndHeight(this->width(), this->height(), this->devicePixelRatio()); } ////////////////////////////////////////////////////////////////////////// @@ -3187,10 +3189,11 @@ void CGAL::QGLViewer::drawVisualHints() { mvpMatrix.ortho(-1,1,-1,1,-1,1); size=30*devicePixelRatio(); rendering_program.setUniformValue("mvp_matrix", mvpMatrix); - glViewport(GLint((camera()->projectedCoordinatesOf(camera()->pivotPoint()).x-size/2)*devicePixelRatio()), - GLint((height() - camera()->projectedCoordinatesOf(camera()->pivotPoint()).y-size/2)*devicePixelRatio()), size, size); - glScissor (GLint((camera()->projectedCoordinatesOf(camera()->pivotPoint()).x-size/2)*devicePixelRatio()), - GLint((height() - camera()->projectedCoordinatesOf(camera()->pivotPoint()).y-size/2)*devicePixelRatio()), size, size); + const auto point_2d = camera()->projectedCoordinatesOf(camera()->pivotPoint()); + glViewport(GLint(point_2d.x*devicePixelRatio()-size/2), + GLint((height() - point_2d.y)*devicePixelRatio()-size/2), size, size); + glScissor (GLint(point_2d.x*devicePixelRatio()-size/2), + GLint((height() - point_2d.y)*devicePixelRatio()-size/2), size, size); rendering_program.setUniformValue("color", QColor(::Qt::black)); glDisable(GL_DEPTH_TEST); glDrawArrays(GL_LINES, 0, static_cast(4)); @@ -3758,8 +3761,29 @@ void CGAL::QGLViewer::saveSnapshot() } } +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 --git a/thirdparty/CGAL/include/CGAL/Qt/qglviewer_impl_list.h b/thirdparty/CGAL/include/CGAL/Qt/qglviewer_impl_list.h index 7a35b73c..631dcfef 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/qglviewer_impl_list.h +++ b/thirdparty/CGAL/include/CGAL/Qt/qglviewer_impl_list.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/Qt/quaternion.h b/thirdparty/CGAL/include/CGAL/Qt/quaternion.h index 2b065468..fa649603 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/quaternion.h +++ b/thirdparty/CGAL/include/CGAL/Qt/quaternion.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/Qt/quaternion_impl.h b/thirdparty/CGAL/include/CGAL/Qt/quaternion_impl.h index 3b164936..5fe99d85 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/quaternion_impl.h +++ b/thirdparty/CGAL/include/CGAL/Qt/quaternion_impl.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/Qt/resources.h b/thirdparty/CGAL/include/CGAL/Qt/resources.h index 5a2c63c4..a520a69b 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/resources.h +++ b/thirdparty/CGAL/include/CGAL/Qt/resources.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Qt/resources_impl.h b/thirdparty/CGAL/include/CGAL/Qt/resources_impl.h index e751c62f..89629305 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/resources_impl.h +++ b/thirdparty/CGAL/include/CGAL/Qt/resources_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Qt/utility.h b/thirdparty/CGAL/include/CGAL/Qt/utility.h index 880e167d..e31d85eb 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/utility.h +++ b/thirdparty/CGAL/include/CGAL/Qt/utility.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Qt/utility_impl.h b/thirdparty/CGAL/include/CGAL/Qt/utility_impl.h index 2021f0ec..0261fde0 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/utility_impl.h +++ b/thirdparty/CGAL/include/CGAL/Qt/utility_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Qt/vec.h b/thirdparty/CGAL/include/CGAL/Qt/vec.h index 4cb7330a..13d08468 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/vec.h +++ b/thirdparty/CGAL/include/CGAL/Qt/vec.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/Qt/vec_impl.h b/thirdparty/CGAL/include/CGAL/Qt/vec_impl.h index b0623917..2e9465f9 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/vec_impl.h +++ b/thirdparty/CGAL/include/CGAL/Qt/vec_impl.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/Qt/viewer_actions.h b/thirdparty/CGAL/include/CGAL/Qt/viewer_actions.h index acda4d47..1213948b 100644 --- a/thirdparty/CGAL/include/CGAL/Qt/viewer_actions.h +++ b/thirdparty/CGAL/include/CGAL/Qt/viewer_actions.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/Quadtree.h b/thirdparty/CGAL/include/CGAL/Quadtree.h index 92c6450b..dbfce8fa 100644 --- a/thirdparty/CGAL/include/CGAL/Quadtree.h +++ b/thirdparty/CGAL/include/CGAL/Quadtree.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Quotient.h b/thirdparty/CGAL/include/CGAL/Quotient.h index 3bbd111c..22c1efb3 100644 --- a/thirdparty/CGAL/include/CGAL/Quotient.h +++ b/thirdparty/CGAL/include/CGAL/Quotient.h @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ template < typename NT > 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 @@ template < class NT > class Real_embeddable_traits_quotient_base< Quotient > : 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 --git a/thirdparty/CGAL/include/CGAL/Quotient_fwd.h b/thirdparty/CGAL/include/CGAL/Quotient_fwd.h index 0347f89a..f6aebfb5 100644 --- a/thirdparty/CGAL/include/CGAL/Quotient_fwd.h +++ b/thirdparty/CGAL/include/CGAL/Quotient_fwd.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/RS/Gmpfr_make_unique.h b/thirdparty/CGAL/include/CGAL/RS/Gmpfr_make_unique.h index 4942ebe3..66f063f6 100644 --- a/thirdparty/CGAL/include/CGAL/RS/Gmpfr_make_unique.h +++ b/thirdparty/CGAL/include/CGAL/RS/Gmpfr_make_unique.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/RS/ak_1.h b/thirdparty/CGAL/include/CGAL/RS/ak_1.h index f4fb8e39..029fc158 100644 --- a/thirdparty/CGAL/include/CGAL/RS/ak_1.h +++ b/thirdparty/CGAL/include/CGAL/RS/ak_1.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/RS/ak_z_1.h b/thirdparty/CGAL/include/CGAL/RS/ak_z_1.h index 047041a1..45cbb881 100644 --- a/thirdparty/CGAL/include/CGAL/RS/ak_z_1.h +++ b/thirdparty/CGAL/include/CGAL/RS/ak_z_1.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/RS/algebraic_1.h b/thirdparty/CGAL/include/CGAL/RS/algebraic_1.h index e4a3f43c..ec1c0a96 100644 --- a/thirdparty/CGAL/include/CGAL/RS/algebraic_1.h +++ b/thirdparty/CGAL/include/CGAL/RS/algebraic_1.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/RS/algebraic_z_1.h b/thirdparty/CGAL/include/CGAL/RS/algebraic_z_1.h index a4eb366c..a772c668 100644 --- a/thirdparty/CGAL/include/CGAL/RS/algebraic_z_1.h +++ b/thirdparty/CGAL/include/CGAL/RS/algebraic_z_1.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/RS/bisection_refiner_1.h b/thirdparty/CGAL/include/CGAL/RS/bisection_refiner_1.h index b1da50eb..13a45ce6 100644 --- a/thirdparty/CGAL/include/CGAL/RS/bisection_refiner_1.h +++ b/thirdparty/CGAL/include/CGAL/RS/bisection_refiner_1.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/RS/comparator_1.h b/thirdparty/CGAL/include/CGAL/RS/comparator_1.h index e7921365..755f3c03 100644 --- a/thirdparty/CGAL/include/CGAL/RS/comparator_1.h +++ b/thirdparty/CGAL/include/CGAL/RS/comparator_1.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/RS/dyadic.h b/thirdparty/CGAL/include/CGAL/RS/dyadic.h index 13010111..ec8979ee 100644 --- a/thirdparty/CGAL/include/CGAL/RS/dyadic.h +++ b/thirdparty/CGAL/include/CGAL/RS/dyadic.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/RS/exact_signat_1.h b/thirdparty/CGAL/include/CGAL/RS/exact_signat_1.h index da9ae79d..5e3b3d5f 100644 --- a/thirdparty/CGAL/include/CGAL/RS/exact_signat_1.h +++ b/thirdparty/CGAL/include/CGAL/RS/exact_signat_1.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/RS/functors_1.h b/thirdparty/CGAL/include/CGAL/RS/functors_1.h index 189334a9..9c0c6acb 100644 --- a/thirdparty/CGAL/include/CGAL/RS/functors_1.h +++ b/thirdparty/CGAL/include/CGAL/RS/functors_1.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/RS/functors_z_1.h b/thirdparty/CGAL/include/CGAL/RS/functors_z_1.h index 9665de25..efdd8bb0 100644 --- a/thirdparty/CGAL/include/CGAL/RS/functors_z_1.h +++ b/thirdparty/CGAL/include/CGAL/RS/functors_z_1.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/RS/polynomial_converter_1.h b/thirdparty/CGAL/include/CGAL/RS/polynomial_converter_1.h index b0efc23e..838668c8 100644 --- a/thirdparty/CGAL/include/CGAL/RS/polynomial_converter_1.h +++ b/thirdparty/CGAL/include/CGAL/RS/polynomial_converter_1.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/RS/rs23_k_isolator_1.h b/thirdparty/CGAL/include/CGAL/RS/rs23_k_isolator_1.h index 35f94143..3c4bf531 100644 --- a/thirdparty/CGAL/include/CGAL/RS/rs23_k_isolator_1.h +++ b/thirdparty/CGAL/include/CGAL/RS/rs23_k_isolator_1.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/RS/rs2_calls.h b/thirdparty/CGAL/include/CGAL/RS/rs2_calls.h index 44f4d278..f6a33b34 100644 --- a/thirdparty/CGAL/include/CGAL/RS/rs2_calls.h +++ b/thirdparty/CGAL/include/CGAL/RS/rs2_calls.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/RS/rs2_isolator_1.h b/thirdparty/CGAL/include/CGAL/RS/rs2_isolator_1.h index 07f84468..943ce650 100644 --- a/thirdparty/CGAL/include/CGAL/RS/rs2_isolator_1.h +++ b/thirdparty/CGAL/include/CGAL/RS/rs2_isolator_1.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/RS/rs3_k_refiner_1.h b/thirdparty/CGAL/include/CGAL/RS/rs3_k_refiner_1.h index d18c90d0..827d2959 100644 --- a/thirdparty/CGAL/include/CGAL/RS/rs3_k_refiner_1.h +++ b/thirdparty/CGAL/include/CGAL/RS/rs3_k_refiner_1.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/RS/rs3_refiner_1.h b/thirdparty/CGAL/include/CGAL/RS/rs3_refiner_1.h index 1ead66c6..f90ed860 100644 --- a/thirdparty/CGAL/include/CGAL/RS/rs3_refiner_1.h +++ b/thirdparty/CGAL/include/CGAL/RS/rs3_refiner_1.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/RS/signat_1.h b/thirdparty/CGAL/include/CGAL/RS/signat_1.h index f45d4867..52efcb1f 100644 --- a/thirdparty/CGAL/include/CGAL/RS/signat_1.h +++ b/thirdparty/CGAL/include/CGAL/RS/signat_1.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Random.h b/thirdparty/CGAL/include/CGAL/Random.h index d286950d..0921dd21 100644 --- a/thirdparty/CGAL/include/CGAL/Random.h +++ b/thirdparty/CGAL/include/CGAL/Random.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Random_access_adaptor.h b/thirdparty/CGAL/include/CGAL/Random_access_adaptor.h index 62b67ea3..07d847c2 100644 --- a/thirdparty/CGAL/include/CGAL/Random_access_adaptor.h +++ b/thirdparty/CGAL/include/CGAL/Random_access_adaptor.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Random_access_value_adaptor.h b/thirdparty/CGAL/include/CGAL/Random_access_value_adaptor.h index 7a3495c7..21170894 100644 --- a/thirdparty/CGAL/include/CGAL/Random_access_value_adaptor.h +++ b/thirdparty/CGAL/include/CGAL/Random_access_value_adaptor.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Random_convex_hull_traits_2.h b/thirdparty/CGAL/include/CGAL/Random_convex_hull_traits_2.h index b524a5fe..2485bb45 100644 --- a/thirdparty/CGAL/include/CGAL/Random_convex_hull_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Random_convex_hull_traits_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Random_convex_set_traits_2.h b/thirdparty/CGAL/include/CGAL/Random_convex_set_traits_2.h index 2d150e9d..73be5a49 100644 --- a/thirdparty/CGAL/include/CGAL/Random_convex_set_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Random_convex_set_traits_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Random_impl.h b/thirdparty/CGAL/include/CGAL/Random_impl.h index f3f963c2..87444180 100644 --- a/thirdparty/CGAL/include/CGAL/Random_impl.h +++ b/thirdparty/CGAL/include/CGAL/Random_impl.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Random_polygon_2_sweep.h b/thirdparty/CGAL/include/CGAL/Random_polygon_2_sweep.h index 32711858..7c4b15f2 100644 --- a/thirdparty/CGAL/include/CGAL/Random_polygon_2_sweep.h +++ b/thirdparty/CGAL/include/CGAL/Random_polygon_2_sweep.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Random_polygon_traits_2.h b/thirdparty/CGAL/include/CGAL/Random_polygon_traits_2.h index c913e8f8..7457b380 100644 --- a/thirdparty/CGAL/include/CGAL/Random_polygon_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Random_polygon_traits_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Range_segment_tree_traits.h b/thirdparty/CGAL/include/CGAL/Range_segment_tree_traits.h index 094313ee..78610ce5 100644 --- a/thirdparty/CGAL/include/CGAL/Range_segment_tree_traits.h +++ b/thirdparty/CGAL/include/CGAL/Range_segment_tree_traits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Range_tree_d.h b/thirdparty/CGAL/include/CGAL/Range_tree_d.h index c55db464..a6486f69 100644 --- a/thirdparty/CGAL/include/CGAL/Range_tree_d.h +++ b/thirdparty/CGAL/include/CGAL/Range_tree_d.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Range_tree_k.h b/thirdparty/CGAL/include/CGAL/Range_tree_k.h index 3d6b1ca0..14ef2767 100644 --- a/thirdparty/CGAL/include/CGAL/Range_tree_k.h +++ b/thirdparty/CGAL/include/CGAL/Range_tree_k.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Rational_traits.h b/thirdparty/CGAL/include/CGAL/Rational_traits.h index 75372c7f..ac64d041 100644 --- a/thirdparty/CGAL/include/CGAL/Rational_traits.h +++ b/thirdparty/CGAL/include/CGAL/Rational_traits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Ray_2.h b/thirdparty/CGAL/include/CGAL/Ray_2.h index 994fc127..2bf9741d 100644 --- a/thirdparty/CGAL/include/CGAL/Ray_2.h +++ b/thirdparty/CGAL/include/CGAL/Ray_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Ray_3.h b/thirdparty/CGAL/include/CGAL/Ray_3.h index 648a654e..5fe46244 100644 --- a/thirdparty/CGAL/include/CGAL/Ray_3.h +++ b/thirdparty/CGAL/include/CGAL/Ray_3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Real_embeddable_traits.h b/thirdparty/CGAL/include/CGAL/Real_embeddable_traits.h index 7da1ae68..1f4f640e 100644 --- a/thirdparty/CGAL/include/CGAL/Real_embeddable_traits.h +++ b/thirdparty/CGAL/include/CGAL/Real_embeddable_traits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Real_timer.h b/thirdparty/CGAL/include/CGAL/Real_timer.h index 475f5a09..a1e64184 100644 --- a/thirdparty/CGAL/include/CGAL/Real_timer.h +++ b/thirdparty/CGAL/include/CGAL/Real_timer.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Real_timer_impl.h b/thirdparty/CGAL/include/CGAL/Real_timer_impl.h index 8d197ebf..2e16de35 100644 --- a/thirdparty/CGAL/include/CGAL/Real_timer_impl.h +++ b/thirdparty/CGAL/include/CGAL/Real_timer_impl.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Reconstruction_triangulation_3.h b/thirdparty/CGAL/include/CGAL/Reconstruction_triangulation_3.h index 19dd36f2..93a132c6 100644 --- a/thirdparty/CGAL/include/CGAL/Reconstruction_triangulation_3.h +++ b/thirdparty/CGAL/include/CGAL/Reconstruction_triangulation_3.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Reconstruction_triangulation_3 /// 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 --git a/thirdparty/CGAL/include/CGAL/Rectangular_p_center_traits_2.h b/thirdparty/CGAL/include/CGAL/Rectangular_p_center_traits_2.h index 22881520..9a020b44 100644 --- a/thirdparty/CGAL/include/CGAL/Rectangular_p_center_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Rectangular_p_center_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Referenced_argument.h b/thirdparty/CGAL/include/CGAL/Referenced_argument.h index bcb108fb..0cb8698a 100644 --- a/thirdparty/CGAL/include/CGAL/Referenced_argument.h +++ b/thirdparty/CGAL/include/CGAL/Referenced_argument.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Regular_complex_d.h b/thirdparty/CGAL/include/CGAL/Regular_complex_d.h index 3af236bc..b48f707e 100644 --- a/thirdparty/CGAL/include/CGAL/Regular_complex_d.h +++ b/thirdparty/CGAL/include/CGAL/Regular_complex_d.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Regular_grid_2.h b/thirdparty/CGAL/include/CGAL/Regular_grid_2.h index 83170298..013545d1 100644 --- a/thirdparty/CGAL/include/CGAL/Regular_grid_2.h +++ b/thirdparty/CGAL/include/CGAL/Regular_grid_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Regular_triangulation.h b/thirdparty/CGAL/include/CGAL/Regular_triangulation.h index 5a5c7b58..39d949c4 100644 --- a/thirdparty/CGAL/include/CGAL/Regular_triangulation.h +++ b/thirdparty/CGAL/include/CGAL/Regular_triangulation.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Regular_triangulation_2.h b/thirdparty/CGAL/include/CGAL/Regular_triangulation_2.h index b5173320..f0d0a5f0 100644 --- a/thirdparty/CGAL/include/CGAL/Regular_triangulation_2.h +++ b/thirdparty/CGAL/include/CGAL/Regular_triangulation_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Regular_triangulation_3.h b/thirdparty/CGAL/include/CGAL/Regular_triangulation_3.h index a87d0a13..43b1fb46 100644 --- a/thirdparty/CGAL/include/CGAL/Regular_triangulation_3.h +++ b/thirdparty/CGAL/include/CGAL/Regular_triangulation_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Regular_triangulation_adaptation_policies_2.h b/thirdparty/CGAL/include/CGAL/Regular_triangulation_adaptation_policies_2.h index 2d4a7723..dccccee7 100644 --- a/thirdparty/CGAL/include/CGAL/Regular_triangulation_adaptation_policies_2.h +++ b/thirdparty/CGAL/include/CGAL/Regular_triangulation_adaptation_policies_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Regular_triangulation_adaptation_traits_2.h b/thirdparty/CGAL/include/CGAL/Regular_triangulation_adaptation_traits_2.h index a11ec0f3..52d917c9 100644 --- a/thirdparty/CGAL/include/CGAL/Regular_triangulation_adaptation_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Regular_triangulation_adaptation_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Regular_triangulation_cell_base_3.h b/thirdparty/CGAL/include/CGAL/Regular_triangulation_cell_base_3.h index 7585d6e6..d7b01cc9 100644 --- a/thirdparty/CGAL/include/CGAL/Regular_triangulation_cell_base_3.h +++ b/thirdparty/CGAL/include/CGAL/Regular_triangulation_cell_base_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Regular_triangulation_cell_base_with_weighted_circumcenter_3.h b/thirdparty/CGAL/include/CGAL/Regular_triangulation_cell_base_with_weighted_circumcenter_3.h index 7fcf3240..c78800d3 100644 --- a/thirdparty/CGAL/include/CGAL/Regular_triangulation_cell_base_with_weighted_circumcenter_3.h +++ b/thirdparty/CGAL/include/CGAL/Regular_triangulation_cell_base_with_weighted_circumcenter_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Regular_triangulation_euclidean_traits_3.h b/thirdparty/CGAL/include/CGAL/Regular_triangulation_euclidean_traits_3.h index 21f098bd..e3c0e00a 100644 --- a/thirdparty/CGAL/include/CGAL/Regular_triangulation_euclidean_traits_3.h +++ b/thirdparty/CGAL/include/CGAL/Regular_triangulation_euclidean_traits_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Regular_triangulation_face_base_2.h b/thirdparty/CGAL/include/CGAL/Regular_triangulation_face_base_2.h index cee8d24f..6f81a4f4 100644 --- a/thirdparty/CGAL/include/CGAL/Regular_triangulation_face_base_2.h +++ b/thirdparty/CGAL/include/CGAL/Regular_triangulation_face_base_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Regular_triangulation_traits_adapter.h b/thirdparty/CGAL/include/CGAL/Regular_triangulation_traits_adapter.h index 21cfe725..a9f715d7 100644 --- a/thirdparty/CGAL/include/CGAL/Regular_triangulation_traits_adapter.h +++ b/thirdparty/CGAL/include/CGAL/Regular_triangulation_traits_adapter.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Regular_triangulation_vertex_base_2.h b/thirdparty/CGAL/include/CGAL/Regular_triangulation_vertex_base_2.h index 1aaad310..27488685 100644 --- a/thirdparty/CGAL/include/CGAL/Regular_triangulation_vertex_base_2.h +++ b/thirdparty/CGAL/include/CGAL/Regular_triangulation_vertex_base_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Regular_triangulation_vertex_base_3.h b/thirdparty/CGAL/include/CGAL/Regular_triangulation_vertex_base_3.h index 08b928bf..e70986f7 100644 --- a/thirdparty/CGAL/include/CGAL/Regular_triangulation_vertex_base_3.h +++ b/thirdparty/CGAL/include/CGAL/Regular_triangulation_vertex_base_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Residue.h b/thirdparty/CGAL/include/CGAL/Residue.h index 34d47881..de56fd29 100644 --- a/thirdparty/CGAL/include/CGAL/Residue.h +++ b/thirdparty/CGAL/include/CGAL/Residue.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Ridges.h b/thirdparty/CGAL/include/CGAL/Ridges.h index e42d72fb..166441a1 100644 --- a/thirdparty/CGAL/include/CGAL/Ridges.h +++ b/thirdparty/CGAL/include/CGAL/Ridges.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Rigid_triangle_mesh_collision_detection.h b/thirdparty/CGAL/include/CGAL/Rigid_triangle_mesh_collision_detection.h index c61a8a92..0e5a5be4 100644 --- a/thirdparty/CGAL/include/CGAL/Rigid_triangle_mesh_collision_detection.h +++ b/thirdparty/CGAL/include/CGAL/Rigid_triangle_mesh_collision_detection.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Rigid_triangle_mesh_collision_detection * \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 @@ class Rigid_triangle_mesh_collision_detection * \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 @@ class Rigid_triangle_mesh_collision_detection * \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 @@ class Rigid_triangle_mesh_collision_detection 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 --git a/thirdparty/CGAL/include/CGAL/Robust_circumcenter_filtered_traits_3.h b/thirdparty/CGAL/include/CGAL/Robust_circumcenter_filtered_traits_3.h deleted file mode 100644 index 0fe171cf..00000000 --- a/thirdparty/CGAL/include/CGAL/Robust_circumcenter_filtered_traits_3.h +++ /dev/null @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/Robust_circumcenter_traits_3.h b/thirdparty/CGAL/include/CGAL/Robust_circumcenter_traits_3.h index 9f26653c..1ef2dbf1 100644 --- a/thirdparty/CGAL/include/CGAL/Robust_circumcenter_traits_3.h +++ b/thirdparty/CGAL/include/CGAL/Robust_circumcenter_traits_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Robust_construction.h b/thirdparty/CGAL/include/CGAL/Robust_construction.h index a7de4df4..89799e97 100644 --- a/thirdparty/CGAL/include/CGAL/Robust_construction.h +++ b/thirdparty/CGAL/include/CGAL/Robust_construction.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Robust_weighted_circumcenter_filtered_traits_3.h b/thirdparty/CGAL/include/CGAL/Robust_weighted_circumcenter_filtered_traits_3.h index c43c2e51..0b3bdd9a 100644 --- a/thirdparty/CGAL/include/CGAL/Robust_weighted_circumcenter_filtered_traits_3.h +++ b/thirdparty/CGAL/include/CGAL/Robust_weighted_circumcenter_filtered_traits_3.h @@ -3,18 +3,13 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Robust_filtered_construct_weighted_circumcenter_3 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 @@ class Robust_filtered_construct_weighted_circumcenter_3 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 @@ class Robust_filtered_construct_weighted_circumcenter_3 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 @@ class Robust_filtered_compute_squared_radius_smallest_orthogonal_sphere_3 }; 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 --git a/thirdparty/CGAL/include/CGAL/Root_for_circles_2_2.h b/thirdparty/CGAL/include/CGAL/Root_for_circles_2_2.h index cede7818..d7edb4f1 100644 --- a/thirdparty/CGAL/include/CGAL/Root_for_circles_2_2.h +++ b/thirdparty/CGAL/include/CGAL/Root_for_circles_2_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Root_for_spheres_2_3.h b/thirdparty/CGAL/include/CGAL/Root_for_spheres_2_3.h index 32446e95..bac6902a 100644 --- a/thirdparty/CGAL/include/CGAL/Root_for_spheres_2_3.h +++ b/thirdparty/CGAL/include/CGAL/Root_for_spheres_2_3.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/Root_of_traits.h b/thirdparty/CGAL/include/CGAL/Root_of_traits.h index 23d767aa..327a61b3 100644 --- a/thirdparty/CGAL/include/CGAL/Root_of_traits.h +++ b/thirdparty/CGAL/include/CGAL/Root_of_traits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Root_of_traits_specializations.h b/thirdparty/CGAL/include/CGAL/Root_of_traits_specializations.h index 4ceb4d35..a449ce77 100644 --- a/thirdparty/CGAL/include/CGAL/Root_of_traits_specializations.h +++ b/thirdparty/CGAL/include/CGAL/Root_of_traits_specializations.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Rotational_sweep_visibility_2.h b/thirdparty/CGAL/include/CGAL/Rotational_sweep_visibility_2.h index 68d722b7..61fd032b 100644 --- a/thirdparty/CGAL/include/CGAL/Rotational_sweep_visibility_2.h +++ b/thirdparty/CGAL/include/CGAL/Rotational_sweep_visibility_2.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Runge_kutta_integrator_2.h b/thirdparty/CGAL/include/CGAL/Runge_kutta_integrator_2.h index e6bfaa98..c56a42e1 100644 --- a/thirdparty/CGAL/include/CGAL/Runge_kutta_integrator_2.h +++ b/thirdparty/CGAL/include/CGAL/Runge_kutta_integrator_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/SCIP_mixed_integer_program_traits.h b/thirdparty/CGAL/include/CGAL/SCIP_mixed_integer_program_traits.h index 7d1e5c33..42771e84 100644 --- a/thirdparty/CGAL/include/CGAL/SCIP_mixed_integer_program_traits.h +++ b/thirdparty/CGAL/include/CGAL/SCIP_mixed_integer_program_traits.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/SEP_header.h b/thirdparty/CGAL/include/CGAL/SEP_header.h index 525c3ec3..b3fae68d 100644 --- a/thirdparty/CGAL/include/CGAL/SEP_header.h +++ b/thirdparty/CGAL/include/CGAL/SEP_header.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/SEP_to_ImageIO.h b/thirdparty/CGAL/include/CGAL/SEP_to_ImageIO.h index 03146c8a..1e8995ec 100644 --- a/thirdparty/CGAL/include/CGAL/SEP_to_ImageIO.h +++ b/thirdparty/CGAL/include/CGAL/SEP_to_ImageIO.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/STL_Extension/internal/Has_member_visited.h b/thirdparty/CGAL/include/CGAL/STL_Extension/internal/Has_member_visited.h index 5d2a8704..d5b50efb 100644 --- a/thirdparty/CGAL/include/CGAL/STL_Extension/internal/Has_member_visited.h +++ b/thirdparty/CGAL/include/CGAL/STL_Extension/internal/Has_member_visited.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/STL_Extension/internal/Has_nested_type_Bare_point.h b/thirdparty/CGAL/include/CGAL/STL_Extension/internal/Has_nested_type_Bare_point.h index 346af3fe..f06b6ea8 100644 --- a/thirdparty/CGAL/include/CGAL/STL_Extension/internal/Has_nested_type_Bare_point.h +++ b/thirdparty/CGAL/include/CGAL/STL_Extension/internal/Has_nested_type_Bare_point.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/STL_Extension/internal/boost/array_binary_tree.hpp b/thirdparty/CGAL/include/CGAL/STL_Extension/internal/boost/array_binary_tree.hpp index e536a078..cd550b82 100644 --- a/thirdparty/CGAL/include/CGAL/STL_Extension/internal/boost/array_binary_tree.hpp +++ b/thirdparty/CGAL/include/CGAL/STL_Extension/internal/boost/array_binary_tree.hpp @@ -8,7 +8,7 @@ // https://www.boost.org/LICENSE_1_0.txt) //======================================================================= // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/STL_Extension/internal/boost/mutable_heap.hpp b/thirdparty/CGAL/include/CGAL/STL_Extension/internal/boost/mutable_heap.hpp index e0ba1041..e1940dbc 100644 --- a/thirdparty/CGAL/include/CGAL/STL_Extension/internal/boost/mutable_heap.hpp +++ b/thirdparty/CGAL/include/CGAL/STL_Extension/internal/boost/mutable_heap.hpp @@ -8,7 +8,7 @@ // https://www.boost.org/LICENSE_1_0.txt) //======================================================================= // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/STL_Extension/internal/boost/mutable_queue.hpp b/thirdparty/CGAL/include/CGAL/STL_Extension/internal/boost/mutable_queue.hpp index 43dd3b21..11278ea3 100644 --- a/thirdparty/CGAL/include/CGAL/STL_Extension/internal/boost/mutable_queue.hpp +++ b/thirdparty/CGAL/include/CGAL/STL_Extension/internal/boost/mutable_queue.hpp @@ -8,8 +8,8 @@ // https://www.boost.org/LICENSE_1_0.txt) //======================================================================= // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace boost_ { 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 @@ namespace boost_ { 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 --git a/thirdparty/CGAL/include/CGAL/STL_Extension/internal/boost/relaxed_heap.hpp b/thirdparty/CGAL/include/CGAL/STL_Extension/internal/boost/relaxed_heap.hpp new file mode 100644 index 00000000..1683e58b --- /dev/null +++ b/thirdparty/CGAL/include/CGAL/STL_Extension/internal/boost/relaxed_heap.hpp @@ -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 --git a/thirdparty/CGAL/include/CGAL/STL_Extension/internal/info_check.h b/thirdparty/CGAL/include/CGAL/STL_Extension/internal/info_check.h index 9effc73d..c4a512b5 100644 --- a/thirdparty/CGAL/include/CGAL/STL_Extension/internal/info_check.h +++ b/thirdparty/CGAL/include/CGAL/STL_Extension/internal/info_check.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/parameters_interface.h b/thirdparty/CGAL/include/CGAL/STL_Extension/internal/parameters_interface.h similarity index 93% rename from thirdparty/CGAL/include/CGAL/boost/graph/parameters_interface.h rename to thirdparty/CGAL/include/CGAL/STL_Extension/internal/parameters_interface.h index a8cd1596..b61f9d0b 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/parameters_interface.h +++ b/thirdparty/CGAL/include/CGAL/STL_Extension/internal/parameters_interface.h @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/BGL/include/CGAL/boost/graph/parameters_interface.h $ -// $Id: parameters_interface.h 0f498e9 2021-10-29T16:58:27+02:00 Laurent Rineau +// $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 // // @@ -62,6 +62,7 @@ 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) @@ -89,6 +90,7 @@ CGAL_add_named_parameter(overlap_test_t, overlap_test, do_overlap_test_of_bounde 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) @@ -111,11 +113,11 @@ 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(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) @@ -128,11 +130,13 @@ 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) @@ -180,6 +184,7 @@ CGAL_add_named_parameter(pointmatcher_config_t, pointmatcher_config, pointmatche 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 @@ -205,6 +210,10 @@ 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) diff --git a/thirdparty/CGAL/include/CGAL/Scalar_factor_traits.h b/thirdparty/CGAL/include/CGAL/Scalar_factor_traits.h index a50c080f..a49da9f4 100644 --- a/thirdparty/CGAL/include/CGAL/Scalar_factor_traits.h +++ b/thirdparty/CGAL/include/CGAL/Scalar_factor_traits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Scale_space_reconstruction_3/Advancing_front_mesher.h b/thirdparty/CGAL/include/CGAL/Scale_space_reconstruction_3/Advancing_front_mesher.h index 21afe486..7e547d8e 100644 --- a/thirdparty/CGAL/include/CGAL/Scale_space_reconstruction_3/Advancing_front_mesher.h +++ b/thirdparty/CGAL/include/CGAL/Scale_space_reconstruction_3/Advancing_front_mesher.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Scale_space_reconstruction_3/Alpha_shape_mesher.h b/thirdparty/CGAL/include/CGAL/Scale_space_reconstruction_3/Alpha_shape_mesher.h index 12e867e2..e54b6802 100644 --- a/thirdparty/CGAL/include/CGAL/Scale_space_reconstruction_3/Alpha_shape_mesher.h +++ b/thirdparty/CGAL/include/CGAL/Scale_space_reconstruction_3/Alpha_shape_mesher.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Scale_space_reconstruction_3/Jet_smoother.h b/thirdparty/CGAL/include/CGAL/Scale_space_reconstruction_3/Jet_smoother.h index c63438eb..0d2913a0 100644 --- a/thirdparty/CGAL/include/CGAL/Scale_space_reconstruction_3/Jet_smoother.h +++ b/thirdparty/CGAL/include/CGAL/Scale_space_reconstruction_3/Jet_smoother.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Scale_space_reconstruction_3/Shape_construction_3.h b/thirdparty/CGAL/include/CGAL/Scale_space_reconstruction_3/Shape_construction_3.h index 23272605..fefdad1b 100644 --- a/thirdparty/CGAL/include/CGAL/Scale_space_reconstruction_3/Shape_construction_3.h +++ b/thirdparty/CGAL/include/CGAL/Scale_space_reconstruction_3/Shape_construction_3.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Scale_space_reconstruction_3/Weighted_PCA_smoother.h b/thirdparty/CGAL/include/CGAL/Scale_space_reconstruction_3/Weighted_PCA_smoother.h index 5a7d9be4..b3679a2b 100644 --- a/thirdparty/CGAL/include/CGAL/Scale_space_reconstruction_3/Weighted_PCA_smoother.h +++ b/thirdparty/CGAL/include/CGAL/Scale_space_reconstruction_3/Weighted_PCA_smoother.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Scale_space_reconstruction_3/internal/Auto_count.h b/thirdparty/CGAL/include/CGAL/Scale_space_reconstruction_3/internal/Auto_count.h index 9f67c3a4..19071544 100644 --- a/thirdparty/CGAL/include/CGAL/Scale_space_reconstruction_3/internal/Auto_count.h +++ b/thirdparty/CGAL/include/CGAL/Scale_space_reconstruction_3/internal/Auto_count.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Scale_space_surface_reconstruction_3.h b/thirdparty/CGAL/include/CGAL/Scale_space_surface_reconstruction_3.h index b1a2cc4d..32b30e0e 100644 --- a/thirdparty/CGAL/include/CGAL/Scale_space_surface_reconstruction_3.h +++ b/thirdparty/CGAL/include/CGAL/Scale_space_surface_reconstruction_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Search_traits.h b/thirdparty/CGAL/include/CGAL/Search_traits.h index 5c07d531..9bddcb49 100644 --- a/thirdparty/CGAL/include/CGAL/Search_traits.h +++ b/thirdparty/CGAL/include/CGAL/Search_traits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Search_traits_2.h b/thirdparty/CGAL/include/CGAL/Search_traits_2.h index eebccc2a..02403ac5 100644 --- a/thirdparty/CGAL/include/CGAL/Search_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Search_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Search_traits_3.h b/thirdparty/CGAL/include/CGAL/Search_traits_3.h index 6051c17b..75eda5d2 100644 --- a/thirdparty/CGAL/include/CGAL/Search_traits_3.h +++ b/thirdparty/CGAL/include/CGAL/Search_traits_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Search_traits_adapter.h b/thirdparty/CGAL/include/CGAL/Search_traits_adapter.h index d50b91ec..b141c228 100644 --- a/thirdparty/CGAL/include/CGAL/Search_traits_adapter.h +++ b/thirdparty/CGAL/include/CGAL/Search_traits_adapter.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Search_traits_d.h b/thirdparty/CGAL/include/CGAL/Search_traits_d.h index 9aa5e24c..55581788 100644 --- a/thirdparty/CGAL/include/CGAL/Search_traits_d.h +++ b/thirdparty/CGAL/include/CGAL/Search_traits_d.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_2.h b/thirdparty/CGAL/include/CGAL/Segment_2.h index 124752ad..186a152f 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_3.h b/thirdparty/CGAL/include/CGAL/Segment_3.h index aa365f8e..b57107ce 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_3.h +++ b/thirdparty/CGAL/include/CGAL/Segment_3.h @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Segment_3 : public R_::Kernel_base::Segment_3 } 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 @@ class Segment_3 : public R_::Kernel_base::Segment_3 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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2.h index 78c8ba89..2b2ba8e1 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Are_parallel_C2.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Are_parallel_C2.h index 32a7db72..772d1da5 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Are_parallel_C2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Are_parallel_C2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Are_same_points_C2.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Are_same_points_C2.h index 7e91274d..adb273a0 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Are_same_points_C2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Are_same_points_C2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Are_same_segments_C2.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Are_same_segments_C2.h index 54d9afde..c635a968 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Are_same_segments_C2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Are_same_segments_C2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Arrangement_enum.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Arrangement_enum.h index ffbdc6eb..cdb6a0ce 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Arrangement_enum.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Arrangement_enum.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Arrangement_type_C2.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Arrangement_type_C2.h index d0982430..4a5281df 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Arrangement_type_C2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Arrangement_type_C2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Arrangement_type_non_intersecting_C2.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Arrangement_type_non_intersecting_C2.h index b7ab6c3f..5ee0dc72 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Arrangement_type_non_intersecting_C2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Arrangement_type_non_intersecting_C2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Basic_predicates_C2.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Basic_predicates_C2.h index 41e28eba..e6fcfdda 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Basic_predicates_C2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Basic_predicates_C2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Cartesian_converter.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Cartesian_converter.h index 9447819d..6bcf453f 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Cartesian_converter.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Cartesian_converter.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Compare_x_2.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Compare_x_2.h index 4e21bf7f..07bd6065 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Compare_x_2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Compare_x_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Compare_y_2.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Compare_y_2.h index e8b076a2..8b72953f 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Compare_y_2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Compare_y_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Construct_storage_site_2.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Construct_storage_site_2.h index 4195f88c..6b1130f9 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Construct_storage_site_2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Construct_storage_site_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Construct_storage_site_with_info_2.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Construct_storage_site_with_info_2.h index b5c38355..4c533173 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Construct_storage_site_with_info_2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Construct_storage_site_with_info_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Constructions_C2.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Constructions_C2.h index 786c4e64..daf630ef 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Constructions_C2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Constructions_C2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Filtered_traits_base_2.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Filtered_traits_base_2.h index be82247c..e7538724 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Filtered_traits_base_2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Filtered_traits_base_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Filtered_traits_concept_check_tags.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Filtered_traits_concept_check_tags.h index c5363bd6..752eff73 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Filtered_traits_concept_check_tags.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Filtered_traits_concept_check_tags.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Finite_edge_interior_conflict_C2.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Finite_edge_interior_conflict_C2.h index dc8a1ae8..0b90aedc 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Finite_edge_interior_conflict_C2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Finite_edge_interior_conflict_C2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Infinite_edge_interior_conflict_C2.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Infinite_edge_interior_conflict_C2.h index acf25ef7..7a1c12a7 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Infinite_edge_interior_conflict_C2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Infinite_edge_interior_conflict_C2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Is_degenerate_edge_C2.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Is_degenerate_edge_C2.h index d00e37fb..6243e6f0 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Is_degenerate_edge_C2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Is_degenerate_edge_C2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Kernel_wrapper_2.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Kernel_wrapper_2.h index e568edac..12c6aaaa 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Kernel_wrapper_2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Kernel_wrapper_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Orientation_C2.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Orientation_C2.h index 45c1d159..6b2aff3a 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Orientation_C2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Orientation_C2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Oriented_side_C2.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Oriented_side_C2.h index 737bfab1..15290208 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Oriented_side_C2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Oriented_side_C2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Oriented_side_of_bisector_C2.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Oriented_side_of_bisector_C2.h index f6826843..de952133 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Oriented_side_of_bisector_C2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Oriented_side_of_bisector_C2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Predicates_C2.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Predicates_C2.h index 252f3351..1b0c0b9c 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Predicates_C2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Predicates_C2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Segment_Delaunay_graph_2_impl.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Segment_Delaunay_graph_2_impl.h index 242d527e..cffe3005 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Segment_Delaunay_graph_2_impl.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Segment_Delaunay_graph_2_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Segment_Delaunay_graph_hierarchy_2_impl.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Segment_Delaunay_graph_hierarchy_2_impl.h index 5d142d37..6d9fed5f 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Segment_Delaunay_graph_hierarchy_2_impl.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Segment_Delaunay_graph_hierarchy_2_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Sqrt_extension_2.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Sqrt_extension_2.h index baaf4199..a5ef4ff4 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Sqrt_extension_2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Sqrt_extension_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Traits_base_2.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Traits_base_2.h index ea692012..92de9e88 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Traits_base_2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Traits_base_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Traits_wrapper_2.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Traits_wrapper_2.h index b26c56f6..b34eb376 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Traits_wrapper_2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Traits_wrapper_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Triangulation_face_base_with_edges_2.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Triangulation_face_base_with_edges_2.h index d18270d5..be797f06 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Triangulation_face_base_with_edges_2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Triangulation_face_base_with_edges_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Vertex_conflict_C2.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Vertex_conflict_C2.h index e9f69708..59dc0a7f 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Vertex_conflict_C2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Vertex_conflict_C2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Voronoi_vertex_C2.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Voronoi_vertex_C2.h index 9ed6b94e..9dc35b8d 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Voronoi_vertex_C2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Voronoi_vertex_C2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Voronoi_vertex_ring_C2.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Voronoi_vertex_ring_C2.h index 89a2d259..8ccc4345 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Voronoi_vertex_ring_C2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Voronoi_vertex_ring_C2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Voronoi_vertex_sqrt_field_C2.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Voronoi_vertex_sqrt_field_C2.h index c1a18771..2dcb174e 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Voronoi_vertex_sqrt_field_C2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Voronoi_vertex_sqrt_field_C2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Voronoi_vertex_sqrt_field_new_C2.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Voronoi_vertex_sqrt_field_new_C2.h index 469fabee..0ce53fcb 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Voronoi_vertex_sqrt_field_new_C2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/Voronoi_vertex_sqrt_field_new_C2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/basic.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/basic.h index 999fdb2c..25d6bc34 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/basic.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/basic.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/in_place_edge_list.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/in_place_edge_list.h index 8509a911..5b170636 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/in_place_edge_list.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_2/in_place_edge_list.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2.h index 6fb71a72..ed3d81c4 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Basic_predicates_C2.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Basic_predicates_C2.h index bfdf8902..63c5c1fc 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Basic_predicates_C2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Basic_predicates_C2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Bisector_Linf.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Bisector_Linf.h index c1269b70..f8f5c2d5 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Bisector_Linf.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Bisector_Linf.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Constructions_C2.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Constructions_C2.h index fd513d17..3a6b7310 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Constructions_C2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Constructions_C2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Filtered_traits_base_2.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Filtered_traits_base_2.h index 95938cf9..18eefc08 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Filtered_traits_base_2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Filtered_traits_base_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Finite_edge_interior_conflict_C2.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Finite_edge_interior_conflict_C2.h index d9578fab..2cc960b4 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Finite_edge_interior_conflict_C2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Finite_edge_interior_conflict_C2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Infinite_edge_interior_conflict_C2.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Infinite_edge_interior_conflict_C2.h index 52cfdec9..d4582e52 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Infinite_edge_interior_conflict_C2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Infinite_edge_interior_conflict_C2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Orientation_Linf_C2.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Orientation_Linf_C2.h index de1ddcbe..1dab6ff9 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Orientation_Linf_C2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Orientation_Linf_C2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Oriented_side_C2.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Oriented_side_C2.h index f81b235f..db22dc46 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Oriented_side_C2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Oriented_side_C2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Oriented_side_of_bisector_C2.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Oriented_side_of_bisector_C2.h index 13fd55ed..43aa1705 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Oriented_side_of_bisector_C2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Oriented_side_of_bisector_C2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Predicates_C2.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Predicates_C2.h index 8c3f40aa..7c774b5e 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Predicates_C2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Predicates_C2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Segment_Delaunay_graph_Linf_2_impl.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Segment_Delaunay_graph_Linf_2_impl.h index 56a0a9cb..de06c811 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Segment_Delaunay_graph_Linf_2_impl.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Segment_Delaunay_graph_Linf_2_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Segment_Delaunay_graph_Linf_hierarchy_2_impl.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Segment_Delaunay_graph_Linf_hierarchy_2_impl.h index 58d60ba3..9e5dc665 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Segment_Delaunay_graph_Linf_hierarchy_2_impl.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Segment_Delaunay_graph_Linf_hierarchy_2_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Traits_base_2.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Traits_base_2.h index bd3cde69..5c4439e4 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Traits_base_2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Traits_base_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Vertex_conflict_C2.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Vertex_conflict_C2.h index 4e7a176d..a9e9730e 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Vertex_conflict_C2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Vertex_conflict_C2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Voronoi_vertex_C2.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Voronoi_vertex_C2.h index e2db424b..a66395e7 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Voronoi_vertex_C2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Voronoi_vertex_C2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Voronoi_vertex_ring_C2.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Voronoi_vertex_ring_C2.h index acfa28b7..413fa4c8 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Voronoi_vertex_ring_C2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Voronoi_vertex_ring_C2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Voronoi_vertex_sqrt_field_new_C2.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Voronoi_vertex_sqrt_field_new_C2.h index 0a1b0f64..a01e6e94 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Voronoi_vertex_sqrt_field_new_C2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/Voronoi_vertex_sqrt_field_new_C2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/basic.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/basic.h index 3f9df8e0..93e88e44 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/basic.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_2/basic.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_filtered_traits_2.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_filtered_traits_2.h index 0eed4935..f924cf78 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_filtered_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_filtered_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_hierarchy_2.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_hierarchy_2.h index e790f3d3..30aa7db9 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_hierarchy_2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_hierarchy_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_traits_2.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_traits_2.h index f87cdf0f..c5ab87b6 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_Linf_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_adaptation_policies_2.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_adaptation_policies_2.h index 99b2cda1..4ec49557 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_adaptation_policies_2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_adaptation_policies_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_adaptation_traits_2.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_adaptation_traits_2.h index 56c1c4f2..0ec0a00c 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_adaptation_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_adaptation_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_face_base_2.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_face_base_2.h index 79909691..e0a0f4ce 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_face_base_2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_face_base_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_filtered_traits_2.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_filtered_traits_2.h index 42d2c78b..d757e9f3 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_filtered_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_filtered_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_hierarchy_2.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_hierarchy_2.h index d86a80f3..e9a15732 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_hierarchy_2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_hierarchy_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_hierarchy_vertex_base_2.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_hierarchy_vertex_base_2.h index 777cc46e..9f2363bd 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_hierarchy_vertex_base_2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_hierarchy_vertex_base_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_simple_site_2.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_simple_site_2.h index 2e49912f..0a18462b 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_simple_site_2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_simple_site_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_simple_storage_site_2.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_simple_storage_site_2.h index e030d5e9..c5e181ef 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_simple_storage_site_2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_simple_storage_site_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_site_2.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_site_2.h index 63ecd657..bd16915c 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_site_2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_site_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_storage_site_2.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_storage_site_2.h index c573c0b2..cc144a39 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_storage_site_2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_storage_site_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_storage_site_with_info_2.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_storage_site_with_info_2.h index fd632bb7..d43d9155 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_storage_site_with_info_2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_storage_site_with_info_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_storage_traits_2.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_storage_traits_2.h index bd3f30c3..8944505c 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_storage_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_storage_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_storage_traits_with_info_2.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_storage_traits_with_info_2.h index b612287b..72b580c5 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_storage_traits_with_info_2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_storage_traits_with_info_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_traits_2.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_traits_2.h index 2b3eb4e1..56219ce9 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_vertex_base_2.h b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_vertex_base_2.h index 629c433e..a2aa0e33 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_vertex_base_2.h +++ b/thirdparty/CGAL/include/CGAL/Segment_Delaunay_graph_vertex_base_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_tree_d.h b/thirdparty/CGAL/include/CGAL/Segment_tree_d.h index 586e59d8..896f6b1b 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_tree_d.h +++ b/thirdparty/CGAL/include/CGAL/Segment_tree_d.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Segment_tree_k.h b/thirdparty/CGAL/include/CGAL/Segment_tree_k.h index 421e9628..08b96398 100644 --- a/thirdparty/CGAL/include/CGAL/Segment_tree_k.h +++ b/thirdparty/CGAL/include/CGAL/Segment_tree_k.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Set_movable_separability_2/Single_mold_translational_casting/is_pullout_direction.h b/thirdparty/CGAL/include/CGAL/Set_movable_separability_2/Single_mold_translational_casting/is_pullout_direction.h index 1223b376..f241fb80 100644 --- a/thirdparty/CGAL/include/CGAL/Set_movable_separability_2/Single_mold_translational_casting/is_pullout_direction.h +++ b/thirdparty/CGAL/include/CGAL/Set_movable_separability_2/Single_mold_translational_casting/is_pullout_direction.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Set_movable_separability_2/Single_mold_translational_casting/pullout_directions.h b/thirdparty/CGAL/include/CGAL/Set_movable_separability_2/Single_mold_translational_casting/pullout_directions.h index 985229a1..480d18a9 100644 --- a/thirdparty/CGAL/include/CGAL/Set_movable_separability_2/Single_mold_translational_casting/pullout_directions.h +++ b/thirdparty/CGAL/include/CGAL/Set_movable_separability_2/Single_mold_translational_casting/pullout_directions.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Set_movable_separability_2/Single_mold_translational_casting/top_edges.h b/thirdparty/CGAL/include/CGAL/Set_movable_separability_2/Single_mold_translational_casting/top_edges.h index 7f73dce7..2c8ab71d 100644 --- a/thirdparty/CGAL/include/CGAL/Set_movable_separability_2/Single_mold_translational_casting/top_edges.h +++ b/thirdparty/CGAL/include/CGAL/Set_movable_separability_2/Single_mold_translational_casting/top_edges.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Set_movable_separability_2/internal/Circle_arrangment.h b/thirdparty/CGAL/include/CGAL/Set_movable_separability_2/internal/Circle_arrangment.h index 33713074..212b4bf5 100644 --- a/thirdparty/CGAL/include/CGAL/Set_movable_separability_2/internal/Circle_arrangment.h +++ b/thirdparty/CGAL/include/CGAL/Set_movable_separability_2/internal/Circle_arrangment.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Set_movable_separability_2/internal/Utils.h b/thirdparty/CGAL/include/CGAL/Set_movable_separability_2/internal/Utils.h index 1b412fdc..d704a765 100644 --- a/thirdparty/CGAL/include/CGAL/Set_movable_separability_2/internal/Utils.h +++ b/thirdparty/CGAL/include/CGAL/Set_movable_separability_2/internal/Utils.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Shape_detection.h b/thirdparty/CGAL/include/CGAL/Shape_detection.h index a14c53c9..0ec2298c 100644 --- a/thirdparty/CGAL/include/CGAL/Shape_detection.h +++ b/thirdparty/CGAL/include/CGAL/Shape_detection.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Shape_detection/Efficient_RANSAC.h b/thirdparty/CGAL/include/CGAL/Shape_detection/Efficient_RANSAC.h index d8c9b6f9..a2429ea0 100644 --- a/thirdparty/CGAL/include/CGAL/Shape_detection/Efficient_RANSAC.h +++ b/thirdparty/CGAL/include/CGAL/Shape_detection/Efficient_RANSAC.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Shape_detection/Efficient_RANSAC/Cone.h b/thirdparty/CGAL/include/CGAL/Shape_detection/Efficient_RANSAC/Cone.h index db6d5c78..826ea6f4 100644 --- a/thirdparty/CGAL/include/CGAL/Shape_detection/Efficient_RANSAC/Cone.h +++ b/thirdparty/CGAL/include/CGAL/Shape_detection/Efficient_RANSAC/Cone.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Shape_detection/Efficient_RANSAC/Cylinder.h b/thirdparty/CGAL/include/CGAL/Shape_detection/Efficient_RANSAC/Cylinder.h index 3ba825f6..efc2af3c 100644 --- a/thirdparty/CGAL/include/CGAL/Shape_detection/Efficient_RANSAC/Cylinder.h +++ b/thirdparty/CGAL/include/CGAL/Shape_detection/Efficient_RANSAC/Cylinder.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Shape_detection/Efficient_RANSAC/Efficient_RANSAC.h b/thirdparty/CGAL/include/CGAL/Shape_detection/Efficient_RANSAC/Efficient_RANSAC.h index b8314bf0..d6f39c70 100644 --- a/thirdparty/CGAL/include/CGAL/Shape_detection/Efficient_RANSAC/Efficient_RANSAC.h +++ b/thirdparty/CGAL/include/CGAL/Shape_detection/Efficient_RANSAC/Efficient_RANSAC.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Shape_detection/Efficient_RANSAC/Efficient_RANSAC_traits.h b/thirdparty/CGAL/include/CGAL/Shape_detection/Efficient_RANSAC/Efficient_RANSAC_traits.h index f3d62a51..6806863f 100644 --- a/thirdparty/CGAL/include/CGAL/Shape_detection/Efficient_RANSAC/Efficient_RANSAC_traits.h +++ b/thirdparty/CGAL/include/CGAL/Shape_detection/Efficient_RANSAC/Efficient_RANSAC_traits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Shape_detection/Efficient_RANSAC/Octree.h b/thirdparty/CGAL/include/CGAL/Shape_detection/Efficient_RANSAC/Octree.h index 7e5a15b4..50258769 100644 --- a/thirdparty/CGAL/include/CGAL/Shape_detection/Efficient_RANSAC/Octree.h +++ b/thirdparty/CGAL/include/CGAL/Shape_detection/Efficient_RANSAC/Octree.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Shape_detection/Efficient_RANSAC/Plane.h b/thirdparty/CGAL/include/CGAL/Shape_detection/Efficient_RANSAC/Plane.h index 8c5101a6..bf1bddc3 100644 --- a/thirdparty/CGAL/include/CGAL/Shape_detection/Efficient_RANSAC/Plane.h +++ b/thirdparty/CGAL/include/CGAL/Shape_detection/Efficient_RANSAC/Plane.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Shape_detection/Efficient_RANSAC/Shape_base.h b/thirdparty/CGAL/include/CGAL/Shape_detection/Efficient_RANSAC/Shape_base.h index 86541fcf..33ea2d83 100644 --- a/thirdparty/CGAL/include/CGAL/Shape_detection/Efficient_RANSAC/Shape_base.h +++ b/thirdparty/CGAL/include/CGAL/Shape_detection/Efficient_RANSAC/Shape_base.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Shape_detection/Efficient_RANSAC/Sphere.h b/thirdparty/CGAL/include/CGAL/Shape_detection/Efficient_RANSAC/Sphere.h index b34545a4..6457d0a9 100644 --- a/thirdparty/CGAL/include/CGAL/Shape_detection/Efficient_RANSAC/Sphere.h +++ b/thirdparty/CGAL/include/CGAL/Shape_detection/Efficient_RANSAC/Sphere.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Shape_detection/Efficient_RANSAC/Torus.h b/thirdparty/CGAL/include/CGAL/Shape_detection/Efficient_RANSAC/Torus.h index ebbc21d3..30d86767 100644 --- a/thirdparty/CGAL/include/CGAL/Shape_detection/Efficient_RANSAC/Torus.h +++ b/thirdparty/CGAL/include/CGAL/Shape_detection/Efficient_RANSAC/Torus.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Shape_detection/Efficient_RANSAC/property_map.h b/thirdparty/CGAL/include/CGAL/Shape_detection/Efficient_RANSAC/property_map.h index c66f5dbc..05782f81 100644 --- a/thirdparty/CGAL/include/CGAL/Shape_detection/Efficient_RANSAC/property_map.h +++ b/thirdparty/CGAL/include/CGAL/Shape_detection/Efficient_RANSAC/property_map.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing.h b/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing.h index 2a68f0d6..485326f4 100644 --- a/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing.h +++ b/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing.h b/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing.h index e711c531..1675ad20 100644 --- a/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing.h +++ b/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set.h b/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set.h index 62b589aa..18b9c09c 100644 --- a/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set.h +++ b/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/K_neighbor_query.h b/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/K_neighbor_query.h index c63c7e9f..b40e00c3 100644 --- a/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/K_neighbor_query.h +++ b/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/K_neighbor_query.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_circle_fit_region.h b/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_circle_fit_region.h index d3b8bf96..fb0c59aa 100644 --- a/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_circle_fit_region.h +++ b/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_circle_fit_region.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_circle_fit_sorting.h b/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_circle_fit_sorting.h index 27f87e71..2066f491 100644 --- a/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_circle_fit_sorting.h +++ b/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_circle_fit_sorting.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_cylinder_fit_region.h b/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_cylinder_fit_region.h index f7ee94ad..bf197490 100644 --- a/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_cylinder_fit_region.h +++ b/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_cylinder_fit_region.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_cylinder_fit_sorting.h b/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_cylinder_fit_sorting.h index c36b590a..c0953312 100644 --- a/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_cylinder_fit_sorting.h +++ b/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_cylinder_fit_sorting.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_line_fit_region.h b/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_line_fit_region.h index 9a30d21f..9ba93c19 100644 --- a/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_line_fit_region.h +++ b/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_line_fit_region.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_line_fit_sorting.h b/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_line_fit_sorting.h index 68daf766..067edddb 100644 --- a/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_line_fit_sorting.h +++ b/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_line_fit_sorting.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_plane_fit_region.h b/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_plane_fit_region.h index 22dd8a3b..f12c384e 100644 --- a/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_plane_fit_region.h +++ b/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_plane_fit_region.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_plane_fit_sorting.h b/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_plane_fit_sorting.h index 970b9601..20fe1571 100644 --- a/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_plane_fit_sorting.h +++ b/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_plane_fit_sorting.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_sphere_fit_region.h b/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_sphere_fit_region.h index a69398f6..3e5daf87 100644 --- a/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_sphere_fit_region.h +++ b/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_sphere_fit_region.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_sphere_fit_sorting.h b/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_sphere_fit_sorting.h index 52aea3a8..06615291 100644 --- a/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_sphere_fit_sorting.h +++ b/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_sphere_fit_sorting.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Sphere_neighbor_query.h b/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Sphere_neighbor_query.h index 67182f4e..f54f994a 100644 --- a/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Sphere_neighbor_query.h +++ b/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Sphere_neighbor_query.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_polygon_mesh.h b/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_polygon_mesh.h index ef352ab8..6675ff9b 100644 --- a/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_polygon_mesh.h +++ b/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_polygon_mesh.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_polygon_mesh/Least_squares_plane_fit_region.h b/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_polygon_mesh/Least_squares_plane_fit_region.h index 33960d18..35de8eea 100644 --- a/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_polygon_mesh/Least_squares_plane_fit_region.h +++ b/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_polygon_mesh/Least_squares_plane_fit_region.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_polygon_mesh/Least_squares_plane_fit_sorting.h b/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_polygon_mesh/Least_squares_plane_fit_sorting.h index 4e496c3a..6e8a61eb 100644 --- a/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_polygon_mesh/Least_squares_plane_fit_sorting.h +++ b/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_polygon_mesh/Least_squares_plane_fit_sorting.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_polygon_mesh/One_ring_neighbor_query.h b/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_polygon_mesh/One_ring_neighbor_query.h index 8d31b1e3..ef7967fd 100644 --- a/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_polygon_mesh/One_ring_neighbor_query.h +++ b/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/Region_growing_on_polygon_mesh/One_ring_neighbor_query.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/internal/fitting.h b/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/internal/fitting.h index d99ec852..db5dfd28 100644 --- a/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/internal/fitting.h +++ b/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/internal/fitting.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/internal/property_map.h b/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/internal/property_map.h index ce81b1f2..98182162 100644 --- a/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/internal/property_map.h +++ b/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/internal/property_map.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/internal/utils.h b/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/internal/utils.h index 13984eeb..4e568b6a 100644 --- a/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/internal/utils.h +++ b/thirdparty/CGAL/include/CGAL/Shape_detection/Region_growing/internal/utils.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Shape_detection/deprecated/Region_growing.h b/thirdparty/CGAL/include/CGAL/Shape_detection/deprecated/Region_growing.h index a90d6bba..b5433721 100644 --- a/thirdparty/CGAL/include/CGAL/Shape_detection/deprecated/Region_growing.h +++ b/thirdparty/CGAL/include/CGAL/Shape_detection/deprecated/Region_growing.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Shape_detection/deprecated/Shape_detection_traits.h b/thirdparty/CGAL/include/CGAL/Shape_detection/deprecated/Shape_detection_traits.h index adb0025e..80e1ed93 100644 --- a/thirdparty/CGAL/include/CGAL/Shape_detection/deprecated/Shape_detection_traits.h +++ b/thirdparty/CGAL/include/CGAL/Shape_detection/deprecated/Shape_detection_traits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Shape_detection_3.h b/thirdparty/CGAL/include/CGAL/Shape_detection_3.h index 0979cc63..7c49dd97 100644 --- a/thirdparty/CGAL/include/CGAL/Shape_detection_3.h +++ b/thirdparty/CGAL/include/CGAL/Shape_detection_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Shape_regularization.h b/thirdparty/CGAL/include/CGAL/Shape_regularization.h index ff7796eb..e9bc3892 100644 --- a/thirdparty/CGAL/include/CGAL/Shape_regularization.h +++ b/thirdparty/CGAL/include/CGAL/Shape_regularization.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Shape_regularization/Contours/Longest_direction_2.h b/thirdparty/CGAL/include/CGAL/Shape_regularization/Contours/Longest_direction_2.h index 3a654637..513fe71e 100644 --- a/thirdparty/CGAL/include/CGAL/Shape_regularization/Contours/Longest_direction_2.h +++ b/thirdparty/CGAL/include/CGAL/Shape_regularization/Contours/Longest_direction_2.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace Contours { \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 @@ namespace Contours { } } - /// \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 --git a/thirdparty/CGAL/include/CGAL/Shape_regularization/Contours/Multiple_directions_2.h b/thirdparty/CGAL/include/CGAL/Shape_regularization/Contours/Multiple_directions_2.h index 06115033..e49606b9 100644 --- a/thirdparty/CGAL/include/CGAL/Shape_regularization/Contours/Multiple_directions_2.h +++ b/thirdparty/CGAL/include/CGAL/Shape_regularization/Contours/Multiple_directions_2.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace Contours { \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 @@ namespace Contours { } } - /// \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 --git a/thirdparty/CGAL/include/CGAL/Shape_regularization/Contours/User_defined_directions_2.h b/thirdparty/CGAL/include/CGAL/Shape_regularization/Contours/User_defined_directions_2.h index 13420ce2..96127528 100644 --- a/thirdparty/CGAL/include/CGAL/Shape_regularization/Contours/User_defined_directions_2.h +++ b/thirdparty/CGAL/include/CGAL/Shape_regularization/Contours/User_defined_directions_2.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace Contours { */ 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 @@ namespace Contours { } } - /// \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 --git a/thirdparty/CGAL/include/CGAL/Shape_regularization/QP_regularization.h b/thirdparty/CGAL/include/CGAL/Shape_regularization/QP_regularization.h index b770447d..db3ebfb1 100644 --- a/thirdparty/CGAL/include/CGAL/Shape_regularization/QP_regularization.h +++ b/thirdparty/CGAL/include/CGAL/Shape_regularization/QP_regularization.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace Shape_regularization { \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 @@ namespace Shape_regularization { 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 --git a/thirdparty/CGAL/include/CGAL/Shape_regularization/Segments/Angle_regularization_2.h b/thirdparty/CGAL/include/CGAL/Shape_regularization/Segments/Angle_regularization_2.h index 87604ba5..184819d2 100644 --- a/thirdparty/CGAL/include/CGAL/Shape_regularization/Segments/Angle_regularization_2.h +++ b/thirdparty/CGAL/include/CGAL/Shape_regularization/Segments/Angle_regularization_2.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace Segments { \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 @@ namespace Segments { 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 --git a/thirdparty/CGAL/include/CGAL/Shape_regularization/Segments/Delaunay_neighbor_query_2.h b/thirdparty/CGAL/include/CGAL/Shape_regularization/Segments/Delaunay_neighbor_query_2.h index 16007951..cc37af9a 100644 --- a/thirdparty/CGAL/include/CGAL/Shape_regularization/Segments/Delaunay_neighbor_query_2.h +++ b/thirdparty/CGAL/include/CGAL/Shape_regularization/Segments/Delaunay_neighbor_query_2.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace Segments { \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 @@ namespace Segments { 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 --git a/thirdparty/CGAL/include/CGAL/Shape_regularization/Segments/Offset_regularization_2.h b/thirdparty/CGAL/include/CGAL/Shape_regularization/Segments/Offset_regularization_2.h index b082b7b8..b5750919 100644 --- a/thirdparty/CGAL/include/CGAL/Shape_regularization/Segments/Offset_regularization_2.h +++ b/thirdparty/CGAL/include/CGAL/Shape_regularization/Segments/Offset_regularization_2.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace Segments { \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 @@ namespace Segments { 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 --git a/thirdparty/CGAL/include/CGAL/Shape_regularization/internal/Closed_contour_2.h b/thirdparty/CGAL/include/CGAL/Shape_regularization/internal/Closed_contour_2.h index 88f59275..eabbd437 100644 --- a/thirdparty/CGAL/include/CGAL/Shape_regularization/internal/Closed_contour_2.h +++ b/thirdparty/CGAL/include/CGAL/Shape_regularization/internal/Closed_contour_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Shape_regularization/internal/Collinear_groups_2.h b/thirdparty/CGAL/include/CGAL/Shape_regularization/internal/Collinear_groups_2.h index 52c5f64b..e8c6df69 100644 --- a/thirdparty/CGAL/include/CGAL/Shape_regularization/internal/Collinear_groups_2.h +++ b/thirdparty/CGAL/include/CGAL/Shape_regularization/internal/Collinear_groups_2.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Shape_regularization/internal/Contour_base_2.h b/thirdparty/CGAL/include/CGAL/Shape_regularization/internal/Contour_base_2.h index 672ef93e..27a03d1f 100644 --- a/thirdparty/CGAL/include/CGAL/Shape_regularization/internal/Contour_base_2.h +++ b/thirdparty/CGAL/include/CGAL/Shape_regularization/internal/Contour_base_2.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Shape_regularization/include/CGAL/Shape_regularization/internal/Contour_base_2.h $ -// $Id: Contour_base_2.h 072c1bf 2021-08-03T18:17:14+02:00 Dmitry Anisimov +// $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 // // @@ -752,7 +752,7 @@ namespace internal { const Line_2& line_2, Point_2& in_point) const { - typename std::result_of::type result + typename CGAL::cpp11::result_of::type result = CGAL::intersection(line_1, line_2); if (result) { if (const Line_2* line = boost::get(&*result)) { diff --git a/thirdparty/CGAL/include/CGAL/Shape_regularization/internal/Contour_regularization_2.h b/thirdparty/CGAL/include/CGAL/Shape_regularization/internal/Contour_regularization_2.h index 45f3e4dc..a1a584c7 100644 --- a/thirdparty/CGAL/include/CGAL/Shape_regularization/internal/Contour_regularization_2.h +++ b/thirdparty/CGAL/include/CGAL/Shape_regularization/internal/Contour_regularization_2.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Shape_regularization/internal/Open_contour_2.h b/thirdparty/CGAL/include/CGAL/Shape_regularization/internal/Open_contour_2.h index 78e5ee90..8b81234e 100644 --- a/thirdparty/CGAL/include/CGAL/Shape_regularization/internal/Open_contour_2.h +++ b/thirdparty/CGAL/include/CGAL/Shape_regularization/internal/Open_contour_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Shape_regularization/internal/Orthogonal_groups_2.h b/thirdparty/CGAL/include/CGAL/Shape_regularization/internal/Orthogonal_groups_2.h index a13029d3..443d45e3 100644 --- a/thirdparty/CGAL/include/CGAL/Shape_regularization/internal/Orthogonal_groups_2.h +++ b/thirdparty/CGAL/include/CGAL/Shape_regularization/internal/Orthogonal_groups_2.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Shape_regularization/internal/Parallel_groups_2.h b/thirdparty/CGAL/include/CGAL/Shape_regularization/internal/Parallel_groups_2.h index 22bdfb9b..5327e35c 100644 --- a/thirdparty/CGAL/include/CGAL/Shape_regularization/internal/Parallel_groups_2.h +++ b/thirdparty/CGAL/include/CGAL/Shape_regularization/internal/Parallel_groups_2.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Shape_regularization/internal/Segment_wrapper_2.h b/thirdparty/CGAL/include/CGAL/Shape_regularization/internal/Segment_wrapper_2.h index 7315ff0b..573e3e3c 100644 --- a/thirdparty/CGAL/include/CGAL/Shape_regularization/internal/Segment_wrapper_2.h +++ b/thirdparty/CGAL/include/CGAL/Shape_regularization/internal/Segment_wrapper_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Shape_regularization/internal/Unique_segments_2.h b/thirdparty/CGAL/include/CGAL/Shape_regularization/internal/Unique_segments_2.h index 73130280..e94587a0 100644 --- a/thirdparty/CGAL/include/CGAL/Shape_regularization/internal/Unique_segments_2.h +++ b/thirdparty/CGAL/include/CGAL/Shape_regularization/internal/Unique_segments_2.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Shape_regularization/internal/utils.h b/thirdparty/CGAL/include/CGAL/Shape_regularization/internal/utils.h index 3edef7d8..52245c66 100644 --- a/thirdparty/CGAL/include/CGAL/Shape_regularization/internal/utils.h +++ b/thirdparty/CGAL/include/CGAL/Shape_regularization/internal/utils.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Shape_regularization/regularize_contours.h b/thirdparty/CGAL/include/CGAL/Shape_regularization/regularize_contours.h index 6c855592..030e5d9c 100644 --- a/thirdparty/CGAL/include/CGAL/Shape_regularization/regularize_contours.h +++ b/thirdparty/CGAL/include/CGAL/Shape_regularization/regularize_contours.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace Contours { 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 @@ namespace Contours { 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 @@ namespace Contours { 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 @@ namespace Contours { 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 --git a/thirdparty/CGAL/include/CGAL/Shape_regularization/regularize_planes.h b/thirdparty/CGAL/include/CGAL/Shape_regularization/regularize_planes.h index 916f6392..371b881d 100644 --- a/thirdparty/CGAL/include/CGAL/Shape_regularization/regularize_planes.h +++ b/thirdparty/CGAL/include/CGAL/Shape_regularization/regularize_planes.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace Planes { 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 @@ namespace Planes { 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 @@ namespace Planes { 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 @@ namespace Planes { 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 @@ namespace Planes { 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 --git a/thirdparty/CGAL/include/CGAL/Shape_regularization/regularize_segments.h b/thirdparty/CGAL/include/CGAL/Shape_regularization/regularize_segments.h index 0ab0d010..3ef6843e 100644 --- a/thirdparty/CGAL/include/CGAL/Shape_regularization/regularize_segments.h +++ b/thirdparty/CGAL/include/CGAL/Shape_regularization/regularize_segments.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace Segments { 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 @@ namespace Segments { 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 @@ namespace Segments { 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 @@ namespace Segments { 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 @@ namespace Segments { 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 @@ namespace Segments { 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 @@ namespace Segments { 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 @@ namespace Segments { 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 @@ namespace Segments { 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 @@ namespace Segments { 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 --git a/thirdparty/CGAL/include/CGAL/Side_of_bounded_square_2.h b/thirdparty/CGAL/include/CGAL/Side_of_bounded_square_2.h index 84dc0870..2c9ac07c 100644 --- a/thirdparty/CGAL/include/CGAL/Side_of_bounded_square_2.h +++ b/thirdparty/CGAL/include/CGAL/Side_of_bounded_square_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Side_of_oriented_square_2.h b/thirdparty/CGAL/include/CGAL/Side_of_oriented_square_2.h index 05b1974c..b55a6b74 100644 --- a/thirdparty/CGAL/include/CGAL/Side_of_oriented_square_2.h +++ b/thirdparty/CGAL/include/CGAL/Side_of_oriented_square_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Side_of_triangle_mesh.h b/thirdparty/CGAL/include/CGAL/Side_of_triangle_mesh.h index f7342e6d..b5412a28 100644 --- a/thirdparty/CGAL/include/CGAL/Side_of_triangle_mesh.h +++ b/thirdparty/CGAL/include/CGAL/Side_of_triangle_mesh.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Simple_cartesian.h b/thirdparty/CGAL/include/CGAL/Simple_cartesian.h index 68cc4a88..09ddb371 100644 --- a/thirdparty/CGAL/include/CGAL/Simple_cartesian.h +++ b/thirdparty/CGAL/include/CGAL/Simple_cartesian.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Simple_circular_kernel_2.h b/thirdparty/CGAL/include/CGAL/Simple_circular_kernel_2.h index 6274a4c0..0bee6d13 100644 --- a/thirdparty/CGAL/include/CGAL/Simple_circular_kernel_2.h +++ b/thirdparty/CGAL/include/CGAL/Simple_circular_kernel_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Simple_homogeneous.h b/thirdparty/CGAL/include/CGAL/Simple_homogeneous.h index 8f908b91..837dd304 100644 --- a/thirdparty/CGAL/include/CGAL/Simple_homogeneous.h +++ b/thirdparty/CGAL/include/CGAL/Simple_homogeneous.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Simple_polygon_visibility_2.h b/thirdparty/CGAL/include/CGAL/Simple_polygon_visibility_2.h index ed1df055..af90b1ba 100644 --- a/thirdparty/CGAL/include/CGAL/Simple_polygon_visibility_2.h +++ b/thirdparty/CGAL/include/CGAL/Simple_polygon_visibility_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Simple_spherical_kernel_3.h b/thirdparty/CGAL/include/CGAL/Simple_spherical_kernel_3.h index c7fb3f3c..b31142f6 100644 --- a/thirdparty/CGAL/include/CGAL/Simple_spherical_kernel_3.h +++ b/thirdparty/CGAL/include/CGAL/Simple_spherical_kernel_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Single.h b/thirdparty/CGAL/include/CGAL/Single.h index 4d1e437e..73c11493 100644 --- a/thirdparty/CGAL/include/CGAL/Single.h +++ b/thirdparty/CGAL/include/CGAL/Single.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Sixtuple.h b/thirdparty/CGAL/include/CGAL/Sixtuple.h index c415182c..28052228 100644 --- a/thirdparty/CGAL/include/CGAL/Sixtuple.h +++ b/thirdparty/CGAL/include/CGAL/Sixtuple.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Skin_surface_3.h b/thirdparty/CGAL/include/CGAL/Skin_surface_3.h index 6a77b134..88f4e00e 100644 --- a/thirdparty/CGAL/include/CGAL/Skin_surface_3.h +++ b/thirdparty/CGAL/include/CGAL/Skin_surface_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Skin_surface_base_3.h b/thirdparty/CGAL/include/CGAL/Skin_surface_base_3.h index f04a5a41..11b32209 100644 --- a/thirdparty/CGAL/include/CGAL/Skin_surface_base_3.h +++ b/thirdparty/CGAL/include/CGAL/Skin_surface_base_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Skin_surface_filtered_traits_3.h b/thirdparty/CGAL/include/CGAL/Skin_surface_filtered_traits_3.h index 13443832..4ea5a88f 100644 --- a/thirdparty/CGAL/include/CGAL/Skin_surface_filtered_traits_3.h +++ b/thirdparty/CGAL/include/CGAL/Skin_surface_filtered_traits_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Skin_surface_marching_tetrahedra_observer_3.h b/thirdparty/CGAL/include/CGAL/Skin_surface_marching_tetrahedra_observer_3.h index d076782a..82ecacff 100644 --- a/thirdparty/CGAL/include/CGAL/Skin_surface_marching_tetrahedra_observer_3.h +++ b/thirdparty/CGAL/include/CGAL/Skin_surface_marching_tetrahedra_observer_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Skin_surface_polyhedral_items_3.h b/thirdparty/CGAL/include/CGAL/Skin_surface_polyhedral_items_3.h index d883e511..025d045d 100644 --- a/thirdparty/CGAL/include/CGAL/Skin_surface_polyhedral_items_3.h +++ b/thirdparty/CGAL/include/CGAL/Skin_surface_polyhedral_items_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Skin_surface_polyhedral_items_with_face_information.h b/thirdparty/CGAL/include/CGAL/Skin_surface_polyhedral_items_with_face_information.h index 128211b4..41835ce6 100644 --- a/thirdparty/CGAL/include/CGAL/Skin_surface_polyhedral_items_with_face_information.h +++ b/thirdparty/CGAL/include/CGAL/Skin_surface_polyhedral_items_with_face_information.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Skin_surface_quadratic_surface_3.h b/thirdparty/CGAL/include/CGAL/Skin_surface_quadratic_surface_3.h index 8c35100a..7904649d 100644 --- a/thirdparty/CGAL/include/CGAL/Skin_surface_quadratic_surface_3.h +++ b/thirdparty/CGAL/include/CGAL/Skin_surface_quadratic_surface_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Skin_surface_refinement_policy_3.h b/thirdparty/CGAL/include/CGAL/Skin_surface_refinement_policy_3.h index ecd9df7a..3aba0c0d 100644 --- a/thirdparty/CGAL/include/CGAL/Skin_surface_refinement_policy_3.h +++ b/thirdparty/CGAL/include/CGAL/Skin_surface_refinement_policy_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Skin_surface_traits_3.h b/thirdparty/CGAL/include/CGAL/Skin_surface_traits_3.h index ba268075..49ed6f8e 100644 --- a/thirdparty/CGAL/include/CGAL/Skin_surface_traits_3.h +++ b/thirdparty/CGAL/include/CGAL/Skin_surface_traits_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Skiplist.h b/thirdparty/CGAL/include/CGAL/Skiplist.h index c4eda746..07322d4c 100644 --- a/thirdparty/CGAL/include/CGAL/Skiplist.h +++ b/thirdparty/CGAL/include/CGAL/Skiplist.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Skiplist 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 --git a/thirdparty/CGAL/include/CGAL/Small_side_angle_bisector_decomposition_2.h b/thirdparty/CGAL/include/CGAL/Small_side_angle_bisector_decomposition_2.h index e3d948f9..5820aa81 100644 --- a/thirdparty/CGAL/include/CGAL/Small_side_angle_bisector_decomposition_2.h +++ b/thirdparty/CGAL/include/CGAL/Small_side_angle_bisector_decomposition_2.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Small_side_angle_bisector_decomposition_2 { 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 --git a/thirdparty/CGAL/include/CGAL/Small_unordered_map.h b/thirdparty/CGAL/include/CGAL/Small_unordered_map.h index e703d20a..81753912 100644 --- a/thirdparty/CGAL/include/CGAL/Small_unordered_map.h +++ b/thirdparty/CGAL/include/CGAL/Small_unordered_map.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Small_unordered_set.h b/thirdparty/CGAL/include/CGAL/Small_unordered_set.h index 3d8d6f69..53e4e8ac 100644 --- a/thirdparty/CGAL/include/CGAL/Small_unordered_set.h +++ b/thirdparty/CGAL/include/CGAL/Small_unordered_set.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Snap_rounding_2.h b/thirdparty/CGAL/include/CGAL/Snap_rounding_2.h index 57d8892f..19953e98 100644 --- a/thirdparty/CGAL/include/CGAL/Snap_rounding_2.h +++ b/thirdparty/CGAL/include/CGAL/Snap_rounding_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Snap_rounding_kd_2.h b/thirdparty/CGAL/include/CGAL/Snap_rounding_kd_2.h index 9e85cff0..2d8fa9a2 100644 --- a/thirdparty/CGAL/include/CGAL/Snap_rounding_kd_2.h +++ b/thirdparty/CGAL/include/CGAL/Snap_rounding_kd_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Snap_rounding_traits_2.h b/thirdparty/CGAL/include/CGAL/Snap_rounding_traits_2.h index 86546693..3cc0c633 100644 --- a/thirdparty/CGAL/include/CGAL/Snap_rounding_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Snap_rounding_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Sorted_matrix_search_traits_adaptor.h b/thirdparty/CGAL/include/CGAL/Sorted_matrix_search_traits_adaptor.h index 75005263..6a5be9ed 100644 --- a/thirdparty/CGAL/include/CGAL/Sorted_matrix_search_traits_adaptor.h +++ b/thirdparty/CGAL/include/CGAL/Sorted_matrix_search_traits_adaptor.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Spatial_lock_grid_3.h b/thirdparty/CGAL/include/CGAL/Spatial_lock_grid_3.h index 8d08bfaa..aface74a 100644 --- a/thirdparty/CGAL/include/CGAL/Spatial_lock_grid_3.h +++ b/thirdparty/CGAL/include/CGAL/Spatial_lock_grid_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Spatial_searching/internal/Get_dimension_tag.h b/thirdparty/CGAL/include/CGAL/Spatial_searching/internal/Get_dimension_tag.h index f958ba80..4bc0e02e 100644 --- a/thirdparty/CGAL/include/CGAL/Spatial_searching/internal/Get_dimension_tag.h +++ b/thirdparty/CGAL/include/CGAL/Spatial_searching/internal/Get_dimension_tag.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Spatial_searching/internal/K_neighbor_search.h b/thirdparty/CGAL/include/CGAL/Spatial_searching/internal/K_neighbor_search.h index 9be1e443..b4cbbb2e 100644 --- a/thirdparty/CGAL/include/CGAL/Spatial_searching/internal/K_neighbor_search.h +++ b/thirdparty/CGAL/include/CGAL/Spatial_searching/internal/K_neighbor_search.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Spatial_searching/internal/Search_helpers.h b/thirdparty/CGAL/include/CGAL/Spatial_searching/internal/Search_helpers.h index e1a72f85..f491c4e2 100644 --- a/thirdparty/CGAL/include/CGAL/Spatial_searching/internal/Search_helpers.h +++ b/thirdparty/CGAL/include/CGAL/Spatial_searching/internal/Search_helpers.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Spatial_searching/internal/bounded_priority_queue.h b/thirdparty/CGAL/include/CGAL/Spatial_searching/internal/bounded_priority_queue.h index 68517061..6f1bce6f 100644 --- a/thirdparty/CGAL/include/CGAL/Spatial_searching/internal/bounded_priority_queue.h +++ b/thirdparty/CGAL/include/CGAL/Spatial_searching/internal/bounded_priority_queue.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Spatial_sort_traits_adapter_2.h b/thirdparty/CGAL/include/CGAL/Spatial_sort_traits_adapter_2.h index 1edac3b3..d4195b0f 100644 --- a/thirdparty/CGAL/include/CGAL/Spatial_sort_traits_adapter_2.h +++ b/thirdparty/CGAL/include/CGAL/Spatial_sort_traits_adapter_2.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Spatial_sorting/include/CGAL/Spatial_sort_traits_adapter_2.h $ -// $Id: Spatial_sort_traits_adapter_2.h 5c41b10 2020-01-02T10:26:44+01:00 Mael Rouxel-Labbé +// $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 // // Author(s) : Sebastien Loriot @@ -37,6 +37,28 @@ class Spatial_sort_traits_adapter_2 typedef typename boost::property_traits::key_type Point_2; typedef typename boost::call_traits::param_type Arg_type; + struct Compute_x_2 + : public Base_traits::Compute_x_2 + { + Compute_x_2(const PointPropertyMap& ppmap, const typename Base_traits::Compute_x_2& base): + Base_traits::Compute_x_2(base), ppmap_(ppmap){} + const PointPropertyMap& ppmap_; + typename Gt::FT operator()(Arg_type p) const { + return static_cast(this)->operator()(get(ppmap_,p)); + } + }; + + struct Compute_y_2 + : public Base_traits::Compute_y_2 + { + Compute_y_2(const PointPropertyMap& ppmap, const typename Base_traits::Compute_y_2& base): + Base_traits::Compute_y_2(base), ppmap_(ppmap){} + const PointPropertyMap& ppmap_; + typename Gt::FT operator()(Arg_type p) const { + return static_cast(this)->operator()(get(ppmap_,p)); + } + }; + struct Less_x_2 : public Base_traits::Less_x_2 { @@ -61,6 +83,8 @@ class Spatial_sort_traits_adapter_2 Less_x_2 less_x_2_object () const {return Less_x_2(ppmap_, static_cast(this)->less_x_2_object() );} Less_y_2 less_y_2_object () const {return Less_y_2(ppmap_, static_cast(this)->less_y_2_object() );} + Compute_x_2 compute_x_2_object () const {return Compute_x_2(ppmap_, static_cast(this)->compute_x_2_object() );} + Compute_y_2 compute_y_2_object () const {return Compute_y_2(ppmap_, static_cast(this)->compute_y_2_object() );} const PointPropertyMap& point_property_map() const {return ppmap_;} }; diff --git a/thirdparty/CGAL/include/CGAL/Spatial_sort_traits_adapter_3.h b/thirdparty/CGAL/include/CGAL/Spatial_sort_traits_adapter_3.h index 23d1110a..d49b847e 100644 --- a/thirdparty/CGAL/include/CGAL/Spatial_sort_traits_adapter_3.h +++ b/thirdparty/CGAL/include/CGAL/Spatial_sort_traits_adapter_3.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Spatial_sorting/include/CGAL/Spatial_sort_traits_adapter_3.h $ -// $Id: Spatial_sort_traits_adapter_3.h 7870a02 2021-03-20T02:53:09+01:00 Mael Rouxel-Labbé +// $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 // // Author(s) : Sebastien Loriot @@ -42,7 +42,7 @@ class Spatial_sort_traits_adapter_3 Compute_x_3(const PointPropertyMap& ppmap, const typename Base_traits::Compute_x_3& base): Base_traits::Compute_x_3(base), ppmap_(ppmap){} const PointPropertyMap& ppmap_; - bool operator()(Arg_type p) const { + typename Gt::FT operator()(Arg_type p) const { return static_cast(this)->operator()(get(ppmap_,p)); } }; @@ -53,7 +53,7 @@ class Spatial_sort_traits_adapter_3 Compute_y_3(const PointPropertyMap& ppmap, const typename Base_traits::Compute_y_3& base): Base_traits::Compute_y_3(base), ppmap_(ppmap){} const PointPropertyMap& ppmap_; - bool operator()(Arg_type p) const { + typename Gt::FT operator()(Arg_type p) const { return static_cast(this)->operator()(get(ppmap_,p)); } }; @@ -64,7 +64,7 @@ class Spatial_sort_traits_adapter_3 Compute_z_3(const PointPropertyMap& ppmap, const typename Base_traits::Compute_z_3& base): Base_traits::Compute_z_3(base), ppmap_(ppmap){} const PointPropertyMap& ppmap_; - bool operator()(Arg_type p) const { + typename Gt::FT operator()(Arg_type p) const { return static_cast(this)->operator()(get(ppmap_,p)); } }; diff --git a/thirdparty/CGAL/include/CGAL/Spatial_sort_traits_adapter_d.h b/thirdparty/CGAL/include/CGAL/Spatial_sort_traits_adapter_d.h index 945888df..f41a7d9b 100644 --- a/thirdparty/CGAL/include/CGAL/Spatial_sort_traits_adapter_d.h +++ b/thirdparty/CGAL/include/CGAL/Spatial_sort_traits_adapter_d.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Spatial_sorting/include/CGAL/Spatial_sort_traits_adapter_d.h $ -// $Id: Spatial_sort_traits_adapter_d.h 5c41b10 2020-01-02T10:26:44+01:00 Mael Rouxel-Labbé +// $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 // // Author(s) : Sebastien Loriot @@ -64,7 +64,7 @@ class Spatial_sort_traits_adapter_d Compute_coordinate_d(const PointPropertyMap& ppmap, const typename Base_traits::Compute_coordinate_d& base): Base_traits::Compute_coordinate_d(base), ppmap_(ppmap){} const PointPropertyMap& ppmap_; - bool operator()(Arg_type p, int i) const { + typename Gt::FT operator()(Arg_type p, int i) const { return static_cast(this)->operator()(get(ppmap_,p), i); } }; diff --git a/thirdparty/CGAL/include/CGAL/Spatial_sorting/internal/Transform_coordinates_traits_3.h b/thirdparty/CGAL/include/CGAL/Spatial_sorting/internal/Transform_coordinates_traits_3.h index eea04acc..c460efb8 100644 --- a/thirdparty/CGAL/include/CGAL/Spatial_sorting/internal/Transform_coordinates_traits_3.h +++ b/thirdparty/CGAL/include/CGAL/Spatial_sorting/internal/Transform_coordinates_traits_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Sphere_3.h b/thirdparty/CGAL/include/CGAL/Sphere_3.h index b3e89064..045d30aa 100644 --- a/thirdparty/CGAL/include/CGAL/Sphere_3.h +++ b/thirdparty/CGAL/include/CGAL/Sphere_3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Spherical_kernel_3.h b/thirdparty/CGAL/include/CGAL/Spherical_kernel_3.h index e813773f..fe146f8a 100644 --- a/thirdparty/CGAL/include/CGAL/Spherical_kernel_3.h +++ b/thirdparty/CGAL/include/CGAL/Spherical_kernel_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Spherical_kernel_intersections.h b/thirdparty/CGAL/include/CGAL/Spherical_kernel_intersections.h index 788d6064..6aec5330 100644 --- a/thirdparty/CGAL/include/CGAL/Spherical_kernel_intersections.h +++ b/thirdparty/CGAL/include/CGAL/Spherical_kernel_intersections.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Spherical_kernel_type_equality_wrapper.h b/thirdparty/CGAL/include/CGAL/Spherical_kernel_type_equality_wrapper.h index 7876a8f8..892ac91b 100644 --- a/thirdparty/CGAL/include/CGAL/Spherical_kernel_type_equality_wrapper.h +++ b/thirdparty/CGAL/include/CGAL/Spherical_kernel_type_equality_wrapper.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/Splitters.h b/thirdparty/CGAL/include/CGAL/Splitters.h index e47fbe19..c13071d8 100644 --- a/thirdparty/CGAL/include/CGAL/Splitters.h +++ b/thirdparty/CGAL/include/CGAL/Splitters.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Sqrt_extension.h b/thirdparty/CGAL/include/CGAL/Sqrt_extension.h index 70dcf8cb..c9bb7867 100644 --- a/thirdparty/CGAL/include/CGAL/Sqrt_extension.h +++ b/thirdparty/CGAL/include/CGAL/Sqrt_extension.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Sqrt_extension/Algebraic_extension_traits.h b/thirdparty/CGAL/include/CGAL/Sqrt_extension/Algebraic_extension_traits.h index 7c8567e7..280c80e9 100644 --- a/thirdparty/CGAL/include/CGAL/Sqrt_extension/Algebraic_extension_traits.h +++ b/thirdparty/CGAL/include/CGAL/Sqrt_extension/Algebraic_extension_traits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Sqrt_extension/Algebraic_structure_traits.h b/thirdparty/CGAL/include/CGAL/Sqrt_extension/Algebraic_structure_traits.h index 4bb386d2..1eaab13d 100644 --- a/thirdparty/CGAL/include/CGAL/Sqrt_extension/Algebraic_structure_traits.h +++ b/thirdparty/CGAL/include/CGAL/Sqrt_extension/Algebraic_structure_traits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Sqrt_extension/Chinese_remainder_traits.h b/thirdparty/CGAL/include/CGAL/Sqrt_extension/Chinese_remainder_traits.h index 3bf59c26..1a5b9a6e 100644 --- a/thirdparty/CGAL/include/CGAL/Sqrt_extension/Chinese_remainder_traits.h +++ b/thirdparty/CGAL/include/CGAL/Sqrt_extension/Chinese_remainder_traits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Sqrt_extension/Coercion_traits.h b/thirdparty/CGAL/include/CGAL/Sqrt_extension/Coercion_traits.h index bbf96386..c9acc101 100644 --- a/thirdparty/CGAL/include/CGAL/Sqrt_extension/Coercion_traits.h +++ b/thirdparty/CGAL/include/CGAL/Sqrt_extension/Coercion_traits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Sqrt_extension/Eigen_NumTraits.h b/thirdparty/CGAL/include/CGAL/Sqrt_extension/Eigen_NumTraits.h index c23c2a48..ccee9b17 100644 --- a/thirdparty/CGAL/include/CGAL/Sqrt_extension/Eigen_NumTraits.h +++ b/thirdparty/CGAL/include/CGAL/Sqrt_extension/Eigen_NumTraits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Sqrt_extension/Fraction_traits.h b/thirdparty/CGAL/include/CGAL/Sqrt_extension/Fraction_traits.h index f0b8c960..40b4f4ca 100644 --- a/thirdparty/CGAL/include/CGAL/Sqrt_extension/Fraction_traits.h +++ b/thirdparty/CGAL/include/CGAL/Sqrt_extension/Fraction_traits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Sqrt_extension/Get_arithmetic_kernel.h b/thirdparty/CGAL/include/CGAL/Sqrt_extension/Get_arithmetic_kernel.h index 3d8fbcd0..d6cdcb2f 100644 --- a/thirdparty/CGAL/include/CGAL/Sqrt_extension/Get_arithmetic_kernel.h +++ b/thirdparty/CGAL/include/CGAL/Sqrt_extension/Get_arithmetic_kernel.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Sqrt_extension/Modular_traits.h b/thirdparty/CGAL/include/CGAL/Sqrt_extension/Modular_traits.h index 0bd0b94c..a9125cd9 100644 --- a/thirdparty/CGAL/include/CGAL/Sqrt_extension/Modular_traits.h +++ b/thirdparty/CGAL/include/CGAL/Sqrt_extension/Modular_traits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Sqrt_extension/Real_embeddable_traits.h b/thirdparty/CGAL/include/CGAL/Sqrt_extension/Real_embeddable_traits.h index 9c10aa89..6c05fc6a 100644 --- a/thirdparty/CGAL/include/CGAL/Sqrt_extension/Real_embeddable_traits.h +++ b/thirdparty/CGAL/include/CGAL/Sqrt_extension/Real_embeddable_traits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Sqrt_extension/Scalar_factor_traits.h b/thirdparty/CGAL/include/CGAL/Sqrt_extension/Scalar_factor_traits.h index 728b07e7..070abd82 100644 --- a/thirdparty/CGAL/include/CGAL/Sqrt_extension/Scalar_factor_traits.h +++ b/thirdparty/CGAL/include/CGAL/Sqrt_extension/Scalar_factor_traits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Sqrt_extension/Sqrt_extension_type.h b/thirdparty/CGAL/include/CGAL/Sqrt_extension/Sqrt_extension_type.h index 09d2e09f..c8082f79 100644 --- a/thirdparty/CGAL/include/CGAL/Sqrt_extension/Sqrt_extension_type.h +++ b/thirdparty/CGAL/include/CGAL/Sqrt_extension/Sqrt_extension_type.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Sqrt_extension/Wang_traits.h b/thirdparty/CGAL/include/CGAL/Sqrt_extension/Wang_traits.h index b1dd6b53..64d87baf 100644 --- a/thirdparty/CGAL/include/CGAL/Sqrt_extension/Wang_traits.h +++ b/thirdparty/CGAL/include/CGAL/Sqrt_extension/Wang_traits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Sqrt_extension/convert_to_bfi.h b/thirdparty/CGAL/include/CGAL/Sqrt_extension/convert_to_bfi.h index dc8869ed..3a7b43cd 100644 --- a/thirdparty/CGAL/include/CGAL/Sqrt_extension/convert_to_bfi.h +++ b/thirdparty/CGAL/include/CGAL/Sqrt_extension/convert_to_bfi.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Sqrt_extension/io.h b/thirdparty/CGAL/include/CGAL/Sqrt_extension/io.h index 54bd2e6e..5b0a96cc 100644 --- a/thirdparty/CGAL/include/CGAL/Sqrt_extension/io.h +++ b/thirdparty/CGAL/include/CGAL/Sqrt_extension/io.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Sqrt_extension_fwd.h b/thirdparty/CGAL/include/CGAL/Sqrt_extension_fwd.h index a66c1f92..f9f8cf25 100644 --- a/thirdparty/CGAL/include/CGAL/Sqrt_extension_fwd.h +++ b/thirdparty/CGAL/include/CGAL/Sqrt_extension_fwd.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Static_filtered_predicate.h b/thirdparty/CGAL/include/CGAL/Static_filtered_predicate.h index dcc93cdf..63f1cf64 100644 --- a/thirdparty/CGAL/include/CGAL/Static_filtered_predicate.h +++ b/thirdparty/CGAL/include/CGAL/Static_filtered_predicate.h @@ -3,11 +3,10 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Filtered_kernel/include/CGAL/Static_filtered_predicate.h $ -// $Id: Static_filtered_predicate.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot +// $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 // -// // Author(s) : Andreas Fabri, Laurent Rineau #ifndef CGAL_STATIC_FILTERED_PREDICATE_H @@ -29,9 +28,7 @@ class Static_filtered_predicate { result_type operator()(const A1& a1) const { CGAL::Epic_converter convert; - typedef typename Kernel_traits::type EK; - typedef typename Type_mapper::type T1; - std::pair aa1 = convert(a1.approx()); + auto aa1 = convert(approx(a1)); if(! aa1.second){ return fp(a1); } @@ -39,83 +36,36 @@ class Static_filtered_predicate { return epicp(aa1.first); } - template - result_type operator()(const A1& a1, const Null_vector& v) const - { - CGAL::Epic_converter convert; - typedef typename Kernel_traits::type EK; - typedef typename Type_mapper::type T1; - std::pair aa1 = convert(a1.approx()); - if(! aa1.second){ - return fp(a1, v); - } - - return epicp(aa1.first, v); - } template result_type operator()(const A1& a1, const A2& a2) const { CGAL::Epic_converter convert; - typedef typename Kernel_traits::type EK; - typedef typename Type_mapper::type T1; - std::pair aa1 = convert(approx(a1)); + auto aa1 = convert(approx(a1)); if(! aa1.second){ return fp(a1, a2); } - typedef typename Type_mapper::type T2; - std::pair aa2 = convert(approx(a2)); + auto aa2 = convert(approx(a2)); if(! aa2.second){ return fp(a1, a2); } return epicp(aa1.first, aa2.first); } - // We need these two specializations as in general we determine - // the kernel for the template argument A1, and this does not work for Bbox_2 and Bbox_3 - template - result_type operator()(const Bbox_2& bb, const A2& a2) const - { - CGAL::Epic_converter convert; - typedef typename Kernel_traits::type EK; - typedef typename Type_mapper::type T2; - std::pair aa2 = convert(approx(a2)); - if(! aa2.second){ - return fp(bb, a2); - } - return epicp(bb, aa2.first); - } - - template - result_type operator()(const Bbox_3& bb, const A2& a2) const - { - CGAL::Epic_converter convert; - typedef typename Kernel_traits::type EK; - typedef typename Type_mapper::type T2; - std::pair aa2 = convert(approx(a2)); - if(! aa2.second){ - return fp(bb, a2); - } - return epicp(bb, aa2.first); - } template result_type operator()(const A1& a1, const A2& a2, const A3& a3) const { CGAL::Epic_converter convert; - typedef typename Kernel_traits::type EK; - typedef typename Type_mapper::type T1; - std::pair aa1 = convert(a1.approx()); + auto aa1 = convert(approx(a1)); if(! aa1.second){ return fp(a1, a2, a3); } - typedef typename Type_mapper::type T2; - std::pair aa2 = convert(a2.approx()); + auto aa2 = convert(approx(a2)); if(! aa2.second){ return fp(a1, a2, a3); } - typedef typename Type_mapper::type T3; - std::pair aa3 = convert(a3.approx()); + auto aa3 = convert(approx(a3)); if(! aa3.second){ return fp(a1, a2, a3); } @@ -127,24 +77,22 @@ class Static_filtered_predicate { result_type operator()(const A1& a1, const A2& a2, const A3& a3, const A4& a4) const { CGAL::Epic_converter convert; - typedef typename Kernel_traits::type EK; - typedef typename Type_mapper::type T1; - std::pair aa1 = convert(a1.approx()); + auto aa1 = convert(approx(a1)); if(! aa1.second){ return fp(a1, a2, a3, a4); } - typedef typename Type_mapper::type T2; - std::pair aa2 = convert(a2.approx()); + + auto aa2 = convert(approx(a2)); if(! aa2.second){ return fp(a1, a2, a3, a4); } - typedef typename Type_mapper::type T3; - std::pair aa3 = convert(a3.approx()); + + auto aa3 = convert(approx(a3)); if(! aa3.second){ return fp(a1, a2, a3, a4); } - typedef typename Type_mapper::type T4; - std::pair aa4 = convert(a4.approx()); + + auto aa4 = convert(approx(a4)); if(! aa4.second){ return fp(a1, a2, a3, a4); } @@ -155,29 +103,23 @@ class Static_filtered_predicate { result_type operator()(const A1& a1, const A2& a2, const A3& a3, const A4& a4, const A5& a5) const { CGAL::Epic_converter convert; - typedef typename Kernel_traits::type EK; - typedef typename Type_mapper::type T1; - std::pair aa1 = convert(a1.approx()); + auto aa1 = convert(approx(a1)); if(! aa1.second){ return fp(a1, a2, a3, a4, a5); } - typedef typename Type_mapper::type T2; - std::pair aa2 = convert(a2.approx()); + auto aa2 = convert(approx(a2)); if(! aa2.second){ return fp(a1, a2, a3, a4, a5); } - typedef typename Type_mapper::type T3; - std::pair aa3 = convert(a3.approx()); + auto aa3 = convert(approx(a3)); if(! aa3.second){ return fp(a1, a2, a3, a4, a5); } - typedef typename Type_mapper::type T4; - std::pair aa4 = convert(a4.approx()); + auto aa4 = convert(approx(a4)); if(! aa4.second){ return fp(a1, a2, a3, a4, a5); } - typedef typename Type_mapper::type T5; - std::pair aa5 = convert(a5.approx()); + auto aa5 = convert(approx(a5)); if(! aa5.second){ return fp(a1, a2, a3, a4, a5); } @@ -188,34 +130,27 @@ class Static_filtered_predicate { result_type operator()(const A1& a1, const A2& a2, const A3& a3, const A4& a4, const A5& a5, const A6& a6) const { CGAL::Epic_converter convert; - typedef typename Kernel_traits::type EK; - typedef typename Type_mapper::type T1; - std::pair aa1 = convert(a1.approx()); + auto aa1 = convert(approx(a1)); if(! aa1.second){ return fp(a1, a2, a3, a4, a5, a6); } - typedef typename Type_mapper::type T2; - std::pair aa2 = convert(a2.approx()); + auto aa2 = convert(approx(a2)); if(! aa2.second){ return fp(a1, a2, a3, a4, a5, a6); } - typedef typename Type_mapper::type T3; - std::pair aa3 = convert(a3.approx()); + auto aa3 = convert(approx(a3)); if(! aa3.second){ return fp(a1, a2, a3, a4, a5, a6); } - typedef typename Type_mapper::type T4; - std::pair aa4 = convert(a4.approx()); + auto aa4 = convert(approx(a4)); if(! aa4.second){ return fp(a1, a2, a3, a4, a5, a6); } - typedef typename Type_mapper::type T5; - std::pair aa5 = convert(a5.approx()); + auto aa5 = convert(approx(a5)); if(! aa5.second){ return fp(a1, a2, a3, a4, a5, a6); } - typedef typename Type_mapper::type T6; - std::pair aa6 = convert(a6.approx()); + auto aa6 = convert(approx(a6)); if(! aa6.second){ return fp(a1, a2, a3, a4, a5, a6); } @@ -226,39 +161,31 @@ class Static_filtered_predicate { result_type operator()(const A1& a1, const A2& a2, const A3& a3, const A4& a4, const A5& a5, const A6& a6, const A6& a7) const { CGAL::Epic_converter convert; - typedef typename Kernel_traits::type EK; - typedef typename Type_mapper::type T1; - std::pair aa1 = convert(a1.approx()); + auto aa1 = convert(approx(a1)); if(! aa1.second){ return fp(a1, a2, a3, a4, a5, a6, a7); } - typedef typename Type_mapper::type T2; - std::pair aa2 = convert(a2.approx()); + auto aa2 = convert(approx(a2)); if(! aa2.second){ return fp(a1, a2, a3, a4, a5, a6, a7); } - typedef typename Type_mapper::type T3; - std::pair aa3 = convert(a3.approx()); + auto aa3 = convert(approx(a3)); if(! aa3.second){ return fp(a1, a2, a3, a4, a5, a6, a7); } - typedef typename Type_mapper::type T4; - std::pair aa4 = convert(a4.approx()); + auto aa4 = convert(approx(a4)); if(! aa4.second){ return fp(a1, a2, a3, a4, a5, a6, a7); } - typedef typename Type_mapper::type T5; - std::pair aa5 = convert(a5.approx()); + auto aa5 = convert(approx(a5)); if(! aa5.second){ return fp(a1, a2, a3, a4, a5, a6, a7); } - typedef typename Type_mapper::type T6; - std::pair aa6 = convert(a6.approx()); + auto aa6 = convert(approx(a6)); if(! aa6.second){ return fp(a1, a2, a3, a4, a5, a6, a7); } - typedef typename Type_mapper::type T7; - std::pair aa7 = convert(a7.approx()); + auto aa7 = convert(approx(a7)); if(! aa7.second){ return fp(a1, a2, a3, a4, a5, a6, a7); } @@ -270,44 +197,35 @@ class Static_filtered_predicate { result_type operator()(const A1& a1, const A2& a2, const A3& a3, const A4& a4, const A5& a5, const A6& a6, const A7& a7, const A8& a8) const { CGAL::Epic_converter convert; - typedef typename Kernel_traits::type EK; - typedef typename Type_mapper::type T1; - std::pair aa1 = convert(a1.approx()); + auto aa1 = convert(approx(a1)); if(! aa1.second){ return fp(a1, a2, a3, a4, a5, a6, a7, a8); } - typedef typename Type_mapper::type T2; - std::pair aa2 = convert(a2.approx()); + auto aa2 = convert(approx(a2)); if(! aa2.second){ return fp(a1, a2, a3, a4, a5, a6, a7, a8); } - typedef typename Type_mapper::type T3; - std::pair aa3 = convert(a3.approx()); + auto aa3 = convert(approx(a3)); if(! aa3.second){ return fp(a1, a2, a3, a4, a5, a6, a7, a8); } - typedef typename Type_mapper::type T4; - std::pair aa4 = convert(a4.approx()); + auto aa4 = convert(approx(a4)); if(! aa4.second){ return fp(a1, a2, a3, a4, a5, a6, a7, a8); } - typedef typename Type_mapper::type T5; - std::pair aa5 = convert(a5.approx()); + auto aa5 = convert(approx(a5)); if(! aa5.second){ return fp(a1, a2, a3, a4, a5, a6, a7, a8); } - typedef typename Type_mapper::type T6; - std::pair aa6 = convert(a6.approx()); + auto aa6 = convert(approx(a6)); if(! aa6.second){ return fp(a1, a2, a3, a5, a5, a6, a7, a8); } - typedef typename Type_mapper::type T7; - std::pair aa7 = convert(a7.approx()); + auto aa7 = convert(approx(a7)); if(! aa7.second){ return fp(a1, a2, a3, a5, a5, a6, a7, a8); } - typedef typename Type_mapper::type T8; - std::pair aa8 = convert(a8.approx()); + auto aa8 = convert(approx(a8)); if(! aa8.second){ return fp(a1, a2, a3, a4, a5, a6, a7, a8); } diff --git a/thirdparty/CGAL/include/CGAL/Straight_skeleton_2.h b/thirdparty/CGAL/include/CGAL/Straight_skeleton_2.h index ae7cd7ea..1b34d9c5 100644 --- a/thirdparty/CGAL/include/CGAL/Straight_skeleton_2.h +++ b/thirdparty/CGAL/include/CGAL/Straight_skeleton_2.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Straight_skeleton_2/Polygon_iterators.h b/thirdparty/CGAL/include/CGAL/Straight_skeleton_2/Polygon_iterators.h index 4aeb73ae..7ff7c949 100644 --- a/thirdparty/CGAL/include/CGAL/Straight_skeleton_2/Polygon_iterators.h +++ b/thirdparty/CGAL/include/CGAL/Straight_skeleton_2/Polygon_iterators.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Straight_skeleton_2/Polygon_offset_builder_2_impl.h b/thirdparty/CGAL/include/CGAL/Straight_skeleton_2/Polygon_offset_builder_2_impl.h index 9d08d035..06100744 100644 --- a/thirdparty/CGAL/include/CGAL/Straight_skeleton_2/Polygon_offset_builder_2_impl.h +++ b/thirdparty/CGAL/include/CGAL/Straight_skeleton_2/Polygon_offset_builder_2_impl.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Straight_skeleton_2/Straight_skeleton_aux.h b/thirdparty/CGAL/include/CGAL/Straight_skeleton_2/Straight_skeleton_aux.h index 941ae19e..6e742248 100644 --- a/thirdparty/CGAL/include/CGAL/Straight_skeleton_2/Straight_skeleton_aux.h +++ b/thirdparty/CGAL/include/CGAL/Straight_skeleton_2/Straight_skeleton_aux.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Straight_skeleton_2/Straight_skeleton_builder_2_impl.h b/thirdparty/CGAL/include/CGAL/Straight_skeleton_2/Straight_skeleton_builder_2_impl.h index 8a1b41f9..9fdbc01f 100644 --- a/thirdparty/CGAL/include/CGAL/Straight_skeleton_2/Straight_skeleton_builder_2_impl.h +++ b/thirdparty/CGAL/include/CGAL/Straight_skeleton_2/Straight_skeleton_builder_2_impl.h @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Straight_skeleton_2/include/CGAL/Straight_skeleton_2/Straight_skeleton_builder_2_impl.h $ -// $Id: Straight_skeleton_builder_2_impl.h 393ae7d 2021-05-12T15:03:53+02:00 Maxime Gimeno +// $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 // // Author(s) : Fernando Cacciola @@ -15,7 +15,6 @@ #include #include -#include #include #include diff --git a/thirdparty/CGAL/include/CGAL/Straight_skeleton_2/Straight_skeleton_builder_events_2.h b/thirdparty/CGAL/include/CGAL/Straight_skeleton_2/Straight_skeleton_builder_events_2.h index d762ddd8..2cb18dc2 100644 --- a/thirdparty/CGAL/include/CGAL/Straight_skeleton_2/Straight_skeleton_builder_events_2.h +++ b/thirdparty/CGAL/include/CGAL/Straight_skeleton_2/Straight_skeleton_builder_events_2.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Straight_skeleton_2/Straight_skeleton_builder_traits_2_aux.h b/thirdparty/CGAL/include/CGAL/Straight_skeleton_2/Straight_skeleton_builder_traits_2_aux.h index 95520157..44d210ac 100644 --- a/thirdparty/CGAL/include/CGAL/Straight_skeleton_2/Straight_skeleton_builder_traits_2_aux.h +++ b/thirdparty/CGAL/include/CGAL/Straight_skeleton_2/Straight_skeleton_builder_traits_2_aux.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Straight_skeleton_2/assertions.h b/thirdparty/CGAL/include/CGAL/Straight_skeleton_2/assertions.h index a25a5dfd..343cbffd 100644 --- a/thirdparty/CGAL/include/CGAL/Straight_skeleton_2/assertions.h +++ b/thirdparty/CGAL/include/CGAL/Straight_skeleton_2/assertions.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Straight_skeleton_2/debug.h b/thirdparty/CGAL/include/CGAL/Straight_skeleton_2/debug.h index 76ba5e99..71853ba0 100644 --- a/thirdparty/CGAL/include/CGAL/Straight_skeleton_2/debug.h +++ b/thirdparty/CGAL/include/CGAL/Straight_skeleton_2/debug.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Straight_skeleton_2/test.h b/thirdparty/CGAL/include/CGAL/Straight_skeleton_2/test.h index 28e518d4..07e84b1c 100644 --- a/thirdparty/CGAL/include/CGAL/Straight_skeleton_2/test.h +++ b/thirdparty/CGAL/include/CGAL/Straight_skeleton_2/test.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Straight_skeleton_builder_2.h b/thirdparty/CGAL/include/CGAL/Straight_skeleton_builder_2.h index b5f2bff4..909d9e84 100644 --- a/thirdparty/CGAL/include/CGAL/Straight_skeleton_builder_2.h +++ b/thirdparty/CGAL/include/CGAL/Straight_skeleton_builder_2.h @@ -3,7 +3,7 @@ // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Straight_skeleton_builder_traits_2.h b/thirdparty/CGAL/include/CGAL/Straight_skeleton_builder_traits_2.h index b4b17f98..724e22c4 100644 --- a/thirdparty/CGAL/include/CGAL/Straight_skeleton_builder_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Straight_skeleton_builder_traits_2.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Straight_skeleton_converter_2.h b/thirdparty/CGAL/include/CGAL/Straight_skeleton_converter_2.h index 4561ef5d..897b527d 100644 --- a/thirdparty/CGAL/include/CGAL/Straight_skeleton_converter_2.h +++ b/thirdparty/CGAL/include/CGAL/Straight_skeleton_converter_2.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Straight_skeleton_face_base_2.h b/thirdparty/CGAL/include/CGAL/Straight_skeleton_face_base_2.h index 921acfc2..c56e513b 100644 --- a/thirdparty/CGAL/include/CGAL/Straight_skeleton_face_base_2.h +++ b/thirdparty/CGAL/include/CGAL/Straight_skeleton_face_base_2.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Straight_skeleton_halfedge_base_2.h b/thirdparty/CGAL/include/CGAL/Straight_skeleton_halfedge_base_2.h index 4d775661..ef09f63e 100644 --- a/thirdparty/CGAL/include/CGAL/Straight_skeleton_halfedge_base_2.h +++ b/thirdparty/CGAL/include/CGAL/Straight_skeleton_halfedge_base_2.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Straight_skeleton_items_2.h b/thirdparty/CGAL/include/CGAL/Straight_skeleton_items_2.h index 885e1406..9f74668c 100644 --- a/thirdparty/CGAL/include/CGAL/Straight_skeleton_items_2.h +++ b/thirdparty/CGAL/include/CGAL/Straight_skeleton_items_2.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Straight_skeleton_vertex_base_2.h b/thirdparty/CGAL/include/CGAL/Straight_skeleton_vertex_base_2.h index 30766136..46192d86 100644 --- a/thirdparty/CGAL/include/CGAL/Straight_skeleton_vertex_base_2.h +++ b/thirdparty/CGAL/include/CGAL/Straight_skeleton_vertex_base_2.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Stream_lines_2.h b/thirdparty/CGAL/include/CGAL/Stream_lines_2.h index e2d8e47d..663b4949 100644 --- a/thirdparty/CGAL/include/CGAL/Stream_lines_2.h +++ b/thirdparty/CGAL/include/CGAL/Stream_lines_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Stream_support/internal/Geometry_container.h b/thirdparty/CGAL/include/CGAL/Stream_support/internal/Geometry_container.h index 58692aed..68a7e2ef 100644 --- a/thirdparty/CGAL/include/CGAL/Stream_support/internal/Geometry_container.h +++ b/thirdparty/CGAL/include/CGAL/Stream_support/internal/Geometry_container.h @@ -6,7 +6,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Subdivision_method_3/internal/Euler_extensions.h b/thirdparty/CGAL/include/CGAL/Subdivision_method_3/internal/Euler_extensions.h index 862eef5b..c892aba7 100644 --- a/thirdparty/CGAL/include/CGAL/Subdivision_method_3/internal/Euler_extensions.h +++ b/thirdparty/CGAL/include/CGAL/Subdivision_method_3/internal/Euler_extensions.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Subdivision_method_3/internal/subdivision_hosts_impl_3.h b/thirdparty/CGAL/include/CGAL/Subdivision_method_3/internal/subdivision_hosts_impl_3.h index dc8b21f2..b3e8dfe0 100644 --- a/thirdparty/CGAL/include/CGAL/Subdivision_method_3/internal/subdivision_hosts_impl_3.h +++ b/thirdparty/CGAL/include/CGAL/Subdivision_method_3/internal/subdivision_hosts_impl_3.h @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ void PQQ_1step(Poly& p, VertexPointMap vpm, Mask mask) { 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 @@ void PTQ_1step(Poly& p, VertexPointMap vpm, Mask mask) { 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 --git a/thirdparty/CGAL/include/CGAL/Subdivision_method_3/subdivision_hosts_3.h b/thirdparty/CGAL/include/CGAL/Subdivision_method_3/subdivision_hosts_3.h index 4e77b8c5..ab7765e0 100644 --- a/thirdparty/CGAL/include/CGAL/Subdivision_method_3/subdivision_hosts_3.h +++ b/thirdparty/CGAL/include/CGAL/Subdivision_method_3/subdivision_hosts_3.h @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Subdivision_method_3/subdivision_masks_3.h b/thirdparty/CGAL/include/CGAL/Subdivision_method_3/subdivision_masks_3.h index 4b384516..f929769c 100644 --- a/thirdparty/CGAL/include/CGAL/Subdivision_method_3/subdivision_masks_3.h +++ b/thirdparty/CGAL/include/CGAL/Subdivision_method_3/subdivision_masks_3.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Subdivision_method_3/subdivision_methods_3.h b/thirdparty/CGAL/include/CGAL/Subdivision_method_3/subdivision_methods_3.h index a11cd480..b90883ea 100644 --- a/thirdparty/CGAL/include/CGAL/Subdivision_method_3/subdivision_methods_3.h +++ b/thirdparty/CGAL/include/CGAL/Subdivision_method_3/subdivision_methods_3.h @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ void CatmullClark_subdivision(PolygonMesh& pmesh, int step) { * * \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 @@ void CatmullClark_subdivision(PolygonMesh& pmesh, const NamedParameters& np) { 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 @@ void Loop_subdivision(PolygonMesh& pmesh, int step) { * \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 @@ void Loop_subdivision(PolygonMesh& pmesh, const NamedParameters& np) { 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 @@ void DooSabin_subdivision(PolygonMesh& pmesh, int step) { * \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 @@ void DooSabin_subdivision(PolygonMesh& pmesh, const NamedParameters& np) { 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 @@ void Sqrt3_subdivision(PolygonMesh& pmesh, int step) { * * \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 @@ void Sqrt3_subdivision(PolygonMesh& pmesh, const NamedParameters& np) { 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 --git a/thirdparty/CGAL/include/CGAL/Subiterator.h b/thirdparty/CGAL/include/CGAL/Subiterator.h index 6df98eb8..afb1307b 100644 --- a/thirdparty/CGAL/include/CGAL/Subiterator.h +++ b/thirdparty/CGAL/include/CGAL/Subiterator.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh.h b/thirdparty/CGAL/include/CGAL/Surface_mesh.h index bb8ad220..8173c934 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh/IO.h b/thirdparty/CGAL/include/CGAL/Surface_mesh/IO.h index 29e37db1..8fe72a32 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh/IO.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh/IO.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh/IO/3MF.h b/thirdparty/CGAL/include/CGAL/Surface_mesh/IO/3MF.h index 74ce7bf7..5028dc7e 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh/IO/3MF.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh/IO/3MF.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh/IO/OFF.h b/thirdparty/CGAL/include/CGAL/Surface_mesh/IO/OFF.h index 94c0623e..d21df6ac 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh/IO/OFF.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh/IO/OFF.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 IO { 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 @@ class GetFaceColorMap 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 @@ bool read_OFF_with_or_without_fcolors(std::istream& is, 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 @@ bool read_OFF_with_or_without_fcolors(std::istream& is, } } -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 @@ bool read_OFF_with_or_without_vtextures(std::istream& is, 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 @@ bool read_OFF_with_or_without_vtextures(std::istream& is, } } -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 @@ bool read_OFF_with_or_without_vcolors(std::istream& is, 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 @@ bool read_OFF_with_or_without_vcolors(std::istream& is, } } -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 @@ bool read_OFF_with_or_without_vnormals(std::istream& is, 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 @@ bool read_OFF_with_or_without_vnormals(std::istream& is, /// 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 @@ bool read_OFF(std::istream& is, 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,22 +353,12 @@ bool read_OFF(const std::string& fname, \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); } -/*! - \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) -{ - 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. @@ -401,9 +366,8 @@ CGAL_DEPRECATED bool read_off(std::istream& is, Surface_mesh& sm) 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 @@ CGAL_DEPRECATED bool read_off(Surface_mesh& sm, const std::string& filena 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 @@ bool write_OFF_with_or_without_fcolors(std::ostream& os, 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 @@ bool write_OFF_with_or_without_vtextures(std::ostream& os, 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 @@ bool write_OFF_with_or_without_vcolors(std::ostream& os, 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 @@ bool write_OFF_with_or_without_vnormals(std::ostream& os, /// /// \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,22 +564,12 @@ bool write_OFF(std::ostream& os, \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); } -/*! - \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) -{ - 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. @@ -633,7 +577,7 @@ CGAL_DEPRECATED bool write_off(std::ostream& os, const Surface_mesh& sm) 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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh/IO/PLY.h b/thirdparty/CGAL/include/CGAL/Surface_mesh/IO/PLY.h index 68c15356..2d344e6e 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh/IO/PLY.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh/IO/PLY.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace IO { /// /// \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 @@ bool write_PLY(std::ostream& os, /// \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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh/Properties.h b/thirdparty/CGAL/include/CGAL/Surface_mesh/Properties.h index fec51528..2a3ec8dc 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh/Properties.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh/Properties.h @@ -4,8 +4,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Property_container 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 @@ class Property_container // 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 @@ class Property_container 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 @@ class Property_map_base /// @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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh/Surface_mesh.h b/thirdparty/CGAL/include/CGAL/Surface_mesh/Surface_mesh.h index b2317041..de6c80ad 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh/Surface_mesh.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh/Surface_mesh.h @@ -4,8 +4,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Surface_mesh { 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 @@ class Surface_mesh /// 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 @@ class Surface_mesh /// 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 @@ class Surface_mesh /// 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 @@ class Surface_mesh /// 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 @@ class Surface_mesh /// 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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh/Surface_mesh_fwd.h b/thirdparty/CGAL/include/CGAL/Surface_mesh/Surface_mesh_fwd.h index 010d1808..ee33e3fc 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh/Surface_mesh_fwd.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh/Surface_mesh_fwd.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_approximation/L21_metric_plane_proxy.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_approximation/L21_metric_plane_proxy.h index 9c77ed29..06004eea 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_approximation/L21_metric_plane_proxy.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_approximation/L21_metric_plane_proxy.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_approximation/L2_metric_plane_proxy.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_approximation/L2_metric_plane_proxy.h index 9509ada2..67ed68d8 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_approximation/L2_metric_plane_proxy.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_approximation/L2_metric_plane_proxy.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_approximation/approximate_triangle_mesh.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_approximation/approximate_triangle_mesh.h index de0e4f99..c5bf0200 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_approximation/approximate_triangle_mesh.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_approximation/approximate_triangle_mesh.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ enum Verbose_level { 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 @@ bool approximate_triangle_mesh(const TriangleMesh &tm, const NamedParameters &np // 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 @@ bool approximate_triangle_mesh(const TriangleMesh &tm, const NamedParameters &np // 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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_cell_base_3.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_cell_base_3.h index 45104109..07ff6064 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_cell_base_3.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_cell_base_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_complex_2_in_triangulation_3.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_complex_2_in_triangulation_3.h index 208cec1f..ea0d344b 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_complex_2_in_triangulation_3.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_complex_2_in_triangulation_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_default_criteria_3.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_default_criteria_3.h index bf94c9c2..60cad304 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_default_criteria_3.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_default_criteria_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_default_edges_criteria_3.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_default_edges_criteria_3.h index 84154bec..6ff48d02 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_default_edges_criteria_3.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_default_edges_criteria_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_default_triangulation_3.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_default_triangulation_3.h index 5fca1d5d..27d223e7 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_default_triangulation_3.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_default_triangulation_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_deformation.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_deformation.h index 519f900a..6fa47e40 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_deformation.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_deformation.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/ARAP_parameterizer_3.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/ARAP_parameterizer_3.h index 71ebdf3d..7d0bd7f5 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/ARAP_parameterizer_3.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/ARAP_parameterizer_3.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class ARAP_parameterizer_3 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 @@ class ARAP_parameterizer_3 } // 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 @@ class ARAP_parameterizer_3 // 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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/Barycentric_mapping_parameterizer_3.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/Barycentric_mapping_parameterizer_3.h index 07985dd7..88833b08 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/Barycentric_mapping_parameterizer_3.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/Barycentric_mapping_parameterizer_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/Circular_border_parameterizer_3.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/Circular_border_parameterizer_3.h index 7f61d2c6..c14748b9 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/Circular_border_parameterizer_3.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/Circular_border_parameterizer_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/Discrete_authalic_parameterizer_3.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/Discrete_authalic_parameterizer_3.h index c07acb83..86241f2d 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/Discrete_authalic_parameterizer_3.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/Discrete_authalic_parameterizer_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/Discrete_conformal_map_parameterizer_3.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/Discrete_conformal_map_parameterizer_3.h index 06128847..6fa8a807 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/Discrete_conformal_map_parameterizer_3.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/Discrete_conformal_map_parameterizer_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/Error_code.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/Error_code.h index e1b5d5e2..5f73bfb1 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/Error_code.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/Error_code.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/Fixed_border_parameterizer_3.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/Fixed_border_parameterizer_3.h index 4e76a20f..8824955f 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/Fixed_border_parameterizer_3.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/Fixed_border_parameterizer_3.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Fixed_border_parameterizer_3 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 @@ class Fixed_border_parameterizer_3 // 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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/IO/File_off.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/IO/File_off.h index 25f7610d..002f96fb 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/IO/File_off.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/IO/File_off.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ void output_uvmap_to_off(const TriangleMesh& mesh, 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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/Iterative_authalic_parameterizer_3.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/Iterative_authalic_parameterizer_3.h index 7b6c1554..1b1aefdd 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/Iterative_authalic_parameterizer_3.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/Iterative_authalic_parameterizer_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/LSCM_parameterizer_3.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/LSCM_parameterizer_3.h index c74562fe..eb3cfccd 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/LSCM_parameterizer_3.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/LSCM_parameterizer_3.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class LSCM_parameterizer_3 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 @@ class LSCM_parameterizer_3 // \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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/MVC_post_processor_3.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/MVC_post_processor_3.h index c50f062b..80b6189b 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/MVC_post_processor_3.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/MVC_post_processor_3.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class MVC_post_processor_3 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 @@ class MVC_post_processor_3 // 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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/Mean_value_coordinates_parameterizer_3.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/Mean_value_coordinates_parameterizer_3.h index 04d40fc3..5512f15e 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/Mean_value_coordinates_parameterizer_3.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/Mean_value_coordinates_parameterizer_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/Orbifold_Tutte_parameterizer_3.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/Orbifold_Tutte_parameterizer_3.h index 07e2378c..0ef694b8 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/Orbifold_Tutte_parameterizer_3.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/Orbifold_Tutte_parameterizer_3.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ Error_code read_cones(const TriangleMesh& tm, std::ifstream& in, ConeOutputItera 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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/Square_border_parameterizer_3.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/Square_border_parameterizer_3.h index 29362eaf..53dfeeaa 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/Square_border_parameterizer_3.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/Square_border_parameterizer_3.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Square_border_parameterizer_3 VertexParameterizedMap vpmap, Offset_map& offset) { - assert(offset.empty()); + CGAL_assertion(offset.empty()); put(vpmap, v0, true); put(vpmap, v1, true); @@ -234,7 +236,7 @@ class Square_border_parameterizer_3 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 @@ class Square_border_parameterizer_3 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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/Two_vertices_parameterizer_3.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/Two_vertices_parameterizer_3.h index c1f63eee..6e4bb066 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/Two_vertices_parameterizer_3.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/Two_vertices_parameterizer_3.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Two_vertices_parameterizer_3 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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/internal/Bool_property_map.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/internal/Bool_property_map.h index e85cd833..ac44f4b4 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/internal/Bool_property_map.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/internal/Bool_property_map.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/internal/Containers_filler.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/internal/Containers_filler.h index 480df1ca..159ac01f 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/internal/Containers_filler.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/internal/Containers_filler.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace internal { // 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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/internal/kernel_traits.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/internal/kernel_traits.h index 01dce098..6a0b0127 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/internal/kernel_traits.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/internal/kernel_traits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/internal/orbifold_cone_helper.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/internal/orbifold_cone_helper.h index 8049d2f5..a98a6046 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/internal/orbifold_cone_helper.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/internal/orbifold_cone_helper.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ bool are_cones_unique(const Cone_container& cones) } 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 @@ bool check_cone_validity(const SeamMesh& mesh, 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 @@ bool check_cone_validity(const SeamMesh& mesh, 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 @@ bool check_cone_validity(const SeamMesh& mesh, } // 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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/internal/validity.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/internal/validity.h index 81a92214..0fbf5fa4 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/internal/validity.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/internal/validity.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ bool has_flips(const TriangleMesh& mesh, 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 @@ bool is_one_to_one_mapping(const TriangleMesh& mesh, 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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/measure_distortion.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/measure_distortion.h index 805bf3a3..0574fcbf 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/measure_distortion.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/measure_distortion.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/orbifold_enums.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/orbifold_enums.h index ea32e3d7..85c11714 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/orbifold_enums.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/orbifold_enums.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/orbifold_shortest_path.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/orbifold_shortest_path.h index 4824a2be..d6f6f7f6 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/orbifold_shortest_path.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/orbifold_shortest_path.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ void output_shortest_paths_to_selection_file(const TriangleMesh& mesh, 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 @@ void compute_shortest_paths_between_two_cones(const TriangleMesh& mesh, 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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/parameterize.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/parameterize.h index 000eb229..12c86948 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/parameterize.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_parameterization/parameterize.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_segmentation/internal/AABB_traits.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_segmentation/internal/AABB_traits.h index 4f2b7148..b9821aa7 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_segmentation/internal/AABB_traits.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_segmentation/internal/AABB_traits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_segmentation/internal/AABB_traversal_traits.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_segmentation/internal/AABB_traversal_traits.h index 71f1016f..48fc8ffa 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_segmentation/internal/AABB_traversal_traits.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_segmentation/internal/AABB_traversal_traits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_segmentation/internal/Disk_samplers.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_segmentation/internal/Disk_samplers.h index a8246b44..37920dd4 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_segmentation/internal/Disk_samplers.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_segmentation/internal/Disk_samplers.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_segmentation/internal/Expectation_maximization.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_segmentation/internal/Expectation_maximization.h index 90a0c1d6..bcb46700 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_segmentation/internal/Expectation_maximization.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_segmentation/internal/Expectation_maximization.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_segmentation/internal/Filters.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_segmentation/internal/Filters.h index 77db1ae4..c248e779 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_segmentation/internal/Filters.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_segmentation/internal/Filters.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_segmentation/internal/K_means_clustering.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_segmentation/internal/K_means_clustering.h index b2bdb35e..fe198795 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_segmentation/internal/K_means_clustering.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_segmentation/internal/K_means_clustering.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_segmentation/internal/SDF_calculation.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_segmentation/internal/SDF_calculation.h index 7eeb576e..100e35f0 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_segmentation/internal/SDF_calculation.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_segmentation/internal/SDF_calculation.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_segmentation/internal/Surface_mesh_segmentation.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_segmentation/internal/Surface_mesh_segmentation.h index a9c62154..f6930a3e 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_segmentation/internal/Surface_mesh_segmentation.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_segmentation/internal/Surface_mesh_segmentation.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_segmentation/internal/auxiliary/graph.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_segmentation/internal/auxiliary/graph.h index e5414b41..f5d9e364 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_segmentation/internal/auxiliary/graph.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_segmentation/internal/auxiliary/graph.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Graph /* Destructor */ ~Graph(); + void clear(); + /* Adds a node to the graph */ node_id add_node(); @@ -701,7 +703,7 @@ inline Graph::Graph(void (*err_function)(const char *)) 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() } } +inline Graph::~Graph() +{ + clear(); +} + inline Graph::node_id Graph::add_node() { node *i; diff --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_shortest_path.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_shortest_path.h index 4c3ae8f3..e4d9293a 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_shortest_path.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_shortest_path.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_shortest_path/Surface_mesh_shortest_path.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_shortest_path/Surface_mesh_shortest_path.h index 4acaec38..20179328 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_shortest_path/Surface_mesh_shortest_path.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_shortest_path/Surface_mesh_shortest_path.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Surface_mesh_shortest_path/include/CGAL/Surface_mesh_shortest_path/Surface_mesh_shortest_path.h $ -// $Id: Surface_mesh_shortest_path.h 81d9556 2021-02-10T10:06:45+01:00 Dmitry Anisimov +// $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 @@ class Surface_mesh_shortest_path /// @} 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; @@ -331,7 +322,7 @@ class Surface_mesh_shortest_path }; private: - const Traits& m_traits; + const Traits m_traits; const Triangle_mesh& m_graph; Vertex_index_map m_vertexIndexMap; @@ -354,13 +345,11 @@ class Surface_mesh_shortest_path 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 @@ class Surface_mesh_shortest_path #endif - public: /// \cond @@ -533,7 +521,8 @@ class Surface_mesh_shortest_path } /* - 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 @@ class Surface_mesh_shortest_path } CGAL_assertion(cone->m_pendingLeftSubtree != nullptr); - cone->m_pendingLeftSubtree = nullptr; if (window_distance_filter(cone, windowSegment, false)) @@ -689,14 +677,13 @@ class Surface_mesh_shortest_path 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 @@ class Surface_mesh_shortest_path 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 @@ class Surface_mesh_shortest_path 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 @@ class Surface_mesh_shortest_path 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 @@ class Surface_mesh_shortest_path 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 @@ class Surface_mesh_shortest_path 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; } + Cone_tree_node* edgeRoot = new Cone_tree_node(m_traits, m_graph, m_rootNodes.size()); + node_created(); + m_rootNodes.emplace_back(edgeRoot, sourcePointIt); + + /* 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 + */ + + if(is_border_edge(baseEdge, m_graph)) + { + const Face_location edgeSourceLocation = face_location(baseEdge, t0); + return expand_face_root(face(baseEdge, m_graph), edgeSourceLocation.second, sourcePointIt); + } + + // From here on, it is not a border edge --> spawn 2 children on each side + halfedge_descriptor baseEdges[2]; baseEdges[0] = baseEdge; baseEdges[1] = opposite(baseEdge, m_graph); - Triangle_3 faces3d[2]; - Triangle_2 layoutFaces[2]; + // 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 i = 0; i < 2; ++i) + for (std::size_t side = 0; side < 2; ++side) { - faces3d[i] = triangle_from_halfedge(baseEdges[i]); - layoutFaces[i] = pt3t2(faces3d[i]); - } + Triangle_3 face3d(triangle_from_halfedge(baseEdges[side])); + Triangle_2 layoutFace(pt3t2(face3d)); + Point_2 sourcePoint(construct_barycenter_in_triangle_2(layoutFace, edgeSourceLocations[side])); - 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); + // v0v1 targetting v2 + if (m_debugOutput) + { + 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* edgeRoot = new Cone_tree_node(m_traits, m_graph, m_rootNodes.size()); - node_created(); - m_rootNodes.push_back(std::make_pair(edgeRoot, sourcePointIt)); + 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(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])); - for (std::size_t side = 0; side < 2; ++side) - { 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 '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* 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* 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(mainChild); - process_node(mainChild); + edgeRoot->push_middle_child(v1_Child); + process_node(v1_Child); } } @@ -878,6 +946,7 @@ class Surface_mesh_shortest_path { 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 @@ class Surface_mesh_shortest_path 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 @@ class Surface_mesh_shortest_path /* 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 @@ class Surface_mesh_shortest_path 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 @@ class Surface_mesh_shortest_path << 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 @@ class Surface_mesh_shortest_path } } - 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 @@ class Surface_mesh_shortest_path 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 @@ class Surface_mesh_shortest_path 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 @@ class Surface_mesh_shortest_path 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 @@ class Surface_mesh_shortest_path 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 @@ class Surface_mesh_shortest_path // 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 @@ class Surface_mesh_shortest_path } } - // 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 @@ class Surface_mesh_shortest_path // 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 @@ class Surface_mesh_shortest_path { 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 @@ class Surface_mesh_shortest_path { 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 @@ class Surface_mesh_shortest_path 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 @@ class Surface_mesh_shortest_path { 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 @@ class Surface_mesh_shortest_path 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 @@ class Surface_mesh_shortest_path 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 @@ class Surface_mesh_shortest_path 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 @@ class Surface_mesh_shortest_path 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 @@ class Surface_mesh_shortest_path } 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 @@ class Surface_mesh_shortest_path 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 @@ class Surface_mesh_shortest_path 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 @@ class Surface_mesh_shortest_path 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 @@ class Surface_mesh_shortest_path } 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 @@ class Surface_mesh_shortest_path 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 @@ class Surface_mesh_shortest_path 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 @@ class Surface_mesh_shortest_path 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 @@ class Surface_mesh_shortest_path } - while (m_expansionPriqueue.size() > 0) + while (!m_expansionPriqueue.empty()) { if (m_debugOutput) { @@ -2077,10 +2138,10 @@ class Surface_mesh_shortest_path 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 @@ class Surface_mesh_shortest_path 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 @@ class Surface_mesh_shortest_path 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 @@ class Surface_mesh_shortest_path 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 @@ class Surface_mesh_shortest_path 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 @@ class Surface_mesh_shortest_path */ 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 @@ class Surface_mesh_shortest_path { 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 @@ class Surface_mesh_shortest_path { 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 @@ class Surface_mesh_shortest_path { 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 @@ class Surface_mesh_shortest_path /*! \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, vertex); + return get(m_vertexPointMap, v); } + /// \cond + + static decltype(auto) point(const vertex_descriptor v, + const Triangle_mesh& tm) + { + return get(CGAL::vertex_point, tm, v); + } + + /// \endcond + /// @} /// \name Surface Face Location Constructions @@ -2770,7 +2851,7 @@ class Surface_mesh_shortest_path { 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 @@ class Surface_mesh_shortest_path 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 @@ class Surface_mesh_shortest_path } // namespace CGAL -#include - #endif // CGAL_SURFACE_MESH_SHORTEST_PATH_SURFACE_MESH_SHORTEST_PATH_H diff --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_shortest_path/Surface_mesh_shortest_path_traits.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_shortest_path/Surface_mesh_shortest_path_traits.h index cf3dbb65..72789d2d 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_shortest_path/Surface_mesh_shortest_path_traits.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_shortest_path/Surface_mesh_shortest_path_traits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_shortest_path/barycentric.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_shortest_path/barycentric.h index 36cf7b61..9ef78572 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_shortest_path/barycentric.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_shortest_path/barycentric.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_shortest_path/function_objects.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_shortest_path/function_objects.h index 64bb500d..79e15841 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_shortest_path/function_objects.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_shortest_path/function_objects.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Compare_relative_intersection_along_segment_2 // 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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_shortest_path/internal/Cone_expansion_event.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_shortest_path/internal/Cone_expansion_event.h index ae38bef9..7d08d313 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_shortest_path/internal/Cone_expansion_event.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_shortest_path/internal/Cone_expansion_event.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_shortest_path/internal/Cone_tree.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_shortest_path/internal/Cone_tree.h index c746f334..419effd1 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_shortest_path/internal/Cone_tree.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_shortest_path/internal/Cone_tree.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Cone_tree_node 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 @@ class Cone_tree_node 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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_shortest_path/internal/misc_functions.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_shortest_path/internal/misc_functions.h index 7637681f..caf658d6 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_shortest_path/internal/misc_functions.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_shortest_path/internal/misc_functions.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Edge_collapse_visitor_base.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Edge_collapse_visitor_base.h index cb8c7f67..bd949ce6 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Edge_collapse_visitor_base.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Edge_collapse_visitor_base.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Bounded_distance_placement.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Bounded_distance_placement.h index 038be4ea..2e45b0a6 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Bounded_distance_placement.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Bounded_distance_placement.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Bounded_normal_change_filter.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Bounded_normal_change_filter.h index 5448a86d..9d21c4f4 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Bounded_normal_change_filter.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Bounded_normal_change_filter.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Bounded_normal_change_placement.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Bounded_normal_change_placement.h index 6c62d6a5..e521ba31 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Bounded_normal_change_placement.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Bounded_normal_change_placement.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Constrained_placement.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Constrained_placement.h index 2dedb82f..022e94b2 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Constrained_placement.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Constrained_placement.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Count_ratio_stop_predicate.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Count_ratio_stop_predicate.h index 2991af25..89cf2747 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Count_ratio_stop_predicate.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Count_ratio_stop_predicate.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Count_stop_predicate.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Count_stop_predicate.h index ad167640..7be682fe 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Count_stop_predicate.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Count_stop_predicate.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Edge_length_cost.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Edge_length_cost.h index 328efc75..9ea81f64 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Edge_length_cost.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Edge_length_cost.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Edge_length_stop_predicate.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Edge_length_stop_predicate.h index c811aa88..66979c55 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Edge_length_stop_predicate.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Edge_length_stop_predicate.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Edge_profile.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Edge_profile.h index a91aa38e..74f520f5 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Edge_profile.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Edge_profile.h @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ public : 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 @@ public : 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 @@ public : 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:: 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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/FastEnvelope_filter.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/FastEnvelope_filter.h index 0248f114..e76e39e5 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/FastEnvelope_filter.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/FastEnvelope_filter.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/GarlandHeckbert_plane_policies.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/GarlandHeckbert_plane_policies.h new file mode 100644 index 00000000..60ba1a1c --- /dev/null +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/GarlandHeckbert_plane_policies.h @@ -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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/GarlandHeckbert_policies.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/GarlandHeckbert_policies.h index 342a79f2..fc3a3d7e 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/GarlandHeckbert_policies.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/GarlandHeckbert_policies.h @@ -2,188 +2,31 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/GarlandHeckbert_probabilistic_plane_policies.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/GarlandHeckbert_probabilistic_plane_policies.h new file mode 100644 index 00000000..3b4a3aa0 --- /dev/null +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/GarlandHeckbert_probabilistic_plane_policies.h @@ -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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/GarlandHeckbert_probabilistic_triangle_policies.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/GarlandHeckbert_probabilistic_triangle_policies.h new file mode 100644 index 00000000..f34fc364 --- /dev/null +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/GarlandHeckbert_probabilistic_triangle_policies.h @@ -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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/GarlandHeckbert_triangle_policies.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/GarlandHeckbert_triangle_policies.h new file mode 100644 index 00000000..c4daafeb --- /dev/null +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/GarlandHeckbert_triangle_policies.h @@ -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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/LindstromTurk.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/LindstromTurk.h index 4aeb4778..7c3eab4d 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/LindstromTurk.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/LindstromTurk.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/LindstromTurk_cost.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/LindstromTurk_cost.h index 749d5c0e..593e2c36 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/LindstromTurk_cost.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/LindstromTurk_cost.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/LindstromTurk_placement.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/LindstromTurk_placement.h index 6ac881d3..3fa52cc8 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/LindstromTurk_placement.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/LindstromTurk_placement.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Midpoint_placement.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Midpoint_placement.h index d54afd81..483945e0 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Midpoint_placement.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Midpoint_placement.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Polyhedral_envelope_filter.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Polyhedral_envelope_filter.h index be5f6bdf..1ee10cbc 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Polyhedral_envelope_filter.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Polyhedral_envelope_filter.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/internal/GarlandHeckbert_core.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/internal/GarlandHeckbert_core.h deleted file mode 100644 index 4abc45f4..00000000 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/internal/GarlandHeckbert_core.h +++ /dev/null @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/internal/GarlandHeckbert_functions.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/internal/GarlandHeckbert_functions.h new file mode 100644 index 00000000..992d273a --- /dev/null +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/internal/GarlandHeckbert_functions.h @@ -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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/internal/GarlandHeckbert_policy_base.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/internal/GarlandHeckbert_policy_base.h new file mode 100644 index 00000000..4afb90ea --- /dev/null +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/internal/GarlandHeckbert_policy_base.h @@ -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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/internal/LindstromTurk_params.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/internal/LindstromTurk_params.h index 901f5d44..3a5b357b 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/internal/LindstromTurk_params.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/internal/LindstromTurk_params.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/internal/Lindstrom_Turk_core.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/internal/Lindstrom_Turk_core.h index 53fd3507..4cda756f 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/internal/Lindstrom_Turk_core.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/internal/Lindstrom_Turk_core.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/edge_collapse.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/edge_collapse.h index c13c2f27..8d216ffd 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/edge_collapse.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/edge_collapse.h @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 CGAL { 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 @@ struct Dummy_visitor } // 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 @@ int edge_collapse(TM& tmesh, } -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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/internal/Common.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/internal/Common.h index f3cdd0d3..0daba074 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/internal/Common.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/internal/Common.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/internal/Edge_collapse.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/internal/Edge_collapse.h index 895c29fb..c746ab05 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/internal/Edge_collapse.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_simplification/internal/Edge_collapse.h @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ template + class VisitorT_, + bool use_relaxed_heap> class EdgeCollapse { typedef EdgeCollapse Self; @@ -173,28 +175,25 @@ class EdgeCollapse 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 @@ class EdgeCollapse 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 @@ class EdgeCollapse 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 @@ class EdgeCollapse 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 @@ class EdgeCollapse 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 @@ class EdgeCollapse 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 @@ class EdgeCollapse 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 @@ class EdgeCollapse 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 @@ EdgeCollapse(Triangle_mesh& tmesh, #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 @@ run() return r; } -template +template void -EdgeCollapse:: +EdgeCollapse:: collect() { CGAL_SMS_TRACE(0, "collecting edges..."); @@ -579,9 +581,9 @@ collect() 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 @@ loop() } } -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 @@ is_border_or_constrained(const vertex_descriptor v) const 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 @@ is_constrained(const vertex_descriptor v) const // 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 @@ is_collapse_topologically_valid(const Profile& profile) 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 @@ is_open_triangle(const halfedge_descriptor h1) // 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 @@ are_shared_triangles_valid(const Point& p0, const Point& p1, const Point& p2, co } // 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 @@ find_connection(const vertex_descriptor v0, // 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 @@ find_exterior_link_triangle_3rd_vertex(const halfedge_descriptor e, // 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 @@ is_collapse_geometrically_valid(const Profile& profile, Placement_type k0) return res; } -template +template void -EdgeCollapse:: +EdgeCollapse:: collapse(const Profile& profile, Placement_type placement) { @@ -1217,9 +1219,9 @@ collapse(const Profile& profile, 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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_skeletonization/internal/Curve_skeleton.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_skeletonization/internal/Curve_skeleton.h index 9fe51b3c..c04a8ffe 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_skeletonization/internal/Curve_skeleton.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_skeletonization/internal/Curve_skeleton.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_skeletonization/internal/Debug.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_skeletonization/internal/Debug.h index 9104c105..2bddead1 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_skeletonization/internal/Debug.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_skeletonization/internal/Debug.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_skeletonization/internal/Detect_degeneracy.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_skeletonization/internal/Detect_degeneracy.h index 54acb343..6cb3f9cc 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_skeletonization/internal/Detect_degeneracy.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_skeletonization/internal/Detect_degeneracy.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_topology/internal/Edge_weight_functor.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_topology/internal/Edge_weight_functor.h index 80bfb60a..2c7efe51 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_topology/internal/Edge_weight_functor.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_topology/internal/Edge_weight_functor.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_topology/internal/Facewidth.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_topology/internal/Facewidth.h index 6db6def1..ac940fd5 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_topology/internal/Facewidth.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_topology/internal/Facewidth.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_topology/internal/Functors_for_face_graph_wrapper.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_topology/internal/Functors_for_face_graph_wrapper.h index 6660c1ca..ecdc2d04 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_topology/internal/Functors_for_face_graph_wrapper.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_topology/internal/Functors_for_face_graph_wrapper.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_topology/internal/Generic_map_selector.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_topology/internal/Generic_map_selector.h index 2b30eb08..a914a0c9 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_topology/internal/Generic_map_selector.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_topology/internal/Generic_map_selector.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace internal { 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 @@ namespace internal { 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 @@ namespace internal { 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 @@ namespace internal { 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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_topology/internal/Iterators_for_face_graph_wrapper.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_topology/internal/Iterators_for_face_graph_wrapper.h index 6e48a224..51ee0155 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_topology/internal/Iterators_for_face_graph_wrapper.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_topology/internal/Iterators_for_face_graph_wrapper.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_topology/internal/Minimal_quadrangulation.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_topology/internal/Minimal_quadrangulation.h index 26e5c755..fca818b2 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_topology/internal/Minimal_quadrangulation.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_topology/internal/Minimal_quadrangulation.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Minimal_quadrangulation } 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 @@ class Minimal_quadrangulation 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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_topology/internal/Path_generators.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_topology/internal/Path_generators.h index 0b9ddca1..e6ebe27a 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_topology/internal/Path_generators.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_topology/internal/Path_generators.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ generate_random_connected_set_of_faces(const LCC& lcc, std::size_t nb, { 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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_topology/internal/Path_on_surface_with_rle.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_topology/internal/Path_on_surface_with_rle.h index 11027883..83723a5d 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_topology/internal/Path_on_surface_with_rle.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_topology/internal/Path_on_surface_with_rle.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Path_on_surface_with_rle (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 @@ class Path_on_surface_with_rle } while(i @@ -65,8 +65,8 @@ class Shortest_noncontractible_cycle 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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_traits_generator_3.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_traits_generator_3.h index 1f244e2f..4a0c6f30 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_traits_generator_3.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_traits_generator_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_triangulation_generator_3.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_triangulation_generator_3.h index 4b709bc4..6ac54dc3 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_triangulation_generator_3.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_triangulation_generator_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesh_vertex_base_3.h b/thirdparty/CGAL/include/CGAL/Surface_mesh_vertex_base_3.h index baac602f..8e0f59c1 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesh_vertex_base_3.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesh_vertex_base_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesher/Combining_oracle.h b/thirdparty/CGAL/include/CGAL/Surface_mesher/Combining_oracle.h index be399568..e22e179f 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesher/Combining_oracle.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesher/Combining_oracle.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesher/Has_edges.h b/thirdparty/CGAL/include/CGAL/Surface_mesher/Has_edges.h index 9e487f31..c6fe870e 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesher/Has_edges.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesher/Has_edges.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesher/Implicit_surface_oracle_3.h b/thirdparty/CGAL/include/CGAL/Surface_mesher/Implicit_surface_oracle_3.h index d739c0bb..3f47fb39 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesher/Implicit_surface_oracle_3.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesher/Implicit_surface_oracle_3.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesher/Intersection_data_structure_3.h b/thirdparty/CGAL/include/CGAL/Surface_mesher/Intersection_data_structure_3.h index df5a5ece..cf784e1e 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesher/Intersection_data_structure_3.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesher/Intersection_data_structure_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesher/Null_oracle_visitor.h b/thirdparty/CGAL/include/CGAL/Surface_mesher/Null_oracle_visitor.h index 541be591..672ecb28 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesher/Null_oracle_visitor.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesher/Null_oracle_visitor.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesher/Point_surface_indices_oracle_visitor.h b/thirdparty/CGAL/include/CGAL/Surface_mesher/Point_surface_indices_oracle_visitor.h index 850165e1..b5d4e8d8 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesher/Point_surface_indices_oracle_visitor.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesher/Point_surface_indices_oracle_visitor.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesher/Poisson_implicit_surface_oracle_3.h b/thirdparty/CGAL/include/CGAL/Surface_mesher/Poisson_implicit_surface_oracle_3.h index 59470a4c..90b7084a 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesher/Poisson_implicit_surface_oracle_3.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesher/Poisson_implicit_surface_oracle_3.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesher/Polyhedral_oracle.h b/thirdparty/CGAL/include/CGAL/Surface_mesher/Polyhedral_oracle.h index f248da49..c38f7898 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesher/Polyhedral_oracle.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesher/Polyhedral_oracle.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesher/Profile_counter.h b/thirdparty/CGAL/include/CGAL/Surface_mesher/Profile_counter.h index 9db41dd0..f211fb6a 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesher/Profile_counter.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesher/Profile_counter.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesher/Profile_timer.h b/thirdparty/CGAL/include/CGAL/Surface_mesher/Profile_timer.h index 57db2ac4..738cd506 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesher/Profile_timer.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesher/Profile_timer.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesher/Sphere_oracle_3.h b/thirdparty/CGAL/include/CGAL/Surface_mesher/Sphere_oracle_3.h index 112ee997..e74fbe90 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesher/Sphere_oracle_3.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesher/Sphere_oracle_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesher/Standard_criteria.h b/thirdparty/CGAL/include/CGAL/Surface_mesher/Standard_criteria.h index 8935af2a..f597f5f3 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesher/Standard_criteria.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesher/Standard_criteria.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesher/Surface_mesher.h b/thirdparty/CGAL/include/CGAL/Surface_mesher/Surface_mesher.h index e3de4041..3398de3b 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesher/Surface_mesher.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesher/Surface_mesher.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesher/Surface_mesher_edges_level.h b/thirdparty/CGAL/include/CGAL/Surface_mesher/Surface_mesher_edges_level.h index 9c4eceba..1c986308 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesher/Surface_mesher_edges_level.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesher/Surface_mesher_edges_level.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesher/Surface_mesher_edges_level_visitor.h b/thirdparty/CGAL/include/CGAL/Surface_mesher/Surface_mesher_edges_level_visitor.h index ce58225a..68f73fbf 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesher/Surface_mesher_edges_level_visitor.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesher/Surface_mesher_edges_level_visitor.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesher/Surface_mesher_manifold.h b/thirdparty/CGAL/include/CGAL/Surface_mesher/Surface_mesher_manifold.h index b873ece7..b8eb6185 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesher/Surface_mesher_manifold.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesher/Surface_mesher_manifold.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesher/Surface_mesher_regular_edges.h b/thirdparty/CGAL/include/CGAL/Surface_mesher/Surface_mesher_regular_edges.h index cc64fee9..4321faab 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesher/Surface_mesher_regular_edges.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesher/Surface_mesher_regular_edges.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesher/Surface_mesher_visitor.h b/thirdparty/CGAL/include/CGAL/Surface_mesher/Surface_mesher_visitor.h index 87a2cbb3..a4ab457d 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesher/Surface_mesher_visitor.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesher/Surface_mesher_visitor.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesher/Types_generators.h b/thirdparty/CGAL/include/CGAL/Surface_mesher/Types_generators.h index dc4c6a33..169a91b1 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesher/Types_generators.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesher/Types_generators.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesher/Verbose_flag.h b/thirdparty/CGAL/include/CGAL/Surface_mesher/Verbose_flag.h index 5a617795..21980f59 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesher/Verbose_flag.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesher/Verbose_flag.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesher/Vertices_on_the_same_psc_element_criterion.h b/thirdparty/CGAL/include/CGAL/Surface_mesher/Vertices_on_the_same_psc_element_criterion.h index dfcbc4f4..66fe170e 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesher/Vertices_on_the_same_psc_element_criterion.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesher/Vertices_on_the_same_psc_element_criterion.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesher/Vertices_on_the_same_surface_criterion.h b/thirdparty/CGAL/include/CGAL/Surface_mesher/Vertices_on_the_same_surface_criterion.h index df2e7f4e..22c481bd 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesher/Vertices_on_the_same_surface_criterion.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesher/Vertices_on_the_same_surface_criterion.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_mesher_generator.h b/thirdparty/CGAL/include/CGAL/Surface_mesher_generator.h index e6146ef0..3773f4dc 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_mesher_generator.h +++ b/thirdparty/CGAL/include/CGAL/Surface_mesher_generator.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_sweep_2.h b/thirdparty/CGAL/include/CGAL/Surface_sweep_2.h index 52f0dcc5..11860ae4 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_sweep_2.h +++ b/thirdparty/CGAL/include/CGAL/Surface_sweep_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Arr_basic_insertion_traits_2.h b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Arr_basic_insertion_traits_2.h index 670583fe..5f7c5e0f 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Arr_basic_insertion_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Arr_basic_insertion_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Arr_batched_pl_ss_visitor.h b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Arr_batched_pl_ss_visitor.h index d4e967e6..73faccc9 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Arr_batched_pl_ss_visitor.h +++ b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Arr_batched_pl_ss_visitor.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Arr_construction_event.h b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Arr_construction_event.h index d4236fed..3f8a181e 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Arr_construction_event.h +++ b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Arr_construction_event.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Arr_construction_event_base.h b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Arr_construction_event_base.h index 27d1acb9..2059948a 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Arr_construction_event_base.h +++ b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Arr_construction_event_base.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Arr_construction_ss_visitor.h b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Arr_construction_ss_visitor.h index 4661a8a7..4e6e62a5 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Arr_construction_ss_visitor.h +++ b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Arr_construction_ss_visitor.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Arr_construction_subcurve.h b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Arr_construction_subcurve.h index 2d58370f..26b6d5cd 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Arr_construction_subcurve.h +++ b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Arr_construction_subcurve.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Arr_default_overlay_traits_base.h b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Arr_default_overlay_traits_base.h index 06c5f5fd..deb33489 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Arr_default_overlay_traits_base.h +++ b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Arr_default_overlay_traits_base.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Arr_insertion_ss_visitor.h b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Arr_insertion_ss_visitor.h index 6e931eb9..f05c207f 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Arr_insertion_ss_visitor.h +++ b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Arr_insertion_ss_visitor.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Arr_insertion_traits_2.h b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Arr_insertion_traits_2.h index 1bc779af..69f49343 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Arr_insertion_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Arr_insertion_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Arr_no_intersection_insertion_ss_visitor.h b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Arr_no_intersection_insertion_ss_visitor.h index 798f15f6..10fae0d6 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Arr_no_intersection_insertion_ss_visitor.h +++ b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Arr_no_intersection_insertion_ss_visitor.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Arr_overlay_event.h b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Arr_overlay_event.h index 6aad2664..97d1e9b1 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Arr_overlay_event.h +++ b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Arr_overlay_event.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Arr_overlay_ss_visitor.h b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Arr_overlay_ss_visitor.h index 643eab3b..a66fbc88 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Arr_overlay_ss_visitor.h +++ b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Arr_overlay_ss_visitor.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Arr_overlay_ss_visitor : Halfedge_map; typedef std::pair Handle_info; - typedef boost::unordered_map + typedef std::unordered_map Vertex_map; // Side categoties: diff --git a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Arr_overlay_subcurve.h b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Arr_overlay_subcurve.h index 99219177..6cc82b12 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Arr_overlay_subcurve.h +++ b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Arr_overlay_subcurve.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Arr_overlay_traits_2.h b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Arr_overlay_traits_2.h index 4cf78995..8c7ad837 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Arr_overlay_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Arr_overlay_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Arr_vert_decomp_ss_visitor.h b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Arr_vert_decomp_ss_visitor.h index 92549f5b..6cf282ae 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Arr_vert_decomp_ss_visitor.h +++ b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Arr_vert_decomp_ss_visitor.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Curve_comparer.h b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Curve_comparer.h index ba9dfdcc..820aee7e 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Curve_comparer.h +++ b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Curve_comparer.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Default_event.h b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Default_event.h index 7b3bc6b2..121678fe 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Default_event.h +++ b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Default_event.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Default_event_base.h b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Default_event_base.h index 6db8bdf6..3af0bae3 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Default_event_base.h +++ b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Default_event_base.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Default_subcurve.h b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Default_subcurve.h index ba79a09e..da3cf759 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Default_subcurve.h +++ b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Default_subcurve.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Default_visitor.h b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Default_visitor.h index 5f07415d..2d4e8609 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Default_visitor.h +++ b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Default_visitor.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Default_visitor_base.h b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Default_visitor_base.h index efa23944..d73cdc36 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Default_visitor_base.h +++ b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Default_visitor_base.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Do_interior_intersect_visitor.h b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Do_interior_intersect_visitor.h index 93aa8547..083e2605 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Do_interior_intersect_visitor.h +++ b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Do_interior_intersect_visitor.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Event_comparer.h b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Event_comparer.h index f9dd4a5f..6eb0cac9 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Event_comparer.h +++ b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Event_comparer.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Intersection_points_visitor.h b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Intersection_points_visitor.h index 8f4f5a63..4357ef21 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Intersection_points_visitor.h +++ b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Intersection_points_visitor.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/No_intersection_surface_sweep_2_impl.h b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/No_intersection_surface_sweep_2_impl.h index c4af90ca..eed3f358 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/No_intersection_surface_sweep_2_impl.h +++ b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/No_intersection_surface_sweep_2_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/No_overlap_event.h b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/No_overlap_event.h index 8c2ea792..2333ce8c 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/No_overlap_event.h +++ b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/No_overlap_event.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/No_overlap_event_base.h b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/No_overlap_event_base.h index 62647baa..ad8daa77 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/No_overlap_event_base.h +++ b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/No_overlap_event_base.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/No_overlap_subcurve.h b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/No_overlap_subcurve.h index 770a513b..bd0030db 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/No_overlap_subcurve.h +++ b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/No_overlap_subcurve.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Random_access_output_iterator.h b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Random_access_output_iterator.h index 7c33f7a1..c9d0473f 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Random_access_output_iterator.h +++ b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Random_access_output_iterator.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Subcurves_visitor.h b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Subcurves_visitor.h index 2e1fb02f..bc83332f 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Subcurves_visitor.h +++ b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Subcurves_visitor.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Surface_sweep_2_debug.h b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Surface_sweep_2_debug.h index 617552bc..d2902d1c 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Surface_sweep_2_debug.h +++ b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Surface_sweep_2_debug.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Surface_sweep_2_impl.h b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Surface_sweep_2_impl.h index a22ef26c..f89b79ab 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Surface_sweep_2_impl.h +++ b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Surface_sweep_2_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Surface_sweep_2_utils.h b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Surface_sweep_2_utils.h index 0245ee34..eec8489a 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Surface_sweep_2_utils.h +++ b/thirdparty/CGAL/include/CGAL/Surface_sweep_2/Surface_sweep_2_utils.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Surface_sweep_2_algorithms.h b/thirdparty/CGAL/include/CGAL/Surface_sweep_2_algorithms.h index 52232551..f30757fb 100644 --- a/thirdparty/CGAL/include/CGAL/Surface_sweep_2_algorithms.h +++ b/thirdparty/CGAL/include/CGAL/Surface_sweep_2_algorithms.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Sweep_line_2_algorithms.h b/thirdparty/CGAL/include/CGAL/Sweep_line_2_algorithms.h index c75c2561..4886e275 100644 --- a/thirdparty/CGAL/include/CGAL/Sweep_line_2_algorithms.h +++ b/thirdparty/CGAL/include/CGAL/Sweep_line_2_algorithms.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/TDS_2/internal/Edge_hash_function.h b/thirdparty/CGAL/include/CGAL/TDS_2/internal/Edge_hash_function.h index 5a41ad6b..c773271d 100644 --- a/thirdparty/CGAL/include/CGAL/TDS_2/internal/Edge_hash_function.h +++ b/thirdparty/CGAL/include/CGAL/TDS_2/internal/Edge_hash_function.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/TDS_2/internal/edge_list.h b/thirdparty/CGAL/include/CGAL/TDS_2/internal/edge_list.h index fa84d3fa..c527a809 100644 --- a/thirdparty/CGAL/include/CGAL/TDS_2/internal/edge_list.h +++ b/thirdparty/CGAL/include/CGAL/TDS_2/internal/edge_list.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/TDS_3/internal/Dummy_tds_3.h b/thirdparty/CGAL/include/CGAL/TDS_3/internal/Dummy_tds_3.h index 64582fb2..312fe545 100644 --- a/thirdparty/CGAL/include/CGAL/TDS_3/internal/Dummy_tds_3.h +++ b/thirdparty/CGAL/include/CGAL/TDS_3/internal/Dummy_tds_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/TDS_3/internal/Triangulation_ds_circulators_3.h b/thirdparty/CGAL/include/CGAL/TDS_3/internal/Triangulation_ds_circulators_3.h index 7ab544f6..70ccdc49 100644 --- a/thirdparty/CGAL/include/CGAL/TDS_3/internal/Triangulation_ds_circulators_3.h +++ b/thirdparty/CGAL/include/CGAL/TDS_3/internal/Triangulation_ds_circulators_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/TDS_3/internal/Triangulation_ds_iterators_3.h b/thirdparty/CGAL/include/CGAL/TDS_3/internal/Triangulation_ds_iterators_3.h index 2763b0fe..b8d5a618 100644 --- a/thirdparty/CGAL/include/CGAL/TDS_3/internal/Triangulation_ds_iterators_3.h +++ b/thirdparty/CGAL/include/CGAL/TDS_3/internal/Triangulation_ds_iterators_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/TDS_full_cell_default_storage_policy.h b/thirdparty/CGAL/include/CGAL/TDS_full_cell_default_storage_policy.h index 8ed218e2..d8aa410e 100644 --- a/thirdparty/CGAL/include/CGAL/TDS_full_cell_default_storage_policy.h +++ b/thirdparty/CGAL/include/CGAL/TDS_full_cell_default_storage_policy.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/TDS_full_cell_mirror_storage_policy.h b/thirdparty/CGAL/include/CGAL/TDS_full_cell_mirror_storage_policy.h index 9495a444..e0d1885a 100644 --- a/thirdparty/CGAL/include/CGAL/TDS_full_cell_mirror_storage_policy.h +++ b/thirdparty/CGAL/include/CGAL/TDS_full_cell_mirror_storage_policy.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Tetrahedral_remeshing/Remeshing_cell_base_3.h b/thirdparty/CGAL/include/CGAL/Tetrahedral_remeshing/Remeshing_cell_base_3.h index c26e9563..252afd42 100644 --- a/thirdparty/CGAL/include/CGAL/Tetrahedral_remeshing/Remeshing_cell_base_3.h +++ b/thirdparty/CGAL/include/CGAL/Tetrahedral_remeshing/Remeshing_cell_base_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Tetrahedral_remeshing/Remeshing_triangulation_3.h b/thirdparty/CGAL/include/CGAL/Tetrahedral_remeshing/Remeshing_triangulation_3.h index 4fe91bd6..952aeee7 100644 --- a/thirdparty/CGAL/include/CGAL/Tetrahedral_remeshing/Remeshing_triangulation_3.h +++ b/thirdparty/CGAL/include/CGAL/Tetrahedral_remeshing/Remeshing_triangulation_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Tetrahedral_remeshing/Remeshing_vertex_base_3.h b/thirdparty/CGAL/include/CGAL/Tetrahedral_remeshing/Remeshing_vertex_base_3.h index ceea6d97..60450d23 100644 --- a/thirdparty/CGAL/include/CGAL/Tetrahedral_remeshing/Remeshing_vertex_base_3.h +++ b/thirdparty/CGAL/include/CGAL/Tetrahedral_remeshing/Remeshing_vertex_base_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Tetrahedral_remeshing/Sizing_field.h b/thirdparty/CGAL/include/CGAL/Tetrahedral_remeshing/Sizing_field.h index b2f6cbae..ea0fd7f0 100644 --- a/thirdparty/CGAL/include/CGAL/Tetrahedral_remeshing/Sizing_field.h +++ b/thirdparty/CGAL/include/CGAL/Tetrahedral_remeshing/Sizing_field.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Tetrahedral_remeshing/Uniform_sizing_field.h b/thirdparty/CGAL/include/CGAL/Tetrahedral_remeshing/Uniform_sizing_field.h index ea4d45fb..2727559e 100644 --- a/thirdparty/CGAL/include/CGAL/Tetrahedral_remeshing/Uniform_sizing_field.h +++ b/thirdparty/CGAL/include/CGAL/Tetrahedral_remeshing/Uniform_sizing_field.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Tetrahedral_remeshing/internal/FMLS.h b/thirdparty/CGAL/include/CGAL/Tetrahedral_remeshing/internal/FMLS.h index f5943d1b..9844ba75 100644 --- a/thirdparty/CGAL/include/CGAL/Tetrahedral_remeshing/internal/FMLS.h +++ b/thirdparty/CGAL/include/CGAL/Tetrahedral_remeshing/internal/FMLS.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ void createMLSSurfaces(Subdomain__FMLS& subdomain_FMLS, 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 --git a/thirdparty/CGAL/include/CGAL/Tetrahedral_remeshing/internal/collapse_short_edges.h b/thirdparty/CGAL/include/CGAL/Tetrahedral_remeshing/internal/collapse_short_edges.h index f69e9090..7f01b1e1 100644 --- a/thirdparty/CGAL/include/CGAL/Tetrahedral_remeshing/internal/collapse_short_edges.h +++ b/thirdparty/CGAL/include/CGAL/Tetrahedral_remeshing/internal/collapse_short_edges.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class CollapseTriangulation 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 @@ bool collapse_preserves_surface_star(const typename C3t3::Edge& edge, 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 @@ bool are_edge_lengths_valid(const typename C3t3::Edge& edge, 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 @@ collapse(const typename C3t3::Cell_handle ch, 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 @@ bool is_cells_set_manifold(const C3t3&, 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 @@ bool is_cells_set_manifold(const C3t3&, 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 @@ bool is_cells_set_manifold(const C3t3&, } } - boost::unordered_map edges; + std::unordered_map> edges; for (const auto& fvv : facets) { if (fvv.second != 1) @@ -1013,7 +1014,7 @@ bool is_cells_set_manifold(const C3t3&, 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 --git a/thirdparty/CGAL/include/CGAL/Tetrahedral_remeshing/internal/compute_c3t3_statistics.h b/thirdparty/CGAL/include/CGAL/Tetrahedral_remeshing/internal/compute_c3t3_statistics.h index a4bd9642..0c6e040d 100644 --- a/thirdparty/CGAL/include/CGAL/Tetrahedral_remeshing/internal/compute_c3t3_statistics.h +++ b/thirdparty/CGAL/include/CGAL/Tetrahedral_remeshing/internal/compute_c3t3_statistics.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ void compute_statistics(const Triangulation& tr, 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 @@ void compute_statistics(const Triangulation& tr, = 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 @@ void compute_statistics(const Triangulation& tr, 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 --git a/thirdparty/CGAL/include/CGAL/Tetrahedral_remeshing/internal/flip_edges.h b/thirdparty/CGAL/include/CGAL/Tetrahedral_remeshing/internal/flip_edges.h index 4287b470..1622235e 100644 --- a/thirdparty/CGAL/include/CGAL/Tetrahedral_remeshing/internal/flip_edges.h +++ b/thirdparty/CGAL/include/CGAL/Tetrahedral_remeshing/internal/flip_edges.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ Sliver_removal_result flip_3_to_2(typename C3t3::Edge& edge, //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 @@ Sliver_removal_result flip_n_to_m(C3t3& c3t3, 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 @@ Sliver_removal_result flip_n_to_m(C3t3& c3t3, } 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 @@ Sliver_removal_result find_best_flip(typename C3t3::Edge& edge, 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 @@ void flip_edges(C3T3& c3t3, //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 --git a/thirdparty/CGAL/include/CGAL/Tetrahedral_remeshing/internal/smooth_vertices.h b/thirdparty/CGAL/include/CGAL/Tetrahedral_remeshing/internal/smooth_vertices.h index 0a9faf28..0b9b3874 100644 --- a/thirdparty/CGAL/include/CGAL/Tetrahedral_remeshing/internal/smooth_vertices.h +++ b/thirdparty/CGAL/include/CGAL/Tetrahedral_remeshing/internal/smooth_vertices.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Tetrahedral_remeshing_smoother 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 @@ class Tetrahedral_remeshing_smoother 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 @@ class Tetrahedral_remeshing_smoother 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 @@ class Tetrahedral_remeshing_smoother #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 @@ class Tetrahedral_remeshing_smoother 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 @@ class Tetrahedral_remeshing_smoother 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 --git a/thirdparty/CGAL/include/CGAL/Tetrahedral_remeshing/internal/split_long_edges.h b/thirdparty/CGAL/include/CGAL/Tetrahedral_remeshing/internal/split_long_edges.h index 104b9042..17ce2fe1 100644 --- a/thirdparty/CGAL/include/CGAL/Tetrahedral_remeshing/internal/split_long_edges.h +++ b/thirdparty/CGAL/include/CGAL/Tetrahedral_remeshing/internal/split_long_edges.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ typename C3t3::Vertex_handle split_edge(const typename C3t3::Edge& e, } 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 --git a/thirdparty/CGAL/include/CGAL/Tetrahedral_remeshing/internal/tetrahedral_adaptive_remeshing_impl.h b/thirdparty/CGAL/include/CGAL/Tetrahedral_remeshing/internal/tetrahedral_adaptive_remeshing_impl.h index 924b71f0..d6e612ad 100644 --- a/thirdparty/CGAL/include/CGAL/Tetrahedral_remeshing/internal/tetrahedral_adaptive_remeshing_impl.h +++ b/thirdparty/CGAL/include/CGAL/Tetrahedral_remeshing/internal/tetrahedral_adaptive_remeshing_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Tetrahedral_remeshing/internal/tetrahedral_remeshing_helpers.h b/thirdparty/CGAL/include/CGAL/Tetrahedral_remeshing/internal/tetrahedral_remeshing_helpers.h index bcf527bc..1be03021 100644 --- a/thirdparty/CGAL/include/CGAL/Tetrahedral_remeshing/internal/tetrahedral_remeshing_helpers.h +++ b/thirdparty/CGAL/include/CGAL/Tetrahedral_remeshing/internal/tetrahedral_remeshing_helpers.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ std::size_t nb_incident_subdomains(const typename C3t3::Vertex_handle v, { 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 @@ std::size_t nb_incident_subdomains(const typename C3t3::Edge& e, { 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 @@ std::size_t nb_incident_surface_patches(const typename C3t3::Edge& e, { 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 @@ std::size_t nb_incident_complex_edges(const typename C3t3::Vertex_handle v, 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 @@ void dump_cells_off(const CellRange& cells, const Tr& /*tr*/, const char* filena Bimap_t vertices; int index = 0; - boost::unordered_set > facets; + std::unordered_set, boost::hash> > facets; for (Cell_handle c : cells) { diff --git a/thirdparty/CGAL/include/CGAL/Tetrahedral_remeshing/tetrahedral_remeshing_io.h b/thirdparty/CGAL/include/CGAL/Tetrahedral_remeshing/tetrahedral_remeshing_io.h index b11b105a..df2487b8 100644 --- a/thirdparty/CGAL/include/CGAL/Tetrahedral_remeshing/tetrahedral_remeshing_io.h +++ b/thirdparty/CGAL/include/CGAL/Tetrahedral_remeshing/tetrahedral_remeshing_io.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Tetrahedron_3.h b/thirdparty/CGAL/include/CGAL/Tetrahedron_3.h index 67d33bb7..886f02bb 100644 --- a/thirdparty/CGAL/include/CGAL/Tetrahedron_3.h +++ b/thirdparty/CGAL/include/CGAL/Tetrahedron_3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Three/Buffer_objects.h b/thirdparty/CGAL/include/CGAL/Three/Buffer_objects.h index b339aee3..47efbfcf 100644 --- a/thirdparty/CGAL/include/CGAL/Three/Buffer_objects.h +++ b/thirdparty/CGAL/include/CGAL/Three/Buffer_objects.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Three/Edge_container.h b/thirdparty/CGAL/include/CGAL/Three/Edge_container.h index 6e85cf4f..4025beba 100644 --- a/thirdparty/CGAL/include/CGAL/Three/Edge_container.h +++ b/thirdparty/CGAL/include/CGAL/Three/Edge_container.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Three/Point_container.h b/thirdparty/CGAL/include/CGAL/Three/Point_container.h index 71f0070f..5ebc4739 100644 --- a/thirdparty/CGAL/include/CGAL/Three/Point_container.h +++ b/thirdparty/CGAL/include/CGAL/Three/Point_container.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Three/Polyhedron_demo_io_plugin_interface.h b/thirdparty/CGAL/include/CGAL/Three/Polyhedron_demo_io_plugin_interface.h index 318b024c..dd16cc3c 100644 --- a/thirdparty/CGAL/include/CGAL/Three/Polyhedron_demo_io_plugin_interface.h +++ b/thirdparty/CGAL/include/CGAL/Three/Polyhedron_demo_io_plugin_interface.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Three/Polyhedron_demo_plugin_helper.h b/thirdparty/CGAL/include/CGAL/Three/Polyhedron_demo_plugin_helper.h index 8d8bf0bf..62b58fc7 100644 --- a/thirdparty/CGAL/include/CGAL/Three/Polyhedron_demo_plugin_helper.h +++ b/thirdparty/CGAL/include/CGAL/Three/Polyhedron_demo_plugin_helper.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Three/Polyhedron_demo_plugin_interface.h b/thirdparty/CGAL/include/CGAL/Three/Polyhedron_demo_plugin_interface.h index c5e29542..02cd7759 100644 --- a/thirdparty/CGAL/include/CGAL/Three/Polyhedron_demo_plugin_interface.h +++ b/thirdparty/CGAL/include/CGAL/Three/Polyhedron_demo_plugin_interface.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Three/Primitive_container.h b/thirdparty/CGAL/include/CGAL/Three/Primitive_container.h index c5174f85..acfeda9f 100644 --- a/thirdparty/CGAL/include/CGAL/Three/Primitive_container.h +++ b/thirdparty/CGAL/include/CGAL/Three/Primitive_container.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Three/Scene_draw_interface.h b/thirdparty/CGAL/include/CGAL/Three/Scene_draw_interface.h index e9eec653..cbf618e6 100644 --- a/thirdparty/CGAL/include/CGAL/Three/Scene_draw_interface.h +++ b/thirdparty/CGAL/include/CGAL/Three/Scene_draw_interface.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Three/Scene_group_item.h b/thirdparty/CGAL/include/CGAL/Three/Scene_group_item.h index c7f986d7..cc492e7a 100644 --- a/thirdparty/CGAL/include/CGAL/Three/Scene_group_item.h +++ b/thirdparty/CGAL/include/CGAL/Three/Scene_group_item.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Three/Scene_interface.h b/thirdparty/CGAL/include/CGAL/Three/Scene_interface.h index 7aea4f57..94b137c4 100644 --- a/thirdparty/CGAL/include/CGAL/Three/Scene_interface.h +++ b/thirdparty/CGAL/include/CGAL/Three/Scene_interface.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Three/Scene_item.h b/thirdparty/CGAL/include/CGAL/Three/Scene_item.h index 1eebbb21..a7913fb7 100644 --- a/thirdparty/CGAL/include/CGAL/Three/Scene_item.h +++ b/thirdparty/CGAL/include/CGAL/Three/Scene_item.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Three/Scene_item_config.h b/thirdparty/CGAL/include/CGAL/Three/Scene_item_config.h index 17c21c58..b32e9544 100644 --- a/thirdparty/CGAL/include/CGAL/Three/Scene_item_config.h +++ b/thirdparty/CGAL/include/CGAL/Three/Scene_item_config.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Three/Scene_item_rendering_helper.h b/thirdparty/CGAL/include/CGAL/Three/Scene_item_rendering_helper.h index dfede190..29a8065e 100644 --- a/thirdparty/CGAL/include/CGAL/Three/Scene_item_rendering_helper.h +++ b/thirdparty/CGAL/include/CGAL/Three/Scene_item_rendering_helper.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Three/Scene_item_with_properties.h b/thirdparty/CGAL/include/CGAL/Three/Scene_item_with_properties.h index 35f5ac82..47ab154a 100644 --- a/thirdparty/CGAL/include/CGAL/Three/Scene_item_with_properties.h +++ b/thirdparty/CGAL/include/CGAL/Three/Scene_item_with_properties.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Three/Scene_print_item_interface.h b/thirdparty/CGAL/include/CGAL/Three/Scene_print_item_interface.h index a59e858b..a35d93de 100644 --- a/thirdparty/CGAL/include/CGAL/Three/Scene_print_item_interface.h +++ b/thirdparty/CGAL/include/CGAL/Three/Scene_print_item_interface.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Three/Scene_transparent_interface.h b/thirdparty/CGAL/include/CGAL/Three/Scene_transparent_interface.h index 60d018d7..abdfbf80 100644 --- a/thirdparty/CGAL/include/CGAL/Three/Scene_transparent_interface.h +++ b/thirdparty/CGAL/include/CGAL/Three/Scene_transparent_interface.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Three/Scene_zoomable_item_interface.h b/thirdparty/CGAL/include/CGAL/Three/Scene_zoomable_item_interface.h index 6a085c81..4c7b3ea5 100644 --- a/thirdparty/CGAL/include/CGAL/Three/Scene_zoomable_item_interface.h +++ b/thirdparty/CGAL/include/CGAL/Three/Scene_zoomable_item_interface.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Three/TextRenderer.h b/thirdparty/CGAL/include/CGAL/Three/TextRenderer.h index 87b3e3e1..f5e41d68 100644 --- a/thirdparty/CGAL/include/CGAL/Three/TextRenderer.h +++ b/thirdparty/CGAL/include/CGAL/Three/TextRenderer.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Three/Three.h b/thirdparty/CGAL/include/CGAL/Three/Three.h index 13f3ec42..23a11afd 100644 --- a/thirdparty/CGAL/include/CGAL/Three/Three.h +++ b/thirdparty/CGAL/include/CGAL/Three/Three.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Three/Triangle_container.h b/thirdparty/CGAL/include/CGAL/Three/Triangle_container.h index 6237b6da..dc4a542b 100644 --- a/thirdparty/CGAL/include/CGAL/Three/Triangle_container.h +++ b/thirdparty/CGAL/include/CGAL/Three/Triangle_container.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Three/Viewer_config.h b/thirdparty/CGAL/include/CGAL/Three/Viewer_config.h index 76d1372e..35839c9b 100644 --- a/thirdparty/CGAL/include/CGAL/Three/Viewer_config.h +++ b/thirdparty/CGAL/include/CGAL/Three/Viewer_config.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Three/Viewer_interface.h b/thirdparty/CGAL/include/CGAL/Three/Viewer_interface.h index c49990de..ec79666a 100644 --- a/thirdparty/CGAL/include/CGAL/Three/Viewer_interface.h +++ b/thirdparty/CGAL/include/CGAL/Three/Viewer_interface.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Three/exceptions.h b/thirdparty/CGAL/include/CGAL/Three/exceptions.h index ab28dcec..3c6b8a1c 100644 --- a/thirdparty/CGAL/include/CGAL/Three/exceptions.h +++ b/thirdparty/CGAL/include/CGAL/Three/exceptions.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Threetuple.h b/thirdparty/CGAL/include/CGAL/Threetuple.h index a7f28a1f..d4cd075a 100644 --- a/thirdparty/CGAL/include/CGAL/Threetuple.h +++ b/thirdparty/CGAL/include/CGAL/Threetuple.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Time_stamper.h b/thirdparty/CGAL/include/CGAL/Time_stamper.h index f2db1f2e..ccc1e225 100644 --- a/thirdparty/CGAL/include/CGAL/Time_stamper.h +++ b/thirdparty/CGAL/include/CGAL/Time_stamper.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Timer.h b/thirdparty/CGAL/include/CGAL/Timer.h index 7ac34040..5ac5e525 100644 --- a/thirdparty/CGAL/include/CGAL/Timer.h +++ b/thirdparty/CGAL/include/CGAL/Timer.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Timer_impl.h b/thirdparty/CGAL/include/CGAL/Timer_impl.h index 518a341d..43d2e36d 100644 --- a/thirdparty/CGAL/include/CGAL/Timer_impl.h +++ b/thirdparty/CGAL/include/CGAL/Timer_impl.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Tools/chained_map.h b/thirdparty/CGAL/include/CGAL/Tools/chained_map.h deleted file mode 100644 index 83361701..00000000 --- a/thirdparty/CGAL/include/CGAL/Tools/chained_map.h +++ /dev/null @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/Transform_iterator.h b/thirdparty/CGAL/include/CGAL/Transform_iterator.h index 151d6656..dfda8f91 100644 --- a/thirdparty/CGAL/include/CGAL/Transform_iterator.h +++ b/thirdparty/CGAL/include/CGAL/Transform_iterator.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Tree_assertions.h b/thirdparty/CGAL/include/CGAL/Tree_assertions.h index 6ef651c4..5b82cfcf 100644 --- a/thirdparty/CGAL/include/CGAL/Tree_assertions.h +++ b/thirdparty/CGAL/include/CGAL/Tree_assertions.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Tree_base.h b/thirdparty/CGAL/include/CGAL/Tree_base.h index 748b93c0..803ef6d1 100644 --- a/thirdparty/CGAL/include/CGAL/Tree_base.h +++ b/thirdparty/CGAL/include/CGAL/Tree_base.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Tree_traits.h b/thirdparty/CGAL/include/CGAL/Tree_traits.h index 98e0ce58..4968f2f4 100644 --- a/thirdparty/CGAL/include/CGAL/Tree_traits.h +++ b/thirdparty/CGAL/include/CGAL/Tree_traits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangle_2.h b/thirdparty/CGAL/include/CGAL/Triangle_2.h index c25a7e6f..b9804559 100644 --- a/thirdparty/CGAL/include/CGAL/Triangle_2.h +++ b/thirdparty/CGAL/include/CGAL/Triangle_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangle_3.h b/thirdparty/CGAL/include/CGAL/Triangle_3.h index 9c49464b..a07c5f95 100644 --- a/thirdparty/CGAL/include/CGAL/Triangle_3.h +++ b/thirdparty/CGAL/include/CGAL/Triangle_3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangle_accessor_3.h b/thirdparty/CGAL/include/CGAL/Triangle_accessor_3.h index 458cf8aa..79fddf89 100644 --- a/thirdparty/CGAL/include/CGAL/Triangle_accessor_3.h +++ b/thirdparty/CGAL/include/CGAL/Triangle_accessor_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangular_expansion_visibility_2.h b/thirdparty/CGAL/include/CGAL/Triangular_expansion_visibility_2.h index 348667ff..fa0fdf34 100644 --- a/thirdparty/CGAL/include/CGAL/Triangular_expansion_visibility_2.h +++ b/thirdparty/CGAL/include/CGAL/Triangular_expansion_visibility_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangular_field_2.h b/thirdparty/CGAL/include/CGAL/Triangular_field_2.h index a2c7149d..69108bde 100644 --- a/thirdparty/CGAL/include/CGAL/Triangular_field_2.h +++ b/thirdparty/CGAL/include/CGAL/Triangular_field_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangulated_mixed_complex_observer_3.h b/thirdparty/CGAL/include/CGAL/Triangulated_mixed_complex_observer_3.h index 299ad528..99f85ba4 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulated_mixed_complex_observer_3.h +++ b/thirdparty/CGAL/include/CGAL/Triangulated_mixed_complex_observer_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangulation.h b/thirdparty/CGAL/include/CGAL/Triangulation.h index 646fef96..2c8bd912 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangulation/internal/Combination_enumerator.h b/thirdparty/CGAL/include/CGAL/Triangulation/internal/Combination_enumerator.h index 12ae35d4..4999a4ce 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation/internal/Combination_enumerator.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation/internal/Combination_enumerator.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangulation/internal/Dummy_TDS.h b/thirdparty/CGAL/include/CGAL/Triangulation/internal/Dummy_TDS.h index ac41c6ac..4da24b67 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation/internal/Dummy_TDS.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation/internal/Dummy_TDS.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangulation/internal/Static_or_dynamic_array.h b/thirdparty/CGAL/include/CGAL/Triangulation/internal/Static_or_dynamic_array.h index 9d9c0b73..3a8393e9 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation/internal/Static_or_dynamic_array.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation/internal/Static_or_dynamic_array.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangulation/internal/Triangulation_ds_iterators.h b/thirdparty/CGAL/include/CGAL/Triangulation/internal/Triangulation_ds_iterators.h index 3f41c0b5..8ca611f7 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation/internal/Triangulation_ds_iterators.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation/internal/Triangulation_ds_iterators.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangulation/internal/utilities.h b/thirdparty/CGAL/include/CGAL/Triangulation/internal/utilities.h index c9751300..48c0b566 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation/internal/utilities.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation/internal/utilities.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangulation_2.h b/thirdparty/CGAL/include/CGAL/Triangulation_2.h index d4d296a5..7878240c 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation_2.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangulation_2/insert_constraints.h b/thirdparty/CGAL/include/CGAL/Triangulation_2/insert_constraints.h index e12e5a0f..0b4fa59c 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation_2/insert_constraints.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation_2/insert_constraints.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangulation_2/internal/CTP2_subconstraint_graph.h b/thirdparty/CGAL/include/CGAL/Triangulation_2/internal/CTP2_subconstraint_graph.h index ecc3ae1a..54e936ea 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation_2/internal/CTP2_subconstraint_graph.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation_2/internal/CTP2_subconstraint_graph.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangulation_2/internal/Constraint_hierarchy_2.h b/thirdparty/CGAL/include/CGAL/Triangulation_2/internal/Constraint_hierarchy_2.h index 3d69f908..59bea6db 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation_2/internal/Constraint_hierarchy_2.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation_2/internal/Constraint_hierarchy_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangulation_2/internal/Polyline_constraint_hierarchy_2.h b/thirdparty/CGAL/include/CGAL/Triangulation_2/internal/Polyline_constraint_hierarchy_2.h index 7f77f67c..09326ea7 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation_2/internal/Polyline_constraint_hierarchy_2.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation_2/internal/Polyline_constraint_hierarchy_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangulation_2/internal/Triangulation_line_face_circulator_2.h b/thirdparty/CGAL/include/CGAL/Triangulation_2/internal/Triangulation_line_face_circulator_2.h index 66b67fee..0d7e57ec 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation_2/internal/Triangulation_line_face_circulator_2.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation_2/internal/Triangulation_line_face_circulator_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangulation_2_projection_traits_3.h b/thirdparty/CGAL/include/CGAL/Triangulation_2_projection_traits_3.h index 5dad9b1e..07d5051d 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation_2_projection_traits_3.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation_2_projection_traits_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangulation_2_to_lcc.h b/thirdparty/CGAL/include/CGAL/Triangulation_2_to_lcc.h index 56a3e25c..26887e90 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation_2_to_lcc.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation_2_to_lcc.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangulation_2_traits_3.h b/thirdparty/CGAL/include/CGAL/Triangulation_2_traits_3.h index 00d3195d..80da086b 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation_2_traits_3.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation_2_traits_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangulation_3.h b/thirdparty/CGAL/include/CGAL/Triangulation_3.h index af2e7e23..c204f17f 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation_3.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation_3.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ std::istream& operator>> (std::istream& is, Triangulation_3& tr) 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 @@ remove_3D(Vertex_handle v, VertexRemover& remover) } 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 @@ remove_3D(Vertex_handle v, VertexRemover& remover) } } } - outer_map.erase(oit); } tds().delete_vertex(v); tds().delete_cells(hole.begin(), hole.end()); @@ -5367,6 +5371,7 @@ remove_3D(Vertex_handle v, VertexRemover& remover, } 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 @@ remove_3D(Vertex_handle v, VertexRemover& remover, } } } - outer_map.erase(oit); } tds().delete_vertex(v); tds().delete_cells(inc_cells.begin(), inc_cells.end()); @@ -5670,6 +5674,7 @@ remove_3D(Vertex_handle v, VertexRemover& remover, OutputItCells fit) } 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 @@ remove_3D(Vertex_handle v, VertexRemover& remover, OutputItCells fit) } } } - outer_map.erase(oit); } tds().delete_vertex(v); tds().delete_cells(hole.begin(), hole.end()); @@ -6059,6 +6063,7 @@ move_if_no_collision(Vertex_handle v, const Point& p, } 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 @@ move_if_no_collision(Vertex_handle v, const Point& p, } } } - outer_map.erase(oit); } // fixing pointer @@ -6511,6 +6515,7 @@ move_if_no_collision_and_give_new_cells(Vertex_handle v, const Point& p, } 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 @@ move_if_no_collision_and_give_new_cells(Vertex_handle v, const Point& p, } } } - outer_map.erase(oit); } // fixing pointer @@ -6851,6 +6855,7 @@ _remove_cluster_3D(InputIterator first, InputIterator beyond, VertexRemover& rem } 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 @@ _remove_cluster_3D(InputIterator first, InputIterator beyond, VertexRemover& rem } } - outer_map.erase(oit); } this->tds().delete_cells(hole.begin(), hole.end()); diff --git a/thirdparty/CGAL/include/CGAL/Triangulation_3/internal/Delaunay_triangulation_hierarchy_3.h b/thirdparty/CGAL/include/CGAL/Triangulation_3/internal/Delaunay_triangulation_hierarchy_3.h index 1bf3b0ac..6679a3c0 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation_3/internal/Delaunay_triangulation_hierarchy_3.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation_3/internal/Delaunay_triangulation_hierarchy_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangulation_3/internal/Triangulation_segment_traverser_3_impl.h b/thirdparty/CGAL/include/CGAL/Triangulation_3/internal/Triangulation_segment_traverser_3_impl.h index 67962dd7..c580cecb 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation_3/internal/Triangulation_segment_traverser_3_impl.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation_3/internal/Triangulation_segment_traverser_3_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangulation_3_to_lcc.h b/thirdparty/CGAL/include/CGAL/Triangulation_3_to_lcc.h index 0a21a90e..973d72f2 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation_3_to_lcc.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation_3_to_lcc.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangulation_cell_base_3.h b/thirdparty/CGAL/include/CGAL/Triangulation_cell_base_3.h index 12aa4604..bbcf995b 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation_cell_base_3.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation_cell_base_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangulation_cell_base_with_info_3.h b/thirdparty/CGAL/include/CGAL/Triangulation_cell_base_with_info_3.h index 68f8ec36..4d8b3008 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation_cell_base_with_info_3.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation_cell_base_with_info_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangulation_conformer_2.h b/thirdparty/CGAL/include/CGAL/Triangulation_conformer_2.h index e2c8a6aa..48138c9a 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation_conformer_2.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation_conformer_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangulation_data_structure.h b/thirdparty/CGAL/include/CGAL/Triangulation_data_structure.h index 11e7a8e5..b7268c77 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation_data_structure.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation_data_structure.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangulation_data_structure_2.h b/thirdparty/CGAL/include/CGAL/Triangulation_data_structure_2.h index 85e59a30..1985c2b1 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation_data_structure_2.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation_data_structure_2.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/TDS_2/include/CGAL/Triangulation_data_structure_2.h $ -// $Id: Triangulation_data_structure_2.h cff3cdb 2021-08-12T10:23:57+02:00 Sébastien Loriot +// $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 // // @@ -400,7 +400,6 @@ class Triangulation_data_structure_2 Vertex_handle collapse_edge(Edge e) { - std::cout << "before collapse"<vertex(cw(i)); @@ -428,7 +427,6 @@ class Triangulation_data_structure_2 delete_face(fh); delete_face(nh); delete_vertex(wh); - std::cout << "after collapse"< vmap; - Unique_hash_map fmap; + Unique_hash_map vmap(Vertex_handle(), tds_src.number_of_vertices()); + Unique_hash_map fmap(Face_handle(), tds_src.number_of_faces()); // create vertices typename TDS_src::Vertex_iterator vit1 = tds_src.vertices_begin(); @@ -2120,8 +2118,8 @@ file_output( std::ostream& os, Vertex_handle v, bool skip_first) const else os << n << m << dimension(); if (n==0) return; - Unique_hash_map V; - Unique_hash_map F; + Unique_hash_map V(-1, number_of_vertices()); + Unique_hash_map F(-1, number_of_faces()); // first vertex @@ -2257,7 +2255,7 @@ vrml_output( std::ostream& os, Vertex_handle v, bool skip_infinite) const os << "\t\tcoord Coordinate {" << std::endl; os << "\t\t\tpoint [" << std::endl; - Unique_hash_map vmap; + Unique_hash_map vmap(-1, number_of_vertices()); Vertex_iterator vit; Face_iterator fit; diff --git a/thirdparty/CGAL/include/CGAL/Triangulation_data_structure_3.h b/thirdparty/CGAL/include/CGAL/Triangulation_data_structure_3.h index 3bb2ac65..7eeb5317 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation_data_structure_3.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation_data_structure_3.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/TDS_3/include/CGAL/Triangulation_data_structure_3.h $ -// $Id: Triangulation_data_structure_3.h 98e4718 2021-08-26T11:33:39+02:00 Sébastien Loriot +// $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 // // Author(s) : Monique Teillaud @@ -2001,7 +2001,7 @@ operator<<(std::ostream& os, const Triangulation_data_structure_3 &tds typedef typename Tds::Vertex_iterator Vertex_iterator; - Unique_hash_map V; + Unique_hash_map V(0, tds.number_of_vertices()); // outputs dimension and number of vertices size_type n = tds.number_of_vertices(); @@ -2589,7 +2589,7 @@ void Triangulation_data_structure_3:: print_cells(std::ostream& os, const Unique_hash_map &V ) const { - Unique_hash_map C; + Unique_hash_map C(0, number_of_cells()); std::size_t i = 0; switch ( dimension() ) { @@ -4053,8 +4053,8 @@ copy_tds(const TDS_src& tds, const int nn = (std::max)(0, dimension() + 1); // Initializes maps - Unique_hash_map< typename TDS_src::Vertex_handle,Vertex_handle > V; - Unique_hash_map< typename TDS_src::Cell_handle,Cell_handle > F; + Unique_hash_map< typename TDS_src::Vertex_handle,Vertex_handle > V(Vertex_handle(), tds.number_of_vertices()); + Unique_hash_map< typename TDS_src::Cell_handle,Cell_handle > F(Cell_handle(), tds.number_of_cells()); // Create the vertices. for (typename TDS_src::Vertex_iterator vit = tds.vertices_begin(); diff --git a/thirdparty/CGAL/include/CGAL/Triangulation_data_structure_using_list_2.h b/thirdparty/CGAL/include/CGAL/Triangulation_data_structure_using_list_2.h index 092fe313..ccf886c4 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation_data_structure_using_list_2.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation_data_structure_using_list_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangulation_default_data_structure_2.h b/thirdparty/CGAL/include/CGAL/Triangulation_default_data_structure_2.h index f7f7a5e8..f78059c4 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation_default_data_structure_2.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation_default_data_structure_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangulation_ds_cell_base_3.h b/thirdparty/CGAL/include/CGAL/Triangulation_ds_cell_base_3.h index b825e946..ea8579b3 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation_ds_cell_base_3.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation_ds_cell_base_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangulation_ds_circulators_2.h b/thirdparty/CGAL/include/CGAL/Triangulation_ds_circulators_2.h index 96d33059..ea006bdb 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation_ds_circulators_2.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation_ds_circulators_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangulation_ds_face_2.h b/thirdparty/CGAL/include/CGAL/Triangulation_ds_face_2.h index 458af800..eefed758 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation_ds_face_2.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation_ds_face_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangulation_ds_face_base_2.h b/thirdparty/CGAL/include/CGAL/Triangulation_ds_face_base_2.h index 43bffdeb..46dbc42e 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation_ds_face_base_2.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation_ds_face_base_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangulation_ds_full_cell.h b/thirdparty/CGAL/include/CGAL/Triangulation_ds_full_cell.h index 98a0bad9..0e2739a3 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation_ds_full_cell.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation_ds_full_cell.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangulation_ds_iterators_2.h b/thirdparty/CGAL/include/CGAL/Triangulation_ds_iterators_2.h index 171c44fb..533a17c6 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation_ds_iterators_2.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation_ds_iterators_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangulation_ds_vertex.h b/thirdparty/CGAL/include/CGAL/Triangulation_ds_vertex.h index 89f27e85..5257952b 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation_ds_vertex.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation_ds_vertex.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangulation_ds_vertex_2.h b/thirdparty/CGAL/include/CGAL/Triangulation_ds_vertex_2.h index 992ae306..6c7662a3 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation_ds_vertex_2.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation_ds_vertex_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangulation_ds_vertex_base_2.h b/thirdparty/CGAL/include/CGAL/Triangulation_ds_vertex_base_2.h index 65326463..d2c1db3f 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation_ds_vertex_base_2.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation_ds_vertex_base_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangulation_ds_vertex_base_3.h b/thirdparty/CGAL/include/CGAL/Triangulation_ds_vertex_base_3.h index 13f87d06..8425a4c3 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation_ds_vertex_base_3.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation_ds_vertex_base_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangulation_face.h b/thirdparty/CGAL/include/CGAL/Triangulation_face.h index 9a1e5d36..1d6fc156 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation_face.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation_face.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangulation_face_base_2.h b/thirdparty/CGAL/include/CGAL/Triangulation_face_base_2.h index 0beb95c3..2061eb15 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation_face_base_2.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation_face_base_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangulation_face_base_with_id_2.h b/thirdparty/CGAL/include/CGAL/Triangulation_face_base_with_id_2.h index 5fa13c5f..c30bfd38 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation_face_base_with_id_2.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation_face_base_with_id_2.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangulation_face_base_with_info_2.h b/thirdparty/CGAL/include/CGAL/Triangulation_face_base_with_info_2.h index 3bd512db..9db6d7e6 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation_face_base_with_info_2.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation_face_base_with_info_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangulation_full_cell.h b/thirdparty/CGAL/include/CGAL/Triangulation_full_cell.h index 2b84217f..06250ca9 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation_full_cell.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation_full_cell.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangulation_geom_traits_3.h b/thirdparty/CGAL/include/CGAL/Triangulation_geom_traits_3.h index 884e0aa3..913769a6 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation_geom_traits_3.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation_geom_traits_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangulation_hierarchy_2.h b/thirdparty/CGAL/include/CGAL/Triangulation_hierarchy_2.h index 80ec6413..7d568eb9 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation_hierarchy_2.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation_hierarchy_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangulation_hierarchy_3.h b/thirdparty/CGAL/include/CGAL/Triangulation_hierarchy_3.h index f61cd124..cf2dcb92 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation_hierarchy_3.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation_hierarchy_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangulation_hierarchy_vertex_base_2.h b/thirdparty/CGAL/include/CGAL/Triangulation_hierarchy_vertex_base_2.h index 38adf0f7..5f6ebcc6 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation_hierarchy_vertex_base_2.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation_hierarchy_vertex_base_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangulation_hierarchy_vertex_base_3.h b/thirdparty/CGAL/include/CGAL/Triangulation_hierarchy_vertex_base_3.h index ccdb5bb2..23054d4d 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation_hierarchy_vertex_base_3.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation_hierarchy_vertex_base_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangulation_incremental_builder_3.h b/thirdparty/CGAL/include/CGAL/Triangulation_incremental_builder_3.h index 77fa98a3..186d944b 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation_incremental_builder_3.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation_incremental_builder_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangulation_on_sphere_2.h b/thirdparty/CGAL/include/CGAL/Triangulation_on_sphere_2.h index 6c211d5e..80ee266a 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation_on_sphere_2.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation_on_sphere_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangulation_on_sphere_2/IO/OFF.h b/thirdparty/CGAL/include/CGAL/Triangulation_on_sphere_2/IO/OFF.h index 0af1012a..5350b3c7 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation_on_sphere_2/IO/OFF.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation_on_sphere_2/IO/OFF.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace IO { \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 @@ bool write_OFF(std::ostream& os, 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 @@ bool write_OFF(std::ostream& os, const CGAL::Triangulation_on_sphere_2& \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 --git a/thirdparty/CGAL/include/CGAL/Triangulation_on_sphere_2/internal/arc_on_sphere_2_subsampling.h b/thirdparty/CGAL/include/CGAL/Triangulation_on_sphere_2/internal/arc_on_sphere_2_subsampling.h index 3841b5f3..b6ab8e48 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation_on_sphere_2/internal/arc_on_sphere_2_subsampling.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation_on_sphere_2/internal/arc_on_sphere_2_subsampling.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangulation_on_sphere_2/internal/get_precision_bounds.h b/thirdparty/CGAL/include/CGAL/Triangulation_on_sphere_2/internal/get_precision_bounds.h index 8a5826ad..347d795b 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation_on_sphere_2/internal/get_precision_bounds.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation_on_sphere_2/internal/get_precision_bounds.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangulation_on_sphere_face_base_2.h b/thirdparty/CGAL/include/CGAL/Triangulation_on_sphere_face_base_2.h index a3e6d942..2a10a1d1 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation_on_sphere_face_base_2.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation_on_sphere_face_base_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangulation_on_sphere_vertex_base_2.h b/thirdparty/CGAL/include/CGAL/Triangulation_on_sphere_vertex_base_2.h index 95726f38..4d6b2181 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation_on_sphere_vertex_base_2.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation_on_sphere_vertex_base_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangulation_segment_traverser_3.h b/thirdparty/CGAL/include/CGAL/Triangulation_segment_traverser_3.h index ca8d5a67..5992d78c 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation_segment_traverser_3.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation_segment_traverser_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangulation_simplex_3.h b/thirdparty/CGAL/include/CGAL/Triangulation_simplex_3.h index 4cf8092e..ac2b0e97 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation_simplex_3.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation_simplex_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangulation_sphere_line_face_circulator_2.h b/thirdparty/CGAL/include/CGAL/Triangulation_sphere_line_face_circulator_2.h index f4c6d848..b8d22935 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation_sphere_line_face_circulator_2.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation_sphere_line_face_circulator_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangulation_structural_filtering_traits.h b/thirdparty/CGAL/include/CGAL/Triangulation_structural_filtering_traits.h index aa83d9c0..0f9e44cc 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation_structural_filtering_traits.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation_structural_filtering_traits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangulation_utils_2.h b/thirdparty/CGAL/include/CGAL/Triangulation_utils_2.h index 3d63b38a..9972ab52 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation_utils_2.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation_utils_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangulation_utils_3.h b/thirdparty/CGAL/include/CGAL/Triangulation_utils_3.h index 41db7e79..92e8dfc5 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation_utils_3.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation_utils_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangulation_vertex.h b/thirdparty/CGAL/include/CGAL/Triangulation_vertex.h index bdc5aebf..1131a8be 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation_vertex.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation_vertex.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangulation_vertex_base_2.h b/thirdparty/CGAL/include/CGAL/Triangulation_vertex_base_2.h index 12feec07..b311f904 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation_vertex_base_2.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation_vertex_base_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangulation_vertex_base_3.h b/thirdparty/CGAL/include/CGAL/Triangulation_vertex_base_3.h index 4fc29bbb..c42f32da 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation_vertex_base_3.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation_vertex_base_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangulation_vertex_base_with_id_2.h b/thirdparty/CGAL/include/CGAL/Triangulation_vertex_base_with_id_2.h index dabe867d..d0be1e1f 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation_vertex_base_with_id_2.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation_vertex_base_with_id_2.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangulation_vertex_base_with_info_2.h b/thirdparty/CGAL/include/CGAL/Triangulation_vertex_base_with_info_2.h index 7e4667ec..11b52284 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation_vertex_base_with_info_2.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation_vertex_base_with_info_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Triangulation_vertex_base_with_info_3.h b/thirdparty/CGAL/include/CGAL/Triangulation_vertex_base_with_info_3.h index 22c87cdc..ac22b8c4 100644 --- a/thirdparty/CGAL/include/CGAL/Triangulation_vertex_base_with_info_3.h +++ b/thirdparty/CGAL/include/CGAL/Triangulation_vertex_base_with_info_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Trisegment_2.h b/thirdparty/CGAL/include/CGAL/Trisegment_2.h index a00ddc97..793d8c2f 100644 --- a/thirdparty/CGAL/include/CGAL/Trisegment_2.h +++ b/thirdparty/CGAL/include/CGAL/Trisegment_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Twotuple.h b/thirdparty/CGAL/include/CGAL/Twotuple.h index 5eca0c4c..1fd61e5d 100644 --- a/thirdparty/CGAL/include/CGAL/Twotuple.h +++ b/thirdparty/CGAL/include/CGAL/Twotuple.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Umbilics.h b/thirdparty/CGAL/include/CGAL/Umbilics.h index 3e768ad1..92885c8c 100644 --- a/thirdparty/CGAL/include/CGAL/Umbilics.h +++ b/thirdparty/CGAL/include/CGAL/Umbilics.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Uncertain.h b/thirdparty/CGAL/include/CGAL/Uncertain.h index ea75b661..fe0307cc 100644 --- a/thirdparty/CGAL/include/CGAL/Uncertain.h +++ b/thirdparty/CGAL/include/CGAL/Uncertain.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ Uncertain operator!(Uncertain a) 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 @@ Uncertain operator&(Uncertain a, bool b) { return Uncertain(a.inf() & b, a.sup() & b); } - +#ifdef __clang__ +# pragma GCC diagnostic pop +#endif // Equality operators diff --git a/thirdparty/CGAL/include/CGAL/Unfiltered_predicate_adaptor.h b/thirdparty/CGAL/include/CGAL/Unfiltered_predicate_adaptor.h index 8fa27b92..e631cf9a 100644 --- a/thirdparty/CGAL/include/CGAL/Unfiltered_predicate_adaptor.h +++ b/thirdparty/CGAL/include/CGAL/Unfiltered_predicate_adaptor.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Union_find.h b/thirdparty/CGAL/include/CGAL/Union_find.h index 2f57e911..a69b322b 100644 --- a/thirdparty/CGAL/include/CGAL/Union_find.h +++ b/thirdparty/CGAL/include/CGAL/Union_find.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Union_of_balls_3.h b/thirdparty/CGAL/include/CGAL/Union_of_balls_3.h index f85e42a0..7bd4680e 100644 --- a/thirdparty/CGAL/include/CGAL/Union_of_balls_3.h +++ b/thirdparty/CGAL/include/CGAL/Union_of_balls_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Unique_hash_map.h b/thirdparty/CGAL/include/CGAL/Unique_hash_map.h index 1917683b..24c2aa64 100644 --- a/thirdparty/CGAL/include/CGAL/Unique_hash_map.h +++ b/thirdparty/CGAL/include/CGAL/Unique_hash_map.h @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Unique_hash_map { 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 @@ class Unique_hash_map { } 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 --git a/thirdparty/CGAL/include/CGAL/Variational_shape_approximation.h b/thirdparty/CGAL/include/CGAL/Variational_shape_approximation.h index bad81b20..19650e61 100644 --- a/thirdparty/CGAL/include/CGAL/Variational_shape_approximation.h +++ b/thirdparty/CGAL/include/CGAL/Variational_shape_approximation.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Variational_shape_approximation { * @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 @@ class Variational_shape_approximation { * @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 @@ class Variational_shape_approximation { * 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 @@ class Variational_shape_approximation { 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 @@ class Variational_shape_approximation { /*! * @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 @@ class Variational_shape_approximation { /*! * @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 @@ class Variational_shape_approximation { /*! * @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 --git a/thirdparty/CGAL/include/CGAL/Vector_2.h b/thirdparty/CGAL/include/CGAL/Vector_2.h index ed1ad52f..420000eb 100644 --- a/thirdparty/CGAL/include/CGAL/Vector_2.h +++ b/thirdparty/CGAL/include/CGAL/Vector_2.h @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Kernel_23/include/CGAL/Vector_2.h $ -// $Id: Vector_2.h e7357ac 2021-07-19T14:53:27+02:00 Marc Glisse +// $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 // // @@ -96,7 +96,7 @@ class Vector_2 : public R_::Kernel_base::Vector_2 : RVector_2(typename R::Construct_vector_2()(Return_base_tag(), x,y,w)) {} friend void swap(Self& a, Self& b) -#ifdef __cpp_lib_is_swappable +#if !defined(__INTEL_COMPILER) && defined(__cpp_lib_is_swappable) noexcept(std::is_nothrow_swappable_v) #endif { diff --git a/thirdparty/CGAL/include/CGAL/Vector_3.h b/thirdparty/CGAL/include/CGAL/Vector_3.h index da7c1bd3..a2faf1de 100644 --- a/thirdparty/CGAL/include/CGAL/Vector_3.h +++ b/thirdparty/CGAL/include/CGAL/Vector_3.h @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Kernel_23/include/CGAL/Vector_3.h $ -// $Id: Vector_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/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 // // @@ -96,7 +96,7 @@ class Vector_3 : public R_::Kernel_base::Vector_3 : Rep(typename R::Construct_vector_3()(Return_base_tag(), x, y, z, w)) {} friend void swap(Self& a, Self& b) -#ifdef __cpp_lib_is_swappable +#if !defined(__INTEL_COMPILER) && defined(__cpp_lib_is_swappable) noexcept(std::is_nothrow_swappable_v) #endif { diff --git a/thirdparty/CGAL/include/CGAL/Vertex2Data_Property_Map_with_std_map.h b/thirdparty/CGAL/include/CGAL/Vertex2Data_Property_Map_with_std_map.h index e50d3d7d..e63e1ca9 100644 --- a/thirdparty/CGAL/include/CGAL/Vertex2Data_Property_Map_with_std_map.h +++ b/thirdparty/CGAL/include/CGAL/Vertex2Data_Property_Map_with_std_map.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Visibility_2/visibility_utils.h b/thirdparty/CGAL/include/CGAL/Visibility_2/visibility_utils.h index 26d045e4..240794f3 100644 --- a/thirdparty/CGAL/include/CGAL/Visibility_2/visibility_utils.h +++ b/thirdparty/CGAL/include/CGAL/Visibility_2/visibility_utils.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2.h b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2.h index d89fa412..db35c638 100644 --- a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2.h +++ b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Accessor.h b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Accessor.h index bf2c67e0..84724d44 100644 --- a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Accessor.h +++ b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Accessor.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Adaptation_traits_base_2.h b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Adaptation_traits_base_2.h index f9997a31..8fcb4ab2 100644 --- a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Adaptation_traits_base_2.h +++ b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Adaptation_traits_base_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Adaptation_traits_functors.h b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Adaptation_traits_functors.h index 1f316743..bef08f80 100644 --- a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Adaptation_traits_functors.h +++ b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Adaptation_traits_functors.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Apollonius_graph_degeneracy_testers.h b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Apollonius_graph_degeneracy_testers.h index 77605f01..768a91d2 100644 --- a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Apollonius_graph_degeneracy_testers.h +++ b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Apollonius_graph_degeneracy_testers.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Apollonius_graph_nearest_site_2.h b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Apollonius_graph_nearest_site_2.h index b25e52f9..8ab7f123 100644 --- a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Apollonius_graph_nearest_site_2.h +++ b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Apollonius_graph_nearest_site_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Cached_degeneracy_testers.h b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Cached_degeneracy_testers.h index a1b93650..f9ea8090 100644 --- a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Cached_degeneracy_testers.h +++ b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Cached_degeneracy_testers.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Circulator_adaptors.h b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Circulator_adaptors.h index 31563bc1..48205c09 100644 --- a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Circulator_adaptors.h +++ b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Circulator_adaptors.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Connected_components.h b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Connected_components.h index 37f40207..c599e33b 100644 --- a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Connected_components.h +++ b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Connected_components.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Construct_dual_points.h b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Construct_dual_points.h index 1e82c1cc..211f2808 100644 --- a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Construct_dual_points.h +++ b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Construct_dual_points.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Default_site_inserters.h b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Default_site_inserters.h index 10cd74ff..fcd27baa 100644 --- a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Default_site_inserters.h +++ b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Default_site_inserters.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Default_site_removers.h b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Default_site_removers.h index 04b08447..dfc8eb20 100644 --- a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Default_site_removers.h +++ b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Default_site_removers.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Degeneracy_tester_binders.h b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Degeneracy_tester_binders.h index 451a3b10..0e9805e2 100644 --- a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Degeneracy_tester_binders.h +++ b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Degeneracy_tester_binders.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Delaunay_triangulation_degeneracy_testers.h b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Delaunay_triangulation_degeneracy_testers.h index 8fe8b104..05eaa5f6 100644 --- a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Delaunay_triangulation_degeneracy_testers.h +++ b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Delaunay_triangulation_degeneracy_testers.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Delaunay_triangulation_nearest_site_2.h b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Delaunay_triangulation_nearest_site_2.h index 51b62dea..5a3c954b 100644 --- a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Delaunay_triangulation_nearest_site_2.h +++ b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Delaunay_triangulation_nearest_site_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Delaunay_triangulation_on_sphere_degeneracy_testers.h b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Delaunay_triangulation_on_sphere_degeneracy_testers.h index 7dfdba43..2eddf1fb 100644 --- a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Delaunay_triangulation_on_sphere_degeneracy_testers.h +++ b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Delaunay_triangulation_on_sphere_degeneracy_testers.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Dummy_iterator.h b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Dummy_iterator.h index fabfd2d2..78aafb81 100644 --- a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Dummy_iterator.h +++ b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Dummy_iterator.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Edge_less.h b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Edge_less.h index 7b9ef0a0..6073408f 100644 --- a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Edge_less.h +++ b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Edge_less.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Face.h b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Face.h index 7c032d78..0df9b999 100644 --- a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Face.h +++ b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Face.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Finder_classes.h b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Finder_classes.h index 0b248bb2..65b9ec69 100644 --- a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Finder_classes.h +++ b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Finder_classes.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Halfedge.h b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Halfedge.h index 3e6eb71e..08eca312 100644 --- a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Halfedge.h +++ b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Halfedge.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Handle_adaptor.h b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Handle_adaptor.h index efa142f0..7835a492 100644 --- a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Handle_adaptor.h +++ b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Handle_adaptor.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Identity_rejectors.h b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Identity_rejectors.h index a8be2031..196a3b11 100644 --- a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Identity_rejectors.h +++ b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Identity_rejectors.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Iterator_adaptors.h b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Iterator_adaptors.h index 0e483e30..a96a6a9f 100644 --- a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Iterator_adaptors.h +++ b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Iterator_adaptors.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Policy_base.h b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Policy_base.h index c92bdf87..05f94b13 100644 --- a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Policy_base.h +++ b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Policy_base.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Regular_triangulation_degeneracy_testers.h b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Regular_triangulation_degeneracy_testers.h index 50a25e91..5b900a33 100644 --- a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Regular_triangulation_degeneracy_testers.h +++ b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Regular_triangulation_degeneracy_testers.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Regular_triangulation_nearest_site_2.h b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Regular_triangulation_nearest_site_2.h index 98586200..86d395bb 100644 --- a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Regular_triangulation_nearest_site_2.h +++ b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Regular_triangulation_nearest_site_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Segment_Delaunay_graph_degeneracy_testers.h b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Segment_Delaunay_graph_degeneracy_testers.h index 120a982b..fd2956ec 100644 --- a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Segment_Delaunay_graph_degeneracy_testers.h +++ b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Segment_Delaunay_graph_degeneracy_testers.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Segment_Delaunay_graph_nearest_site_2.h b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Segment_Delaunay_graph_nearest_site_2.h index 4265df6a..659566c7 100644 --- a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Segment_Delaunay_graph_nearest_site_2.h +++ b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Segment_Delaunay_graph_nearest_site_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Site_accessors.h b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Site_accessors.h index cadabd7e..ad170a4a 100644 --- a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Site_accessors.h +++ b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Site_accessors.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Unbounded_edges.h b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Unbounded_edges.h index a12ce765..27ae62d5 100644 --- a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Unbounded_edges.h +++ b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Unbounded_edges.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Unbounded_faces.h b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Unbounded_faces.h index 34a00058..e3e7a26b 100644 --- a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Unbounded_faces.h +++ b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Unbounded_faces.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Validity_testers.h b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Validity_testers.h index 2ec7e2a2..55b45fd4 100644 --- a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Validity_testers.h +++ b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Validity_testers.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Vertex.h b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Vertex.h index b95c0be7..5765f13c 100644 --- a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Vertex.h +++ b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/Vertex.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/basic.h b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/basic.h index 9bab8714..f177a24b 100644 --- a/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/basic.h +++ b/thirdparty/CGAL/include/CGAL/Voronoi_diagram_2/basic.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Voronoi_intersection_2_traits_3.h b/thirdparty/CGAL/include/CGAL/Voronoi_intersection_2_traits_3.h index be9317aa..f28f37b3 100644 --- a/thirdparty/CGAL/include/CGAL/Voronoi_intersection_2_traits_3.h +++ b/thirdparty/CGAL/include/CGAL/Voronoi_intersection_2_traits_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Weighted_Minkowski_distance.h b/thirdparty/CGAL/include/CGAL/Weighted_Minkowski_distance.h index 9b2aab82..8a2ee413 100644 --- a/thirdparty/CGAL/include/CGAL/Weighted_Minkowski_distance.h +++ b/thirdparty/CGAL/include/CGAL/Weighted_Minkowski_distance.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Weighted_point_2.h b/thirdparty/CGAL/include/CGAL/Weighted_point_2.h index 7e0108a5..31701499 100644 --- a/thirdparty/CGAL/include/CGAL/Weighted_point_2.h +++ b/thirdparty/CGAL/include/CGAL/Weighted_point_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Weighted_point_3.h b/thirdparty/CGAL/include/CGAL/Weighted_point_3.h index 0243a74a..2a01a046 100644 --- a/thirdparty/CGAL/include/CGAL/Weighted_point_3.h +++ b/thirdparty/CGAL/include/CGAL/Weighted_point_3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Weights.h b/thirdparty/CGAL/include/CGAL/Weights.h index 5242a599..36a78277 100644 --- a/thirdparty/CGAL/include/CGAL/Weights.h +++ b/thirdparty/CGAL/include/CGAL/Weights.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Weights/authalic_weights.h b/thirdparty/CGAL/include/CGAL/Weights/authalic_weights.h index ee62e750..62b4a7bd 100644 --- a/thirdparty/CGAL/include/CGAL/Weights/authalic_weights.h +++ b/thirdparty/CGAL/include/CGAL/Weights/authalic_weights.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Weights/barycentric_region_weights.h b/thirdparty/CGAL/include/CGAL/Weights/barycentric_region_weights.h index 6cc01190..93f1886e 100644 --- a/thirdparty/CGAL/include/CGAL/Weights/barycentric_region_weights.h +++ b/thirdparty/CGAL/include/CGAL/Weights/barycentric_region_weights.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Weights/cotangent_weights.h b/thirdparty/CGAL/include/CGAL/Weights/cotangent_weights.h index 15849ab5..952bf6ed 100644 --- a/thirdparty/CGAL/include/CGAL/Weights/cotangent_weights.h +++ b/thirdparty/CGAL/include/CGAL/Weights/cotangent_weights.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace Weights { 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 @@ namespace Weights { 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 @@ namespace Weights { 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 @@ namespace Weights { 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 @@ namespace Weights { 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 @@ namespace Weights { 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 --git a/thirdparty/CGAL/include/CGAL/Weights/discrete_harmonic_weights.h b/thirdparty/CGAL/include/CGAL/Weights/discrete_harmonic_weights.h index b0194a6b..ba49c28f 100644 --- a/thirdparty/CGAL/include/CGAL/Weights/discrete_harmonic_weights.h +++ b/thirdparty/CGAL/include/CGAL/Weights/discrete_harmonic_weights.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Weights/internal/pmp_weights_deprecated.h b/thirdparty/CGAL/include/CGAL/Weights/internal/pmp_weights_deprecated.h index b8f24030..ee25f2de 100644 --- a/thirdparty/CGAL/include/CGAL/Weights/internal/pmp_weights_deprecated.h +++ b/thirdparty/CGAL/include/CGAL/Weights/internal/pmp_weights_deprecated.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Weights/internal/polygon_utils_2.h b/thirdparty/CGAL/include/CGAL/Weights/internal/polygon_utils_2.h index 96dcc1ab..8401acf8 100644 --- a/thirdparty/CGAL/include/CGAL/Weights/internal/polygon_utils_2.h +++ b/thirdparty/CGAL/include/CGAL/Weights/internal/polygon_utils_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Weights/internal/utils.h b/thirdparty/CGAL/include/CGAL/Weights/internal/utils.h index d88d816e..fd140197 100644 --- a/thirdparty/CGAL/include/CGAL/Weights/internal/utils.h +++ b/thirdparty/CGAL/include/CGAL/Weights/internal/utils.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Weights/inverse_distance_weights.h b/thirdparty/CGAL/include/CGAL/Weights/inverse_distance_weights.h index a4985d5e..8059a780 100644 --- a/thirdparty/CGAL/include/CGAL/Weights/inverse_distance_weights.h +++ b/thirdparty/CGAL/include/CGAL/Weights/inverse_distance_weights.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Weights/mean_value_weights.h b/thirdparty/CGAL/include/CGAL/Weights/mean_value_weights.h index 310dafd3..133feeb3 100644 --- a/thirdparty/CGAL/include/CGAL/Weights/mean_value_weights.h +++ b/thirdparty/CGAL/include/CGAL/Weights/mean_value_weights.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Weights/mixed_voronoi_region_weights.h b/thirdparty/CGAL/include/CGAL/Weights/mixed_voronoi_region_weights.h index 1bbdcb18..cadc8c21 100644 --- a/thirdparty/CGAL/include/CGAL/Weights/mixed_voronoi_region_weights.h +++ b/thirdparty/CGAL/include/CGAL/Weights/mixed_voronoi_region_weights.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Weights/shepard_weights.h b/thirdparty/CGAL/include/CGAL/Weights/shepard_weights.h index d5774fa5..a9a2447c 100644 --- a/thirdparty/CGAL/include/CGAL/Weights/shepard_weights.h +++ b/thirdparty/CGAL/include/CGAL/Weights/shepard_weights.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Weights/tangent_weights.h b/thirdparty/CGAL/include/CGAL/Weights/tangent_weights.h index ebafb9e8..049dc7dd 100644 --- a/thirdparty/CGAL/include/CGAL/Weights/tangent_weights.h +++ b/thirdparty/CGAL/include/CGAL/Weights/tangent_weights.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Weights/three_point_family_weights.h b/thirdparty/CGAL/include/CGAL/Weights/three_point_family_weights.h index 245634e8..21c9e32e 100644 --- a/thirdparty/CGAL/include/CGAL/Weights/three_point_family_weights.h +++ b/thirdparty/CGAL/include/CGAL/Weights/three_point_family_weights.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Weights/triangular_region_weights.h b/thirdparty/CGAL/include/CGAL/Weights/triangular_region_weights.h index 1f66f680..802fb10c 100644 --- a/thirdparty/CGAL/include/CGAL/Weights/triangular_region_weights.h +++ b/thirdparty/CGAL/include/CGAL/Weights/triangular_region_weights.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Weights/uniform_region_weights.h b/thirdparty/CGAL/include/CGAL/Weights/uniform_region_weights.h index 552a8ad2..916a1df2 100644 --- a/thirdparty/CGAL/include/CGAL/Weights/uniform_region_weights.h +++ b/thirdparty/CGAL/include/CGAL/Weights/uniform_region_weights.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Weights/uniform_weights.h b/thirdparty/CGAL/include/CGAL/Weights/uniform_weights.h index 15974e5e..7c857224 100644 --- a/thirdparty/CGAL/include/CGAL/Weights/uniform_weights.h +++ b/thirdparty/CGAL/include/CGAL/Weights/uniform_weights.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Weights/utils.h b/thirdparty/CGAL/include/CGAL/Weights/utils.h index ef670a24..c7354e02 100644 --- a/thirdparty/CGAL/include/CGAL/Weights/utils.h +++ b/thirdparty/CGAL/include/CGAL/Weights/utils.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Weights/voronoi_region_weights.h b/thirdparty/CGAL/include/CGAL/Weights/voronoi_region_weights.h index 6285efa2..18f204e5 100644 --- a/thirdparty/CGAL/include/CGAL/Weights/voronoi_region_weights.h +++ b/thirdparty/CGAL/include/CGAL/Weights/voronoi_region_weights.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Weights/wachspress_weights.h b/thirdparty/CGAL/include/CGAL/Weights/wachspress_weights.h index b790f599..f31102c9 100644 --- a/thirdparty/CGAL/include/CGAL/Weights/wachspress_weights.h +++ b/thirdparty/CGAL/include/CGAL/Weights/wachspress_weights.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Width_3.h b/thirdparty/CGAL/include/CGAL/Width_3.h index 38550f59..55366307 100644 --- a/thirdparty/CGAL/include/CGAL/Width_3.h +++ b/thirdparty/CGAL/include/CGAL/Width_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Width_default_traits_3.h b/thirdparty/CGAL/include/CGAL/Width_default_traits_3.h index 3bde52ed..3fc6596d 100644 --- a/thirdparty/CGAL/include/CGAL/Width_default_traits_3.h +++ b/thirdparty/CGAL/include/CGAL/Width_default_traits_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/Width_polyhedron_3.h b/thirdparty/CGAL/include/CGAL/Width_polyhedron_3.h index 9e814865..f34fae16 100644 --- a/thirdparty/CGAL/include/CGAL/Width_polyhedron_3.h +++ b/thirdparty/CGAL/include/CGAL/Width_polyhedron_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/aff_transformation_tags.h b/thirdparty/CGAL/include/CGAL/aff_transformation_tags.h index 82643edb..dc350084 100644 --- a/thirdparty/CGAL/include/CGAL/aff_transformation_tags.h +++ b/thirdparty/CGAL/include/CGAL/aff_transformation_tags.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/aff_transformation_tags_impl.h b/thirdparty/CGAL/include/CGAL/aff_transformation_tags_impl.h index 8476a2d8..81f99bd7 100644 --- a/thirdparty/CGAL/include/CGAL/aff_transformation_tags_impl.h +++ b/thirdparty/CGAL/include/CGAL/aff_transformation_tags_impl.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/algorithm.h b/thirdparty/CGAL/include/CGAL/algorithm.h index 944da2da..32840d41 100644 --- a/thirdparty/CGAL/include/CGAL/algorithm.h +++ b/thirdparty/CGAL/include/CGAL/algorithm.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/all_furthest_neighbors_2.h b/thirdparty/CGAL/include/CGAL/all_furthest_neighbors_2.h index 51e269a5..c050f909 100644 --- a/thirdparty/CGAL/include/CGAL/all_furthest_neighbors_2.h +++ b/thirdparty/CGAL/include/CGAL/all_furthest_neighbors_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/alpha_wrap_3.h b/thirdparty/CGAL/include/CGAL/alpha_wrap_3.h index ddeb4011..3bbcbb76 100644 --- a/thirdparty/CGAL/include/CGAL/alpha_wrap_3.h +++ b/thirdparty/CGAL/include/CGAL/alpha_wrap_3.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL$ -// $Id$ +// $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 @@ -104,7 +104,7 @@ void alpha_wrap_3(const PointRange& points, 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 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)); @@ -253,7 +253,7 @@ void alpha_wrap_3(const TriangleMesh& tmesh, using parameters::choose_parameter; using Geom_traits = typename GetGeomTraits::type; - using Oracle = Alpha_wraps_3::internal::Triangle_mesh_oracle; + 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)); @@ -349,7 +349,7 @@ void alpha_wrap_3(const PointRange& points, 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 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)); diff --git a/thirdparty/CGAL/include/CGAL/apply_to_range.h b/thirdparty/CGAL/include/CGAL/apply_to_range.h index c46a4376..b6e0a628 100644 --- a/thirdparty/CGAL/include/CGAL/apply_to_range.h +++ b/thirdparty/CGAL/include/CGAL/apply_to_range.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/approximated_offset_2.h b/thirdparty/CGAL/include/CGAL/approximated_offset_2.h index 7982666a..f9169450 100644 --- a/thirdparty/CGAL/include/CGAL/approximated_offset_2.h +++ b/thirdparty/CGAL/include/CGAL/approximated_offset_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/argument_swaps.h b/thirdparty/CGAL/include/CGAL/argument_swaps.h index 1558fa7a..6c6a976d 100644 --- a/thirdparty/CGAL/include/CGAL/argument_swaps.h +++ b/thirdparty/CGAL/include/CGAL/argument_swaps.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/arrange_offset_polygons_2.h b/thirdparty/CGAL/include/CGAL/arrange_offset_polygons_2.h index 09436d15..4bb56c54 100644 --- a/thirdparty/CGAL/include/CGAL/arrange_offset_polygons_2.h +++ b/thirdparty/CGAL/include/CGAL/arrange_offset_polygons_2.h @@ -3,7 +3,7 @@ // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/array.h b/thirdparty/CGAL/include/CGAL/array.h index f559f64b..d0010a81 100644 --- a/thirdparty/CGAL/include/CGAL/array.h +++ b/thirdparty/CGAL/include/CGAL/array.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/assertions.h b/thirdparty/CGAL/include/CGAL/assertions.h index 61b5d512..6408d6f9 100644 --- a/thirdparty/CGAL/include/CGAL/assertions.h +++ b/thirdparty/CGAL/include/CGAL/assertions.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/assertions_behaviour.h b/thirdparty/CGAL/include/CGAL/assertions_behaviour.h index a34176c4..dd44ea16 100644 --- a/thirdparty/CGAL/include/CGAL/assertions_behaviour.h +++ b/thirdparty/CGAL/include/CGAL/assertions_behaviour.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/assertions_impl.h b/thirdparty/CGAL/include/CGAL/assertions_impl.h index bdfdc886..cf7fcf8a 100644 --- a/thirdparty/CGAL/include/CGAL/assertions_impl.h +++ b/thirdparty/CGAL/include/CGAL/assertions_impl.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/atomic.h b/thirdparty/CGAL/include/CGAL/atomic.h index 90862bc5..648315c5 100644 --- a/thirdparty/CGAL/include/CGAL/atomic.h +++ b/thirdparty/CGAL/include/CGAL/atomic.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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::memory_order_seq_cst; 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 --git a/thirdparty/CGAL/include/CGAL/auto_link/CGAL.h b/thirdparty/CGAL/include/CGAL/auto_link/CGAL.h index d46e6f90..64a016ed 100644 --- a/thirdparty/CGAL/include/CGAL/auto_link/CGAL.h +++ b/thirdparty/CGAL/include/CGAL/auto_link/CGAL.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/auto_link/CORE.h b/thirdparty/CGAL/include/CGAL/auto_link/CORE.h index 6c24042d..e0484dca 100644 --- a/thirdparty/CGAL/include/CGAL/auto_link/CORE.h +++ b/thirdparty/CGAL/include/CGAL/auto_link/CORE.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/auto_link/ImageIO.h b/thirdparty/CGAL/include/CGAL/auto_link/ImageIO.h index d2db5dc1..e6306030 100644 --- a/thirdparty/CGAL/include/CGAL/auto_link/ImageIO.h +++ b/thirdparty/CGAL/include/CGAL/auto_link/ImageIO.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/auto_link/Qt.h b/thirdparty/CGAL/include/CGAL/auto_link/Qt.h index cc1aeef5..6df3c887 100644 --- a/thirdparty/CGAL/include/CGAL/auto_link/Qt.h +++ b/thirdparty/CGAL/include/CGAL/auto_link/Qt.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/auto_link/auto_link.h b/thirdparty/CGAL/include/CGAL/auto_link/auto_link.h index e6901b71..c6f8d667 100644 --- a/thirdparty/CGAL/include/CGAL/auto_link/auto_link.h +++ b/thirdparty/CGAL/include/CGAL/auto_link/auto_link.h @@ -9,7 +9,7 @@ // (C) Copyright John Maddock 2003. // // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/barycenter.h b/thirdparty/CGAL/include/CGAL/barycenter.h index b782361b..e4e63725 100644 --- a/thirdparty/CGAL/include/CGAL/barycenter.h +++ b/thirdparty/CGAL/include/CGAL/barycenter.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/basic.h b/thirdparty/CGAL/include/CGAL/basic.h index 28c4399e..79df8941 100644 --- a/thirdparty/CGAL/include/CGAL/basic.h +++ b/thirdparty/CGAL/include/CGAL/basic.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/basic_classes.h b/thirdparty/CGAL/include/CGAL/basic_classes.h index 166ce66e..2ac77162 100644 --- a/thirdparty/CGAL/include/CGAL/basic_classes.h +++ b/thirdparty/CGAL/include/CGAL/basic_classes.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/basic_constructions_2.h b/thirdparty/CGAL/include/CGAL/basic_constructions_2.h index 79a84f11..f414d045 100644 --- a/thirdparty/CGAL/include/CGAL/basic_constructions_2.h +++ b/thirdparty/CGAL/include/CGAL/basic_constructions_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/basic_constructions_3.h b/thirdparty/CGAL/include/CGAL/basic_constructions_3.h index b18ee81b..65d452d0 100644 --- a/thirdparty/CGAL/include/CGAL/basic_constructions_3.h +++ b/thirdparty/CGAL/include/CGAL/basic_constructions_3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/bilateral_smooth_point_set.h b/thirdparty/CGAL/include/CGAL/bilateral_smooth_point_set.h index 5d20674a..89a1fd73 100644 --- a/thirdparty/CGAL/include/CGAL/bilateral_smooth_point_set.h +++ b/thirdparty/CGAL/include/CGAL/bilateral_smooth_point_set.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ compute_max_spacing( */ 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 @@ bilateral_smooth_point_set( // 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 @@ bilateral_smooth_point_set( // 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 @@ bilateral_smooth_point_set( 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 --git a/thirdparty/CGAL/include/CGAL/boost/bimap.hpp b/thirdparty/CGAL/include/CGAL/boost/bimap.hpp index c13eea01..eecaf84e 100644 --- a/thirdparty/CGAL/include/CGAL/boost/bimap.hpp +++ b/thirdparty/CGAL/include/CGAL/boost/bimap.hpp @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/bimap/multiset_of.hpp b/thirdparty/CGAL/include/CGAL/boost/bimap/multiset_of.hpp index 98eda9fa..8f1b62a5 100644 --- a/thirdparty/CGAL/include/CGAL/boost/bimap/multiset_of.hpp +++ b/thirdparty/CGAL/include/CGAL/boost/bimap/multiset_of.hpp @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/Alpha_expansion_MaxFlow_tag.h b/thirdparty/CGAL/include/CGAL/boost/graph/Alpha_expansion_MaxFlow_tag.h index fbffa2ea..cc537ab9 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/Alpha_expansion_MaxFlow_tag.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/Alpha_expansion_MaxFlow_tag.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Alpha_expansion_MaxFlow_impl void clear_graph() { - graph = MaxFlow::Graph(); + graph.clear(); } Vertex_descriptor add_vertex() diff --git a/thirdparty/CGAL/include/CGAL/boost/graph/Dual.h b/thirdparty/CGAL/include/CGAL/boost/graph/Dual.h index 4ddda6a2..c04a8c88 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/Dual.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/Dual.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/Euler_operations.h b/thirdparty/CGAL/include/CGAL/boost/graph/Euler_operations.h index ad3e30f9..884ff8ec 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/Euler_operations.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/Euler_operations.h @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ join_face(typename boost::graph_traits::halfedge_descriptor h, /** * 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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/Face_filtered_graph.h b/thirdparty/CGAL/include/CGAL/boost/graph/Face_filtered_graph.h index 8e578af2..5ed33621 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/Face_filtered_graph.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/Face_filtered_graph.h @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ struct Face_filtered_graph * \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 @@ struct Face_filtered_graph , 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 @@ struct Face_filtered_graph * \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 @@ struct Face_filtered_graph * \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 @@ struct Face_filtered_graph * \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 @@ struct Face_filtered_graph 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 @@ struct Face_filtered_graph 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 @@ struct Face_filtered_graph 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 @@ struct Face_filtered_graph 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 @@ struct Face_filtered_graph { 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 @@ struct Face_filtered_graph 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 @@ struct Face_filtered_graph 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 @@ struct Face_filtered_graph 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 @@ typename boost::graph_traits< Face_filtered_graph >: 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 @@ typename boost::graph_traits< Face_filtered_graph >: 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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/Graph_with_descriptor_with_graph.h b/thirdparty/CGAL/include/CGAL/boost/graph/Graph_with_descriptor_with_graph.h index c76eb8b1..eb476f6b 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/Graph_with_descriptor_with_graph.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/Graph_with_descriptor_with_graph.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/Graph_with_descriptor_with_graph_fwd.h b/thirdparty/CGAL/include/CGAL/boost/graph/Graph_with_descriptor_with_graph_fwd.h index 47be1366..42b1eda2 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/Graph_with_descriptor_with_graph_fwd.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/Graph_with_descriptor_with_graph_fwd.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/IO/3MF.h b/thirdparty/CGAL/include/CGAL/boost/graph/IO/3MF.h index 8a35dae9..6b713053 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/IO/3MF.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/IO/3MF.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/IO/GOCAD.h b/thirdparty/CGAL/include/CGAL/boost/graph/IO/GOCAD.h index ddd5e3da..fdefcf94 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/IO/GOCAD.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/IO/GOCAD.h @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class GOCAD_builder /// \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 @@ bool read_GOCAD(std::istream& is, /// \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 @@ bool read_GOCAD(std::istream& is, Graph& g, /// \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 @@ bool read_GOCAD(const std::string& fname, /// \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 @@ bool read_GOCAD(const std::string& fname, Graph& g, /// \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 @@ bool write_GOCAD(std::ostream& os, 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 @@ bool write_GOCAD(std::ostream& os, 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 @@ bool write_GOCAD(std::ostream& os, const char* name, const Graph& g, /// \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 @@ bool write_GOCAD(std::ostream& os, 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 @@ bool write_GOCAD(std::ostream& os, const Graph& g, /// \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 @@ bool write_GOCAD(const std::string& fname, 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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/IO/Generic_facegraph_builder.h b/thirdparty/CGAL/include/CGAL/boost/graph/IO/Generic_facegraph_builder.h index 4bf63c2b..ea2d1049 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/IO/Generic_facegraph_builder.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/IO/Generic_facegraph_builder.h @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org); // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Generic_facegraph_builder 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 @@ class Generic_facegraph_builder 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 @@ class Generic_facegraph_builder return is_valid(g); } - bool operator()(Graph& g) { return operator()(g, parameters::all_default()); } - protected: std::istream& m_is; diff --git a/thirdparty/CGAL/include/CGAL/boost/graph/IO/Generic_facegraph_printer.h b/thirdparty/CGAL/include/CGAL/boost/graph/IO/Generic_facegraph_printer.h index f68f4a26..ece13d9b 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/IO/Generic_facegraph_printer.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/IO/Generic_facegraph_printer.h @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org); // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Generic_facegraph_printer 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 @@ class Generic_facegraph_printer 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 @@ class Generic_facegraph_printer return m_os.good(); } - bool operator()(const Graph& g) { return operator()(g, parameters::all_default()); } - protected: Stream& m_os; FileWriter m_writer; diff --git a/thirdparty/CGAL/include/CGAL/boost/graph/IO/INP.h b/thirdparty/CGAL/include/CGAL/boost/graph/IO/INP.h index c06cfaf9..17f72a9c 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/IO/INP.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/IO/INP.h @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace IO { /// \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 @@ bool write_INP(std::ostream& os, 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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/IO/OBJ.h b/thirdparty/CGAL/include/CGAL/boost/graph/IO/OBJ.h index 40f58a89..b7639692 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/IO/OBJ.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/IO/OBJ.h @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class OBJ_builder \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 @@ bool read_OBJ(std::istream& is, Graph& g, \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 @@ bool read_OBJ(const std::string& fname, 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 @@ bool read_OBJ(const std::string& fname, Graph& g, \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 @@ bool write_OBJ(std::ostream& os, 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 @@ bool write_OBJ(std::ostream& os, const Graph& g, \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 @@ bool write_OBJ(const std::string& fname, 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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/IO/OFF.h b/thirdparty/CGAL/include/CGAL/boost/graph/IO/OFF.h index 1cc5e0a6..699fe619 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/IO/OFF.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/IO/OFF.h @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class OFF_builder // 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 @@ bool read_OFF_BGL(std::istream& is, \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 @@ bool read_OFF(std::istream& is, 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 @@ bool read_OFF(std::istream& is, Graph& g, \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 @@ bool read_OFF(const std::string& fname, 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 @@ bool read_OFF(const std::string& fname, Graph& g, \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 @@ CGAL_DEPRECATED bool read_off(std::istream& is, Graph& g, const CGAL_BGL_NP_CLAS \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 @@ CGAL_DEPRECATED bool read_off(const std::string& fname, Graph& g) 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 @@ bool write_OFF_BGL(std::ostream& os, \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 @@ bool write_OFF(std::ostream& os, 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 @@ bool write_OFF(std::ostream& os, const Graph& g, \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 @@ bool write_OFF(const std::string& fname, 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 @@ bool write_OFF(const std::string& fname, const Graph& g, \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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/IO/PLY.h b/thirdparty/CGAL/include/CGAL/boost/graph/IO/PLY.h index 2499616c..012811f2 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/IO/PLY.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/IO/PLY.h @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class PLY_builder } }; -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 @@ bool read_PLY_BGL(std::istream& is, \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 @@ bool read_PLY(std::istream& is, 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 @@ bool read_PLY(std::istream& is, Graph& g, \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 @@ bool read_PLY(const std::string& fname, } } -/// \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 @@ bool read_PLY(const std::string& fname, Graph& g, \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 @@ bool write_PLY(std::ostream& os, 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 @@ bool write_PLY(std::ostream& os, 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 @@ bool write_PLY(std::ostream& os, /// \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 @@ bool write_PLY(std::ostream& os, const Graph& g, \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 @@ bool write_PLY(const std::string& fname, /// \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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/IO/STL.h b/thirdparty/CGAL/include/CGAL/boost/graph/IO/STL.h index 3724f36b..27878b12 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/IO/STL.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/IO/STL.h @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class STL_builder \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 @@ bool read_STL(std::istream& is, \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 @@ bool read_STL(const std::string& fname, 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 @@ bool read_STL(const std::string& fname, /// \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 @@ bool read_STL(const std::string& fname, Graph& g) { return read_STL(fname, g, pa \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 @@ bool write_STL(std::ostream& os, 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 @@ bool write_STL(std::ostream& os, 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 @@ bool write_STL(std::ostream& os, 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 @@ bool write_STL(std::ostream& os, \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 @@ bool write_STL(const std::string& fname, const Graph& g, const CGAL_BGL_NP_CLASS } } -/// \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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/IO/Tds_2_off.h b/thirdparty/CGAL/include/CGAL/boost/graph/IO/Tds_2_off.h index c07efb1e..e37f2695 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/IO/Tds_2_off.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/IO/Tds_2_off.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/IO/VTK.h b/thirdparty/CGAL/include/CGAL/boost/graph/IO/VTK.h index 13b3e6c8..00193958 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/IO/VTK.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/IO/VTK.h @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ bool vtkPointSet_to_polygon_mesh(vtkPointSet* poly_data, * \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 @@ bool read_VTP(const std::string& fname, 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 @@ void write_polys_points(std::ostream& os, * * \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 @@ bool write_VTP(std::ostream& os, * * \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 @@ bool write_VTP(const std::string& fname, const Graph& g, const CGAL_BGL_NP_CLASS 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 @@ bool write_VTP(const std::string& fname, const Graph& g) { return write_VTP(fnam \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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/IO/WRL.h b/thirdparty/CGAL/include/CGAL/boost/graph/IO/WRL.h index ae5803a3..34c49a39 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/IO/WRL.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/IO/WRL.h @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace IO { \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 @@ bool write_WRL(std::ostream& os, \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 @@ bool write_WRL(const std::string& fname, const Graph& g) { return write_WRL(fnam \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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/IO/polygon_mesh_io.h b/thirdparty/CGAL/include/CGAL/boost/graph/IO/polygon_mesh_io.h index 877cdcf9..790a00ce 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/IO/polygon_mesh_io.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/IO/polygon_mesh_io.h @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace IO { //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 @@ bool read_polygon_mesh(std::istream& is, 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 @@ bool read_polygon_mesh(std::istream& is, * * \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 @@ bool read_polygon_mesh(const std::string& fname, 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 @@ bool read_polygon_mesh(const std::string& fname, Graph& g) * * \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 @@ bool write_polygon_mesh(const std::string& fname, 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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/METIS/partition_dual_graph.h b/thirdparty/CGAL/include/CGAL/boost/graph/METIS/partition_dual_graph.h index 6ce90fcc..605b0250 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/METIS/partition_dual_graph.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/METIS/partition_dual_graph.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ void partition_dual_graph(const TriangleMesh& tm, int nparts, /// /// \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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/METIS/partition_graph.h b/thirdparty/CGAL/include/CGAL/boost/graph/METIS/partition_graph.h index 6b00726a..2e3d64c3 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/METIS/partition_graph.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/METIS/partition_graph.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ void partition_graph(const TriangleMesh& tm, int nparts, /// /// \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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/Seam_mesh.h b/thirdparty/CGAL/include/CGAL/boost/graph/Seam_mesh.h index f473ce30..5347614b 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/Seam_mesh.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/Seam_mesh.h @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Seam_mesh 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 @@ class Seam_mesh 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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/alpha_expansion_graphcut.h b/thirdparty/CGAL/include/CGAL/boost/graph/alpha_expansion_graphcut.h index eef68f5b..ba4b0215 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/alpha_expansion_graphcut.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/alpha_expansion_graphcut.h @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ template + 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 @@ double alpha_expansion_graphcut (const InputGraph& input_graph, /// \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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/backward_compatibility_functions.h b/thirdparty/CGAL/include/CGAL/boost/graph/backward_compatibility_functions.h index fe69beb2..04622da5 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/backward_compatibility_functions.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/backward_compatibility_functions.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/breadth_first_search.h b/thirdparty/CGAL/include/CGAL/boost/graph/breadth_first_search.h new file mode 100644 index 00000000..31ff3098 --- /dev/null +++ b/thirdparty/CGAL/include/CGAL/boost/graph/breadth_first_search.h @@ -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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/convert_nef_polyhedron_to_polygon_mesh.h b/thirdparty/CGAL/include/CGAL/boost/graph/convert_nef_polyhedron_to_polygon_mesh.h index 3cf91da2..e5918f0b 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/convert_nef_polyhedron_to_polygon_mesh.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/convert_nef_polyhedron_to_polygon_mesh.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace nef_to_pm{ 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 @@ struct FaceInfo2 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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/copy_face_graph.h b/thirdparty/CGAL/include/CGAL/boost/graph/copy_face_graph.h index 1425d9c2..0526306d 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/copy_face_graph.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/copy_face_graph.h @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ inline Emptyset_iterator make_functor(const internal_np::Param_not_found&) 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 @@ void copy_face_graph(const SourceMesh& sm, TargetMesh& tm, 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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/dijkstra_shortest_paths.h b/thirdparty/CGAL/include/CGAL/boost/graph/dijkstra_shortest_paths.h index 121984e9..fb7259c0 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/dijkstra_shortest_paths.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/dijkstra_shortest_paths.h @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/generators.h b/thirdparty/CGAL/include/CGAL/boost/graph/generators.h index 21a8de47..850db060 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/generators.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/generators.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/BGL/include/CGAL/boost/graph/generators.h $ -// $Id: generators.h 3d1c41f 2021-01-07T15:05:28+01:00 Maxime Gimeno +// $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 // // Author(s) : Maxime Gimeno, @@ -19,6 +19,10 @@ #include #include +#include +#include +#include + namespace CGAL { namespace Euler { @@ -640,8 +644,9 @@ template typename boost::graph_traits::halfedge_descriptor make_icosahedron(Graph& g, const P& center = P(0,0,0), - typename CGAL::Kernel_traits

::Kernel::FT radius = 1.0) + typename CGAL::Kernel_traits

::Kernel::FT radius = 1) { + typedef typename CGAL::Kernel_traits

::Kernel::FT FT; typedef typename boost::property_map::type Point_property_map; typedef typename boost::graph_traits::vertex_descriptor vertex_descriptor; Point_property_map vpmap = get(CGAL::vertex_point, g); @@ -652,70 +657,71 @@ make_icosahedron(Graph& g, for(int i=0; i<12; ++i) v_vertices[i] = add_vertex(g); - typename CGAL::Kernel_traits

::Kernel::FT t = radius * (1.0 + CGAL::approximate_sqrt(5.0)) / 2.0; + const FT phi = (FT(1) + CGAL::approximate_sqrt(FT(5))) / FT(2); + const FT t = radius / CGAL::approximate_sqrt(1 + square(phi)); + const FT t_phi = t * phi; - put(vpmap, v_vertices[0], P(-radius + center.x(), t + center.y(), 0.0 + center.z())); - put(vpmap, v_vertices[1], P( radius + center.x(), t + center.y(), 0.0 + center.z())); - put(vpmap, v_vertices[2], P(-radius + center.x(), -t + center.y(), 0.0 + center.z())); - put(vpmap, v_vertices[3], P( radius + center.x(), -t + center.y(), 0.0 + center.z())); + put(vpmap, v_vertices[0], P(center.x(), center.y() + t, center.z() + t_phi)); + put(vpmap, v_vertices[1], P(center.x(), center.y() + t, center.z() - t_phi)); + put(vpmap, v_vertices[2], P(center.x(), center.y() - t, center.z() + t_phi)); + put(vpmap, v_vertices[3], P(center.x(), center.y() - t, center.z() - t_phi)); - put(vpmap, v_vertices[4], P( 0.0 + center.x(), -radius + center.y(), t + center.z())); - put(vpmap, v_vertices[5], P( 0.0 + center.x(), radius + center.y(), t + center.z())); - put(vpmap, v_vertices[6], P( 0.0 + center.x(), -radius + center.y(), -t + center.z())); - put(vpmap, v_vertices[7], P( 0.0 + center.x(), radius + center.y(), -t + center.z())); + put(vpmap, v_vertices[4], P(center.x() + t, center.y() + t_phi, center.z())); + put(vpmap, v_vertices[5], P(center.x() + t, center.y() - t_phi, center.z())); + put(vpmap, v_vertices[6], P(center.x() - t, center.y() + t_phi, center.z())); + put(vpmap, v_vertices[7], P(center.x() - t, center.y() - t_phi, center.z())); - put(vpmap, v_vertices[8], P( t + center.x(), 0.0 + center.y(), -radius + center.z())); - put(vpmap, v_vertices[9], P( t + center.x(), 0.0 + center.y(), radius + center.z())); - put(vpmap, v_vertices[10], P(-t + center.x(), 0.0 + center.y(), -radius + center.z())); - put(vpmap, v_vertices[11], P(-t + center.x(), 0.0 + center.y(), radius + center.z())); + put(vpmap, v_vertices[8], P(center.x() + t_phi, center.y(), center.z() + t)); + put(vpmap, v_vertices[9], P(center.x() + t_phi, center.y(), center.z() - t)); + put(vpmap, v_vertices[10], P(center.x() - t_phi, center.y(), center.z() + t)); + put(vpmap, v_vertices[11], P(center.x() - t_phi, center.y(), center.z() - t)); - std::vector face; - face.resize(3); - face[1] = v_vertices[0]; face[0] = v_vertices[5]; face[2] = v_vertices[11]; + std::array face; + face[0] = v_vertices[0]; face[1] = v_vertices[2]; face[2] = v_vertices[8]; Euler::add_face(face, g); - face[1] = v_vertices[0]; face[0] = v_vertices[1]; face[2] = v_vertices[5]; + face[0] = v_vertices[0]; face[1] = v_vertices[8]; face[2] = v_vertices[4]; Euler::add_face(face, g); - face[1] = v_vertices[0]; face[0] = v_vertices[7]; face[2] = v_vertices[1]; + face[0] = v_vertices[0]; face[1] = v_vertices[4]; face[2] = v_vertices[6]; Euler::add_face(face, g); - face[1] = v_vertices[0]; face[0] = v_vertices[10]; face[2] = v_vertices[7]; + face[0] = v_vertices[0]; face[1] = v_vertices[6]; face[2] = v_vertices[10]; Euler::add_face(face, g); - face[1] = v_vertices[0]; face[0] = v_vertices[11]; face[2] = v_vertices[10]; + face[0] = v_vertices[0]; face[1] = v_vertices[10]; face[2] = v_vertices[2]; Euler::add_face(face, g); - face[1] = v_vertices[1]; face[0] = v_vertices[9]; face[2] = v_vertices[5]; + face[0] = v_vertices[1]; face[1] = v_vertices[9]; face[2] = v_vertices[3]; Euler::add_face(face, g); - face[1] = v_vertices[5]; face[0] = v_vertices[4]; face[2] = v_vertices[11]; + face[0] = v_vertices[1]; face[1] = v_vertices[3]; face[2] = v_vertices[11]; Euler::add_face(face, g); - face[1] = v_vertices[11]; face[0] = v_vertices[2]; face[2] = v_vertices[10]; + face[0] = v_vertices[1]; face[1] = v_vertices[11]; face[2] = v_vertices[6]; Euler::add_face(face, g); - face[1] = v_vertices[10]; face[0] = v_vertices[6]; face[2] = v_vertices[7]; + face[0] = v_vertices[1]; face[1] = v_vertices[6]; face[2] = v_vertices[4]; Euler::add_face(face, g); - face[1] = v_vertices[7]; face[0] = v_vertices[8]; face[2] = v_vertices[1]; + face[0] = v_vertices[1]; face[1] = v_vertices[4]; face[2] = v_vertices[9]; Euler::add_face(face, g); - face[1] = v_vertices[3]; face[0] = v_vertices[4]; face[2] = v_vertices[9]; + face[0] = v_vertices[5]; face[1] = v_vertices[8]; face[2] = v_vertices[2]; Euler::add_face(face, g); - face[1] = v_vertices[3]; face[0] = v_vertices[2]; face[2] = v_vertices[4]; + face[0] = v_vertices[5]; face[1] = v_vertices[2]; face[2] = v_vertices[7]; Euler::add_face(face, g); - face[1] = v_vertices[3]; face[0] = v_vertices[6]; face[2] = v_vertices[2]; + face[0] = v_vertices[5]; face[1] = v_vertices[7]; face[2] = v_vertices[3]; Euler::add_face(face, g); - face[1] = v_vertices[3]; face[0] = v_vertices[8]; face[2] = v_vertices[6]; + face[0] = v_vertices[5]; face[1] = v_vertices[3]; face[2] = v_vertices[9]; Euler::add_face(face, g); - face[1] = v_vertices[3]; face[0] = v_vertices[9]; face[2] = v_vertices[8]; + face[0] = v_vertices[5]; face[1] = v_vertices[9]; face[2] = v_vertices[8]; Euler::add_face(face, g); - face[1] = v_vertices[4]; face[0] = v_vertices[5]; face[2] = v_vertices[9]; + face[0] = v_vertices[8]; face[1] = v_vertices[9]; face[2] = v_vertices[4]; Euler::add_face(face, g); - face[1] = v_vertices[2]; face[0] = v_vertices[11]; face[2] = v_vertices[4]; + face[0] = v_vertices[3]; face[1] = v_vertices[7]; face[2] = v_vertices[11]; Euler::add_face(face, g); - face[1] = v_vertices[6]; face[0] = v_vertices[10]; face[2] = v_vertices[2]; + face[0] = v_vertices[11]; face[1] = v_vertices[7]; face[2] = v_vertices[10]; Euler::add_face(face, g); - face[1] = v_vertices[8]; face[0] = v_vertices[7]; face[2] = v_vertices[6]; + face[0] = v_vertices[10]; face[1] = v_vertices[7]; face[2] = v_vertices[2]; Euler::add_face(face, g); - face[1] = v_vertices[9]; face[0] = v_vertices[1]; face[2] = v_vertices[8]; + face[0] = v_vertices[6]; face[1] = v_vertices[11]; face[2] = v_vertices[10]; Euler::add_face(face, g); - return halfedge(v_vertices[1], v_vertices[0], g).first; + return halfedge(v_vertices[5], v_vertices[0], g).first; } /*! diff --git a/thirdparty/CGAL/include/CGAL/boost/graph/graph_concepts.h b/thirdparty/CGAL/include/CGAL/boost/graph/graph_concepts.h index 134e0146..e424e50d 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/graph_concepts.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/graph_concepts.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_Arrangement_2.h b/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_Arrangement_2.h index cc01f5d6..6886ed3a 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_Arrangement_2.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_Arrangement_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_Constrained_Delaunay_triangulation_2.h b/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_Constrained_Delaunay_triangulation_2.h index 38af1ccc..ca303fc8 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_Constrained_Delaunay_triangulation_2.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_Constrained_Delaunay_triangulation_2.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_Constrained_triangulation_2.h b/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_Constrained_triangulation_2.h index 3873b35b..3158c380 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_Constrained_triangulation_2.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_Constrained_triangulation_2.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_Constrained_triangulation_plus_2.h b/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_Constrained_triangulation_plus_2.h index c35c83d0..e5502f27 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_Constrained_triangulation_plus_2.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_Constrained_triangulation_plus_2.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_Delaunay_triangulation_2.h b/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_Delaunay_triangulation_2.h index 03740003..e6171edb 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_Delaunay_triangulation_2.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_Delaunay_triangulation_2.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_Dual_Arrangement_2.h b/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_Dual_Arrangement_2.h index 5494f6cf..d1093be7 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_Dual_Arrangement_2.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_Dual_Arrangement_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_HalfedgeDS.h b/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_HalfedgeDS.h index 653d6931..9f9ff256 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_HalfedgeDS.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_HalfedgeDS.h @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ struct HDS_graph_traits 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 @@ struct HDS_graph_traits 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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_HalfedgeDS_default.h b/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_HalfedgeDS_default.h index cca5276b..7b8c0298 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_HalfedgeDS_default.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_HalfedgeDS_default.h @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ out_edges( typename boost::graph_traits< HalfedgeDS_default const>::verte 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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_Linear_cell_complex_for_combinatorial_map.h b/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_Linear_cell_complex_for_combinatorial_map.h index e42f6763..7203484b 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_Linear_cell_complex_for_combinatorial_map.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_Linear_cell_complex_for_combinatorial_map.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ struct CMap_Base_graph_traits 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 @@ public : 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 @@ out_edges(typename boost::graph_traits::vertex_descriptor v, 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 @@ void set_halfedge(typename boost::graph_traits::face_descriptor f } // 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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_OpenMesh.h b/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_OpenMesh.h index f86518e6..e55c710a 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_OpenMesh.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_OpenMesh.h @@ -2,15 +2,15 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 graph_traits< OPEN_MESH_CLASS > 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 @@ struct graph_traits< OPEN_MESH_CLASS > 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 @@ out_edges(typename boost::graph_traits::vertex_descriptor v, } +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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_PolyMesh_ArrayKernelT.h b/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_PolyMesh_ArrayKernelT.h index ffbd5030..659661e1 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_PolyMesh_ArrayKernelT.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_PolyMesh_ArrayKernelT.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_Polyhedron_3.h b/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_Polyhedron_3.h index 408f4d15..cec9fbb6 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_Polyhedron_3.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_Polyhedron_3.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_Regular_triangulation_2.h b/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_Regular_triangulation_2.h index 563b4516..0e737950 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_Regular_triangulation_2.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_Regular_triangulation_2.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_Seam_mesh.h b/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_Seam_mesh.h index 505729c4..62cb3c61 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_Seam_mesh.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_Seam_mesh.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_Surface_mesh.h b/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_Surface_mesh.h index 19bfc24f..03fb2135 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_Surface_mesh.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_Surface_mesh.h @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 graph_traits< CGAL::Surface_mesh

> 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 @@ struct graph_traits< CGAL::Surface_mesh

> 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 @@ out_edges(typename boost::graph_traits >::vertex_descripto 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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_TriMesh_ArrayKernelT.h b/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_TriMesh_ArrayKernelT.h index 33691932..36a35749 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_TriMesh_ArrayKernelT.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_TriMesh_ArrayKernelT.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_Triangulation_2.h b/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_Triangulation_2.h index 55cd64c2..91792740 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_Triangulation_2.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_Triangulation_2.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_Triangulation_data_structure_2.h b/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_Triangulation_data_structure_2.h index 9c9cce7a..90858232 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_Triangulation_data_structure_2.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_Triangulation_data_structure_2.h @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_Triangulation_hierarchy_2.h b/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_Triangulation_hierarchy_2.h index 679b38d1..70fa00d7 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_Triangulation_hierarchy_2.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_Triangulation_hierarchy_2.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_inheritance_macros.h b/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_inheritance_macros.h index 53c72a9b..af1b176e 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_inheritance_macros.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/graph_traits_inheritance_macros.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/halfedge_graph_traits.h b/thirdparty/CGAL/include/CGAL/boost/graph/halfedge_graph_traits.h index f759a168..23837759 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/halfedge_graph_traits.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/halfedge_graph_traits.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/halfedge_graph_traits_HalfedgeDS.h b/thirdparty/CGAL/include/CGAL/boost/graph/halfedge_graph_traits_HalfedgeDS.h index ee15b5bd..c3fc4ae7 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/halfedge_graph_traits_HalfedgeDS.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/halfedge_graph_traits_HalfedgeDS.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/halfedge_graph_traits_Polyhedron_3.h b/thirdparty/CGAL/include/CGAL/boost/graph/halfedge_graph_traits_Polyhedron_3.h index a8876703..a3401dd1 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/halfedge_graph_traits_Polyhedron_3.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/halfedge_graph_traits_Polyhedron_3.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/helpers.h b/thirdparty/CGAL/include/CGAL/boost/graph/helpers.h index 45928693..2d092b49 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/helpers.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/helpers.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/internal/Has_member_clear.h b/thirdparty/CGAL/include/CGAL/boost/graph/internal/Has_member_clear.h index 82ff032b..cc4a5d98 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/internal/Has_member_clear.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/internal/Has_member_clear.h @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ template 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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/internal/Has_member_id.h b/thirdparty/CGAL/include/CGAL/boost/graph/internal/Has_member_id.h index 9b0e53ac..a0dd035c 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/internal/Has_member_id.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/internal/Has_member_id.h @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace internal { 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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/internal/OM_iterator_from_circulator.h b/thirdparty/CGAL/include/CGAL/boost/graph/internal/OM_iterator_from_circulator.h index 79ae240a..09e34ff5 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/internal/OM_iterator_from_circulator.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/internal/OM_iterator_from_circulator.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/internal/graph_traits_2D_TDS_helper.h b/thirdparty/CGAL/include/CGAL/boost/graph/internal/graph_traits_2D_TDS_helper.h index 547e0f92..24355898 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/internal/graph_traits_2D_TDS_helper.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/internal/graph_traits_2D_TDS_helper.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/internal/graph_traits_2D_triangulation.h b/thirdparty/CGAL/include/CGAL/boost/graph/internal/graph_traits_2D_triangulation.h index 555733a8..532960a6 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/internal/graph_traits_2D_triangulation.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/internal/graph_traits_2D_triangulation.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/internal/graph_traits_2D_triangulation_helper.h b/thirdparty/CGAL/include/CGAL/boost/graph/internal/graph_traits_2D_triangulation_helper.h index b057c00c..0215f691 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/internal/graph_traits_2D_triangulation_helper.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/internal/graph_traits_2D_triangulation_helper.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/internal/helpers.h b/thirdparty/CGAL/include/CGAL/boost/graph/internal/helpers.h index fdaed2f2..2e423657 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/internal/helpers.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/internal/helpers.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/internal/initialized_index_maps_helpers.h b/thirdparty/CGAL/include/CGAL/boost/graph/internal/initialized_index_maps_helpers.h index f12ffad6..8b9e39b1 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/internal/initialized_index_maps_helpers.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/internal/initialized_index_maps_helpers.h @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ get_initialized_index_map(CGAL::internal_np::Param_not_found, template > + typename NamedParameters = parameters::Default_named_parameters > class GetInitializedIndexMap { public: diff --git a/thirdparty/CGAL/include/CGAL/boost/graph/internal/properties_2D_triangulation.h b/thirdparty/CGAL/include/CGAL/boost/graph/internal/properties_2D_triangulation.h index a7bbeae0..2a86f1a7 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/internal/properties_2D_triangulation.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/internal/properties_2D_triangulation.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/io.h b/thirdparty/CGAL/include/CGAL/boost/graph/io.h index e0c5be7a..b59f4809 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/io.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/io.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/iterator.h b/thirdparty/CGAL/include/CGAL/boost/graph/iterator.h index afebac79..0aa124d1 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/iterator.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/iterator.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/kruskal_min_spanning_tree.h b/thirdparty/CGAL/include/CGAL/boost/graph/kruskal_min_spanning_tree.h new file mode 100644 index 00000000..64810368 --- /dev/null +++ b/thirdparty/CGAL/include/CGAL/boost/graph/kruskal_min_spanning_tree.h @@ -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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/named_params_helper.h b/thirdparty/CGAL/include/CGAL/boost/graph/named_params_helper.h index bff46e92..07719ec8 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/named_params_helper.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/named_params_helper.h @@ -1,7 +1,7 @@ // Copyright (c) 2007-2015 GeometryFactory (France). All rights reserved. // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 - { - 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); - } - }; +// 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; +// - template - typename property_map_selector::type - get_property_map(const PropertyTag& p, PolygonMesh& pmesh) +//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) { - property_map_selector pms; - return pms.get_pmap(p, pmesh); + return get_impl(p, pmesh, Has_internal_pmap()); } - template - typename property_map_selector::const_type - get_const_property_map(const PropertyTag& p, const PolygonMesh& pmesh) + const_type get_const_pmap(const PropertyTag& p, const PolygonMesh& pmesh) { - property_map_selector pms; - return pms.get_const_pmap(p, pmesh); + return get_const_pmap_impl(p, pmesh, Has_internal_pmap()); } - // 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 +private: + type get_impl(const PropertyTag&, PolygonMesh&, CGAL::Tag_false) { - 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 - class GetK + return type(); //boost::cgal_no_property::type + } + type get_impl(const PropertyTag& p, PolygonMesh& pmesh, CGAL::Tag_true) { - typedef typename boost::property_traits< - typename GetVertexPointMap::type - >::value_type Point; - public: - typedef typename CGAL::Kernel_traits::Kernel Kernel; - }; + return get(p, pmesh); + } - template, - typename NamedParametersVPM = NamedParametersGT > - class GetGeomTraits + const_type get_const_pmap_impl(const PropertyTag& + , const PolygonMesh&, CGAL::Tag_false) { - 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; - }; + 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 +typename property_map_selector::type +get_property_map(const PropertyTag& p, PolygonMesh& pmesh) +{ + property_map_selector pms; + return pms.get_pmap(p, pmesh); +} + +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); +} + +// 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 @@ namespace CGAL { #define CGAL_DEF_GET_INDEX_TYPE(CTYPE, DTYPE, STYPE) \ template > \ + typename NamedParameters = parameters::Default_named_parameters> \ struct GetInitialized##CTYPE##IndexMap \ : public BGL::internal::GetInitializedIndexMap::faces_s #define CGAL_DEF_GET_INITIALIZED_INDEX_MAP(DTYPE, STYPE) \ template \ + 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 @@ typename BGL::internal::GetInitializedIndexMap, \ 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 @@ CGAL_DEF_GET_INITIALIZED_INDEX_MAP(face, typename boost::graph_traits::fa #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 + static Const_point_map get_const_point_map(const PointRange&, const NamedParameters& np) { - 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; - }; + return parameters::choose_parameter(parameters::get_parameter(np, internal_np::point_map)); + } - // to please compiler instantiating non valid overloads - template - class GetPointMap + static Normal_map get_normal_map(const PointRange&, const NamedParameters& np) { - struct Dummy_point{}; - public: - typedef typename CGAL::Identity_property_map type; - typedef typename CGAL::Identity_property_map const_type; - }; + return parameters::choose_parameter(parameters::get_parameter(np, internal_np::normal_map)); + } - 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; - }; - }; - - 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 + static Normal_map get_normal_map(const NamedParameters& np) { - public: - typedef typename internal_np::Lookup_named_param_def < - internal_np::sparse_linear_solver_t, - NamedParameters, - DefaultSolver - > ::type type; - }; + return parameters::choose_parameter(parameters::get_parameter(np, internal_np::normal_map)); + } - template - class GetDiagonalizeTraits + static Geom_traits get_geom_traits(const PointRange&, const NamedParameters& np) { - public: - typedef typename internal_np::Lookup_named_param_def < - internal_np::diagonalize_traits_t, - NamedParameters, - Default_diagonalize_traits - > ::type type; - }; + return parameters::choose_parameter(parameters::get_parameter(np, internal_np::geom_traits)); + } - template - class GetSvdTraits + static constexpr bool has_normal_map() { - 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, -#if defined(CGAL_EIGEN3_ENABLED) - Eigen_svd -#elif defined(CGAL_LAPACK_ENABLED) - Lapack_svd -#else - NoTraits -#endif - > ::type type; - }; + return !boost::is_same< typename internal_np::Get_param::type, + internal_np::Param_not_found> ::value; + } +}; - template - class GetImplementationTag +namespace Point_set_processing_3 { + +template +struct Fake_point_range +{ + struct iterator { - public: - typedef typename internal_np::Lookup_named_param_def < - internal_np::implementation_tag_t, - NamedParameters, - Alpha_expansion_boost_adjacency_list_tag - >::type type; + 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.; } + }; + +public: + typedef DummySvdTraits NoTraits; - template - void set_stream_precision_from_NP(std::ostream& os, const NP& np) + typedef typename internal_np::Lookup_named_param_def::type type; +}; + +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) { - 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); - } + 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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/partition.h b/thirdparty/CGAL/include/CGAL/boost/graph/partition.h index 0d4b3a8d..1d208648 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/partition.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/partition.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/prim_minimum_spanning_tree.h b/thirdparty/CGAL/include/CGAL/boost/graph/prim_minimum_spanning_tree.h new file mode 100644 index 00000000..f4a6a0aa --- /dev/null +++ b/thirdparty/CGAL/include/CGAL/boost/graph/prim_minimum_spanning_tree.h @@ -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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/properties.h b/thirdparty/CGAL/include/CGAL/boost/graph/properties.h index 5b324973..f3f1c6b8 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/properties.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/properties.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/properties_Constrained_Delaunay_triangulation_2.h b/thirdparty/CGAL/include/CGAL/boost/graph/properties_Constrained_Delaunay_triangulation_2.h index 0c00a8a0..5527659c 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/properties_Constrained_Delaunay_triangulation_2.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/properties_Constrained_Delaunay_triangulation_2.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/properties_Constrained_triangulation_2.h b/thirdparty/CGAL/include/CGAL/boost/graph/properties_Constrained_triangulation_2.h index b123b036..65289cdf 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/properties_Constrained_triangulation_2.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/properties_Constrained_triangulation_2.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/properties_Constrained_triangulation_plus_2.h b/thirdparty/CGAL/include/CGAL/boost/graph/properties_Constrained_triangulation_plus_2.h index 9dee43e5..575068a2 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/properties_Constrained_triangulation_plus_2.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/properties_Constrained_triangulation_plus_2.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/properties_Delaunay_triangulation_2.h b/thirdparty/CGAL/include/CGAL/boost/graph/properties_Delaunay_triangulation_2.h index 3df62986..45914acf 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/properties_Delaunay_triangulation_2.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/properties_Delaunay_triangulation_2.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/properties_Linear_cell_complex_for_combinatorial_map.h b/thirdparty/CGAL/include/CGAL/boost/graph/properties_Linear_cell_complex_for_combinatorial_map.h index e2e1937f..9c1ba7a0 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/properties_Linear_cell_complex_for_combinatorial_map.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/properties_Linear_cell_complex_for_combinatorial_map.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Linear_cell_complex/include/CGAL/boost/graph/properties_Linear_cell_complex_for_combinatorial_map.h $ -// $Id: properties_Linear_cell_complex_for_combinatorial_map.h 590ddf8 2021-10-08T15:38:47+02:00 Mael Rouxel-Labbé +// $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 // // Author(s) : Guillaume Damiand @@ -16,7 +16,6 @@ #include #include -#include #include diff --git a/thirdparty/CGAL/include/CGAL/boost/graph/properties_OpenMesh.h b/thirdparty/CGAL/include/CGAL/boost/graph/properties_OpenMesh.h index 2f5d9ffb..7d885570 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/properties_OpenMesh.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/properties_OpenMesh.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/properties_PolyMesh_ArrayKernelT.h b/thirdparty/CGAL/include/CGAL/boost/graph/properties_PolyMesh_ArrayKernelT.h index 2ca5a123..2836ab4f 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/properties_PolyMesh_ArrayKernelT.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/properties_PolyMesh_ArrayKernelT.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/properties_Polyhedron_3.h b/thirdparty/CGAL/include/CGAL/boost/graph/properties_Polyhedron_3.h index d6c0a883..223ec52f 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/properties_Polyhedron_3.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/properties_Polyhedron_3.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/properties_Polyhedron_3_features.h b/thirdparty/CGAL/include/CGAL/boost/graph/properties_Polyhedron_3_features.h index bf442158..554c9167 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/properties_Polyhedron_3_features.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/properties_Polyhedron_3_features.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/properties_Polyhedron_3_time_stamp.h b/thirdparty/CGAL/include/CGAL/boost/graph/properties_Polyhedron_3_time_stamp.h index 28d6b734..21e413b4 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/properties_Polyhedron_3_time_stamp.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/properties_Polyhedron_3_time_stamp.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/properties_Regular_triangulation_2.h b/thirdparty/CGAL/include/CGAL/boost/graph/properties_Regular_triangulation_2.h index 8141f129..8306122e 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/properties_Regular_triangulation_2.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/properties_Regular_triangulation_2.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/properties_Seam_mesh.h b/thirdparty/CGAL/include/CGAL/boost/graph/properties_Seam_mesh.h index 9d3e7cc7..c764d058 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/properties_Seam_mesh.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/properties_Seam_mesh.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/properties_Surface_mesh.h b/thirdparty/CGAL/include/CGAL/boost/graph/properties_Surface_mesh.h index 614278e0..f58d2cb1 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/properties_Surface_mesh.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/properties_Surface_mesh.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/properties_Surface_mesh_features.h b/thirdparty/CGAL/include/CGAL/boost/graph/properties_Surface_mesh_features.h index 8092e0a7..2476683f 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/properties_Surface_mesh_features.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/properties_Surface_mesh_features.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/properties_Surface_mesh_time_stamp.h b/thirdparty/CGAL/include/CGAL/boost/graph/properties_Surface_mesh_time_stamp.h index 392e1319..2e279326 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/properties_Surface_mesh_time_stamp.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/properties_Surface_mesh_time_stamp.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/properties_TriMesh_ArrayKernelT.h b/thirdparty/CGAL/include/CGAL/boost/graph/properties_TriMesh_ArrayKernelT.h index 5a93dd99..65445a9e 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/properties_TriMesh_ArrayKernelT.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/properties_TriMesh_ArrayKernelT.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/properties_Triangulation_2.h b/thirdparty/CGAL/include/CGAL/boost/graph/properties_Triangulation_2.h index d88ec788..1714c512 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/properties_Triangulation_2.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/properties_Triangulation_2.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/properties_Triangulation_data_structure_2.h b/thirdparty/CGAL/include/CGAL/boost/graph/properties_Triangulation_data_structure_2.h index ad723d80..9c5cb76c 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/properties_Triangulation_data_structure_2.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/properties_Triangulation_data_structure_2.h @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/properties_Triangulation_hierarchy_2.h b/thirdparty/CGAL/include/CGAL/boost/graph/properties_Triangulation_hierarchy_2.h index 0fef6037..6cda72e1 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/properties_Triangulation_hierarchy_2.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/properties_Triangulation_hierarchy_2.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/property_maps.h b/thirdparty/CGAL/include/CGAL/boost/graph/property_maps.h index b436455c..69550c46 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/property_maps.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/property_maps.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/selection.h b/thirdparty/CGAL/include/CGAL/boost/graph/selection.h index 5ad25eb3..1a9bab2d 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/selection.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/selection.h @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ reduce_face_selection( \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; @@ -546,20 +548,6 @@ regularize_face_selection_borders( put(is_selected, fd, graph.labels[get(face_index_map,fd)]); } -/// \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 @@ void expand_face_selection_for_removal(const FaceRange& faces_to_be_deleted, 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 @@ void expand_face_selection_for_removal(const FaceRange& faces_to_be_deleted, 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 @@ int euler_characteristic_of_selection(const FaceRange& face_selection, 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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/split_graph_into_polylines.h b/thirdparty/CGAL/include/CGAL/boost/graph/split_graph_into_polylines.h index dbffcf77..510be729 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/split_graph_into_polylines.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/split_graph_into_polylines.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/graph/visitor.h b/thirdparty/CGAL/include/CGAL/boost/graph/visitor.h index a6206e00..9f59d153 100644 --- a/thirdparty/CGAL/include/CGAL/boost/graph/visitor.h +++ b/thirdparty/CGAL/include/CGAL/boost/graph/visitor.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/iterator/counting_iterator.hpp b/thirdparty/CGAL/include/CGAL/boost/iterator/counting_iterator.hpp index 468bea31..35457eee 100644 --- a/thirdparty/CGAL/include/CGAL/boost/iterator/counting_iterator.hpp +++ b/thirdparty/CGAL/include/CGAL/boost/iterator/counting_iterator.hpp @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/iterator/transform_iterator.hpp b/thirdparty/CGAL/include/CGAL/boost/iterator/transform_iterator.hpp index 6fc298b2..42e074b1 100644 --- a/thirdparty/CGAL/include/CGAL/boost/iterator/transform_iterator.hpp +++ b/thirdparty/CGAL/include/CGAL/boost/iterator/transform_iterator.hpp @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost/parameter.h b/thirdparty/CGAL/include/CGAL/boost/parameter.h index 5e3839e5..b40d4be7 100644 --- a/thirdparty/CGAL/include/CGAL/boost/parameter.h +++ b/thirdparty/CGAL/include/CGAL/boost/parameter.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/boost_mp.h b/thirdparty/CGAL/include/CGAL/boost_mp.h index f552e561..2e718892 100644 --- a/thirdparty/CGAL/include/CGAL/boost_mp.h +++ b/thirdparty/CGAL/include/CGAL/boost_mp.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ struct Algebraic_structure_traits::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 RET_boost_mp_base 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 @@ struct RET_boost_mp; 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 @@ struct Fraction_traits // 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 @@ namespace internal { #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 --git a/thirdparty/CGAL/include/CGAL/bounding_box.h b/thirdparty/CGAL/include/CGAL/bounding_box.h index 548f86da..35087a2f 100644 --- a/thirdparty/CGAL/include/CGAL/bounding_box.h +++ b/thirdparty/CGAL/include/CGAL/bounding_box.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/box_intersection_d.h b/thirdparty/CGAL/include/CGAL/box_intersection_d.h index 78a6c742..1c793336 100644 --- a/thirdparty/CGAL/include/CGAL/box_intersection_d.h +++ b/thirdparty/CGAL/include/CGAL/box_intersection_d.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/cartesian_homogeneous_conversion.h b/thirdparty/CGAL/include/CGAL/cartesian_homogeneous_conversion.h index 8f8b5da0..95dfe4cf 100644 --- a/thirdparty/CGAL/include/CGAL/cartesian_homogeneous_conversion.h +++ b/thirdparty/CGAL/include/CGAL/cartesian_homogeneous_conversion.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/centroid.h b/thirdparty/CGAL/include/CGAL/centroid.h index 151e66ba..0ba30e5f 100644 --- a/thirdparty/CGAL/include/CGAL/centroid.h +++ b/thirdparty/CGAL/include/CGAL/centroid.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/certified_numeric_predicates.h b/thirdparty/CGAL/include/CGAL/certified_numeric_predicates.h index 1342d84e..3b5e874f 100644 --- a/thirdparty/CGAL/include/CGAL/certified_numeric_predicates.h +++ b/thirdparty/CGAL/include/CGAL/certified_numeric_predicates.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/certified_quotient_predicates.h b/thirdparty/CGAL/include/CGAL/certified_quotient_predicates.h index 1938c6f4..06a967d6 100644 --- a/thirdparty/CGAL/include/CGAL/certified_quotient_predicates.h +++ b/thirdparty/CGAL/include/CGAL/certified_quotient_predicates.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/ch_akl_toussaint.h b/thirdparty/CGAL/include/CGAL/ch_akl_toussaint.h index 74ff0d30..396e82ba 100644 --- a/thirdparty/CGAL/include/CGAL/ch_akl_toussaint.h +++ b/thirdparty/CGAL/include/CGAL/ch_akl_toussaint.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/ch_bykat.h b/thirdparty/CGAL/include/CGAL/ch_bykat.h index fa467307..1f2a8649 100644 --- a/thirdparty/CGAL/include/CGAL/ch_bykat.h +++ b/thirdparty/CGAL/include/CGAL/ch_bykat.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/ch_eddy.h b/thirdparty/CGAL/include/CGAL/ch_eddy.h index 0f445ec5..db2bd554 100644 --- a/thirdparty/CGAL/include/CGAL/ch_eddy.h +++ b/thirdparty/CGAL/include/CGAL/ch_eddy.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/ch_function_objects_2.h b/thirdparty/CGAL/include/CGAL/ch_function_objects_2.h index e00c66f8..16696231 100644 --- a/thirdparty/CGAL/include/CGAL/ch_function_objects_2.h +++ b/thirdparty/CGAL/include/CGAL/ch_function_objects_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/ch_graham_andrew.h b/thirdparty/CGAL/include/CGAL/ch_graham_andrew.h index c999c73d..1fbb5032 100644 --- a/thirdparty/CGAL/include/CGAL/ch_graham_andrew.h +++ b/thirdparty/CGAL/include/CGAL/ch_graham_andrew.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/ch_jarvis.h b/thirdparty/CGAL/include/CGAL/ch_jarvis.h index 5ba565de..f41be582 100644 --- a/thirdparty/CGAL/include/CGAL/ch_jarvis.h +++ b/thirdparty/CGAL/include/CGAL/ch_jarvis.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/ch_melkman.h b/thirdparty/CGAL/include/CGAL/ch_melkman.h index 1e8617c4..446947b4 100644 --- a/thirdparty/CGAL/include/CGAL/ch_melkman.h +++ b/thirdparty/CGAL/include/CGAL/ch_melkman.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/ch_selected_extreme_points_2.h b/thirdparty/CGAL/include/CGAL/ch_selected_extreme_points_2.h index cfbb1a82..6b1632c4 100644 --- a/thirdparty/CGAL/include/CGAL/ch_selected_extreme_points_2.h +++ b/thirdparty/CGAL/include/CGAL/ch_selected_extreme_points_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/circulator.h b/thirdparty/CGAL/include/CGAL/circulator.h index f4232efc..aa484152 100644 --- a/thirdparty/CGAL/include/CGAL/circulator.h +++ b/thirdparty/CGAL/include/CGAL/circulator.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/circulator_bases.h b/thirdparty/CGAL/include/CGAL/circulator_bases.h index 50cfe7f8..de1948dd 100644 --- a/thirdparty/CGAL/include/CGAL/circulator_bases.h +++ b/thirdparty/CGAL/include/CGAL/circulator_bases.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/cluster_point_set.h b/thirdparty/CGAL/include/CGAL/cluster_point_set.h index d2c5efc2..27d0c1ac 100644 --- a/thirdparty/CGAL/include/CGAL/cluster_point_set.h +++ b/thirdparty/CGAL/include/CGAL/cluster_point_set.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ CGAL::Emptyset_iterator get_adjacencies (const NamedParameters&, CGAL::Emptyset_ \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 @@ std::size_t cluster_point_set (PointRange& points, 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 @@ std::size_t cluster_point_set (PointRange& points, 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 --git a/thirdparty/CGAL/include/CGAL/compare_vertices.h b/thirdparty/CGAL/include/CGAL/compare_vertices.h index ad18a3e0..e47afb47 100644 --- a/thirdparty/CGAL/include/CGAL/compare_vertices.h +++ b/thirdparty/CGAL/include/CGAL/compare_vertices.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/compute_average_spacing.h b/thirdparty/CGAL/include/CGAL/compute_average_spacing.h index 172f2c35..0add3b5c 100644 --- a/thirdparty/CGAL/include/CGAL/compute_average_spacing.h +++ b/thirdparty/CGAL/include/CGAL/compute_average_spacing.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ compute_average_spacing(const typename NeighborQuery::Kernel::Point_3& query, // */ 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 @@ compute_average_spacing( 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 --git a/thirdparty/CGAL/include/CGAL/compute_outer_frame_margin.h b/thirdparty/CGAL/include/CGAL/compute_outer_frame_margin.h index c5397c06..0f968519 100644 --- a/thirdparty/CGAL/include/CGAL/compute_outer_frame_margin.h +++ b/thirdparty/CGAL/include/CGAL/compute_outer_frame_margin.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/config.h b/thirdparty/CGAL/include/CGAL/config.h index 0847d60a..e0d13b09 100644 --- a/thirdparty/CGAL/include/CGAL/config.h +++ b/thirdparty/CGAL/include/CGAL/config.h @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Installation/include/CGAL/config.h $ -// $Id: config.h 115fa5a 2021-12-14T14:01:21+00:00 Andreas Fabri +// $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 // // @@ -487,11 +487,11 @@ namespace cpp11{ // http://clang.llvm.org/docs/AttributeReference.html#statement-attributes // See for gcc: // https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html -#if __cpp_attributes >= 200809 && __has_cpp_attribute(fallthrough) +#if __cplusplus > 201402L && __has_cpp_attribute(fallthrough) # define CGAL_FALLTHROUGH [[fallthrough]] -#elif __cpp_attributes >= 200809 && __has_cpp_attribute(gnu::fallthrough) +#elif __has_cpp_attribute(gnu::fallthrough) # define CGAL_FALLTHROUGH [[gnu::fallthrough]] -#elif __cpp_attributes >= 200809 && __has_cpp_attribute(clang::fallthrough) +#elif __has_cpp_attribute(clang::fallthrough) # define CGAL_FALLTHROUGH [[clang::fallthrough]] #elif __has_attribute(fallthrough) && ! __clang__ # define CGAL_FALLTHROUGH __attribute__ ((fallthrough)) @@ -499,6 +499,12 @@ namespace cpp11{ # 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 @@ namespace cpp11{ /// 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 --git a/thirdparty/CGAL/include/CGAL/connect_holes.h b/thirdparty/CGAL/include/CGAL/connect_holes.h index 1f811440..4621d3a2 100644 --- a/thirdparty/CGAL/include/CGAL/connect_holes.h +++ b/thirdparty/CGAL/include/CGAL/connect_holes.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/constant.h b/thirdparty/CGAL/include/CGAL/constant.h index 38c4687e..42150c87 100644 --- a/thirdparty/CGAL/include/CGAL/constant.h +++ b/thirdparty/CGAL/include/CGAL/constant.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/constructions/Polygon_offset_cons_ftC2.h b/thirdparty/CGAL/include/CGAL/constructions/Polygon_offset_cons_ftC2.h index a5366ee1..903adf0d 100644 --- a/thirdparty/CGAL/include/CGAL/constructions/Polygon_offset_cons_ftC2.h +++ b/thirdparty/CGAL/include/CGAL/constructions/Polygon_offset_cons_ftC2.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/constructions/Straight_skeleton_cons_ftC2.h b/thirdparty/CGAL/include/CGAL/constructions/Straight_skeleton_cons_ftC2.h index 114d58eb..1f7bdd6a 100644 --- a/thirdparty/CGAL/include/CGAL/constructions/Straight_skeleton_cons_ftC2.h +++ b/thirdparty/CGAL/include/CGAL/constructions/Straight_skeleton_cons_ftC2.h @@ -2,8 +2,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ bool are_parallel_edges_equally_oriented( Segment_2_with_ID const& e0, Segmen 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 --git a/thirdparty/CGAL/include/CGAL/constructions/constructions_for_voronoi_intersection_cartesian_2_3.h b/thirdparty/CGAL/include/CGAL/constructions/constructions_for_voronoi_intersection_cartesian_2_3.h index d74e507c..88614acf 100644 --- a/thirdparty/CGAL/include/CGAL/constructions/constructions_for_voronoi_intersection_cartesian_2_3.h +++ b/thirdparty/CGAL/include/CGAL/constructions/constructions_for_voronoi_intersection_cartesian_2_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/constructions/kernel_ftC2.h b/thirdparty/CGAL/include/CGAL/constructions/kernel_ftC2.h index 5d4cc407..b3918c1a 100644 --- a/thirdparty/CGAL/include/CGAL/constructions/kernel_ftC2.h +++ b/thirdparty/CGAL/include/CGAL/constructions/kernel_ftC2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/constructions/kernel_ftC3.h b/thirdparty/CGAL/include/CGAL/constructions/kernel_ftC3.h index 4a1281ba..e223b049 100644 --- a/thirdparty/CGAL/include/CGAL/constructions/kernel_ftC3.h +++ b/thirdparty/CGAL/include/CGAL/constructions/kernel_ftC3.h @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ squared_areaC3(const FT &px, const FT &py, const FT &pz, 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 @@ determinants_for_weighted_circumcenterC3( 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 @@ determinants_for_circumcenterC3(const FT &px, const FT &py, const FT &pz, 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 @@ weighted_circumcenterC3(const FT &px, const FT &py, const FT &pz, const FT &pw, 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 @@ weighted_circumcenterC3(const FT &px, const FT &py, const FT &pz, const FT &pw, 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 @@ weighted_circumcenterC3(const FT &px, const FT &py, const FT &pz, const FT &pw, 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 @@ weighted_circumcenterC3(const FT &px, const FT &py, const FT &pz, const FT &pw, * 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 @@ squared_radius_orthogonal_sphereC3( 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 @@ squared_radius_orthogonal_sphereC3( * CGAL_NTS square(inv) - pw; } +// compute determinants for weighted_circumcenter and circumradius template void determinants_for_weighted_circumcenterC3( @@ -578,10 +661,7 @@ determinants_for_weighted_circumcenterC3( 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 @@ determinants_for_weighted_circumcenterC3( 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 @@ weighted_circumcenterC3(const FT &px, const FT &py, const FT &pz, const FT &pw, 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 @@ weighted_circumcenterC3(const FT &px, const FT &py, const FT &pz, const FT &pw, 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 @@ weighted_circumcenterC3(const FT &px, const FT &py, const FT &pz, const FT &pw, 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 @@ weighted_circumcenterC3(const FT &px, const FT &py, const FT &pz, const FT &pw, 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 @@ squared_radius_smallest_orthogonal_sphereC3( 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 @@ squared_radius_smallest_orthogonal_sphereC3( * 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 @@ weighted_circumcenterC3(const FT &px, const FT &py, const FT &pz, const FT &pw, 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 @@ weighted_circumcenterC3(const FT &px, const FT &py, const FT &pz, const FT &pw, 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 @@ squared_radius_smallest_orthogonal_sphereC3( 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 --git a/thirdparty/CGAL/include/CGAL/constructions_d.h b/thirdparty/CGAL/include/CGAL/constructions_d.h index d7956ceb..bdcf2140 100644 --- a/thirdparty/CGAL/include/CGAL/constructions_d.h +++ b/thirdparty/CGAL/include/CGAL/constructions_d.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/convert_to_bfi.h b/thirdparty/CGAL/include/CGAL/convert_to_bfi.h index 436395c4..f8a77301 100644 --- a/thirdparty/CGAL/include/CGAL/convert_to_bfi.h +++ b/thirdparty/CGAL/include/CGAL/convert_to_bfi.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/convex_decomposition_3.h b/thirdparty/CGAL/include/CGAL/convex_decomposition_3.h index ca670358..eb88e1bf 100644 --- a/thirdparty/CGAL/include/CGAL/convex_decomposition_3.h +++ b/thirdparty/CGAL/include/CGAL/convex_decomposition_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/convex_hull_2.h b/thirdparty/CGAL/include/CGAL/convex_hull_2.h index 0c7fefd3..74a7be25 100644 --- a/thirdparty/CGAL/include/CGAL/convex_hull_2.h +++ b/thirdparty/CGAL/include/CGAL/convex_hull_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/convex_hull_3.h b/thirdparty/CGAL/include/CGAL/convex_hull_3.h index f19d4ab2..03b0ce4f 100644 --- a/thirdparty/CGAL/include/CGAL/convex_hull_3.h +++ b/thirdparty/CGAL/include/CGAL/convex_hull_3.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Convex_hull_3/include/CGAL/convex_hull_3.h $ -// $Id: convex_hull_3.h 61d42c3 2021-12-16T13:49:45+01:00 Mael Rouxel-Labbé +// $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 @@ -702,7 +703,6 @@ ch_quickhull_3_scan(TDS_2& tds, } Vertex_handle vh = tds.star_hole(edges.begin(), edges.end(), visible_set.begin(), visible_set.end()); vh->point() = farthest_pt; - vh->info() = 0; // now partition the set of outside set points among the new facets. @@ -774,8 +774,8 @@ ch_quickhull_face_graph(std::list& points, typedef typename std::list::iterator P3_iterator; typedef Triangulation_data_structure_2< - Convex_hull_vertex_base_2 >, - Convex_hull_face_base_2 > Tds; + Convex_hull_vertex_base_2 >, + Convex_hull_face_base_2 > Tds; typedef typename Tds::Vertex_handle Vertex_handle; typedef typename Tds::Face_handle Face_handle; @@ -821,7 +821,6 @@ ch_quickhull_face_graph(std::list& points, Vertex_handle v2 = tds.create_vertex(); v2->set_point(*point3_it); Vertex_handle v3 = tds.create_vertex(); v3->set_point(*max_it); - v0->info() = v1->info() = v2->info() = v3->info() = 0; Face_handle f0 = tds.create_face(v0,v1,v2); Face_handle f1 = tds.create_face(v3,v1,v0); Face_handle f2 = tds.create_face(v3,v2,v1); @@ -1060,10 +1059,10 @@ void convex_hull_3(InputIterator first, InputIterator beyond, 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; @@ -1078,13 +1077,38 @@ void convex_hull_3(const VertexListGraph& g, 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 --git a/thirdparty/CGAL/include/CGAL/convex_hull_3_to_face_graph.h b/thirdparty/CGAL/include/CGAL/convex_hull_3_to_face_graph.h index 36df101e..9fb65700 100644 --- a/thirdparty/CGAL/include/CGAL/convex_hull_3_to_face_graph.h +++ b/thirdparty/CGAL/include/CGAL/convex_hull_3_to_face_graph.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/convex_hull_constructive_traits_2.h b/thirdparty/CGAL/include/CGAL/convex_hull_constructive_traits_2.h index 17614b8c..092fe89f 100644 --- a/thirdparty/CGAL/include/CGAL/convex_hull_constructive_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/convex_hull_constructive_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/convex_hull_traits_2.h b/thirdparty/CGAL/include/CGAL/convex_hull_traits_2.h index a637043c..1a1f499f 100644 --- a/thirdparty/CGAL/include/CGAL/convex_hull_traits_2.h +++ b/thirdparty/CGAL/include/CGAL/convex_hull_traits_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/convexity_check_2.h b/thirdparty/CGAL/include/CGAL/convexity_check_2.h index 8b1cb207..9b64cbfe 100644 --- a/thirdparty/CGAL/include/CGAL/convexity_check_2.h +++ b/thirdparty/CGAL/include/CGAL/convexity_check_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/convexity_check_3.h b/thirdparty/CGAL/include/CGAL/convexity_check_3.h index 017eb1a2..9ae5c338 100644 --- a/thirdparty/CGAL/include/CGAL/convexity_check_3.h +++ b/thirdparty/CGAL/include/CGAL/convexity_check_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/copy_n.h b/thirdparty/CGAL/include/CGAL/copy_n.h index e6d6b841..d5167f3b 100644 --- a/thirdparty/CGAL/include/CGAL/copy_n.h +++ b/thirdparty/CGAL/include/CGAL/copy_n.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/create_offset_polygons_2.h b/thirdparty/CGAL/include/CGAL/create_offset_polygons_2.h index 11fa7e66..9ad29534 100644 --- a/thirdparty/CGAL/include/CGAL/create_offset_polygons_2.h +++ b/thirdparty/CGAL/include/CGAL/create_offset_polygons_2.h @@ -3,8 +3,8 @@ // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ struct Is_same_type { typedef Tag_true type ; } ; // 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 @@ struct Default_return_polygon_with_holes_type // Polygon type supports holes { 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 @@ create_exterior_skeleton_and_offset_polygons_2(const FT& aOffset, 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 --git a/thirdparty/CGAL/include/CGAL/create_offset_polygons_from_polygon_with_holes_2.h b/thirdparty/CGAL/include/CGAL/create_offset_polygons_from_polygon_with_holes_2.h index 8c852c3d..c685f496 100644 --- a/thirdparty/CGAL/include/CGAL/create_offset_polygons_from_polygon_with_holes_2.h +++ b/thirdparty/CGAL/include/CGAL/create_offset_polygons_from_polygon_with_holes_2.h @@ -3,8 +3,8 @@ // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ create_interior_skeleton_and_offset_polygons_with_holes_2(const FT& aOffset, //////////////////////////////////////////////////////////////////////////////////////////////////// /// 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 @@ create_exterior_skeleton_and_offset_polygons_2(const FT& aOffset, 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); -} - -/*! 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) -{ - return arrange_offset_polygons_2( - create_exterior_skeleton_and_offset_polygons_2(aOffset, aPoly, ofk, ssk)); + std::vector > polygons = + create_exterior_skeleton_and_offset_polygons_2(aOffset, aPoly.outer_boundary(), ofk, ssk); + + 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()); + } + + return polygons; } template @@ -18,6 +18,7 @@ #include #include #include +#include #ifdef CGAL_USE_BASIC_VIEWER @@ -52,7 +53,7 @@ struct LCC_geom_utils, Local_kernel, 3> } while(adart!=dh); - assert(nb>0); + CGAL_assertion(nb>0); return typename Get_traits::Kernel::Construct_scaled_vector_3() (normal, 1.0/nb); } diff --git a/thirdparty/CGAL/include/CGAL/draw_linear_cell_complex.h b/thirdparty/CGAL/include/CGAL/draw_linear_cell_complex.h index 9e17bca4..61e2a1c6 100644 --- a/thirdparty/CGAL/include/CGAL/draw_linear_cell_complex.h +++ b/thirdparty/CGAL/include/CGAL/draw_linear_cell_complex.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/draw_nef_3.h b/thirdparty/CGAL/include/CGAL/draw_nef_3.h index ef2d6583..077e6d48 100644 --- a/thirdparty/CGAL/include/CGAL/draw_nef_3.h +++ b/thirdparty/CGAL/include/CGAL/draw_nef_3.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class SimpleNefPolyhedronViewerQt : public Basic_viewer_qt 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 @@ class SimpleNefPolyhedronViewerQt : public Basic_viewer_qt 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 @@ class SimpleNefPolyhedronViewerQt : public Basic_viewer_qt ++nb; } - assert(nb > 0); + CGAL_assertion(nb > 0); return (typename Local_kernel::Construct_scaled_vector_3()(normal, 1.0 / nb)); } diff --git a/thirdparty/CGAL/include/CGAL/draw_periodic_2_triangulation_2.h b/thirdparty/CGAL/include/CGAL/draw_periodic_2_triangulation_2.h index d0396bc2..8fcf5bbd 100644 --- a/thirdparty/CGAL/include/CGAL/draw_periodic_2_triangulation_2.h +++ b/thirdparty/CGAL/include/CGAL/draw_periodic_2_triangulation_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/draw_point_set_3.h b/thirdparty/CGAL/include/CGAL/draw_point_set_3.h index 76237da9..7ef2dab9 100644 --- a/thirdparty/CGAL/include/CGAL/draw_point_set_3.h +++ b/thirdparty/CGAL/include/CGAL/draw_point_set_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/draw_polygon_2.h b/thirdparty/CGAL/include/CGAL/draw_polygon_2.h index 961c9a39..52c65ec1 100644 --- a/thirdparty/CGAL/include/CGAL/draw_polygon_2.h +++ b/thirdparty/CGAL/include/CGAL/draw_polygon_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/draw_polygon_set_2.h b/thirdparty/CGAL/include/CGAL/draw_polygon_set_2.h index a3098d6a..33f47dac 100644 --- a/thirdparty/CGAL/include/CGAL/draw_polygon_set_2.h +++ b/thirdparty/CGAL/include/CGAL/draw_polygon_set_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/draw_polygon_with_holes_2.h b/thirdparty/CGAL/include/CGAL/draw_polygon_with_holes_2.h index 5aa48b1b..dff60c4e 100644 --- a/thirdparty/CGAL/include/CGAL/draw_polygon_with_holes_2.h +++ b/thirdparty/CGAL/include/CGAL/draw_polygon_with_holes_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/draw_polyhedron.h b/thirdparty/CGAL/include/CGAL/draw_polyhedron.h index e8db2809..3f199c8a 100644 --- a/thirdparty/CGAL/include/CGAL/draw_polyhedron.h +++ b/thirdparty/CGAL/include/CGAL/draw_polyhedron.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/draw_straight_skeleton_2.h b/thirdparty/CGAL/include/CGAL/draw_straight_skeleton_2.h index 88c7ba09..14f18ab9 100644 --- a/thirdparty/CGAL/include/CGAL/draw_straight_skeleton_2.h +++ b/thirdparty/CGAL/include/CGAL/draw_straight_skeleton_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/draw_surface_mesh.h b/thirdparty/CGAL/include/CGAL/draw_surface_mesh.h index b17b0694..181527b0 100644 --- a/thirdparty/CGAL/include/CGAL/draw_surface_mesh.h +++ b/thirdparty/CGAL/include/CGAL/draw_surface_mesh.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/draw_triangulation_2.h b/thirdparty/CGAL/include/CGAL/draw_triangulation_2.h index 0ce76552..b0af889a 100644 --- a/thirdparty/CGAL/include/CGAL/draw_triangulation_2.h +++ b/thirdparty/CGAL/include/CGAL/draw_triangulation_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/draw_triangulation_3.h b/thirdparty/CGAL/include/CGAL/draw_triangulation_3.h index 161fb4fe..01aeb2b7 100644 --- a/thirdparty/CGAL/include/CGAL/draw_triangulation_3.h +++ b/thirdparty/CGAL/include/CGAL/draw_triangulation_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/draw_voronoi_diagram_2.h b/thirdparty/CGAL/include/CGAL/draw_voronoi_diagram_2.h index 553cf2b9..6f5e992f 100644 --- a/thirdparty/CGAL/include/CGAL/draw_voronoi_diagram_2.h +++ b/thirdparty/CGAL/include/CGAL/draw_voronoi_diagram_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/edge_aware_upsample_point_set.h b/thirdparty/CGAL/include/CGAL/edge_aware_upsample_point_set.h index 4167944d..ed721c70 100644 --- a/thirdparty/CGAL/include/CGAL/edge_aware_upsample_point_set.h +++ b/thirdparty/CGAL/include/CGAL/edge_aware_upsample_point_set.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ update_new_point( 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; + 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(!(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::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 @@ edge_aware_upsample_point_set( 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 --git a/thirdparty/CGAL/include/CGAL/enable_warnings.h b/thirdparty/CGAL/include/CGAL/enable_warnings.h index 6fdefb3e..425c560a 100644 --- a/thirdparty/CGAL/include/CGAL/enable_warnings.h +++ b/thirdparty/CGAL/include/CGAL/enable_warnings.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/enum.h b/thirdparty/CGAL/include/CGAL/enum.h index 3de5ebcb..489fa08d 100644 --- a/thirdparty/CGAL/include/CGAL/enum.h +++ b/thirdparty/CGAL/include/CGAL/enum.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/envelope_2.h b/thirdparty/CGAL/include/CGAL/envelope_2.h index d8e8cf5e..03db62b1 100644 --- a/thirdparty/CGAL/include/CGAL/envelope_2.h +++ b/thirdparty/CGAL/include/CGAL/envelope_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/envelope_3.h b/thirdparty/CGAL/include/CGAL/envelope_3.h index da3021fd..3fed11e7 100644 --- a/thirdparty/CGAL/include/CGAL/envelope_3.h +++ b/thirdparty/CGAL/include/CGAL/envelope_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/estimate_scale.h b/thirdparty/CGAL/include/CGAL/estimate_scale.h index ab11ba2a..a5a255a3 100644 --- a/thirdparty/CGAL/include/CGAL/estimate_scale.h +++ b/thirdparty/CGAL/include/CGAL/estimate_scale.h @@ -4,8 +4,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Quick_multiscale_approximate_knn_distance 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 @@ estimate_local_k_neighbor_scales( 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 @@ estimate_local_k_neighbor_scales( \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 @@ estimate_global_k_neighbor_scale(const PointRange& points) 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 @@ estimate_local_range_scales( 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 @@ estimate_local_range_scales( 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 --git a/thirdparty/CGAL/include/CGAL/exceptions.h b/thirdparty/CGAL/include/CGAL/exceptions.h index 10d62b93..23e59d7b 100644 --- a/thirdparty/CGAL/include/CGAL/exceptions.h +++ b/thirdparty/CGAL/include/CGAL/exceptions.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/export/CGAL.h b/thirdparty/CGAL/include/CGAL/export/CGAL.h index 34adcff6..72fb37c0 100644 --- a/thirdparty/CGAL/include/CGAL/export/CGAL.h +++ b/thirdparty/CGAL/include/CGAL/export/CGAL.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/export/CORE.h b/thirdparty/CGAL/include/CGAL/export/CORE.h index 8d6a241f..68df82a7 100644 --- a/thirdparty/CGAL/include/CGAL/export/CORE.h +++ b/thirdparty/CGAL/include/CGAL/export/CORE.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/export/ImageIO.h b/thirdparty/CGAL/include/CGAL/export/ImageIO.h index d77be9cd..0c720c91 100644 --- a/thirdparty/CGAL/include/CGAL/export/ImageIO.h +++ b/thirdparty/CGAL/include/CGAL/export/ImageIO.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/export/Qt.h b/thirdparty/CGAL/include/CGAL/export/Qt.h index f6731181..3b63c1ca 100644 --- a/thirdparty/CGAL/include/CGAL/export/Qt.h +++ b/thirdparty/CGAL/include/CGAL/export/Qt.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/export/helpers.h b/thirdparty/CGAL/include/CGAL/export/helpers.h index 2144b33a..d269f635 100644 --- a/thirdparty/CGAL/include/CGAL/export/helpers.h +++ b/thirdparty/CGAL/include/CGAL/export/helpers.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/extended_euclidean_algorithm.h b/thirdparty/CGAL/include/CGAL/extended_euclidean_algorithm.h index 07496060..2559cacc 100644 --- a/thirdparty/CGAL/include/CGAL/extended_euclidean_algorithm.h +++ b/thirdparty/CGAL/include/CGAL/extended_euclidean_algorithm.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/extract_mean_curvature_flow_skeleton.h b/thirdparty/CGAL/include/CGAL/extract_mean_curvature_flow_skeleton.h index 0a5bff43..a0f1c29c 100644 --- a/thirdparty/CGAL/include/CGAL/extract_mean_curvature_flow_skeleton.h +++ b/thirdparty/CGAL/include/CGAL/extract_mean_curvature_flow_skeleton.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/extremal_polygon_2.h b/thirdparty/CGAL/include/CGAL/extremal_polygon_2.h index e4b53543..e114e9e0 100644 --- a/thirdparty/CGAL/include/CGAL/extremal_polygon_2.h +++ b/thirdparty/CGAL/include/CGAL/extremal_polygon_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/exude_mesh_3.h b/thirdparty/CGAL/include/CGAL/exude_mesh_3.h index 12a9fba5..e18b63e6 100644 --- a/thirdparty/CGAL/include/CGAL/exude_mesh_3.h +++ b/thirdparty/CGAL/include/CGAL/exude_mesh_3.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ BOOST_PARAMETER_FUNCTION( (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 --git a/thirdparty/CGAL/include/CGAL/facets_in_complex_3_to_triangle_mesh.h b/thirdparty/CGAL/include/CGAL/facets_in_complex_3_to_triangle_mesh.h index 797e5ae9..dc6f3c08 100644 --- a/thirdparty/CGAL/include/CGAL/facets_in_complex_3_to_triangle_mesh.h +++ b/thirdparty/CGAL/include/CGAL/facets_in_complex_3_to_triangle_mesh.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Mesh_3/include/CGAL/facets_in_complex_3_to_triangle_mesh.h $ -// $Id: facets_in_complex_3_to_triangle_mesh.h 70058db 2021-05-03T15:30:52+02:00 Sébastien Loriot +// $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 // // @@ -18,16 +18,18 @@ #include #include +#include +#include #include #include #include -#include #include #include #include #include +#include #include namespace CGAL { @@ -61,22 +63,24 @@ void facets_in_complex_3_to_triangle_soup(const C3T3& c3t3, typedef typename C3T3::Triangulation Tr; - typedef typename Tr::Vertex_handle Vertex_handle; typedef typename Tr::Cell_handle Cell_handle; typedef typename Tr::Weighted_point Weighted_point; typedef typename C3T3::Facets_in_complex_iterator Ficit; - typedef CGAL::Hash_handles_with_or_without_timestamps Hash_fct; - typedef boost::unordered_map VHmap; + typedef std::unordered_map PIM; typedef typename C3T3::size_type size_type; + // triangulation point to range point + CGAL::Cartesian_converter::type, + typename CGAL::Kernel_traits::type> t2r; + size_type nf = c3t3.number_of_facets_in_complex(); faces.reserve(faces.size() + nf); points.reserve(points.size() + nf/2); // approximating Euler - VHmap vh_to_ids; + PIM p_to_ids; std::size_t inum = 0; for(Ficit fit = c3t3.facets_in_complex_begin(), @@ -95,23 +99,21 @@ void facets_in_complex_3_to_triangle_soup(const C3T3& c3t3, for(std::size_t i=1; i<4; ++i) { - typename VHmap::iterator map_entry; - bool is_new; - Vertex_handle v = c->vertex((s+i)&3); + CGAL_assertion_code(typedef typename Tr::Vertex_handle Vertex_handle;) + CGAL_assertion_code(Vertex_handle v = c->vertex((s+i)&3);) CGAL_assertion(v != Vertex_handle() && !c3t3.triangulation().is_infinite(v)); - boost::tie(map_entry, is_new) = vh_to_ids.insert(std::make_pair(v, inum)); - if(is_new) + const Weighted_point& wp = c3t3.triangulation().point(c, (s+i)&3); + const Point_3& bp = t2r(c3t3.triangulation().geom_traits().construct_point_3_object()(wp)); + + auto insertion_res = p_to_ids.emplace(bp, inum); + if(insertion_res.second) // new point { - const Weighted_point& p = c3t3.triangulation().point(c, (s+i)&3); - const Point_3 bp = Point_3(CGAL::to_double(p.x()), - CGAL::to_double(p.y()), - CGAL::to_double(p.z())); points.push_back(bp); ++inum; } - f[i-1] = map_entry->second; + f[i-1] = insertion_res.first->second; } if(export_all_facets) @@ -166,7 +168,7 @@ void facets_in_complex_3_to_triangle_mesh(const C3T3& c3t3, TriangleMesh& graph) typedef typename boost::property_map::type VertexPointMap; typedef typename boost::property_traits::value_type Point_3; - typedef std::array Face; + typedef std::array Face; std::vector faces; std::vector points; diff --git a/thirdparty/CGAL/include/CGAL/float.h b/thirdparty/CGAL/include/CGAL/float.h index 76348ebc..7b7f72c1 100644 --- a/thirdparty/CGAL/include/CGAL/float.h +++ b/thirdparty/CGAL/include/CGAL/float.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/for_each.h b/thirdparty/CGAL/include/CGAL/for_each.h index 676dbef3..ac24a2fd 100644 --- a/thirdparty/CGAL/include/CGAL/for_each.h +++ b/thirdparty/CGAL/include/CGAL/for_each.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/function_objects.h b/thirdparty/CGAL/include/CGAL/function_objects.h index 529efeb7..94872198 100644 --- a/thirdparty/CGAL/include/CGAL/function_objects.h +++ b/thirdparty/CGAL/include/CGAL/function_objects.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/functional.h b/thirdparty/CGAL/include/CGAL/functional.h index 5c84d79e..3ddeef4e 100644 --- a/thirdparty/CGAL/include/CGAL/functional.h +++ b/thirdparty/CGAL/include/CGAL/functional.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/functions_on_enums.h b/thirdparty/CGAL/include/CGAL/functions_on_enums.h index d483bce4..e648cff5 100644 --- a/thirdparty/CGAL/include/CGAL/functions_on_enums.h +++ b/thirdparty/CGAL/include/CGAL/functions_on_enums.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/functions_on_signs.h b/thirdparty/CGAL/include/CGAL/functions_on_signs.h index e51cd254..aea4aa51 100644 --- a/thirdparty/CGAL/include/CGAL/functions_on_signs.h +++ b/thirdparty/CGAL/include/CGAL/functions_on_signs.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/generators.h b/thirdparty/CGAL/include/CGAL/generators.h index 50d3acff..54905800 100644 --- a/thirdparty/CGAL/include/CGAL/generators.h +++ b/thirdparty/CGAL/include/CGAL/generators.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/generic_sweep.h b/thirdparty/CGAL/include/CGAL/generic_sweep.h index 5037e777..acb8a7af 100644 --- a/thirdparty/CGAL/include/CGAL/generic_sweep.h +++ b/thirdparty/CGAL/include/CGAL/generic_sweep.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/gl.h b/thirdparty/CGAL/include/CGAL/gl.h index 4505c82c..67033ada 100644 --- a/thirdparty/CGAL/include/CGAL/gl.h +++ b/thirdparty/CGAL/include/CGAL/gl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/global_functions_circular_kernel_2.h b/thirdparty/CGAL/include/CGAL/global_functions_circular_kernel_2.h index 692ce170..b286b45e 100644 --- a/thirdparty/CGAL/include/CGAL/global_functions_circular_kernel_2.h +++ b/thirdparty/CGAL/include/CGAL/global_functions_circular_kernel_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/global_functions_on_root_for_sphere_2_3.h b/thirdparty/CGAL/include/CGAL/global_functions_on_root_for_sphere_2_3.h index f4d6eb8f..bafd062b 100644 --- a/thirdparty/CGAL/include/CGAL/global_functions_on_root_for_sphere_2_3.h +++ b/thirdparty/CGAL/include/CGAL/global_functions_on_root_for_sphere_2_3.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/global_functions_on_roots_and_polynomials_1_3.h b/thirdparty/CGAL/include/CGAL/global_functions_on_roots_and_polynomials_1_3.h index 59989c0e..b79881cc 100644 --- a/thirdparty/CGAL/include/CGAL/global_functions_on_roots_and_polynomials_1_3.h +++ b/thirdparty/CGAL/include/CGAL/global_functions_on_roots_and_polynomials_1_3.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/global_functions_on_roots_and_polynomials_2_3.h b/thirdparty/CGAL/include/CGAL/global_functions_on_roots_and_polynomials_2_3.h index 982233c8..68f03d0b 100644 --- a/thirdparty/CGAL/include/CGAL/global_functions_on_roots_and_polynomials_2_3.h +++ b/thirdparty/CGAL/include/CGAL/global_functions_on_roots_and_polynomials_2_3.h @@ -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/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 --git a/thirdparty/CGAL/include/CGAL/global_functions_spherical_kernel_3.h b/thirdparty/CGAL/include/CGAL/global_functions_spherical_kernel_3.h index caf2af23..85c3af4a 100644 --- a/thirdparty/CGAL/include/CGAL/global_functions_spherical_kernel_3.h +++ b/thirdparty/CGAL/include/CGAL/global_functions_spherical_kernel_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/glu.h b/thirdparty/CGAL/include/CGAL/glu.h index 76e3c152..d9adf6ef 100644 --- a/thirdparty/CGAL/include/CGAL/glu.h +++ b/thirdparty/CGAL/include/CGAL/glu.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/gmp.h b/thirdparty/CGAL/include/CGAL/gmp.h index 1974a8ea..df358a17 100644 --- a/thirdparty/CGAL/include/CGAL/gmp.h +++ b/thirdparty/CGAL/include/CGAL/gmp.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/gmpxx.h b/thirdparty/CGAL/include/CGAL/gmpxx.h index 19635c4b..116165f6 100644 --- a/thirdparty/CGAL/include/CGAL/gmpxx.h +++ b/thirdparty/CGAL/include/CGAL/gmpxx.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/gmpxx_coercion_traits.h b/thirdparty/CGAL/include/CGAL/gmpxx_coercion_traits.h index 7ffc38e7..7bc14cbf 100644 --- a/thirdparty/CGAL/include/CGAL/gmpxx_coercion_traits.h +++ b/thirdparty/CGAL/include/CGAL/gmpxx_coercion_traits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/gnuplot_output_2.h b/thirdparty/CGAL/include/CGAL/gnuplot_output_2.h index 987189c0..c4bdd729 100644 --- a/thirdparty/CGAL/include/CGAL/gnuplot_output_2.h +++ b/thirdparty/CGAL/include/CGAL/gnuplot_output_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/grabbers.h b/thirdparty/CGAL/include/CGAL/grabbers.h index 0408965d..7bc945ac 100644 --- a/thirdparty/CGAL/include/CGAL/grabbers.h +++ b/thirdparty/CGAL/include/CGAL/grabbers.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/graph_traits_Arrangement_2.h b/thirdparty/CGAL/include/CGAL/graph_traits_Arrangement_2.h index 28c63225..75f2bb5d 100644 --- a/thirdparty/CGAL/include/CGAL/graph_traits_Arrangement_2.h +++ b/thirdparty/CGAL/include/CGAL/graph_traits_Arrangement_2.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class graph_traits > 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 @@ class graph_traits > 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 @@ out_edges (typename 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 --git a/thirdparty/CGAL/include/CGAL/graph_traits_dual_arrangement_2.h b/thirdparty/CGAL/include/CGAL/graph_traits_dual_arrangement_2.h index 8cbee1f5..e1208552 100644 --- a/thirdparty/CGAL/include/CGAL/graph_traits_dual_arrangement_2.h +++ b/thirdparty/CGAL/include/CGAL/graph_traits_dual_arrangement_2.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/graph_traits_dual_arrangement_on_surface_2.h b/thirdparty/CGAL/include/CGAL/graph_traits_dual_arrangement_on_surface_2.h index 0a61fb6f..da4aa605 100644 --- a/thirdparty/CGAL/include/CGAL/graph_traits_dual_arrangement_on_surface_2.h +++ b/thirdparty/CGAL/include/CGAL/graph_traits_dual_arrangement_on_surface_2.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/graph_traits_dual_arrangement_on_surface_with_history_2.h b/thirdparty/CGAL/include/CGAL/graph_traits_dual_arrangement_on_surface_with_history_2.h index f57ea404..8b0a78ff 100644 --- a/thirdparty/CGAL/include/CGAL/graph_traits_dual_arrangement_on_surface_with_history_2.h +++ b/thirdparty/CGAL/include/CGAL/graph_traits_dual_arrangement_on_surface_with_history_2.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/graph_traits_dual_arrangement_with_history_2.h b/thirdparty/CGAL/include/CGAL/graph_traits_dual_arrangement_with_history_2.h index e518ccac..5b19e618 100644 --- a/thirdparty/CGAL/include/CGAL/graph_traits_dual_arrangement_with_history_2.h +++ b/thirdparty/CGAL/include/CGAL/graph_traits_dual_arrangement_with_history_2.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/grid_simplify_point_set.h b/thirdparty/CGAL/include/CGAL/grid_simplify_point_set.h index cef1b381..f62d3cf5 100644 --- a/thirdparty/CGAL/include/CGAL/grid_simplify_point_set.h +++ b/thirdparty/CGAL/include/CGAL/grid_simplify_point_set.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ struct Equal_epsilon_points_3 } }; - -} /* 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 @@ class Epsilon_point_set_3 \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 @@ class Epsilon_point_set_3 \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 --git a/thirdparty/CGAL/include/CGAL/halfedgeDS_cut_component.h b/thirdparty/CGAL/include/CGAL/halfedgeDS_cut_component.h index 0b98bb9d..bb0dab84 100644 --- a/thirdparty/CGAL/include/CGAL/halfedgeDS_cut_component.h +++ b/thirdparty/CGAL/include/CGAL/halfedgeDS_cut_component.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/halfedgeds_connected_components.h b/thirdparty/CGAL/include/CGAL/halfedgeds_connected_components.h index 58a539ae..fcfe7386 100644 --- a/thirdparty/CGAL/include/CGAL/halfedgeds_connected_components.h +++ b/thirdparty/CGAL/include/CGAL/halfedgeds_connected_components.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/hash_openmesh.h b/thirdparty/CGAL/include/CGAL/hash_openmesh.h index deb248ff..103639b1 100644 --- a/thirdparty/CGAL/include/CGAL/hash_openmesh.h +++ b/thirdparty/CGAL/include/CGAL/hash_openmesh.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/hierarchy_simplify_point_set.h b/thirdparty/CGAL/include/CGAL/hierarchy_simplify_point_set.h index 8d2c199f..901f0b34 100644 --- a/thirdparty/CGAL/include/CGAL/hierarchy_simplify_point_set.h +++ b/thirdparty/CGAL/include/CGAL/hierarchy_simplify_point_set.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace CGAL { 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 @@ namespace CGAL { \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 @@ namespace CGAL { } - - /// \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 --git a/thirdparty/CGAL/include/CGAL/hilbert_sort.h b/thirdparty/CGAL/include/CGAL/hilbert_sort.h index 5e833693..21916a3d 100644 --- a/thirdparty/CGAL/include/CGAL/hilbert_sort.h +++ b/thirdparty/CGAL/include/CGAL/hilbert_sort.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/hilbert_sort_on_sphere.h b/thirdparty/CGAL/include/CGAL/hilbert_sort_on_sphere.h index 96405504..30702cea 100644 --- a/thirdparty/CGAL/include/CGAL/hilbert_sort_on_sphere.h +++ b/thirdparty/CGAL/include/CGAL/hilbert_sort_on_sphere.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/in_place_edge_list.h b/thirdparty/CGAL/include/CGAL/in_place_edge_list.h index eaef87c7..e3ff8ea5 100644 --- a/thirdparty/CGAL/include/CGAL/in_place_edge_list.h +++ b/thirdparty/CGAL/include/CGAL/in_place_edge_list.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/int.h b/thirdparty/CGAL/include/CGAL/int.h index 3b6bf6b7..a73cee82 100644 --- a/thirdparty/CGAL/include/CGAL/int.h +++ b/thirdparty/CGAL/include/CGAL/int.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/interpolation_functions.h b/thirdparty/CGAL/include/CGAL/interpolation_functions.h index 0352c816..69bd4218 100644 --- a/thirdparty/CGAL/include/CGAL/interpolation_functions.h +++ b/thirdparty/CGAL/include/CGAL/interpolation_functions.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/intersection_2.h b/thirdparty/CGAL/include/CGAL/intersection_2.h index 08863a34..0f271446 100644 --- a/thirdparty/CGAL/include/CGAL/intersection_2.h +++ b/thirdparty/CGAL/include/CGAL/intersection_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/intersection_3.h b/thirdparty/CGAL/include/CGAL/intersection_3.h index 095efae6..e5e4b099 100644 --- a/thirdparty/CGAL/include/CGAL/intersection_3.h +++ b/thirdparty/CGAL/include/CGAL/intersection_3.h @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/intersections.h b/thirdparty/CGAL/include/CGAL/intersections.h index ba6cb8b1..9bf0b905 100644 --- a/thirdparty/CGAL/include/CGAL/intersections.h +++ b/thirdparty/CGAL/include/CGAL/intersections.h @@ -9,7 +9,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/intersections_d.h b/thirdparty/CGAL/include/CGAL/intersections_d.h index 65cc76cd..23ac9ec5 100644 --- a/thirdparty/CGAL/include/CGAL/intersections_d.h +++ b/thirdparty/CGAL/include/CGAL/intersections_d.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/ipower.h b/thirdparty/CGAL/include/CGAL/ipower.h index f642a997..c8d45b58 100644 --- a/thirdparty/CGAL/include/CGAL/ipower.h +++ b/thirdparty/CGAL/include/CGAL/ipower.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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/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 --git a/thirdparty/CGAL/include/CGAL/is_convertible.h b/thirdparty/CGAL/include/CGAL/is_convertible.h index 7e7bce1e..e67a3521 100644 --- a/thirdparty/CGAL/include/CGAL/is_convertible.h +++ b/thirdparty/CGAL/include/CGAL/is_convertible.h @@ -6,7 +6,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/is_iterator.h b/thirdparty/CGAL/include/CGAL/is_iterator.h index d804d6ab..90f527f9 100644 --- a/thirdparty/CGAL/include/CGAL/is_iterator.h +++ b/thirdparty/CGAL/include/CGAL/is_iterator.h @@ -6,7 +6,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/is_streamable.h b/thirdparty/CGAL/include/CGAL/is_streamable.h index 1436f1ff..c26722e5 100644 --- a/thirdparty/CGAL/include/CGAL/is_streamable.h +++ b/thirdparty/CGAL/include/CGAL/is_streamable.h @@ -1,7 +1,7 @@ // Copyright (c) 2012 GeometryFactory Sarl (France) // All rights reserved. // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/is_y_monotone_2.h b/thirdparty/CGAL/include/CGAL/is_y_monotone_2.h index 90cb867c..9a3c66eb 100644 --- a/thirdparty/CGAL/include/CGAL/is_y_monotone_2.h +++ b/thirdparty/CGAL/include/CGAL/is_y_monotone_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/iterator.h b/thirdparty/CGAL/include/CGAL/iterator.h index 2f94a85e..2ae567d9 100644 --- a/thirdparty/CGAL/include/CGAL/iterator.h +++ b/thirdparty/CGAL/include/CGAL/iterator.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/iterator_from_indices.h b/thirdparty/CGAL/include/CGAL/iterator_from_indices.h index b922dd09..e902731f 100644 --- a/thirdparty/CGAL/include/CGAL/iterator_from_indices.h +++ b/thirdparty/CGAL/include/CGAL/iterator_from_indices.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/jet_estimate_normals.h b/thirdparty/CGAL/include/CGAL/jet_estimate_normals.h index 9293b354..da4b34c2 100644 --- a/thirdparty/CGAL/include/CGAL/jet_estimate_normals.h +++ b/thirdparty/CGAL/include/CGAL/jet_estimate_normals.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ jet_estimate_normal(const typename NeighborQuery::Point_3& query, ///< point to */ 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 @@ jet_estimate_normals( // 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 @@ jet_estimate_normals( 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 --git a/thirdparty/CGAL/include/CGAL/jet_smooth_point_set.h b/thirdparty/CGAL/include/CGAL/jet_smooth_point_set.h index a3804cfb..69764417 100644 --- a/thirdparty/CGAL/include/CGAL/jet_smooth_point_set.h +++ b/thirdparty/CGAL/include/CGAL/jet_smooth_point_set.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ jet_smooth_point( */ 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 @@ jet_smooth_point_set( }); } - -/// \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 --git a/thirdparty/CGAL/include/CGAL/kernel_assertions.h b/thirdparty/CGAL/include/CGAL/kernel_assertions.h index 29f8a7fb..1cda4d31 100644 --- a/thirdparty/CGAL/include/CGAL/kernel_assertions.h +++ b/thirdparty/CGAL/include/CGAL/kernel_assertions.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/kernel_basic.h b/thirdparty/CGAL/include/CGAL/kernel_basic.h index 7cf79464..08b197be 100644 --- a/thirdparty/CGAL/include/CGAL/kernel_basic.h +++ b/thirdparty/CGAL/include/CGAL/kernel_basic.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/kernel_config.h b/thirdparty/CGAL/include/CGAL/kernel_config.h index 4d1779aa..bef9f82f 100644 --- a/thirdparty/CGAL/include/CGAL/kernel_config.h +++ b/thirdparty/CGAL/include/CGAL/kernel_config.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/kernel_to_kernel.h b/thirdparty/CGAL/include/CGAL/kernel_to_kernel.h index 77522168..8a588929 100644 --- a/thirdparty/CGAL/include/CGAL/kernel_to_kernel.h +++ b/thirdparty/CGAL/include/CGAL/kernel_to_kernel.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/known_bit_size_integers.h b/thirdparty/CGAL/include/CGAL/known_bit_size_integers.h index 951e613d..4943e689 100644 --- a/thirdparty/CGAL/include/CGAL/known_bit_size_integers.h +++ b/thirdparty/CGAL/include/CGAL/known_bit_size_integers.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/leda_bigfloat.h b/thirdparty/CGAL/include/CGAL/leda_bigfloat.h index 70928f26..2257ecb8 100644 --- a/thirdparty/CGAL/include/CGAL/leda_bigfloat.h +++ b/thirdparty/CGAL/include/CGAL/leda_bigfloat.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/leda_bigfloat_interval.h b/thirdparty/CGAL/include/CGAL/leda_bigfloat_interval.h index 727e5754..91748302 100644 --- a/thirdparty/CGAL/include/CGAL/leda_bigfloat_interval.h +++ b/thirdparty/CGAL/include/CGAL/leda_bigfloat_interval.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/leda_coercion_traits.h b/thirdparty/CGAL/include/CGAL/leda_coercion_traits.h index 1ef5244c..79070726 100644 --- a/thirdparty/CGAL/include/CGAL/leda_coercion_traits.h +++ b/thirdparty/CGAL/include/CGAL/leda_coercion_traits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/leda_integer.h b/thirdparty/CGAL/include/CGAL/leda_integer.h index d19566de..676a5af3 100644 --- a/thirdparty/CGAL/include/CGAL/leda_integer.h +++ b/thirdparty/CGAL/include/CGAL/leda_integer.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/leda_rational.h b/thirdparty/CGAL/include/CGAL/leda_rational.h index e86bb18f..9b43a4ed 100644 --- a/thirdparty/CGAL/include/CGAL/leda_rational.h +++ b/thirdparty/CGAL/include/CGAL/leda_rational.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/leda_real.h b/thirdparty/CGAL/include/CGAL/leda_real.h index 021fa310..a274adde 100644 --- a/thirdparty/CGAL/include/CGAL/leda_real.h +++ b/thirdparty/CGAL/include/CGAL/leda_real.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license.h b/thirdparty/CGAL/include/CGAL/license.h index dafcbbc1..9a052e58 100644 --- a/thirdparty/CGAL/include/CGAL/license.h +++ b/thirdparty/CGAL/include/CGAL/license.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/AABB_tree.h b/thirdparty/CGAL/include/CGAL/license/AABB_tree.h index 5735ff56..41aefaef 100644 --- a/thirdparty/CGAL/include/CGAL/license/AABB_tree.h +++ b/thirdparty/CGAL/include/CGAL/license/AABB_tree.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Advancing_front_surface_reconstruction.h b/thirdparty/CGAL/include/CGAL/license/Advancing_front_surface_reconstruction.h index bd4bce23..d9180666 100644 --- a/thirdparty/CGAL/include/CGAL/license/Advancing_front_surface_reconstruction.h +++ b/thirdparty/CGAL/include/CGAL/license/Advancing_front_surface_reconstruction.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Alpha_shapes_2.h b/thirdparty/CGAL/include/CGAL/license/Alpha_shapes_2.h index 2ff4d3ea..2a22d614 100644 --- a/thirdparty/CGAL/include/CGAL/license/Alpha_shapes_2.h +++ b/thirdparty/CGAL/include/CGAL/license/Alpha_shapes_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Alpha_shapes_3.h b/thirdparty/CGAL/include/CGAL/license/Alpha_shapes_3.h index 875a2999..bc6a21c9 100644 --- a/thirdparty/CGAL/include/CGAL/license/Alpha_shapes_3.h +++ b/thirdparty/CGAL/include/CGAL/license/Alpha_shapes_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Alpha_wrap_3.h b/thirdparty/CGAL/include/CGAL/license/Alpha_wrap_3.h new file mode 100644 index 00000000..d22eac9b --- /dev/null +++ b/thirdparty/CGAL/include/CGAL/license/Alpha_wrap_3.h @@ -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 --git a/thirdparty/CGAL/include/CGAL/license/Apollonius_graph_2.h b/thirdparty/CGAL/include/CGAL/license/Apollonius_graph_2.h index d82f82e5..8c752820 100644 --- a/thirdparty/CGAL/include/CGAL/license/Apollonius_graph_2.h +++ b/thirdparty/CGAL/include/CGAL/license/Apollonius_graph_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Arrangement_on_surface_2.h b/thirdparty/CGAL/include/CGAL/license/Arrangement_on_surface_2.h index 4cc0ecb3..e6d44200 100644 --- a/thirdparty/CGAL/include/CGAL/license/Arrangement_on_surface_2.h +++ b/thirdparty/CGAL/include/CGAL/license/Arrangement_on_surface_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Barycentric_coordinates_2.h b/thirdparty/CGAL/include/CGAL/license/Barycentric_coordinates_2.h index 0c8d4cf6..b6aa0960 100644 --- a/thirdparty/CGAL/include/CGAL/license/Barycentric_coordinates_2.h +++ b/thirdparty/CGAL/include/CGAL/license/Barycentric_coordinates_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Boolean_set_operations_2.h b/thirdparty/CGAL/include/CGAL/license/Boolean_set_operations_2.h index ce8c4173..c507a83f 100644 --- a/thirdparty/CGAL/include/CGAL/license/Boolean_set_operations_2.h +++ b/thirdparty/CGAL/include/CGAL/license/Boolean_set_operations_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Bounding_volumes.h b/thirdparty/CGAL/include/CGAL/license/Bounding_volumes.h index b2f63e20..966a4818 100644 --- a/thirdparty/CGAL/include/CGAL/license/Bounding_volumes.h +++ b/thirdparty/CGAL/include/CGAL/license/Bounding_volumes.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Box_intersection_d.h b/thirdparty/CGAL/include/CGAL/license/Box_intersection_d.h index fa7b2360..f3269843 100644 --- a/thirdparty/CGAL/include/CGAL/license/Box_intersection_d.h +++ b/thirdparty/CGAL/include/CGAL/license/Box_intersection_d.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Circular_kernel_2.h b/thirdparty/CGAL/include/CGAL/license/Circular_kernel_2.h index ac83fc6d..8cd09a62 100644 --- a/thirdparty/CGAL/include/CGAL/license/Circular_kernel_2.h +++ b/thirdparty/CGAL/include/CGAL/license/Circular_kernel_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Circular_kernel_3.h b/thirdparty/CGAL/include/CGAL/license/Circular_kernel_3.h index c652cc47..a7299591 100644 --- a/thirdparty/CGAL/include/CGAL/license/Circular_kernel_3.h +++ b/thirdparty/CGAL/include/CGAL/license/Circular_kernel_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Classification.h b/thirdparty/CGAL/include/CGAL/license/Classification.h index 06a1724c..01fd56fc 100644 --- a/thirdparty/CGAL/include/CGAL/license/Classification.h +++ b/thirdparty/CGAL/include/CGAL/license/Classification.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Cone_spanners_2.h b/thirdparty/CGAL/include/CGAL/license/Cone_spanners_2.h index e4077929..202934b0 100644 --- a/thirdparty/CGAL/include/CGAL/license/Cone_spanners_2.h +++ b/thirdparty/CGAL/include/CGAL/license/Cone_spanners_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Convex_decomposition_3.h b/thirdparty/CGAL/include/CGAL/license/Convex_decomposition_3.h index b1b29dd9..65dbc42e 100644 --- a/thirdparty/CGAL/include/CGAL/license/Convex_decomposition_3.h +++ b/thirdparty/CGAL/include/CGAL/license/Convex_decomposition_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Convex_hull_2.h b/thirdparty/CGAL/include/CGAL/license/Convex_hull_2.h index aaaa498c..b5e2b4ec 100644 --- a/thirdparty/CGAL/include/CGAL/license/Convex_hull_2.h +++ b/thirdparty/CGAL/include/CGAL/license/Convex_hull_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Convex_hull_3.h b/thirdparty/CGAL/include/CGAL/license/Convex_hull_3.h index cb69d3a1..6e6a802f 100644 --- a/thirdparty/CGAL/include/CGAL/license/Convex_hull_3.h +++ b/thirdparty/CGAL/include/CGAL/license/Convex_hull_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Convex_hull_d.h b/thirdparty/CGAL/include/CGAL/license/Convex_hull_d.h index b5a106a1..5689596d 100644 --- a/thirdparty/CGAL/include/CGAL/license/Convex_hull_d.h +++ b/thirdparty/CGAL/include/CGAL/license/Convex_hull_d.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Envelope_2.h b/thirdparty/CGAL/include/CGAL/license/Envelope_2.h index 80e39ed2..83438329 100644 --- a/thirdparty/CGAL/include/CGAL/license/Envelope_2.h +++ b/thirdparty/CGAL/include/CGAL/license/Envelope_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Envelope_3.h b/thirdparty/CGAL/include/CGAL/license/Envelope_3.h index 96548512..19889141 100644 --- a/thirdparty/CGAL/include/CGAL/license/Envelope_3.h +++ b/thirdparty/CGAL/include/CGAL/license/Envelope_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/GraphicsView.h b/thirdparty/CGAL/include/CGAL/license/GraphicsView.h index 5173ee1b..6e5cc7a5 100644 --- a/thirdparty/CGAL/include/CGAL/license/GraphicsView.h +++ b/thirdparty/CGAL/include/CGAL/license/GraphicsView.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Heat_method_3.h b/thirdparty/CGAL/include/CGAL/license/Heat_method_3.h index fd0a37b7..e2fcd627 100644 --- a/thirdparty/CGAL/include/CGAL/license/Heat_method_3.h +++ b/thirdparty/CGAL/include/CGAL/license/Heat_method_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Hyperbolic_triangulation_2.h b/thirdparty/CGAL/include/CGAL/license/Hyperbolic_triangulation_2.h index 8ab9fb36..767a38df 100644 --- a/thirdparty/CGAL/include/CGAL/license/Hyperbolic_triangulation_2.h +++ b/thirdparty/CGAL/include/CGAL/license/Hyperbolic_triangulation_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Inscribed_areas.h b/thirdparty/CGAL/include/CGAL/license/Inscribed_areas.h index eeb00c57..3255d555 100644 --- a/thirdparty/CGAL/include/CGAL/license/Inscribed_areas.h +++ b/thirdparty/CGAL/include/CGAL/license/Inscribed_areas.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Interpolation.h b/thirdparty/CGAL/include/CGAL/license/Interpolation.h index 5117ae89..b8252091 100644 --- a/thirdparty/CGAL/include/CGAL/license/Interpolation.h +++ b/thirdparty/CGAL/include/CGAL/license/Interpolation.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Interval_skip_list.h b/thirdparty/CGAL/include/CGAL/license/Interval_skip_list.h index fe6365d6..65ce80ef 100644 --- a/thirdparty/CGAL/include/CGAL/license/Interval_skip_list.h +++ b/thirdparty/CGAL/include/CGAL/license/Interval_skip_list.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Jet_fitting_3.h b/thirdparty/CGAL/include/CGAL/license/Jet_fitting_3.h index 310b7e90..e46c679b 100644 --- a/thirdparty/CGAL/include/CGAL/license/Jet_fitting_3.h +++ b/thirdparty/CGAL/include/CGAL/license/Jet_fitting_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Matrix_search.h b/thirdparty/CGAL/include/CGAL/license/Matrix_search.h index 8ca3e53c..54d2c507 100644 --- a/thirdparty/CGAL/include/CGAL/license/Matrix_search.h +++ b/thirdparty/CGAL/include/CGAL/license/Matrix_search.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Mesh_2.h b/thirdparty/CGAL/include/CGAL/license/Mesh_2.h index e2ff7973..20d7dfc6 100644 --- a/thirdparty/CGAL/include/CGAL/license/Mesh_2.h +++ b/thirdparty/CGAL/include/CGAL/license/Mesh_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Mesh_3.h b/thirdparty/CGAL/include/CGAL/license/Mesh_3.h index 3e316032..26638dcb 100644 --- a/thirdparty/CGAL/include/CGAL/license/Mesh_3.h +++ b/thirdparty/CGAL/include/CGAL/license/Mesh_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Minkowski_sum_2.h b/thirdparty/CGAL/include/CGAL/license/Minkowski_sum_2.h index e141bbc7..8c341d70 100644 --- a/thirdparty/CGAL/include/CGAL/license/Minkowski_sum_2.h +++ b/thirdparty/CGAL/include/CGAL/license/Minkowski_sum_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Minkowski_sum_3.h b/thirdparty/CGAL/include/CGAL/license/Minkowski_sum_3.h index 30cf8d10..0f16b34c 100644 --- a/thirdparty/CGAL/include/CGAL/license/Minkowski_sum_3.h +++ b/thirdparty/CGAL/include/CGAL/license/Minkowski_sum_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Nef_2.h b/thirdparty/CGAL/include/CGAL/license/Nef_2.h index 49b23324..4b3fc0aa 100644 --- a/thirdparty/CGAL/include/CGAL/license/Nef_2.h +++ b/thirdparty/CGAL/include/CGAL/license/Nef_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Nef_3.h b/thirdparty/CGAL/include/CGAL/license/Nef_3.h index 90e93420..f1b8b24f 100644 --- a/thirdparty/CGAL/include/CGAL/license/Nef_3.h +++ b/thirdparty/CGAL/include/CGAL/license/Nef_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Nef_S2.h b/thirdparty/CGAL/include/CGAL/license/Nef_S2.h index d0926c66..62d24d1f 100644 --- a/thirdparty/CGAL/include/CGAL/license/Nef_S2.h +++ b/thirdparty/CGAL/include/CGAL/license/Nef_S2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Optimal_bounding_box.h b/thirdparty/CGAL/include/CGAL/license/Optimal_bounding_box.h index e2bd9d7f..a49cb0a0 100644 --- a/thirdparty/CGAL/include/CGAL/license/Optimal_bounding_box.h +++ b/thirdparty/CGAL/include/CGAL/license/Optimal_bounding_box.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Optimal_transportation_reconstruction_2.h b/thirdparty/CGAL/include/CGAL/license/Optimal_transportation_reconstruction_2.h index 722d15cf..e51d8ff6 100644 --- a/thirdparty/CGAL/include/CGAL/license/Optimal_transportation_reconstruction_2.h +++ b/thirdparty/CGAL/include/CGAL/license/Optimal_transportation_reconstruction_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Orthtree.h b/thirdparty/CGAL/include/CGAL/license/Orthtree.h index 53df5e53..4418b8fa 100644 --- a/thirdparty/CGAL/include/CGAL/license/Orthtree.h +++ b/thirdparty/CGAL/include/CGAL/license/Orthtree.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Partition_2.h b/thirdparty/CGAL/include/CGAL/license/Partition_2.h index 3b57e7d7..d50012bf 100644 --- a/thirdparty/CGAL/include/CGAL/license/Partition_2.h +++ b/thirdparty/CGAL/include/CGAL/license/Partition_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Periodic_2_triangulation_2.h b/thirdparty/CGAL/include/CGAL/license/Periodic_2_triangulation_2.h index be4bca47..0e9d96a7 100644 --- a/thirdparty/CGAL/include/CGAL/license/Periodic_2_triangulation_2.h +++ b/thirdparty/CGAL/include/CGAL/license/Periodic_2_triangulation_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Periodic_3_mesh_3.h b/thirdparty/CGAL/include/CGAL/license/Periodic_3_mesh_3.h index da7a9003..6a4f06cf 100644 --- a/thirdparty/CGAL/include/CGAL/license/Periodic_3_mesh_3.h +++ b/thirdparty/CGAL/include/CGAL/license/Periodic_3_mesh_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Periodic_3_triangulation_3.h b/thirdparty/CGAL/include/CGAL/license/Periodic_3_triangulation_3.h index 331882e2..fac3bb20 100644 --- a/thirdparty/CGAL/include/CGAL/license/Periodic_3_triangulation_3.h +++ b/thirdparty/CGAL/include/CGAL/license/Periodic_3_triangulation_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Periodic_4_hyperbolic_triangulation_2.h b/thirdparty/CGAL/include/CGAL/license/Periodic_4_hyperbolic_triangulation_2.h index 0d37c34f..58e8c3d3 100644 --- a/thirdparty/CGAL/include/CGAL/license/Periodic_4_hyperbolic_triangulation_2.h +++ b/thirdparty/CGAL/include/CGAL/license/Periodic_4_hyperbolic_triangulation_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Point_set_2.h b/thirdparty/CGAL/include/CGAL/license/Point_set_2.h index 87a26914..aed1c28b 100644 --- a/thirdparty/CGAL/include/CGAL/license/Point_set_2.h +++ b/thirdparty/CGAL/include/CGAL/license/Point_set_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Point_set_3.h b/thirdparty/CGAL/include/CGAL/license/Point_set_3.h index 614939ca..0a7846fe 100644 --- a/thirdparty/CGAL/include/CGAL/license/Point_set_3.h +++ b/thirdparty/CGAL/include/CGAL/license/Point_set_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Point_set_processing_3.h b/thirdparty/CGAL/include/CGAL/license/Point_set_processing_3.h index 6f2927c9..70c0d130 100644 --- a/thirdparty/CGAL/include/CGAL/license/Point_set_processing_3.h +++ b/thirdparty/CGAL/include/CGAL/license/Point_set_processing_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Poisson_surface_reconstruction_3.h b/thirdparty/CGAL/include/CGAL/license/Poisson_surface_reconstruction_3.h index 42fb96d3..ec8c7281 100644 --- a/thirdparty/CGAL/include/CGAL/license/Poisson_surface_reconstruction_3.h +++ b/thirdparty/CGAL/include/CGAL/license/Poisson_surface_reconstruction_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing.h b/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing.h index 453532f6..91fcecaf 100644 --- a/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing.h +++ b/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing/Compute_normal.h b/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing/Compute_normal.h index 28284743..23b4c5bf 100644 --- a/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing/Compute_normal.h +++ b/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing/Compute_normal.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing/Polyhedral_envelope.h b/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing/Polyhedral_envelope.h index 24d36642..f187c091 100644 --- a/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing/Polyhedral_envelope.h +++ b/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing/Polyhedral_envelope.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing/collision_detection.h b/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing/collision_detection.h index 5273eb5f..d90d8c80 100644 --- a/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing/collision_detection.h +++ b/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing/collision_detection.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing/connected_components.h b/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing/connected_components.h index f62e9730..73dd5811 100644 --- a/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing/connected_components.h +++ b/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing/connected_components.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing/core.h b/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing/core.h index f639d5d8..90f1feb1 100644 --- a/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing/core.h +++ b/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing/core.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing/corefinement.h b/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing/corefinement.h index a5c0ac0e..a8a1c770 100644 --- a/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing/corefinement.h +++ b/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing/corefinement.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing/detect_features.h b/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing/detect_features.h index 2343ba68..1e07f17a 100644 --- a/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing/detect_features.h +++ b/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing/detect_features.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing/distance.h b/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing/distance.h index 1da14345..98207853 100644 --- a/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing/distance.h +++ b/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing/distance.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing/locate.h b/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing/locate.h index 356592fb..daed497b 100644 --- a/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing/locate.h +++ b/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing/locate.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing/measure.h b/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing/measure.h index 5da0bbdf..4fe11aeb 100644 --- a/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing/measure.h +++ b/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing/measure.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing/meshing_hole_filling.h b/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing/meshing_hole_filling.h index 9466b43e..c6b3ee06 100644 --- a/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing/meshing_hole_filling.h +++ b/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing/meshing_hole_filling.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing/miscellaneous.h b/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing/miscellaneous.h index 0750b146..58f1258b 100644 --- a/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing/miscellaneous.h +++ b/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing/miscellaneous.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing/orientation.h b/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing/orientation.h index 71afa086..136f570c 100644 --- a/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing/orientation.h +++ b/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing/orientation.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing/predicate.h b/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing/predicate.h index 8acd54ec..15e46a63 100644 --- a/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing/predicate.h +++ b/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing/predicate.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing/repair.h b/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing/repair.h index 0c650565..10178ede 100644 --- a/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing/repair.h +++ b/thirdparty/CGAL/include/CGAL/license/Polygon_mesh_processing/repair.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Polygonal_surface_reconstruction.h b/thirdparty/CGAL/include/CGAL/license/Polygonal_surface_reconstruction.h index 1247ed9b..329021e1 100644 --- a/thirdparty/CGAL/include/CGAL/license/Polygonal_surface_reconstruction.h +++ b/thirdparty/CGAL/include/CGAL/license/Polygonal_surface_reconstruction.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Polyhedron.h b/thirdparty/CGAL/include/CGAL/license/Polyhedron.h index fbc579d4..2e2c32de 100644 --- a/thirdparty/CGAL/include/CGAL/license/Polyhedron.h +++ b/thirdparty/CGAL/include/CGAL/license/Polyhedron.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Polyline_simplification_2.h b/thirdparty/CGAL/include/CGAL/license/Polyline_simplification_2.h index 1a338b34..aa7db640 100644 --- a/thirdparty/CGAL/include/CGAL/license/Polyline_simplification_2.h +++ b/thirdparty/CGAL/include/CGAL/license/Polyline_simplification_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Polytope_distance_d.h b/thirdparty/CGAL/include/CGAL/license/Polytope_distance_d.h index 6809ca9e..0fac2f7e 100644 --- a/thirdparty/CGAL/include/CGAL/license/Polytope_distance_d.h +++ b/thirdparty/CGAL/include/CGAL/license/Polytope_distance_d.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Principal_component_analysis.h b/thirdparty/CGAL/include/CGAL/license/Principal_component_analysis.h index 65ac085b..1260898a 100644 --- a/thirdparty/CGAL/include/CGAL/license/Principal_component_analysis.h +++ b/thirdparty/CGAL/include/CGAL/license/Principal_component_analysis.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/QP_solver.h b/thirdparty/CGAL/include/CGAL/license/QP_solver.h index f0285d03..1b3df827 100644 --- a/thirdparty/CGAL/include/CGAL/license/QP_solver.h +++ b/thirdparty/CGAL/include/CGAL/license/QP_solver.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Ridges_3.h b/thirdparty/CGAL/include/CGAL/license/Ridges_3.h index 515e2c76..6ad2e802 100644 --- a/thirdparty/CGAL/include/CGAL/license/Ridges_3.h +++ b/thirdparty/CGAL/include/CGAL/license/Ridges_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Scale_space_reconstruction_3.h b/thirdparty/CGAL/include/CGAL/license/Scale_space_reconstruction_3.h index e4e88117..efd923ac 100644 --- a/thirdparty/CGAL/include/CGAL/license/Scale_space_reconstruction_3.h +++ b/thirdparty/CGAL/include/CGAL/license/Scale_space_reconstruction_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/SearchStructures.h b/thirdparty/CGAL/include/CGAL/license/SearchStructures.h index 3d6ecdb0..39c9b1f1 100644 --- a/thirdparty/CGAL/include/CGAL/license/SearchStructures.h +++ b/thirdparty/CGAL/include/CGAL/license/SearchStructures.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Segment_Delaunay_graph_2.h b/thirdparty/CGAL/include/CGAL/license/Segment_Delaunay_graph_2.h index b5eec74f..8bb438b0 100644 --- a/thirdparty/CGAL/include/CGAL/license/Segment_Delaunay_graph_2.h +++ b/thirdparty/CGAL/include/CGAL/license/Segment_Delaunay_graph_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Segment_Delaunay_graph_Linf_2.h b/thirdparty/CGAL/include/CGAL/license/Segment_Delaunay_graph_Linf_2.h index a2bab77e..3c4c33b9 100644 --- a/thirdparty/CGAL/include/CGAL/license/Segment_Delaunay_graph_Linf_2.h +++ b/thirdparty/CGAL/include/CGAL/license/Segment_Delaunay_graph_Linf_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Set_movable_separability_2.h b/thirdparty/CGAL/include/CGAL/license/Set_movable_separability_2.h index e46fcb14..597310cc 100644 --- a/thirdparty/CGAL/include/CGAL/license/Set_movable_separability_2.h +++ b/thirdparty/CGAL/include/CGAL/license/Set_movable_separability_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Shape_detection.h b/thirdparty/CGAL/include/CGAL/license/Shape_detection.h index cd90a744..166461db 100644 --- a/thirdparty/CGAL/include/CGAL/license/Shape_detection.h +++ b/thirdparty/CGAL/include/CGAL/license/Shape_detection.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Shape_regularization.h b/thirdparty/CGAL/include/CGAL/license/Shape_regularization.h index 1e7f3986..70506544 100644 --- a/thirdparty/CGAL/include/CGAL/license/Shape_regularization.h +++ b/thirdparty/CGAL/include/CGAL/license/Shape_regularization.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Skin_surface_3.h b/thirdparty/CGAL/include/CGAL/license/Skin_surface_3.h index 8af4971b..604d7465 100644 --- a/thirdparty/CGAL/include/CGAL/license/Skin_surface_3.h +++ b/thirdparty/CGAL/include/CGAL/license/Skin_surface_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Snap_rounding_2.h b/thirdparty/CGAL/include/CGAL/license/Snap_rounding_2.h index f50d48a7..c500bdb2 100644 --- a/thirdparty/CGAL/include/CGAL/license/Snap_rounding_2.h +++ b/thirdparty/CGAL/include/CGAL/license/Snap_rounding_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Spatial_searching.h b/thirdparty/CGAL/include/CGAL/license/Spatial_searching.h index bc199512..23ff2365 100644 --- a/thirdparty/CGAL/include/CGAL/license/Spatial_searching.h +++ b/thirdparty/CGAL/include/CGAL/license/Spatial_searching.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Straight_skeleton_2.h b/thirdparty/CGAL/include/CGAL/license/Straight_skeleton_2.h index 85addf59..f00082da 100644 --- a/thirdparty/CGAL/include/CGAL/license/Straight_skeleton_2.h +++ b/thirdparty/CGAL/include/CGAL/license/Straight_skeleton_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Stream_lines_2.h b/thirdparty/CGAL/include/CGAL/license/Stream_lines_2.h index afcaef60..50302079 100644 --- a/thirdparty/CGAL/include/CGAL/license/Stream_lines_2.h +++ b/thirdparty/CGAL/include/CGAL/license/Stream_lines_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Surface_mesh.h b/thirdparty/CGAL/include/CGAL/license/Surface_mesh.h index 2958013b..127384f5 100644 --- a/thirdparty/CGAL/include/CGAL/license/Surface_mesh.h +++ b/thirdparty/CGAL/include/CGAL/license/Surface_mesh.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Surface_mesh_approximation.h b/thirdparty/CGAL/include/CGAL/license/Surface_mesh_approximation.h index caffc37c..851dd0d3 100644 --- a/thirdparty/CGAL/include/CGAL/license/Surface_mesh_approximation.h +++ b/thirdparty/CGAL/include/CGAL/license/Surface_mesh_approximation.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Surface_mesh_deformation.h b/thirdparty/CGAL/include/CGAL/license/Surface_mesh_deformation.h index 552c56a0..97b482a9 100644 --- a/thirdparty/CGAL/include/CGAL/license/Surface_mesh_deformation.h +++ b/thirdparty/CGAL/include/CGAL/license/Surface_mesh_deformation.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Surface_mesh_parameterization.h b/thirdparty/CGAL/include/CGAL/license/Surface_mesh_parameterization.h index 7cd91a70..a3db72a4 100644 --- a/thirdparty/CGAL/include/CGAL/license/Surface_mesh_parameterization.h +++ b/thirdparty/CGAL/include/CGAL/license/Surface_mesh_parameterization.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Surface_mesh_segmentation.h b/thirdparty/CGAL/include/CGAL/license/Surface_mesh_segmentation.h index 9849a1b6..cc3881dd 100644 --- a/thirdparty/CGAL/include/CGAL/license/Surface_mesh_segmentation.h +++ b/thirdparty/CGAL/include/CGAL/license/Surface_mesh_segmentation.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Surface_mesh_shortest_path.h b/thirdparty/CGAL/include/CGAL/license/Surface_mesh_shortest_path.h index ffe92ad1..51cc92f0 100644 --- a/thirdparty/CGAL/include/CGAL/license/Surface_mesh_shortest_path.h +++ b/thirdparty/CGAL/include/CGAL/license/Surface_mesh_shortest_path.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Surface_mesh_simplification.h b/thirdparty/CGAL/include/CGAL/license/Surface_mesh_simplification.h index c6536c96..58c37812 100644 --- a/thirdparty/CGAL/include/CGAL/license/Surface_mesh_simplification.h +++ b/thirdparty/CGAL/include/CGAL/license/Surface_mesh_simplification.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Surface_mesh_skeletonization.h b/thirdparty/CGAL/include/CGAL/license/Surface_mesh_skeletonization.h index b1f40d35..181d9c29 100644 --- a/thirdparty/CGAL/include/CGAL/license/Surface_mesh_skeletonization.h +++ b/thirdparty/CGAL/include/CGAL/license/Surface_mesh_skeletonization.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Surface_mesh_topology.h b/thirdparty/CGAL/include/CGAL/license/Surface_mesh_topology.h index 3c617723..03a0744f 100644 --- a/thirdparty/CGAL/include/CGAL/license/Surface_mesh_topology.h +++ b/thirdparty/CGAL/include/CGAL/license/Surface_mesh_topology.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Surface_mesher.h b/thirdparty/CGAL/include/CGAL/license/Surface_mesher.h index 892ac58d..2365bc16 100644 --- a/thirdparty/CGAL/include/CGAL/license/Surface_mesher.h +++ b/thirdparty/CGAL/include/CGAL/license/Surface_mesher.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Surface_sweep_2.h b/thirdparty/CGAL/include/CGAL/license/Surface_sweep_2.h index 1f40f4c1..1f2489b4 100644 --- a/thirdparty/CGAL/include/CGAL/license/Surface_sweep_2.h +++ b/thirdparty/CGAL/include/CGAL/license/Surface_sweep_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/TDS_2.h b/thirdparty/CGAL/include/CGAL/license/TDS_2.h index 44056a5f..f56949da 100644 --- a/thirdparty/CGAL/include/CGAL/license/TDS_2.h +++ b/thirdparty/CGAL/include/CGAL/license/TDS_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/TDS_3.h b/thirdparty/CGAL/include/CGAL/license/TDS_3.h index 6fc53422..2e4a8c23 100644 --- a/thirdparty/CGAL/include/CGAL/license/TDS_3.h +++ b/thirdparty/CGAL/include/CGAL/license/TDS_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Tetrahedral_remeshing.h b/thirdparty/CGAL/include/CGAL/license/Tetrahedral_remeshing.h index 7670fb6d..ff68ac1c 100644 --- a/thirdparty/CGAL/include/CGAL/license/Tetrahedral_remeshing.h +++ b/thirdparty/CGAL/include/CGAL/license/Tetrahedral_remeshing.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Three.h b/thirdparty/CGAL/include/CGAL/license/Three.h index e1dae57d..c8da0935 100644 --- a/thirdparty/CGAL/include/CGAL/license/Three.h +++ b/thirdparty/CGAL/include/CGAL/license/Three.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Triangulation.h b/thirdparty/CGAL/include/CGAL/license/Triangulation.h index ddf37043..4fd0835f 100644 --- a/thirdparty/CGAL/include/CGAL/license/Triangulation.h +++ b/thirdparty/CGAL/include/CGAL/license/Triangulation.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Triangulation_2.h b/thirdparty/CGAL/include/CGAL/license/Triangulation_2.h index 0d91913c..1ef1c856 100644 --- a/thirdparty/CGAL/include/CGAL/license/Triangulation_2.h +++ b/thirdparty/CGAL/include/CGAL/license/Triangulation_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Triangulation_3.h b/thirdparty/CGAL/include/CGAL/license/Triangulation_3.h index ab10dd17..719b76cd 100644 --- a/thirdparty/CGAL/include/CGAL/license/Triangulation_3.h +++ b/thirdparty/CGAL/include/CGAL/license/Triangulation_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Triangulation_on_sphere_2.h b/thirdparty/CGAL/include/CGAL/license/Triangulation_on_sphere_2.h index f1943115..d3ae0614 100644 --- a/thirdparty/CGAL/include/CGAL/license/Triangulation_on_sphere_2.h +++ b/thirdparty/CGAL/include/CGAL/license/Triangulation_on_sphere_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Visibility_2.h b/thirdparty/CGAL/include/CGAL/license/Visibility_2.h index ed1f8725..d156d18d 100644 --- a/thirdparty/CGAL/include/CGAL/license/Visibility_2.h +++ b/thirdparty/CGAL/include/CGAL/license/Visibility_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/Voronoi_diagram_2.h b/thirdparty/CGAL/include/CGAL/license/Voronoi_diagram_2.h index 0f046106..5fbdacd2 100644 --- a/thirdparty/CGAL/include/CGAL/license/Voronoi_diagram_2.h +++ b/thirdparty/CGAL/include/CGAL/license/Voronoi_diagram_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/license/gpl_package_list.txt b/thirdparty/CGAL/include/CGAL/license/gpl_package_list.txt index 2831593c..28c3cd25 100644 --- a/thirdparty/CGAL/include/CGAL/license/gpl_package_list.txt +++ b/thirdparty/CGAL/include/CGAL/license/gpl_package_list.txt @@ -2,6 +2,7 @@ AABB_tree 3D Fast Intersection and Distance Computation 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 --git a/thirdparty/CGAL/include/CGAL/license/lgpl.h b/thirdparty/CGAL/include/CGAL/license/lgpl.h index 7378639e..8f5131cb 100644 --- a/thirdparty/CGAL/include/CGAL/license/lgpl.h +++ b/thirdparty/CGAL/include/CGAL/license/lgpl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/linear_least_squares_fitting_2.h b/thirdparty/CGAL/include/CGAL/linear_least_squares_fitting_2.h index b4c5d74e..a5970e8a 100644 --- a/thirdparty/CGAL/include/CGAL/linear_least_squares_fitting_2.h +++ b/thirdparty/CGAL/include/CGAL/linear_least_squares_fitting_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/linear_least_squares_fitting_3.h b/thirdparty/CGAL/include/CGAL/linear_least_squares_fitting_3.h index b37572ce..83153568 100644 --- a/thirdparty/CGAL/include/CGAL/linear_least_squares_fitting_3.h +++ b/thirdparty/CGAL/include/CGAL/linear_least_squares_fitting_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/linear_least_squares_fitting_circles_2.h b/thirdparty/CGAL/include/CGAL/linear_least_squares_fitting_circles_2.h index ef53fa26..4ec30d8b 100644 --- a/thirdparty/CGAL/include/CGAL/linear_least_squares_fitting_circles_2.h +++ b/thirdparty/CGAL/include/CGAL/linear_least_squares_fitting_circles_2.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ linear_least_squares_fitting_2(InputIterator first, 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 @@ linear_least_squares_fitting_2(InputIterator first, 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 @@ linear_least_squares_fitting_2(InputIterator first, // 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 @@ linear_least_squares_fitting_2(InputIterator first, 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 @@ linear_least_squares_fitting_2(InputIterator first, 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 @@ linear_least_squares_fitting_2(InputIterator first, // 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 --git a/thirdparty/CGAL/include/CGAL/linear_least_squares_fitting_cuboids_3.h b/thirdparty/CGAL/include/CGAL/linear_least_squares_fitting_cuboids_3.h index e71ed8fb..09698618 100644 --- a/thirdparty/CGAL/include/CGAL/linear_least_squares_fitting_cuboids_3.h +++ b/thirdparty/CGAL/include/CGAL/linear_least_squares_fitting_cuboids_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/linear_least_squares_fitting_points_2.h b/thirdparty/CGAL/include/CGAL/linear_least_squares_fitting_points_2.h index a45fbc52..2faffa42 100644 --- a/thirdparty/CGAL/include/CGAL/linear_least_squares_fitting_points_2.h +++ b/thirdparty/CGAL/include/CGAL/linear_least_squares_fitting_points_2.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ linear_least_squares_fitting_2(InputIterator first, { 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 --git a/thirdparty/CGAL/include/CGAL/linear_least_squares_fitting_points_3.h b/thirdparty/CGAL/include/CGAL/linear_least_squares_fitting_points_3.h index 44deeaaf..1623b28f 100644 --- a/thirdparty/CGAL/include/CGAL/linear_least_squares_fitting_points_3.h +++ b/thirdparty/CGAL/include/CGAL/linear_least_squares_fitting_points_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/linear_least_squares_fitting_rectangles_2.h b/thirdparty/CGAL/include/CGAL/linear_least_squares_fitting_rectangles_2.h index 8e1081ce..bf66620e 100644 --- a/thirdparty/CGAL/include/CGAL/linear_least_squares_fitting_rectangles_2.h +++ b/thirdparty/CGAL/include/CGAL/linear_least_squares_fitting_rectangles_2.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ linear_least_squares_fitting_2(InputIterator first, 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 @@ linear_least_squares_fitting_2(InputIterator first, 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 --git a/thirdparty/CGAL/include/CGAL/linear_least_squares_fitting_segments_2.h b/thirdparty/CGAL/include/CGAL/linear_least_squares_fitting_segments_2.h index 28aaef52..727b041f 100644 --- a/thirdparty/CGAL/include/CGAL/linear_least_squares_fitting_segments_2.h +++ b/thirdparty/CGAL/include/CGAL/linear_least_squares_fitting_segments_2.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ linear_least_squares_fitting_2(InputIterator first, 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 @@ linear_least_squares_fitting_2(InputIterator first, // 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 --git a/thirdparty/CGAL/include/CGAL/linear_least_squares_fitting_segments_3.h b/thirdparty/CGAL/include/CGAL/linear_least_squares_fitting_segments_3.h index a145c0ee..d5f97550 100644 --- a/thirdparty/CGAL/include/CGAL/linear_least_squares_fitting_segments_3.h +++ b/thirdparty/CGAL/include/CGAL/linear_least_squares_fitting_segments_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/linear_least_squares_fitting_spheres_3.h b/thirdparty/CGAL/include/CGAL/linear_least_squares_fitting_spheres_3.h index 3449e870..733d088e 100644 --- a/thirdparty/CGAL/include/CGAL/linear_least_squares_fitting_spheres_3.h +++ b/thirdparty/CGAL/include/CGAL/linear_least_squares_fitting_spheres_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/linear_least_squares_fitting_tetrahedra_3.h b/thirdparty/CGAL/include/CGAL/linear_least_squares_fitting_tetrahedra_3.h index bb07d16e..b041e86f 100644 --- a/thirdparty/CGAL/include/CGAL/linear_least_squares_fitting_tetrahedra_3.h +++ b/thirdparty/CGAL/include/CGAL/linear_least_squares_fitting_tetrahedra_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/linear_least_squares_fitting_triangles_2.h b/thirdparty/CGAL/include/CGAL/linear_least_squares_fitting_triangles_2.h index 9a4b2455..cb154d3a 100644 --- a/thirdparty/CGAL/include/CGAL/linear_least_squares_fitting_triangles_2.h +++ b/thirdparty/CGAL/include/CGAL/linear_least_squares_fitting_triangles_2.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ linear_least_squares_fitting_2(InputIterator first, 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 @@ linear_least_squares_fitting_2(InputIterator first, 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: "< @@ -761,10 +761,10 @@ minkowski_sum_by_decomposition_2 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 @@ minkowski_sum_by_decomposition_2 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 @@ minkowski_sum_by_decomposition_2 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 --git a/thirdparty/CGAL/include/CGAL/minkowski_sum_3.h b/thirdparty/CGAL/include/CGAL/minkowski_sum_3.h index 9c267586..7544226c 100644 --- a/thirdparty/CGAL/include/CGAL/minkowski_sum_3.h +++ b/thirdparty/CGAL/include/CGAL/minkowski_sum_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/monotone_matrix_search.h b/thirdparty/CGAL/include/CGAL/monotone_matrix_search.h index eceecadb..2cf495ac 100644 --- a/thirdparty/CGAL/include/CGAL/monotone_matrix_search.h +++ b/thirdparty/CGAL/include/CGAL/monotone_matrix_search.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/more_functions_on_signs.h b/thirdparty/CGAL/include/CGAL/more_functions_on_signs.h index ea8febc3..9f456997 100644 --- a/thirdparty/CGAL/include/CGAL/more_functions_on_signs.h +++ b/thirdparty/CGAL/include/CGAL/more_functions_on_signs.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/mpfi_coercion_traits.h b/thirdparty/CGAL/include/CGAL/mpfi_coercion_traits.h index a25f20bd..ae0d44c9 100644 --- a/thirdparty/CGAL/include/CGAL/mpfi_coercion_traits.h +++ b/thirdparty/CGAL/include/CGAL/mpfi_coercion_traits.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/mpfr_coercion_traits.h b/thirdparty/CGAL/include/CGAL/mpfr_coercion_traits.h index 52717d4e..39b8b032 100644 --- a/thirdparty/CGAL/include/CGAL/mpfr_coercion_traits.h +++ b/thirdparty/CGAL/include/CGAL/mpfr_coercion_traits.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/mpq_class.h b/thirdparty/CGAL/include/CGAL/mpq_class.h index 631a00ca..d1167bac 100644 --- a/thirdparty/CGAL/include/CGAL/mpq_class.h +++ b/thirdparty/CGAL/include/CGAL/mpq_class.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/mpz_class.h b/thirdparty/CGAL/include/CGAL/mpz_class.h index 2bc0eac1..e1ed6ca5 100644 --- a/thirdparty/CGAL/include/CGAL/mpz_class.h +++ b/thirdparty/CGAL/include/CGAL/mpz_class.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/mst_orient_normals.h b/thirdparty/CGAL/include/CGAL/mst_orient_normals.h index 93e50757..f6be378e 100644 --- a/thirdparty/CGAL/include/CGAL/mst_orient_normals.h +++ b/thirdparty/CGAL/include/CGAL/mst_orient_normals.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ create_mst_graph( \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 @@ mst_orient_normals( // 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 @@ mst_orient_normals( 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 --git a/thirdparty/CGAL/include/CGAL/multiset_assertions.h b/thirdparty/CGAL/include/CGAL/multiset_assertions.h index 713a0bec..f1e9f05e 100644 --- a/thirdparty/CGAL/include/CGAL/multiset_assertions.h +++ b/thirdparty/CGAL/include/CGAL/multiset_assertions.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/mutex.h b/thirdparty/CGAL/include/CGAL/mutex.h index 9a4f84fd..a50e8cfe 100644 --- a/thirdparty/CGAL/include/CGAL/mutex.h +++ b/thirdparty/CGAL/include/CGAL/mutex.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/natural_neighbor_coordinates_2.h b/thirdparty/CGAL/include/CGAL/natural_neighbor_coordinates_2.h index d36ff05c..f4bd53e9 100644 --- a/thirdparty/CGAL/include/CGAL/natural_neighbor_coordinates_2.h +++ b/thirdparty/CGAL/include/CGAL/natural_neighbor_coordinates_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/natural_neighbor_coordinates_3.h b/thirdparty/CGAL/include/CGAL/natural_neighbor_coordinates_3.h index b7e2964d..1f9ff081 100644 --- a/thirdparty/CGAL/include/CGAL/natural_neighbor_coordinates_3.h +++ b/thirdparty/CGAL/include/CGAL/natural_neighbor_coordinates_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/nearest_neighbor_delaunay_2.h b/thirdparty/CGAL/include/CGAL/nearest_neighbor_delaunay_2.h index f256b92a..0e51e2eb 100644 --- a/thirdparty/CGAL/include/CGAL/nearest_neighbor_delaunay_2.h +++ b/thirdparty/CGAL/include/CGAL/nearest_neighbor_delaunay_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/normal_vector_newell_3.h b/thirdparty/CGAL/include/CGAL/normal_vector_newell_3.h index a15d738b..726436b1 100644 --- a/thirdparty/CGAL/include/CGAL/normal_vector_newell_3.h +++ b/thirdparty/CGAL/include/CGAL/normal_vector_newell_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/number_type_basic.h b/thirdparty/CGAL/include/CGAL/number_type_basic.h index 4837e8ac..48d91377 100644 --- a/thirdparty/CGAL/include/CGAL/number_type_basic.h +++ b/thirdparty/CGAL/include/CGAL/number_type_basic.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/number_type_config.h b/thirdparty/CGAL/include/CGAL/number_type_config.h index fdb3d3bb..07de73f3 100644 --- a/thirdparty/CGAL/include/CGAL/number_type_config.h +++ b/thirdparty/CGAL/include/CGAL/number_type_config.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/number_utils.h b/thirdparty/CGAL/include/CGAL/number_utils.h index 9fbb276e..300fc824 100644 --- a/thirdparty/CGAL/include/CGAL/number_utils.h +++ b/thirdparty/CGAL/include/CGAL/number_utils.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/number_utils_classes.h b/thirdparty/CGAL/include/CGAL/number_utils_classes.h index 1158335e..7c502cf3 100644 --- a/thirdparty/CGAL/include/CGAL/number_utils_classes.h +++ b/thirdparty/CGAL/include/CGAL/number_utils_classes.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/odt_optimize_mesh_3.h b/thirdparty/CGAL/include/CGAL/odt_optimize_mesh_3.h index 06ed418c..e54fdf72 100644 --- a/thirdparty/CGAL/include/CGAL/odt_optimize_mesh_3.h +++ b/thirdparty/CGAL/include/CGAL/odt_optimize_mesh_3.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ BOOST_PARAMETER_FUNCTION( (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 --git a/thirdparty/CGAL/include/CGAL/offset_polygon_2.h b/thirdparty/CGAL/include/CGAL/offset_polygon_2.h index d1c3a686..b7988dc3 100644 --- a/thirdparty/CGAL/include/CGAL/offset_polygon_2.h +++ b/thirdparty/CGAL/include/CGAL/offset_polygon_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/optimal_bounding_box.h b/thirdparty/CGAL/include/CGAL/optimal_bounding_box.h index c62071c5..1606ac89 100644 --- a/thirdparty/CGAL/include/CGAL/optimal_bounding_box.h +++ b/thirdparty/CGAL/include/CGAL/optimal_bounding_box.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/optimize_mesh_3.h b/thirdparty/CGAL/include/CGAL/optimize_mesh_3.h index 44e412b6..3e4e79f7 100644 --- a/thirdparty/CGAL/include/CGAL/optimize_mesh_3.h +++ b/thirdparty/CGAL/include/CGAL/optimize_mesh_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/optimize_periodic_3_mesh_3.h b/thirdparty/CGAL/include/CGAL/optimize_periodic_3_mesh_3.h index 88a27e94..8b7f7db5 100644 --- a/thirdparty/CGAL/include/CGAL/optimize_periodic_3_mesh_3.h +++ b/thirdparty/CGAL/include/CGAL/optimize_periodic_3_mesh_3.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ BOOST_PARAMETER_FUNCTION( (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 @@ BOOST_PARAMETER_FUNCTION( (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 @@ BOOST_PARAMETER_FUNCTION( (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 @@ BOOST_PARAMETER_FUNCTION( (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 --git a/thirdparty/CGAL/include/CGAL/partition_2.h b/thirdparty/CGAL/include/CGAL/partition_2.h index 89273c94..7672ff63 100644 --- a/thirdparty/CGAL/include/CGAL/partition_2.h +++ b/thirdparty/CGAL/include/CGAL/partition_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/partition_is_valid_2.h b/thirdparty/CGAL/include/CGAL/partition_is_valid_2.h index 2092749e..d25187cc 100644 --- a/thirdparty/CGAL/include/CGAL/partition_is_valid_2.h +++ b/thirdparty/CGAL/include/CGAL/partition_is_valid_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/pca_estimate_normals.h b/thirdparty/CGAL/include/CGAL/pca_estimate_normals.h index dafabc13..468beb47 100644 --- a/thirdparty/CGAL/include/CGAL/pca_estimate_normals.h +++ b/thirdparty/CGAL/include/CGAL/pca_estimate_normals.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ pca_estimate_normal(const typename NeighborQuery::Kernel::Point_3& query, ///< p */ 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 @@ pca_estimate_normals( 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 @@ pca_estimate_normals( 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 --git a/thirdparty/CGAL/include/CGAL/periodic_3_triangulation_3_io.h b/thirdparty/CGAL/include/CGAL/periodic_3_triangulation_3_io.h index 2862dbdb..94a3323f 100644 --- a/thirdparty/CGAL/include/CGAL/periodic_3_triangulation_3_io.h +++ b/thirdparty/CGAL/include/CGAL/periodic_3_triangulation_3_io.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/perturb_mesh_3.h b/thirdparty/CGAL/include/CGAL/perturb_mesh_3.h index 95c2067e..24b49a09 100644 --- a/thirdparty/CGAL/include/CGAL/perturb_mesh_3.h +++ b/thirdparty/CGAL/include/CGAL/perturb_mesh_3.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ BOOST_PARAMETER_FUNCTION( (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 --git a/thirdparty/CGAL/include/CGAL/pierce_rectangles_2.h b/thirdparty/CGAL/include/CGAL/pierce_rectangles_2.h index b0e39852..e4fd6417 100644 --- a/thirdparty/CGAL/include/CGAL/pierce_rectangles_2.h +++ b/thirdparty/CGAL/include/CGAL/pierce_rectangles_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/point_generators_2.h b/thirdparty/CGAL/include/CGAL/point_generators_2.h index 7010c945..c9d7325e 100644 --- a/thirdparty/CGAL/include/CGAL/point_generators_2.h +++ b/thirdparty/CGAL/include/CGAL/point_generators_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/point_generators_3.h b/thirdparty/CGAL/include/CGAL/point_generators_3.h index 7156c775..e0767fc1 100644 --- a/thirdparty/CGAL/include/CGAL/point_generators_3.h +++ b/thirdparty/CGAL/include/CGAL/point_generators_3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/point_generators_d.h b/thirdparty/CGAL/include/CGAL/point_generators_d.h index 1cb45593..205446f5 100644 --- a/thirdparty/CGAL/include/CGAL/point_generators_d.h +++ b/thirdparty/CGAL/include/CGAL/point_generators_d.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/point_set_processing_assertions.h b/thirdparty/CGAL/include/CGAL/point_set_processing_assertions.h index 1a0183b3..8cd73d3a 100644 --- a/thirdparty/CGAL/include/CGAL/point_set_processing_assertions.h +++ b/thirdparty/CGAL/include/CGAL/point_set_processing_assertions.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/pointmatcher/compute_registration_transformation.h b/thirdparty/CGAL/include/CGAL/pointmatcher/compute_registration_transformation.h index 8cd94965..ebf53632 100644 --- a/thirdparty/CGAL/include/CGAL/pointmatcher/compute_registration_transformation.h +++ b/thirdparty/CGAL/include/CGAL/pointmatcher/compute_registration_transformation.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ compute_registration_transformation(const PointRange1& range1, const PointRange2 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 @@ compute_registration_transformation (const PointRange1& point_set_1, const Point 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 @@ compute_registration_transformation (const PointRange1& point_set_1, const Point 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 --git a/thirdparty/CGAL/include/CGAL/pointmatcher/register_point_sets.h b/thirdparty/CGAL/include/CGAL/pointmatcher/register_point_sets.h index 7e0efd7c..9a551024 100644 --- a/thirdparty/CGAL/include/CGAL/pointmatcher/register_point_sets.h +++ b/thirdparty/CGAL/include/CGAL/pointmatcher/register_point_sets.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace pointmatcher { 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 @@ register_point_sets (const PointRange1& point_set_1, PointRange2& point_set_2, 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 --git a/thirdparty/CGAL/include/CGAL/poisson_refine_triangulation.h b/thirdparty/CGAL/include/CGAL/poisson_refine_triangulation.h index 89ef8531..bbfe3ab0 100644 --- a/thirdparty/CGAL/include/CGAL/poisson_refine_triangulation.h +++ b/thirdparty/CGAL/include/CGAL/poisson_refine_triangulation.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Poisson_mesher_level : /// 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 --git a/thirdparty/CGAL/include/CGAL/poisson_surface_reconstruction.h b/thirdparty/CGAL/include/CGAL/poisson_surface_reconstruction.h index 1bfe5fc5..0d463598 100644 --- a/thirdparty/CGAL/include/CGAL/poisson_surface_reconstruction.h +++ b/thirdparty/CGAL/include/CGAL/poisson_surface_reconstruction.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace CGAL { 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 --git a/thirdparty/CGAL/include/CGAL/polygon_function_objects.h b/thirdparty/CGAL/include/CGAL/polygon_function_objects.h index b8bdf29b..d516ecb0 100644 --- a/thirdparty/CGAL/include/CGAL/polygon_function_objects.h +++ b/thirdparty/CGAL/include/CGAL/polygon_function_objects.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/polygon_mesh_processing.h b/thirdparty/CGAL/include/CGAL/polygon_mesh_processing.h index 5577708c..23a060e0 100644 --- a/thirdparty/CGAL/include/CGAL/polygon_mesh_processing.h +++ b/thirdparty/CGAL/include/CGAL/polygon_mesh_processing.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 Polygon_mesh_processing { 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 --git a/thirdparty/CGAL/include/CGAL/polyhedron_cut_plane_3.h b/thirdparty/CGAL/include/CGAL/polyhedron_cut_plane_3.h index 24a34522..10583024 100644 --- a/thirdparty/CGAL/include/CGAL/polyhedron_cut_plane_3.h +++ b/thirdparty/CGAL/include/CGAL/polyhedron_cut_plane_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/polynomial_utils.h b/thirdparty/CGAL/include/CGAL/polynomial_utils.h index 62a321d3..18025431 100644 --- a/thirdparty/CGAL/include/CGAL/polynomial_utils.h +++ b/thirdparty/CGAL/include/CGAL/polynomial_utils.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/predicates/Polygon_offset_pred_ftC2.h b/thirdparty/CGAL/include/CGAL/predicates/Polygon_offset_pred_ftC2.h index ba66882d..e26ed72d 100644 --- a/thirdparty/CGAL/include/CGAL/predicates/Polygon_offset_pred_ftC2.h +++ b/thirdparty/CGAL/include/CGAL/predicates/Polygon_offset_pred_ftC2.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/predicates/Straight_skeleton_pred_ftC2.h b/thirdparty/CGAL/include/CGAL/predicates/Straight_skeleton_pred_ftC2.h index 26eb17d8..cef0de94 100644 --- a/thirdparty/CGAL/include/CGAL/predicates/Straight_skeleton_pred_ftC2.h +++ b/thirdparty/CGAL/include/CGAL/predicates/Straight_skeleton_pred_ftC2.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/predicates/kernel_ftC2.h b/thirdparty/CGAL/include/CGAL/predicates/kernel_ftC2.h index 00f76e1e..874ab7bc 100644 --- a/thirdparty/CGAL/include/CGAL/predicates/kernel_ftC2.h +++ b/thirdparty/CGAL/include/CGAL/predicates/kernel_ftC2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/predicates/kernel_ftC3.h b/thirdparty/CGAL/include/CGAL/predicates/kernel_ftC3.h index 51d2c262..8ffa7ada 100644 --- a/thirdparty/CGAL/include/CGAL/predicates/kernel_ftC3.h +++ b/thirdparty/CGAL/include/CGAL/predicates/kernel_ftC3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/predicates/predicates_for_mixed_complex_3.h b/thirdparty/CGAL/include/CGAL/predicates/predicates_for_mixed_complex_3.h index c2f112d4..138871e1 100644 --- a/thirdparty/CGAL/include/CGAL/predicates/predicates_for_mixed_complex_3.h +++ b/thirdparty/CGAL/include/CGAL/predicates/predicates_for_mixed_complex_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/predicates/predicates_for_voronoi_intersection_cartesian_2_3.h b/thirdparty/CGAL/include/CGAL/predicates/predicates_for_voronoi_intersection_cartesian_2_3.h index b72d082f..2fd7af9d 100644 --- a/thirdparty/CGAL/include/CGAL/predicates/predicates_for_voronoi_intersection_cartesian_2_3.h +++ b/thirdparty/CGAL/include/CGAL/predicates/predicates_for_voronoi_intersection_cartesian_2_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/predicates/sign_of_determinant.h b/thirdparty/CGAL/include/CGAL/predicates/sign_of_determinant.h index 302e97f4..85f3bdf9 100644 --- a/thirdparty/CGAL/include/CGAL/predicates/sign_of_determinant.h +++ b/thirdparty/CGAL/include/CGAL/predicates/sign_of_determinant.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/predicates_d.h b/thirdparty/CGAL/include/CGAL/predicates_d.h index 0d8ee92a..b62f9be9 100644 --- a/thirdparty/CGAL/include/CGAL/predicates_d.h +++ b/thirdparty/CGAL/include/CGAL/predicates_d.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/predicates_on_lines_2.h b/thirdparty/CGAL/include/CGAL/predicates_on_lines_2.h index 8ae47134..11449fd0 100644 --- a/thirdparty/CGAL/include/CGAL/predicates_on_lines_2.h +++ b/thirdparty/CGAL/include/CGAL/predicates_on_lines_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/predicates_on_points_2.h b/thirdparty/CGAL/include/CGAL/predicates_on_points_2.h index 636256e8..877e4479 100644 --- a/thirdparty/CGAL/include/CGAL/predicates_on_points_2.h +++ b/thirdparty/CGAL/include/CGAL/predicates_on_points_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/predicates_on_points_3.h b/thirdparty/CGAL/include/CGAL/predicates_on_points_3.h index 27357188..3c81d5dc 100644 --- a/thirdparty/CGAL/include/CGAL/predicates_on_points_3.h +++ b/thirdparty/CGAL/include/CGAL/predicates_on_points_3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/primes.h b/thirdparty/CGAL/include/CGAL/primes.h index b1ff7dac..c2d18c57 100644 --- a/thirdparty/CGAL/include/CGAL/primes.h +++ b/thirdparty/CGAL/include/CGAL/primes.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/property_map.h b/thirdparty/CGAL/include/CGAL/property_map.h index fcf46b70..4d691710 100644 --- a/thirdparty/CGAL/include/CGAL/property_map.h +++ b/thirdparty/CGAL/include/CGAL/property_map.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ struct Property_map_to_unary_function{ {} 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 --git a/thirdparty/CGAL/include/CGAL/radial_orient_normals.h b/thirdparty/CGAL/include/CGAL/radial_orient_normals.h index 69f917da..de7b9f0f 100644 --- a/thirdparty/CGAL/include/CGAL/radial_orient_normals.h +++ b/thirdparty/CGAL/include/CGAL/radial_orient_normals.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/random_convex_hull_in_disc_2.h b/thirdparty/CGAL/include/CGAL/random_convex_hull_in_disc_2.h index cba4d28c..d3c8ffb6 100644 --- a/thirdparty/CGAL/include/CGAL/random_convex_hull_in_disc_2.h +++ b/thirdparty/CGAL/include/CGAL/random_convex_hull_in_disc_2.h @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ void random_convex_hull_in_disc_2(std::size_t n, double radius, std::list()); - generated_points += nb - k_disc; simulated_points += nb - k_disc; m.clear(); Graham_without_sort_2(l, traits); diff --git a/thirdparty/CGAL/include/CGAL/random_convex_set_2.h b/thirdparty/CGAL/include/CGAL/random_convex_set_2.h index 496f0f4f..f3c6bc57 100644 --- a/thirdparty/CGAL/include/CGAL/random_convex_set_2.h +++ b/thirdparty/CGAL/include/CGAL/random_convex_set_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/random_polygon_2.h b/thirdparty/CGAL/include/CGAL/random_polygon_2.h index 594bdf70..fffa4969 100644 --- a/thirdparty/CGAL/include/CGAL/random_polygon_2.h +++ b/thirdparty/CGAL/include/CGAL/random_polygon_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/random_selection.h b/thirdparty/CGAL/include/CGAL/random_selection.h index c4085a6c..556f4da0 100644 --- a/thirdparty/CGAL/include/CGAL/random_selection.h +++ b/thirdparty/CGAL/include/CGAL/random_selection.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/random_simplify_point_set.h b/thirdparty/CGAL/include/CGAL/random_simplify_point_set.h index 0b618fd4..6044c284 100644 --- a/thirdparty/CGAL/include/CGAL/random_simplify_point_set.h +++ b/thirdparty/CGAL/include/CGAL/random_simplify_point_set.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/range_search_delaunay_2.h b/thirdparty/CGAL/include/CGAL/range_search_delaunay_2.h index 6b55e097..75a13fb5 100644 --- a/thirdparty/CGAL/include/CGAL/range_search_delaunay_2.h +++ b/thirdparty/CGAL/include/CGAL/range_search_delaunay_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/rank.h b/thirdparty/CGAL/include/CGAL/rank.h index 730c2ae7..0202edf6 100644 --- a/thirdparty/CGAL/include/CGAL/rank.h +++ b/thirdparty/CGAL/include/CGAL/rank.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/rational_rotation.h b/thirdparty/CGAL/include/CGAL/rational_rotation.h index ed21dce3..86e0bce7 100644 --- a/thirdparty/CGAL/include/CGAL/rational_rotation.h +++ b/thirdparty/CGAL/include/CGAL/rational_rotation.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/read_vtk_image_data.h b/thirdparty/CGAL/include/CGAL/read_vtk_image_data.h index fded73e0..c9b99bb2 100644 --- a/thirdparty/CGAL/include/CGAL/read_vtk_image_data.h +++ b/thirdparty/CGAL/include/CGAL/read_vtk_image_data.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/rectangular_3_center_2.h b/thirdparty/CGAL/include/CGAL/rectangular_3_center_2.h index c3516366..fa666be7 100644 --- a/thirdparty/CGAL/include/CGAL/rectangular_3_center_2.h +++ b/thirdparty/CGAL/include/CGAL/rectangular_3_center_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/rectangular_p_center_2.h b/thirdparty/CGAL/include/CGAL/rectangular_p_center_2.h index 2b598e1f..5d672b4f 100644 --- a/thirdparty/CGAL/include/CGAL/rectangular_p_center_2.h +++ b/thirdparty/CGAL/include/CGAL/rectangular_p_center_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/refine_mesh_3.h b/thirdparty/CGAL/include/CGAL/refine_mesh_3.h index ab848ce7..0b987916 100644 --- a/thirdparty/CGAL/include/CGAL/refine_mesh_3.h +++ b/thirdparty/CGAL/include/CGAL/refine_mesh_3.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ CGAL_IGNORE_BOOST_PARAMETER_NAME_WARNINGS // ----------------------------------- 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 @@ inline internal::Perturb_options no_perturb() { return internal::Perturb_options // ----------------------------------- 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 @@ inline internal::Exude_options no_exude() { return internal::Exude_options(false 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 @@ inline internal::Odt_options no_odt() { return internal::Odt_options(false); } 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 --git a/thirdparty/CGAL/include/CGAL/refine_periodic_3_mesh_3.h b/thirdparty/CGAL/include/CGAL/refine_periodic_3_mesh_3.h index 8bc2fa54..0f13c67c 100644 --- a/thirdparty/CGAL/include/CGAL/refine_periodic_3_mesh_3.h +++ b/thirdparty/CGAL/include/CGAL/refine_periodic_3_mesh_3.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/regular_neighbor_coordinates_2.h b/thirdparty/CGAL/include/CGAL/regular_neighbor_coordinates_2.h index 453deda1..9892749d 100644 --- a/thirdparty/CGAL/include/CGAL/regular_neighbor_coordinates_2.h +++ b/thirdparty/CGAL/include/CGAL/regular_neighbor_coordinates_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/remove_far_points_in_mesh_3.h b/thirdparty/CGAL/include/CGAL/remove_far_points_in_mesh_3.h index 6a66cfa1..9114c8d3 100644 --- a/thirdparty/CGAL/include/CGAL/remove_far_points_in_mesh_3.h +++ b/thirdparty/CGAL/include/CGAL/remove_far_points_in_mesh_3.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Remove_far_points } // 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 --git a/thirdparty/CGAL/include/CGAL/remove_outliers.h b/thirdparty/CGAL/include/CGAL/remove_outliers.h index e24bc781..e20b6c50 100644 --- a/thirdparty/CGAL/include/CGAL/remove_outliers.h +++ b/thirdparty/CGAL/include/CGAL/remove_outliers.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ compute_avg_knn_sq_distance_3( */ 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 @@ remove_outliers( 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 --git a/thirdparty/CGAL/include/CGAL/representation_tags.h b/thirdparty/CGAL/include/CGAL/representation_tags.h index d7470b3c..6d4a8784 100644 --- a/thirdparty/CGAL/include/CGAL/representation_tags.h +++ b/thirdparty/CGAL/include/CGAL/representation_tags.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/result_of.h b/thirdparty/CGAL/include/CGAL/result_of.h index fc6a8263..85ac7fc7 100644 --- a/thirdparty/CGAL/include/CGAL/result_of.h +++ b/thirdparty/CGAL/include/CGAL/result_of.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/scanline_orient_normals.h b/thirdparty/CGAL/include/CGAL/scanline_orient_normals.h index 709d4b25..3d8c6d43 100644 --- a/thirdparty/CGAL/include/CGAL/scanline_orient_normals.h +++ b/thirdparty/CGAL/include/CGAL/scanline_orient_normals.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ void orient_scanline (Iterator begin, Iterator end, \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 @@ void scanline_orient_normals (PointRange& points, const NamedParameters& np) ::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 @@ void scanline_orient_normals (PointRange& points, const NamedParameters& np) #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 --git a/thirdparty/CGAL/include/CGAL/segment_intersection_points_2.h b/thirdparty/CGAL/include/CGAL/segment_intersection_points_2.h index 39152079..3ccb6e6f 100644 --- a/thirdparty/CGAL/include/CGAL/segment_intersection_points_2.h +++ b/thirdparty/CGAL/include/CGAL/segment_intersection_points_2.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/sibson_gradient_fitting.h b/thirdparty/CGAL/include/CGAL/sibson_gradient_fitting.h index 16daca1b..5a42695b 100644 --- a/thirdparty/CGAL/include/CGAL/sibson_gradient_fitting.h +++ b/thirdparty/CGAL/include/CGAL/sibson_gradient_fitting.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/simple_transformations_d.h b/thirdparty/CGAL/include/CGAL/simple_transformations_d.h index c06ca7f4..42d5f13e 100644 --- a/thirdparty/CGAL/include/CGAL/simple_transformations_d.h +++ b/thirdparty/CGAL/include/CGAL/simple_transformations_d.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/simplest_rational_in_interval.h b/thirdparty/CGAL/include/CGAL/simplest_rational_in_interval.h index e099f0ee..d2bd2702 100644 --- a/thirdparty/CGAL/include/CGAL/simplest_rational_in_interval.h +++ b/thirdparty/CGAL/include/CGAL/simplest_rational_in_interval.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/sorted_matrix_search.h b/thirdparty/CGAL/include/CGAL/sorted_matrix_search.h index 18dfb5ff..c497afe8 100644 --- a/thirdparty/CGAL/include/CGAL/sorted_matrix_search.h +++ b/thirdparty/CGAL/include/CGAL/sorted_matrix_search.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/spatial_sort.h b/thirdparty/CGAL/include/CGAL/spatial_sort.h index 76393e93..a67265be 100644 --- a/thirdparty/CGAL/include/CGAL/spatial_sort.h +++ b/thirdparty/CGAL/include/CGAL/spatial_sort.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/spatial_sort_on_sphere.h b/thirdparty/CGAL/include/CGAL/spatial_sort_on_sphere.h index 9f86b190..dfa8fdc0 100644 --- a/thirdparty/CGAL/include/CGAL/spatial_sort_on_sphere.h +++ b/thirdparty/CGAL/include/CGAL/spatial_sort_on_sphere.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/squared_distance_2.h b/thirdparty/CGAL/include/CGAL/squared_distance_2.h index fa047073..04160ffd 100644 --- a/thirdparty/CGAL/include/CGAL/squared_distance_2.h +++ b/thirdparty/CGAL/include/CGAL/squared_distance_2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/squared_distance_3.h b/thirdparty/CGAL/include/CGAL/squared_distance_3.h index 16d61344..56ae4f90 100644 --- a/thirdparty/CGAL/include/CGAL/squared_distance_3.h +++ b/thirdparty/CGAL/include/CGAL/squared_distance_3.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/sse2.h b/thirdparty/CGAL/include/CGAL/sse2.h index fc0a15bc..33142ab8 100644 --- a/thirdparty/CGAL/include/CGAL/sse2.h +++ b/thirdparty/CGAL/include/CGAL/sse2.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/stddef.h b/thirdparty/CGAL/include/CGAL/stddef.h index f3853552..5a5ec482 100644 --- a/thirdparty/CGAL/include/CGAL/stddef.h +++ b/thirdparty/CGAL/include/CGAL/stddef.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/streamlines_assertions.h b/thirdparty/CGAL/include/CGAL/streamlines_assertions.h index c0bea6d5..1e0540d7 100644 --- a/thirdparty/CGAL/include/CGAL/streamlines_assertions.h +++ b/thirdparty/CGAL/include/CGAL/streamlines_assertions.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/structure_point_set.h b/thirdparty/CGAL/include/CGAL/structure_point_set.h index 196e5c0f..8b1600f7 100644 --- a/thirdparty/CGAL/include/CGAL/structure_point_set.h +++ b/thirdparty/CGAL/include/CGAL/structure_point_set.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ class Point_set_with_structure \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 @@ class Point_set_with_structure \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 @@ class Point_set_with_structure { 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 @@ class Point_set_with_structure \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 @@ class Point_set_with_structure \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 @@ structure_point_set (const PointRange& points, 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 @@ structure_point_set (const PointRange& points, 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 --git a/thirdparty/CGAL/include/CGAL/subdivide_skin_surface_mesh_3.h b/thirdparty/CGAL/include/CGAL/subdivide_skin_surface_mesh_3.h index 8e7c5705..9ff28e7b 100644 --- a/thirdparty/CGAL/include/CGAL/subdivide_skin_surface_mesh_3.h +++ b/thirdparty/CGAL/include/CGAL/subdivide_skin_surface_mesh_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/subdivide_union_of_balls_mesh_3.h b/thirdparty/CGAL/include/CGAL/subdivide_union_of_balls_mesh_3.h index 6d3f51b1..4e3f9ac6 100644 --- a/thirdparty/CGAL/include/CGAL/subdivide_union_of_balls_mesh_3.h +++ b/thirdparty/CGAL/include/CGAL/subdivide_union_of_balls_mesh_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/subdivision_method_3.h b/thirdparty/CGAL/include/CGAL/subdivision_method_3.h index ae740c45..4dcceb09 100644 --- a/thirdparty/CGAL/include/CGAL/subdivision_method_3.h +++ b/thirdparty/CGAL/include/CGAL/subdivision_method_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/surface_mesh_parameterization.h b/thirdparty/CGAL/include/CGAL/surface_mesh_parameterization.h index b87f6d11..7882d5a5 100644 --- a/thirdparty/CGAL/include/CGAL/surface_mesh_parameterization.h +++ b/thirdparty/CGAL/include/CGAL/surface_mesh_parameterization.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/surface_neighbor_coordinates_3.h b/thirdparty/CGAL/include/CGAL/surface_neighbor_coordinates_3.h index 69ce5927..d22f5162 100644 --- a/thirdparty/CGAL/include/CGAL/surface_neighbor_coordinates_3.h +++ b/thirdparty/CGAL/include/CGAL/surface_neighbor_coordinates_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/surface_neighbors_3.h b/thirdparty/CGAL/include/CGAL/surface_neighbors_3.h index 3589ba25..d0d369d6 100644 --- a/thirdparty/CGAL/include/CGAL/surface_neighbors_3.h +++ b/thirdparty/CGAL/include/CGAL/surface_neighbors_3.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/surface_reconstruction_points_assertions.h b/thirdparty/CGAL/include/CGAL/surface_reconstruction_points_assertions.h index 6e1b1ed3..d40d4e6b 100644 --- a/thirdparty/CGAL/include/CGAL/surface_reconstruction_points_assertions.h +++ b/thirdparty/CGAL/include/CGAL/surface_reconstruction_points_assertions.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/sweep_observer.h b/thirdparty/CGAL/include/CGAL/sweep_observer.h index 0baed91f..59d397f8 100644 --- a/thirdparty/CGAL/include/CGAL/sweep_observer.h +++ b/thirdparty/CGAL/include/CGAL/sweep_observer.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/tags.h b/thirdparty/CGAL/include/CGAL/tags.h index 0cefae57..665a4808 100644 --- a/thirdparty/CGAL/include/CGAL/tags.h +++ b/thirdparty/CGAL/include/CGAL/tags.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/test_FPU_rounding_mode_impl.h b/thirdparty/CGAL/include/CGAL/test_FPU_rounding_mode_impl.h index 740f3f34..46ffc219 100644 --- a/thirdparty/CGAL/include/CGAL/test_FPU_rounding_mode_impl.h +++ b/thirdparty/CGAL/include/CGAL/test_FPU_rounding_mode_impl.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/tetrahedral_remeshing.h b/thirdparty/CGAL/include/CGAL/tetrahedral_remeshing.h index 3029455b..86b7f7dd 100644 --- a/thirdparty/CGAL/include/CGAL/tetrahedral_remeshing.h +++ b/thirdparty/CGAL/include/CGAL/tetrahedral_remeshing.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ namespace CGAL * @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 @@ void tetrahedral_isotropic_remeshing( } 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 @@ void tetrahedral_isotropic_remeshing( #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 @@ void tetrahedral_isotropic_remeshing( 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 @@ void tetrahedral_isotropic_remeshing( #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 @@ convert_to_triangulation_3( /////// 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 @@ void tetrahedral_isotropic_remeshing( 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, @@ -376,24 +369,14 @@ void tetrahedral_isotropic_remeshing( np); } -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 --git a/thirdparty/CGAL/include/CGAL/thread.h b/thirdparty/CGAL/include/CGAL/thread.h index d2a3865d..cd66ae9d 100644 --- a/thirdparty/CGAL/include/CGAL/thread.h +++ b/thirdparty/CGAL/include/CGAL/thread.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/to_rational.h b/thirdparty/CGAL/include/CGAL/to_rational.h index a0d40f07..618c5132 100644 --- a/thirdparty/CGAL/include/CGAL/to_rational.h +++ b/thirdparty/CGAL/include/CGAL/to_rational.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/transforming_iterator.h b/thirdparty/CGAL/include/CGAL/transforming_iterator.h index 4188872e..99fbe6cc 100644 --- a/thirdparty/CGAL/include/CGAL/transforming_iterator.h +++ b/thirdparty/CGAL/include/CGAL/transforming_iterator.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/transforming_pair_iterator.h b/thirdparty/CGAL/include/CGAL/transforming_pair_iterator.h index 3d091114..3034b368 100644 --- a/thirdparty/CGAL/include/CGAL/transforming_pair_iterator.h +++ b/thirdparty/CGAL/include/CGAL/transforming_pair_iterator.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/triangulate_mixed_complex_3.h b/thirdparty/CGAL/include/CGAL/triangulate_mixed_complex_3.h index cd0ffcb6..9c335668 100644 --- a/thirdparty/CGAL/include/CGAL/triangulate_mixed_complex_3.h +++ b/thirdparty/CGAL/include/CGAL/triangulate_mixed_complex_3.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Skin_surface_3/include/CGAL/triangulate_mixed_complex_3.h $ -// $Id: triangulate_mixed_complex_3.h c8624ee 2021-09-09T11:01:03+02:00 Sébastien Loriot +// $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 // // @@ -15,7 +15,6 @@ #include -// #include #include #include @@ -254,12 +253,6 @@ class Mixed_complex_triangulator_3 struct Index_c4 { Tmc_Vertex_handle V[4]; }; struct Index_c6 { Tmc_Vertex_handle V[6]; }; struct Index_c44 { Tmc_Vertex_handle V[4][4]; }; - struct Index_v { - Unique_hash_map < Rt_Vertex_handle, Tmc_Vertex_handle > V; - }; - - // index to vertex - Unique_hash_map < Rt_Cell_handle, Index_c4 > index_03; Union_find_anchor anchor_del_uf, anchor_vor_uf; Simplex_UF_map anchor_del_map, anchor_vor_map; diff --git a/thirdparty/CGAL/include/CGAL/triangulate_power_diagram_3.h b/thirdparty/CGAL/include/CGAL/triangulate_power_diagram_3.h index 74e03c62..ffa90044 100644 --- a/thirdparty/CGAL/include/CGAL/triangulate_power_diagram_3.h +++ b/thirdparty/CGAL/include/CGAL/triangulate_power_diagram_3.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Skin_surface_3/include/CGAL/triangulate_power_diagram_3.h $ -// $Id: triangulate_power_diagram_3.h 254d60f 2019-10-19T15:23:19+02:00 Sébastien Loriot +// $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 // // @@ -209,12 +209,6 @@ class Power_diagram_triangulator_3 struct Index_c4 { Tmc_Vertex_handle V[4]; }; struct Index_c6 { Tmc_Vertex_handle V[6]; }; struct Index_c44 { Tmc_Vertex_handle V[4][4]; }; - struct Index_v { - Unique_hash_map < Rt_Vertex_handle, Tmc_Vertex_handle > V; - }; - - // index to vertex - Unique_hash_map < Rt_Cell_handle, Index_c4 > index_03; Union_find_anchor anchor_vor_uf; Simplex_UF_map anchor_vor_map; diff --git a/thirdparty/CGAL/include/CGAL/triangulation_assertions.h b/thirdparty/CGAL/include/CGAL/triangulation_assertions.h index 0a7ab8e9..283ecb44 100644 --- a/thirdparty/CGAL/include/CGAL/triangulation_assertions.h +++ b/thirdparty/CGAL/include/CGAL/triangulation_assertions.h @@ -2,7 +2,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/tss.h b/thirdparty/CGAL/include/CGAL/tss.h index c277a817..e198dd07 100644 --- a/thirdparty/CGAL/include/CGAL/tss.h +++ b/thirdparty/CGAL/include/CGAL/tss.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/tuple.h b/thirdparty/CGAL/include/CGAL/tuple.h index 1fa75257..7003ab2b 100644 --- a/thirdparty/CGAL/include/CGAL/tuple.h +++ b/thirdparty/CGAL/include/CGAL/tuple.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/type_traits.h b/thirdparty/CGAL/include/CGAL/type_traits.h index c2885e0e..3ae209b1 100644 --- a/thirdparty/CGAL/include/CGAL/type_traits.h +++ b/thirdparty/CGAL/include/CGAL/type_traits.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/typeset.h b/thirdparty/CGAL/include/CGAL/typeset.h index 7d01416e..1477005e 100644 --- a/thirdparty/CGAL/include/CGAL/typeset.h +++ b/thirdparty/CGAL/include/CGAL/typeset.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/use.h b/thirdparty/CGAL/include/CGAL/use.h index 2327fc7d..48bb84b5 100644 --- a/thirdparty/CGAL/include/CGAL/use.h +++ b/thirdparty/CGAL/include/CGAL/use.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/user_classes.h b/thirdparty/CGAL/include/CGAL/user_classes.h index c2cdc4f2..050a6df3 100644 --- a/thirdparty/CGAL/include/CGAL/user_classes.h +++ b/thirdparty/CGAL/include/CGAL/user_classes.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/utility.h b/thirdparty/CGAL/include/CGAL/utility.h index eb3b2c8e..1e2261d2 100644 --- a/thirdparty/CGAL/include/CGAL/utility.h +++ b/thirdparty/CGAL/include/CGAL/utility.h @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ inline P make_sorted_pair(T1&& t1, T2&& t2, Compare comp = Compare()) } //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 --git a/thirdparty/CGAL/include/CGAL/utils.h b/thirdparty/CGAL/include/CGAL/utils.h index 054f4011..b73888c7 100644 --- a/thirdparty/CGAL/include/CGAL/utils.h +++ b/thirdparty/CGAL/include/CGAL/utils.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/utils_classes.h b/thirdparty/CGAL/include/CGAL/utils_classes.h index 63df687b..5c0daa77 100644 --- a/thirdparty/CGAL/include/CGAL/utils_classes.h +++ b/thirdparty/CGAL/include/CGAL/utils_classes.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/value_type_traits.h b/thirdparty/CGAL/include/CGAL/value_type_traits.h index 8c7d34de..139db389 100644 --- a/thirdparty/CGAL/include/CGAL/value_type_traits.h +++ b/thirdparty/CGAL/include/CGAL/value_type_traits.h @@ -4,7 +4,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/vcm_estimate_edges.h b/thirdparty/CGAL/include/CGAL/vcm_estimate_edges.h index 65456c64..1ff1bb3e 100644 --- a/thirdparty/CGAL/include/CGAL/vcm_estimate_edges.h +++ b/thirdparty/CGAL/include/CGAL/vcm_estimate_edges.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/vcm_estimate_normals.h b/thirdparty/CGAL/include/CGAL/vcm_estimate_normals.h index 717c4493..a0ebb24f 100644 --- a/thirdparty/CGAL/include/CGAL/vcm_estimate_normals.h +++ b/thirdparty/CGAL/include/CGAL/vcm_estimate_normals.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ vcm_convolve (ForwardIterator first, */ 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; @@ -298,21 +299,6 @@ compute_vcm (const PointRange& points, } } -/// \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 ::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 @@ vcm_estimate_normals_internal (PointRange& points, \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 @@ vcm_estimate_normals (PointRange& points, \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 --git a/thirdparty/CGAL/include/CGAL/vector.h b/thirdparty/CGAL/include/CGAL/vector.h index acd72f49..ed703274 100644 --- a/thirdparty/CGAL/include/CGAL/vector.h +++ b/thirdparty/CGAL/include/CGAL/vector.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/version.h b/thirdparty/CGAL/include/CGAL/version.h index 1a72dcc1..23f88cbc 100644 --- a/thirdparty/CGAL/include/CGAL/version.h +++ b/thirdparty/CGAL/include/CGAL/version.h @@ -7,8 +7,8 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/Installation/include/CGAL/version.h $ -// $Id: version.h c58ac97 2022-01-27T12:12:21+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 -#define CGAL_GIT_HASH c58ac97e93c838ebfb1e8adaf23ff4fd185dc8e4 +#define CGAL_VERSION 5.5 +#define CGAL_GIT_HASH 80c30e4c79f1bb34673cdcfa22d8498d7c09967c #endif -#define CGAL_VERSION_NR 1050401000 +#define CGAL_VERSION_NR 1050501000 #define CGAL_SVN_REVISION 99999 -#define CGAL_RELEASE_DATE 20220127 +#define CGAL_RELEASE_DATE 20220713 #include diff --git a/thirdparty/CGAL/include/CGAL/version_macros.h b/thirdparty/CGAL/include/CGAL/version_macros.h index ed421637..cb113376 100644 --- a/thirdparty/CGAL/include/CGAL/version_macros.h +++ b/thirdparty/CGAL/include/CGAL/version_macros.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/vtkSurfaceMesherContourFilter.h b/thirdparty/CGAL/include/CGAL/vtkSurfaceMesherContourFilter.h index 3da63dcd..e97f15fe 100644 --- a/thirdparty/CGAL/include/CGAL/vtkSurfaceMesherContourFilter.h +++ b/thirdparty/CGAL/include/CGAL/vtkSurfaceMesherContourFilter.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/width_assertions.h b/thirdparty/CGAL/include/CGAL/width_assertions.h index 07443038..b11771c2 100644 --- a/thirdparty/CGAL/include/CGAL/width_assertions.h +++ b/thirdparty/CGAL/include/CGAL/width_assertions.h @@ -3,7 +3,7 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CGAL/include/CGAL/wlop_simplify_and_regularize_point_set.h b/thirdparty/CGAL/include/CGAL/wlop_simplify_and_regularize_point_set.h index e8dc761f..ab052638 100644 --- a/thirdparty/CGAL/include/CGAL/wlop_simplify_and_regularize_point_set.h +++ b/thirdparty/CGAL/include/CGAL/wlop_simplify_and_regularize_point_set.h @@ -3,8 +3,8 @@ // // This file is part of CGAL (www.cgal.org). // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 @@ compute_density_weight_for_sample_point( 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 @@ wlop_simplify_and_regularize_point_set( 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 --git a/thirdparty/CGAL/include/CGAL/wmult.h b/thirdparty/CGAL/include/CGAL/wmult.h index a387f6af..462e63d1 100644 --- a/thirdparty/CGAL/include/CGAL/wmult.h +++ b/thirdparty/CGAL/include/CGAL/wmult.h @@ -7,7 +7,7 @@ // // This file is part of CGAL (www.cgal.org) // -// $URL: https://github.com/CGAL/cgal/blob/v5.4/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 --git a/thirdparty/CSF/CMakeLists.txt b/thirdparty/CSF/CMakeLists.txt new file mode 100644 index 00000000..7ffa52e9 --- /dev/null +++ b/thirdparty/CSF/CMakeLists.txt @@ -0,0 +1,8 @@ +cmake_minimum_required(VERSION 3.10) +project(CSF LANGUAGES CXX) + +find_package(OpenMP) + +add_subdirectory(src) + +set(BUILD_SHARED_LIBS "Build as shared library" OFF) \ No newline at end of file diff --git a/thirdparty/CSF/LICENSE.txt b/thirdparty/CSF/LICENSE.txt new file mode 100644 index 00000000..261eeb9e --- /dev/null +++ b/thirdparty/CSF/LICENSE.txt @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/thirdparty/CSF/src/CMakeLists.txt b/thirdparty/CSF/src/CMakeLists.txt new file mode 100644 index 00000000..e4d72b79 --- /dev/null +++ b/thirdparty/CSF/src/CMakeLists.txt @@ -0,0 +1,37 @@ +set(CSF_SOURCES + c2cdist.cpp + Cloth.cpp + Constraint.cpp + CSF.cpp + Particle.cpp + point_cloud.cpp + Rasterization.cpp + XYZReader.cpp +) + +set(CSF_HEADERS + c2cdist.h + Cloth.h + Constraint.h + CSF.h + Particle.h + point_cloud.h + Rasterization.h + Vec3.h + XYZReader.h +) + +add_library(CSF ${CSF_SOURCES} ${CSF_HEADERS}) +target_compile_options(CSF PRIVATE -Werror -Wall -Wextra -Wno-unused-private-field) + +find_package(OpenMP) + +if (OpenMP_CXX_FOUND) + target_link_libraries(CSF PUBLIC OpenMP::OpenMP_CXX) +else() + message(STATUS "OpenMP not found. Cloth Simulation Filter will run single-threaded") +endif() + +install(TARGETS CSF LIBRARY DESTINATION lib) +install(TARGETS CSF ARCHIVE DESTINATION lib) +install(FILES ${CSF_HEADERS} DESTINATION include) diff --git a/thirdparty/CSF/src/CSF.cpp b/thirdparty/CSF/src/CSF.cpp new file mode 100644 index 00000000..7f181eba --- /dev/null +++ b/thirdparty/CSF/src/CSF.cpp @@ -0,0 +1,220 @@ +// ====================================================================================== +// Copyright 2017 State Key Laboratory of Remote Sensing Science, +// Institute of Remote Sensing Science and Engineering, Beijing Normal University + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 + +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ====================================================================================== + +#define DLL_IMPLEMENT + +#include "CSF.h" +#include "XYZReader.h" +#include "Vec3.h" +#include "Cloth.h" +#include "Rasterization.h" +#include "c2cdist.h" +#include + + +CSF::CSF(int index) { + params.bSloopSmooth = true; + params.time_step = 0.65; + params.class_threshold = 0.5; + params.cloth_resolution = 1; + params.rigidness = 3; + params.interations = 500; + + this->index = index; +} + +CSF::CSF() { + params.bSloopSmooth = true; + params.time_step = 0.65; + params.class_threshold = 0.5; + params.cloth_resolution = 1; + params.rigidness = 3; + params.interations = 500; + this->index = 0; +} + +CSF::~CSF() +{} + +void CSF::setPointCloud(std::vector points) { + point_cloud.resize(points.size()); + + int pointCount = static_cast(points.size()); +#ifdef _OPENMP + #pragma omp parallel for +#endif + for (int i = 0; i < pointCount; i++) { + csf::Point las; + las.x = points[i].x; + las.y = -points[i].z; + las.z = points[i].y; + point_cloud[i] = las; + } +} + +void CSF::setPointCloud(double *points, int rows) { + #define A(i, j) points[i + j * rows] + + for (int i = 0; i < rows; i++) { + csf::Point p; + p.x = A(i, 0); + p.y = -A(i, 2); + p.z = A(i, 1); + point_cloud.push_back(p); + } +} + +void CSF::setPointCloud(csf::PointCloud& pc) { + point_cloud.resize(pc.size()); + int pointCount = static_cast(pc.size()); +#ifdef _OPENMP + #pragma omp parallel for +#endif + for (int i = 0; i < pointCount; i++) { + csf::Point las; + las.x = pc[i].x; + las.y = -pc[i].z; + las.z = pc[i].y; + point_cloud[i] = las; + } +} + +void CSF::setPointCloud(std::vector > points) { + point_cloud.resize(points.size()); + int pointCount = static_cast(points.size()); +#ifdef _OPENMP + #pragma omp parallel for +#endif + for (int i = 0; i < pointCount; i++) { + csf::Point las; + las.x = points[i][0]; + las.y = -points[i][2]; + las.z = points[i][1]; + point_cloud[i] = las; + } +} + +/* + *! ipadjen - change to the original source + */ +void CSF::addPoint(const double pt_x, const double pt_y, const double pt_z) { + csf::Point las; + las.x = pt_x; + las.y = -pt_z; + las.z = pt_y; + point_cloud.push_back(las); +} + +void CSF::readPointsFromFile(std::string filename) { + this->point_cloud.resize(0); + read_xyz(filename, this->point_cloud); +} + + +void CSF::do_filtering(std::vector& groundIndexes, + std::vector& offGroundIndexes, + bool exportCloth) { + // Terrain + std::cout << " [" << this->index << "] Configuring terrain..." << std::endl; + csf::Point bbMin, bbMax; + point_cloud.computeBoundingBox(bbMin, bbMax); + + double cloth_y_height = 0.05; + + int clothbuffer_d = 2; + Vec3 origin_pos( + bbMin.x - clothbuffer_d *params.cloth_resolution, + bbMax.y + cloth_y_height, + bbMin.z - clothbuffer_d *params.cloth_resolution + ); + + int width_num = static_cast( + std::floor((bbMax.x - bbMin.x) / params.cloth_resolution) + ) + 2 * clothbuffer_d; + + int height_num = static_cast( + std::floor((bbMax.z - bbMin.z) / params.cloth_resolution) + ) + 2 * clothbuffer_d; + + std::cout << " [" << this->index << "] Configuring cloth..." << std::endl; + std::cout << " [" << this->index << "] - width: " << width_num << " " + << "height: " << height_num << std::endl; + + Cloth cloth( + origin_pos, + width_num, + height_num, + params.cloth_resolution, + params.cloth_resolution, + 0.3, + 9999, + params.rigidness, + params.time_step + ); + + std::cout << " [" << this->index << "] Rasterizing..." << std::endl; + Rasterization::RasterTerrian(cloth, point_cloud, cloth.getHeightvals()); + + double time_step2 = params.time_step * params.time_step; + double gravity = 0.2; + + std::cout << " [" << this->index << "] Simulating..." << std::endl; + cloth.addForce(Vec3(0, -gravity, 0) * time_step2); + + // boost::progress_display pd(params.interations); + for (int i = 0; i < params.interations; i++) { + double maxDiff = cloth.timeStep(); + cloth.terrCollision(); + //params.class_threshold / 100 + if ((maxDiff != 0) && (maxDiff < 0.005)) { + // early stop + break; + } + // pd++; + } + + if (params.bSloopSmooth) { + std::cout << " [" << this->index << "] - post handle..." << std::endl; + cloth.movableFilter(); + } + + if (exportCloth) + cloth.saveToFile(); + + c2cdist c2c(params.class_threshold); + c2c.calCloud2CloudDist(cloth, point_cloud, groundIndexes, offGroundIndexes); +} + +void CSF::savePoints(std::vector grp, std::string path) { + if (path == "") { + return; + } + + std::ofstream f1(path.c_str(), std::ios::out); + + if (!f1) + return; + + for (std::size_t i = 0; i < grp.size(); i++) { + f1 << std::fixed << std::setprecision(8) + << point_cloud[grp[i]].x << " " + << point_cloud[grp[i]].z << " " + << -point_cloud[grp[i]].y << std::endl; + } + + f1.close(); +} diff --git a/thirdparty/CSF/src/CSF.h b/thirdparty/CSF/src/CSF.h new file mode 100644 index 00000000..cf6a6c40 --- /dev/null +++ b/thirdparty/CSF/src/CSF.h @@ -0,0 +1,126 @@ +// ====================================================================================== +// Copyright 2017 State Key Laboratory of Remote Sensing Science, +// Institute of Remote Sensing Science and Engineering, Beijing Normal University + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 + +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ====================================================================================== + +// ####################################################################################### +// # # +// # CSF: Airborne LiDAR filtering based on Cloth Simulation # +// # # +// # Please cite the following paper, If you use this software in your work. # +// # # +// # Zhang W, Qi J, Wan P, Wang H, Xie D, Wang X, Yan G. An Easy-to-Use Airborne LiDAR # +// # Data Filtering Method Based on Cloth Simulation. Remote Sensing. 2016; 8(6):501. # +// # (http://ramm.bnu.edu.cn/) # +// # # +// # Wuming Zhang; Jianbo Qi; Peng Wan; Hongtao Wang # +// # # +// # contact us: 2009zwm@gmail.com; wpqjbzwm@126.com # +// # # +// ####################################################################################### + + +// cloth simulation filter for airborne lidar filtering +#ifndef _CSF_H_ +#define _CSF_H_ +#include +#include +#include "point_cloud.h" + + +struct Params { + // refer to the website:http://ramm.bnu.edu.cn/projects/CSF/ for the setting of these paramters + bool bSloopSmooth; + double time_step; + double class_threshold; + double cloth_resolution; + int rigidness; + int interations; +}; + +#ifdef _CSF_DLL_EXPORT_ +# ifdef DLL_IMPLEMENT +# define DLL_API __declspec(dllexport) +# else // ifdef DLL_IMPLEMENT +# define DLL_API __declspec(dllimport) +# endif // ifdef DLL_IMPLEMENT +#endif // ifdef _CSF_DLL_EXPORT_ + +#ifdef _CSF_DLL_EXPORT_ +class DLL_API CSF +#else // ifdef _CSF_DLL_EXPORT_ +class CSF +#endif // ifdef _CSF_DLL_EXPORT_ +{ +public: + + CSF(int index); + CSF(); + ~CSF(); + + // set pointcloud from vector + void setPointCloud(std::vector points); + // set point cloud from a one-dimentional array. it defines a N*3 point cloud by the given rows. + void setPointCloud(double *points, int rows); + + // set point cloud for python + void setPointCloud(std::vector > points); + + //! ipadjen - change to the original source + void addPoint(const double pt_x, const double pt_y, const double pt_z); + + // read pointcloud from txt file: (X Y Z) for each line + void readPointsFromFile(std::string filename); + + inline csf::PointCloud& getPointCloud() { + return point_cloud; + } + + inline const csf::PointCloud& getPointCloud() const { + return point_cloud; + } + + // save points to file + void savePoints(std::vector grp, std::string path); + + // get size of pointcloud + std::size_t size() { + return point_cloud.size(); + } + + // PointCloud set pointcloud + void setPointCloud(csf::PointCloud& pc); + + // The results are index of ground points in the original + // pointcloud + void do_filtering(std::vector& groundIndexes, + std::vector& offGroundIndexes, + bool exportCloth = false); + +private: + +#ifdef _CSF_DLL_EXPORT_ + class __declspec (dllexport)csf::PointCloud point_cloud; +#else // ifdef _CSF_DLL_EXPORT_ + csf::PointCloud point_cloud; +#endif // ifdef _CSF_DLL_EXPORT_ + +public: + + Params params; + int index; +}; + +#endif // ifndef _CSF_H_ diff --git a/thirdparty/CSF/src/Cloth.cpp b/thirdparty/CSF/src/Cloth.cpp new file mode 100644 index 00000000..47420848 --- /dev/null +++ b/thirdparty/CSF/src/Cloth.cpp @@ -0,0 +1,415 @@ +// ====================================================================================== +// Copyright 2017 State Key Laboratory of Remote Sensing Science, +// Institute of Remote Sensing Science and Engineering, Beijing Normal University + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 + +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ====================================================================================== + +#include "Cloth.h" +#include + + +Cloth::Cloth(const Vec3& _origin_pos, + int _num_particles_width, + int _num_particles_height, + double _step_x, + double _step_y, + double _smoothThreshold, + double _heightThreshold, + int rigidness, + double time_step) + : constraint_iterations(rigidness), + time_step(time_step), + smoothThreshold(_smoothThreshold), + heightThreshold(_heightThreshold), + origin_pos(_origin_pos), + step_x(_step_x), + step_y(_step_y), + num_particles_width(_num_particles_width), + num_particles_height(_num_particles_height) { + // I am essentially using this vector as an array with room for + // num_particles_width*num_particles_height particles + particles.resize(num_particles_width * num_particles_height); + + double time_step2 = time_step * time_step; + + // creating particles in a grid of particles from (0,0,0) to + // (width,-height,0) creating particles in a grid + for (int i = 0; i < num_particles_width; i++) { + for (int j = 0; j < num_particles_height; j++) { + Vec3 pos(origin_pos.f[0] + i *step_x, + origin_pos.f[1], + origin_pos.f[2] + j *step_y); + + // insert particle in column i at j'th row + particles[j * num_particles_width + i] = Particle(pos, time_step2); + particles[j * num_particles_width + i].pos_x = i; + particles[j * num_particles_width + i].pos_y = j; + } + } + + // Connecting immediate neighbor particles with constraints + // (distance 1 and sqrt(2) in the grid) + for (int x = 0; x < num_particles_width; x++) { + for (int y = 0; y < num_particles_height; y++) { + if (x < num_particles_width - 1) + makeConstraint(getParticle(x, y), getParticle(x + 1, y)); + + if (y < num_particles_height - 1) + makeConstraint(getParticle(x, y), getParticle(x, y + 1)); + + if ((x < num_particles_width - 1) && (y < num_particles_height - 1)) + makeConstraint(getParticle(x, y), getParticle(x + 1, y + 1)); + + if ((x < num_particles_width - 1) && (y < num_particles_height - 1)) + makeConstraint(getParticle(x + 1, y), getParticle(x, y + 1)); + } + } + + // Connecting secondary neighbors with constraints (distance 2 and sqrt(4) in the grid) + for (int x = 0; x < num_particles_width; x++) { + for (int y = 0; y < num_particles_height; y++) { + if (x < num_particles_width - 2) + makeConstraint(getParticle(x, y), getParticle(x + 2, y)); + + if (y < num_particles_height - 2) + makeConstraint(getParticle(x, y), getParticle(x, y + 2)); + + if ((x < num_particles_width - 2) && (y < num_particles_height - 2)) + makeConstraint(getParticle(x, y), getParticle(x + 2, y + 2)); + + if ((x < num_particles_width - 2) && (y < num_particles_height - 2)) + makeConstraint(getParticle(x + 2, y), getParticle(x, y + 2)); + } + } +} + +double Cloth::timeStep() { + int particleCount = static_cast(particles.size()); +#ifdef _OPENMP + #pragma omp parallel for +#endif + for (int i = 0; i < particleCount; i++) { + particles[i].timeStep(); + } + +#ifdef _OPENMP + #pragma omp parallel for +#endif + for (int j = 0; j < particleCount; j++) { + particles[j].satisfyConstraintSelf(constraint_iterations); + } + + double maxDiff = 0; + + for (int i = 0; i < particleCount; i++) { + if (particles[i].isMovable()) { + double diff = fabs(particles[i].old_pos.f[1] - particles[i].pos.f[1]); + + if (diff > maxDiff) + maxDiff = diff; + } + } + + return maxDiff; +} + +void Cloth::addForce(const Vec3 direction) { + for (std::size_t i = 0; i < particles.size(); i++) { + particles[i].addForce(direction); + } +} + +void Cloth::terrCollision() { + int particleCount = static_cast(particles.size()); +#ifdef _OPENMP + #pragma omp parallel for +#endif + for (int i = 0; i < particleCount; i++) { + Vec3 v = particles[i].getPos(); + + if (v.f[1] < heightvals[i]) { + particles[i].offsetPos(Vec3(0, heightvals[i] - v.f[1], 0)); + particles[i].makeUnmovable(); + } + } +} + +void Cloth::movableFilter() { + std::vector tmpParticles; + + for (int x = 0; x < num_particles_width; x++) { + for (int y = 0; y < num_particles_height; y++) { + Particle *ptc = getParticle(x, y); + + if (ptc->isMovable() && !ptc->isVisited) { + std::queue que; + std::vector connected; // store the connected component + std::vector > neibors; + int sum = 1; + int index = y * num_particles_width + x; + + // visit the init node + connected.push_back(XY(x, y)); + particles[index].isVisited = true; + + // enqueue the init node + que.push(index); + + while (!que.empty()) { + Particle *ptc_f = &particles[que.front()]; + que.pop(); + int cur_x = ptc_f->pos_x; + int cur_y = ptc_f->pos_y; + std::vector neibor; + + if (cur_x > 0) { + Particle *ptc_left = getParticle(cur_x - 1, cur_y); + + if (ptc_left->isMovable()) { + if (!ptc_left->isVisited) { + sum++; + ptc_left->isVisited = true; + connected.push_back(XY(cur_x - 1, cur_y)); + que.push(num_particles_width * cur_y + cur_x - 1); + neibor.push_back(sum - 1); + ptc_left->c_pos = sum - 1; + } else { + neibor.push_back(ptc_left->c_pos); + } + } + } + + if (cur_x < num_particles_width - 1) { + Particle *ptc_right = getParticle(cur_x + 1, cur_y); + + if (ptc_right->isMovable()) { + if (!ptc_right->isVisited) { + sum++; + ptc_right->isVisited = true; + connected.push_back(XY(cur_x + 1, cur_y)); + que.push(num_particles_width * cur_y + cur_x + 1); + neibor.push_back(sum - 1); + ptc_right->c_pos = sum - 1; + } else { + neibor.push_back(ptc_right->c_pos); + } + } + } + + if (cur_y > 0) { + Particle *ptc_bottom = getParticle(cur_x, cur_y - 1); + + if (ptc_bottom->isMovable()) { + if (!ptc_bottom->isVisited) { + sum++; + ptc_bottom->isVisited = true; + connected.push_back(XY(cur_x, cur_y - 1)); + que.push(num_particles_width * (cur_y - 1) + cur_x); + neibor.push_back(sum - 1); + ptc_bottom->c_pos = sum - 1; + } else { + neibor.push_back(ptc_bottom->c_pos); + } + } + } + + if (cur_y < num_particles_height - 1) { + Particle *ptc_top = getParticle(cur_x, cur_y + 1); + + if (ptc_top->isMovable()) { + if (!ptc_top->isVisited) { + sum++; + ptc_top->isVisited = true; + connected.push_back(XY(cur_x, cur_y + 1)); + que.push(num_particles_width * (cur_y + 1) + cur_x); + neibor.push_back(sum - 1); + ptc_top->c_pos = sum - 1; + } else { + neibor.push_back(ptc_top->c_pos); + } + } + } + neibors.push_back(neibor); + } + + if (sum > MAX_PARTICLE_FOR_POSTPROCESSIN) { + std::vector edgePoints = findUnmovablePoint(connected); + handle_slop_connected(edgePoints, connected, neibors); + } + } + } + } +} + +std::vector Cloth::findUnmovablePoint(std::vector connected) { + std::vector edgePoints; + + for (std::size_t i = 0; i < connected.size(); i++) { + int x = connected[i].x; + int y = connected[i].y; + int index = y * num_particles_width + x; + Particle *ptc = getParticle(x, y); + + if (x > 0) { + Particle *ptc_x = getParticle(x - 1, y); + + if (!ptc_x->isMovable()) { + int index_ref = y * num_particles_width + x - 1; + + if ((fabs(heightvals[index] - heightvals[index_ref]) < smoothThreshold) && + (ptc->getPos().f[1] - heightvals[index] < heightThreshold)) { + Vec3 offsetVec = Vec3(0, heightvals[index] - ptc->getPos().f[1], 0); + particles[index].offsetPos(offsetVec); + ptc->makeUnmovable(); + edgePoints.push_back(i); + continue; + } + } + } + + if (x < num_particles_width - 1) { + Particle *ptc_x = getParticle(x + 1, y); + + if (!ptc_x->isMovable()) { + int index_ref = y * num_particles_width + x + 1; + + if ((fabs(heightvals[index] - heightvals[index_ref]) < smoothThreshold) && + (ptc->getPos().f[1] - heightvals[index] < heightThreshold)) { + Vec3 offsetVec = Vec3(0, heightvals[index] - ptc->getPos().f[1], 0); + particles[index].offsetPos(offsetVec); + ptc->makeUnmovable(); + edgePoints.push_back(i); + continue; + } + } + } + + if (y > 0) { + Particle *ptc_y = getParticle(x, y - 1); + + if (!ptc_y->isMovable()) { + int index_ref = (y - 1) * num_particles_width + x; + + if ((fabs(heightvals[index] - heightvals[index_ref]) < smoothThreshold) && + (ptc->getPos().f[1] - heightvals[index] < heightThreshold)) { + Vec3 offsetVec = Vec3(0, heightvals[index] - ptc->getPos().f[1], 0); + particles[index].offsetPos(offsetVec); + ptc->makeUnmovable(); + edgePoints.push_back(i); + continue; + } + } + } + + if (y < num_particles_height - 1) { + Particle *ptc_y = getParticle(x, y + 1); + + if (!ptc_y->isMovable()) { + int index_ref = (y + 1) * num_particles_width + x; + + if ((fabs(heightvals[index] - heightvals[index_ref]) < smoothThreshold) && + (ptc->getPos().f[1] - heightvals[index] < heightThreshold)) { + Vec3 offsetVec = Vec3(0, heightvals[index] - ptc->getPos().f[1], 0); + particles[index].offsetPos(offsetVec); + ptc->makeUnmovable(); + edgePoints.push_back(i); + continue; + } + } + } + } + + return edgePoints; +} + +void Cloth::handle_slop_connected(std::vector edgePoints, std::vector connected, std::vector > neibors) { + std::vector visited; + + for (std::size_t i = 0; i < connected.size(); i++) visited.push_back(false); + + std::queue que; + + for (std::size_t i = 0; i < edgePoints.size(); i++) { + que.push(edgePoints[i]); + visited[edgePoints[i]] = true; + } + + while (!que.empty()) { + int index = que.front(); + que.pop(); + + int index_center = connected[index].y * num_particles_width + connected[index].x; + + for (std::size_t i = 0; i < neibors[index].size(); i++) { + int index_neibor = connected[neibors[index][i]].y * num_particles_width + connected[neibors[index][i]].x; + + if ((fabs(heightvals[index_center] - heightvals[index_neibor]) < smoothThreshold) && + (fabs(particles[index_neibor].getPos().f[1] - heightvals[index_neibor]) < heightThreshold)) { + Vec3 offsetVec = Vec3(0, heightvals[index_neibor] - particles[index_neibor].getPos().f[1], 0); + particles[index_neibor].offsetPos(offsetVec); + particles[index_neibor].makeUnmovable(); + + if (visited[neibors[index][i]] == false) { + que.push(neibors[index][i]); + visited[neibors[index][i]] = true; + } + } + } + } +} + +void Cloth::saveToFile(std::string path) { + std::string filepath = "cloth_nodes.txt"; + + if (path == "") { + filepath = "cloth_nodes.txt"; + } else { + filepath = path; + } + + std::ofstream f1(filepath.c_str()); + + if (!f1) + return; + + for (std::size_t i = 0; i < particles.size(); i++) { + f1 << std::fixed << std::setprecision(8) << particles[i].getPos().f[0] << " "<< particles[i].getPos().f[2] << " "<< -particles[i].getPos().f[1] << std::endl; + } + + f1.close(); +} + +void Cloth::saveMovableToFile(std::string path) { + std::string filepath = "cloth_movable.txt"; + + if (path == "") { + filepath = "cloth_movable.txt"; + } else { + filepath = path; + } + + std::ofstream f1(filepath.c_str()); + + if (!f1) + return; + + for (std::size_t i = 0; i < particles.size(); i++) { + if (particles[i].isMovable()) { + f1 << std::fixed << std::setprecision(8) << particles[i].getPos().f[0] << " " + << particles[i].getPos().f[2] << " "<< -particles[i].getPos().f[1] << std::endl; + } + } + + f1.close(); +} diff --git a/thirdparty/CSF/src/Cloth.h b/thirdparty/CSF/src/Cloth.h new file mode 100644 index 00000000..872c519f --- /dev/null +++ b/thirdparty/CSF/src/Cloth.h @@ -0,0 +1,165 @@ +// ====================================================================================== +// Copyright 2017 State Key Laboratory of Remote Sensing Science, +// Institute of Remote Sensing Science and Engineering, Beijing Normal University + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 + +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ====================================================================================== + +/* + * This source code is about a ground filtering algorithm for airborn LiDAR data + * based on physical process simulations, specifically cloth simulation. + * + * this code is based on a Cloth Simulation Tutorial at the cg.alexandra.dk blog. + * Thanks to Jesper Mosegaard (clothTutorial@jespermosegaard.dk) + * + * + * + * When applying the cloth simulation to LIDAR point filtering. A lot of features + * have been added to the original source code, including + * configuration file management + * point cloud data read/write + * point-to-point collsion detection + * nearest point search structure from CGAL + * addding a terrain class + * + * + */ +// using discrete steps (drop and pull) to approximate the physical process + +#ifndef _CLOTH_H_ +#define _CLOTH_H_ + + +#ifdef _WIN32 +# include +#endif // ifdef _WIN32 +#include +#include +#include +#include +#include +#include +#include +#include +#ifdef _OPENMP + #include +#else + #define omp_get_thread_num() 0 +#endif + +#include "Vec3.h" +#include "Particle.h" +// #include +// post processing is only for connected component which is large than 50 +#define MAX_PARTICLE_FOR_POSTPROCESSIN 50 + +struct XY { + XY(int x1, int y1) { + x = x1; y = y1; + } + + int x; + int y; +}; + +class Cloth { +private: + + // total number of particles is num_particles_width * num_particles_height + int constraint_iterations; + + int rigidness; + double time_step; + + std::vector particles; // all particles that are part of this cloth + + double smoothThreshold; + double heightThreshold; + +public: + + Vec3 origin_pos; + double step_x, step_y; + std::vector heightvals; // height values + int num_particles_width; // number of particles in width direction + int num_particles_height; // number of particles in height direction + + Particle* getParticle(int x, int y) { + return &particles[y * num_particles_width + x]; + } + + void makeConstraint(Particle *p1, Particle *p2) { + p1->neighborsList.push_back(p2); + p2->neighborsList.push_back(p1); + } + +public: + + int getSize() { + return num_particles_width * num_particles_height; + } + + std::size_t get1DIndex(int x, int y) { + return y * num_particles_width + x; + } + + inline std::vector& getHeightvals() { + return heightvals; + } + + Particle* getParticle1d(int index) { + return &particles[index]; + } + +public: + + /* This is a important constructor for the entire system of + * particles and constraints */ + Cloth(const Vec3& origin_pos, + int num_particles_width, + int num_particles_height, + double step_x, + double step_y, + double smoothThreshold, + double heightThreshold, + int rigidness, + double time_step); + + /* this is an important methods where the time is progressed one + * time step for the entire cloth. This includes calling + * satisfyConstraint() for every constraint, and calling + * timeStep() for all particles + */ + double timeStep(); + + /* used to add gravity (or any other arbitrary vector) to all + * particles */ + void addForce(const Vec3 direction); + + void terrCollision(); + + void movableFilter(); + + std::vector findUnmovablePoint(std::vector connected); + + void handle_slop_connected(std::vector edgePoints, + std::vector connected, + std::vector > neibors); + + void saveToFile(std::string path = ""); + + void saveMovableToFile(std::string path = ""); +}; + + +#endif // ifndef _CLOTH_H_ diff --git a/thirdparty/CSF/src/Constraint.cpp b/thirdparty/CSF/src/Constraint.cpp new file mode 100644 index 00000000..5a901cf1 --- /dev/null +++ b/thirdparty/CSF/src/Constraint.cpp @@ -0,0 +1,42 @@ +// ====================================================================================== +// Copyright 2017 State Key Laboratory of Remote Sensing Science, +// Institute of Remote Sensing Science and Engineering, Beijing Normal University + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 + +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ====================================================================================== + +#include "Constraint.h" + + +void Constraint::satisfyConstraint(int constraintTimes) { + Vec3 correctionVector(0, p2->pos.f[1] - p1->pos.f[1], 0); + + if (p1->isMovable() && p2->isMovable()) { + // Lets make it half that length, so that we can move BOTH p1 and p2. + Vec3 correctionVectorHalf = correctionVector * ( + constraintTimes > 14 ? 0.5 : doubleMove[constraintTimes - 1] + ); + p1->offsetPos(correctionVectorHalf); + p2->offsetPos(-correctionVectorHalf); + } else if (p1->isMovable() && !p2->isMovable()) { + Vec3 correctionVectorHalf = correctionVector * ( + constraintTimes > 14 ? 1 : singleMove[constraintTimes - 1] + ); + p1->offsetPos(correctionVectorHalf); + } else if (!p1->isMovable() && p2->isMovable()) { + Vec3 correctionVectorHalf = correctionVector * ( + constraintTimes > 14 ? 1 : singleMove[constraintTimes - 1] + ); + p2->offsetPos(-correctionVectorHalf); + } +} diff --git a/thirdparty/CSF/src/Constraint.h b/thirdparty/CSF/src/Constraint.h new file mode 100644 index 00000000..8b2c279f --- /dev/null +++ b/thirdparty/CSF/src/Constraint.h @@ -0,0 +1,47 @@ +// ====================================================================================== +// Copyright 2017 State Key Laboratory of Remote Sensing Science, +// Institute of Remote Sensing Science and Engineering, Beijing Normal University + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 + +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ====================================================================================== + +#ifndef _CONSTRAINT_H_ +#define _CONSTRAINT_H_ + + +#include "Vec3.h" +#include "Particle.h" + +const double singleMove[14] = { 0.4, 0.64, 0.784, 0.8704, 0.92224, 0.95334, 0.97201, 0.9832, 0.98992, 0.99395, 0.99637, 0.99782, 0.99869, 0.99922 }; + +const double doubleMove[14] = { 0.4, 0.48, 0.496, 0.4992, 0.49984, 0.49997, 0.49999, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 }; + +class Constraint { +private: + + double rest_distance; // the length between particle p1 and p2 in rest configuration + +public: + + Particle *p1, *p2; // the two particles that are connected through this constraint + + Constraint(Particle *p1, Particle *p2) : p1(p1), p2(p2) {} + + /* This is one of the important methods, where a single constraint + * between two particles p1 and p2 is solved the method is called + * by Cloth.time_step() many times per frame*/ + void satisfyConstraint(int constraintTimes); +}; + + +#endif // ifndef _CONSTRAINT_H_ diff --git a/thirdparty/CSF/src/Particle.cpp b/thirdparty/CSF/src/Particle.cpp new file mode 100644 index 00000000..226d1d4b --- /dev/null +++ b/thirdparty/CSF/src/Particle.cpp @@ -0,0 +1,58 @@ +// ====================================================================================== +// Copyright 2017 State Key Laboratory of Remote Sensing Science, +// Institute of Remote Sensing Science and Engineering, Beijing Normal University + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 + +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ====================================================================================== + +#include "Particle.h" + +/* This is one of the important methods, where the time is progressed +* a single step size (TIME_STEPSIZE) The method is called by +* Cloth.time_step() Given the equation "force = mass * acceleration" +* the next position is found through verlet integration*/ +void Particle::timeStep() { + if (movable) { + Vec3 temp = pos; + pos = pos + (pos - old_pos) * (1.0 - DAMPING) + acceleration * time_step2; + old_pos = temp; + } +} + +void Particle::satisfyConstraintSelf(int constraintTimes) { + Particle *p1 = this; + + for (std::size_t i = 0; i < neighborsList.size(); i++) { + Particle *p2 = neighborsList[i]; + Vec3 correctionVector(0, p2->pos.f[1] - p1->pos.f[1], 0); + + if (p1->isMovable() && p2->isMovable()) { + // Lets make it half that length, so that we can move BOTH p1 and p2. + Vec3 correctionVectorHalf = correctionVector * ( + constraintTimes > 14 ? 0.5 : doubleMove1[constraintTimes] + ); + p1->offsetPos(correctionVectorHalf); + p2->offsetPos(-correctionVectorHalf); + } else if (p1->isMovable() && !p2->isMovable()) { + Vec3 correctionVectorHalf = correctionVector * ( + constraintTimes > 14 ? 1 : singleMove1[constraintTimes] + ); + p1->offsetPos(correctionVectorHalf); + } else if (!p1->isMovable() && p2->isMovable()) { + Vec3 correctionVectorHalf = correctionVector * ( + constraintTimes > 14 ? 1 : singleMove1[constraintTimes] + ); + p2->offsetPos(-correctionVectorHalf); + } + } +} diff --git a/thirdparty/CSF/src/Particle.h b/thirdparty/CSF/src/Particle.h new file mode 100644 index 00000000..6737aaa9 --- /dev/null +++ b/thirdparty/CSF/src/Particle.h @@ -0,0 +1,170 @@ +// ====================================================================================== +// Copyright 2017 State Key Laboratory of Remote Sensing Science, +// Institute of Remote Sensing Science and Engineering, Beijing Normal University + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 + +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ====================================================================================== + +#ifndef _PARTICLE_H_ +#define _PARTICLE_H_ + +#include "Vec3.h" +#include +/* Some physics constants */ +#define DAMPING 0.01 // how much to damp the cloth simulation each frame +#define MAX_INF 9999999999 +#define MIN_INF -9999999999 + +/* +Initially, we have to make modifications of particle positions for each constraint(constraintTimes = rigidness), However, to save computation time, we +precomputed the total displacement of a particle for all constraintTimes. +For singleMove1, which means one of the two particles is unmovable, then we move the other one only: +if constraintTimes = 0: singleMove1 = 0 +if constraintTimes = 1: singleMove1 = 0.3, i.e., each time we move 0.3 (scale factor of the total distance) for a particle towards the other one +if constraintTimes = 2: singleMove1 = (1-0.3)*0.3+0.3 = 0.51 +if constraintTimes = 3: singleMove1 = (1-0.51)*0.3+0.51 = 0.657 +... + +For doubleMove1, we move both of the two particles towards each other. +if constraintTimes = 0: singleMove2 = 0 +if constraintTimes = 1: singleMove2 = 0.3, i.e., each time we move 0.3 (scale factor of the total distance) for the two particles towards each other +if constraintTimes = 2: singleMove2 = (1-0.3*2)*0.3+0.3 = 0.42 +if constraintTimes = 3: singleMove2 = (1-0.42*2)*0.3+0.42 = 0.468 +... + +*/ +const double singleMove1[15] = { 0, 0.3, 0.51, 0.657, 0.7599, 0.83193, 0.88235, 0.91765, 0.94235, 0.95965, 0.97175, 0.98023, 0.98616, 0.99031, 0.99322 }; +const double doubleMove1[15] = { 0, 0.3, 0.42, 0.468, 0.4872, 0.4949, 0.498, 0.4992, 0.4997, 0.4999, 0.4999, 0.5, 0.5, 0.5, 0.5 }; + +/* The particle class represents a particle of mass that can move + * around in 3D space*/ +class Particle { +private: + + bool movable; // can the particle move or not ? used to pin parts of the cloth + double mass; // the mass of the particle (is always 1 in this example) + Vec3 acceleration; // a vector representing the current acceleration of the particle + Vec3 accumulated_normal; // an accumulated normal (i.e. non normalized), used for OpenGL soft shading + double time_step2; + +public: + + // These two memebers are used in the process of edge smoothing after + // the cloth simulation step. + Vec3 pos; // the current position of the particle in 3D space + // the position of the particle in the previous time step, used as + // part of the verlet numerical integration scheme + Vec3 old_pos; + bool isVisited; + int neibor_count; + int pos_x; // position in the cloth grid + int pos_y; + int c_pos; + + std::vector neighborsList; + + std::vector correspondingLidarPointList; + std::size_t nearestPointIndex; + double nearestPointHeight; + double tmpDist; + void satisfyConstraintSelf(int constraintTimes); + +public: + + Particle(Vec3 pos, double time_step) : + movable(true), + mass(1), + acceleration(Vec3(0, 0, 0)), + accumulated_normal(Vec3(0, 0, 0)), + time_step2(time_step), + pos(pos), + old_pos(pos) { + isVisited = false; + neibor_count = 0; + pos_x = 0; + pos_y = 0; + c_pos = 0; + nearestPointHeight = MIN_INF; + tmpDist = MAX_INF; + } + + Particle() : + movable(true), + mass(1), + acceleration(Vec3(0, 0, 0)), + accumulated_normal(Vec3(0, 0, 0)), + pos(Vec3(0, 0, 0)), + old_pos(Vec3(0, 0, 0)) { + isVisited = false; + neibor_count = 0; + pos_x = 0; + pos_y = 0; + c_pos = 0; + nearestPointHeight = MIN_INF; + tmpDist = MAX_INF; + } + + + bool isMovable() { + return movable; + } + + void addForce(Vec3 f) { + acceleration += f / mass; + } + + /* This is one of the important methods, where the time is + * progressed a single step size (TIME_STEPSIZE) The method is + * called by Cloth.time_step()*/ + void timeStep(); + + Vec3& getPos() { + return pos; + } + + Vec3 getPosCopy() { + return pos; + } + + void resetAcceleration() { + acceleration = Vec3(0, 0, 0); + } + + void offsetPos(const Vec3 v) { + if (movable) pos += v; + } + + void makeUnmovable() { + movable = false; + } + + void addToNormal(Vec3 normal) { + accumulated_normal += normal.normalized(); + } + + Vec3& getNormal() { + // note: The normal is not unit length + return accumulated_normal; + } + + void resetNormal() { + accumulated_normal = Vec3(0, 0, 0); + } + + void printself(std::string s = "") { + std::cout << s << ": " << this->getPos().f[0] << " movable: " << this->movable << std::endl; + } +}; + + +#endif // ifndef _PARTICLE_H_ diff --git a/thirdparty/CSF/src/Rasterization.cpp b/thirdparty/CSF/src/Rasterization.cpp new file mode 100644 index 00000000..bcc6429c --- /dev/null +++ b/thirdparty/CSF/src/Rasterization.cpp @@ -0,0 +1,144 @@ +// ====================================================================================== +// Copyright 2017 State Key Laboratory of Remote Sensing Science, +// Institute of Remote Sensing Science and Engineering, Beijing Normal University + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 + +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ====================================================================================== + +#include "Rasterization.h" +#include + + +double Rasterization::findHeightValByScanline(Particle *p, Cloth& cloth) { + int xpos = p->pos_x; + int ypos = p->pos_y; + + for (int i = xpos + 1; i < cloth.num_particles_width; i++) { + double crresHeight = cloth.getParticle(i, ypos)->nearestPointHeight; + + if (crresHeight > MIN_INF) + return crresHeight; + } + + for (int i = xpos - 1; i >= 0; i--) { + double crresHeight = cloth.getParticle(i, ypos)->nearestPointHeight; + + if (crresHeight > MIN_INF) + return crresHeight; + } + + for (int j = ypos - 1; j >= 0; j--) { + double crresHeight = cloth.getParticle(xpos, j)->nearestPointHeight; + + if (crresHeight > MIN_INF) + return crresHeight; + } + + for (int j = ypos + 1; j < cloth.num_particles_height; j++) { + double crresHeight = cloth.getParticle(xpos, j)->nearestPointHeight; + + if (crresHeight > MIN_INF) + return crresHeight; + } + + return findHeightValByNeighbor(p); +} + + +double Rasterization::findHeightValByNeighbor(Particle *p) { + std::queue nqueue; + std::vector pbacklist; + int neiborsize = p->neighborsList.size(); + + for (int i = 0; i < neiborsize; i++) { + p->isVisited = true; + nqueue.push(p->neighborsList[i]); + } + + // iterate over the nqueue + while (!nqueue.empty()) { + Particle *pneighbor = nqueue.front(); + nqueue.pop(); + pbacklist.push_back(pneighbor); + + if (pneighbor->nearestPointHeight > MIN_INF) { + for (std::size_t i = 0; i < pbacklist.size(); i++) + pbacklist[i]->isVisited = false; + + while (!nqueue.empty()) { + Particle *pp = nqueue.front(); + pp->isVisited = false; + nqueue.pop(); + } + + return pneighbor->nearestPointHeight; + } else { + int nsize = pneighbor->neighborsList.size(); + + for (int i = 0; i < nsize; i++) { + Particle *ptmp = pneighbor->neighborsList[i]; + + if (!ptmp->isVisited) { + ptmp->isVisited = true; + nqueue.push(ptmp); + } + } + } + } + + return MIN_INF; +} + +void Rasterization::RasterTerrian(Cloth & cloth, + csf::PointCloud& pc, + std::vector & heightVal) { + + for (std::size_t i = 0; i < pc.size(); i++) { + double pc_x = pc[i].x; + double pc_z = pc[i].z; + + double deltaX = pc_x - cloth.origin_pos.f[0]; + double deltaZ = pc_z - cloth.origin_pos.f[2]; + int col = int(deltaX / cloth.step_x + 0.5); + int row = int(deltaZ / cloth.step_y + 0.5); + + if ((col >= 0) && (row >= 0)) { + Particle *pt = cloth.getParticle(col, row); + pt->correspondingLidarPointList.push_back(i); + double pc2particleDist = SQUARE_DIST( + pc_x, pc_z, + pt->getPos().f[0], + pt->getPos().f[2] + ); + + if (pc2particleDist < pt->tmpDist) { + pt->tmpDist = pc2particleDist; + pt->nearestPointHeight = pc[i].y; + pt->nearestPointIndex = i; + } + } + } + heightVal.resize(cloth.getSize()); + + // #pragma omp parallel for + for (int i = 0; i < cloth.getSize(); i++) { + Particle *pcur = cloth.getParticle1d(i); + double nearestHeight = pcur->nearestPointHeight; + + if (nearestHeight > MIN_INF) { + heightVal[i] = nearestHeight; + } else { + heightVal[i] = findHeightValByScanline(pcur, cloth); + } + } +} diff --git a/thirdparty/CSF/src/Rasterization.h b/thirdparty/CSF/src/Rasterization.h new file mode 100644 index 00000000..3e9c3534 --- /dev/null +++ b/thirdparty/CSF/src/Rasterization.h @@ -0,0 +1,44 @@ +// ====================================================================================== +// Copyright 2017 State Key Laboratory of Remote Sensing Science, +// Institute of Remote Sensing Science and Engineering, Beijing Normal University + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 + +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ====================================================================================== + +#ifndef _KNN_H_ +#define _KNN_H_ + +#include "point_cloud.h" +#include "Cloth.h" + +#define SQUARE_DIST(x1, y1, x2, y2) \ + (((x1) - (x2)) * ((x1) - (x2)) + ((y1) - (y2)) * ((y1) - (y2))) + + +class Rasterization { +public: + + Rasterization() {} + ~Rasterization() {} + + // for a cloth particle, if no corresponding lidar point are found. + // the heightval are set as its neighbor's + double static findHeightValByNeighbor(Particle *p); + double static findHeightValByScanline(Particle *p, Cloth& cloth); + + void static RasterTerrian(Cloth & cloth, + csf::PointCloud& pc, + std::vector & heightVal); +}; + +#endif // ifndef _KNN_H_ diff --git a/thirdparty/CSF/src/Vec3.h b/thirdparty/CSF/src/Vec3.h new file mode 100644 index 00000000..c160c8d8 --- /dev/null +++ b/thirdparty/CSF/src/Vec3.h @@ -0,0 +1,92 @@ +// ====================================================================================== +// Copyright 2017 State Key Laboratory of Remote Sensing Science, +// Institute of Remote Sensing Science and Engineering, Beijing Normal University + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 + +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ====================================================================================== + +#ifndef _VEC3_H_ +#define _VEC3_H_ + + +#include +#include +#include +#include + + +// a minimal vector class of 3 doubles and overloaded math operators +class Vec3 { +public: + + double f[3]; + + Vec3(double x, double y, double z) { + f[0] = x; + f[1] = y; + f[2] = z; + } + + Vec3() {} + + double length() { + return sqrt(f[0] * f[0] + f[1] * f[1] + f[2] * f[2]); + } + + Vec3 normalized() { + double l = length(); + + return Vec3(f[0] / l, f[1] / l, f[2] / l); + } + + void operator+=(const Vec3& v) { + f[0] += v.f[0]; + f[1] += v.f[1]; + f[2] += v.f[2]; + } + + Vec3 operator/(const double& a) { + return Vec3(f[0] / a, f[1] / a, f[2] / a); + } + + Vec3 operator-(const Vec3& v) { + return Vec3(f[0] - v.f[0], f[1] - v.f[1], f[2] - v.f[2]); + } + + Vec3 operator+(const Vec3& v) { + return Vec3(f[0] + v.f[0], f[1] + v.f[1], f[2] + v.f[2]); + } + + Vec3 operator*(const double& a) { + return Vec3(f[0] * a, f[1] * a, f[2] * a); + } + + Vec3 operator-() { + return Vec3(-f[0], -f[1], -f[2]); + } + + Vec3 cross(const Vec3& v) { + return Vec3( + f[1] * v.f[2] - f[2] * v.f[1], + f[2] * v.f[0] - f[0] * v.f[2], + f[0] * v.f[1] - f[1] * v.f[0] + ); + } + + double dot(const Vec3& v) { + return f[0] * v.f[0] + f[1] * v.f[1] + f[2] * v.f[2]; + } +}; + + +#endif // ifndef _VEC3_H_ diff --git a/thirdparty/CSF/src/XYZReader.cpp b/thirdparty/CSF/src/XYZReader.cpp new file mode 100644 index 00000000..ec6c5163 --- /dev/null +++ b/thirdparty/CSF/src/XYZReader.cpp @@ -0,0 +1,45 @@ +// ====================================================================================== +// Copyright 2017 State Key Laboratory of Remote Sensing Science, +// Institute of Remote Sensing Science and Engineering, Beijing Normal University + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 + +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ====================================================================================== + +#include "XYZReader.h" +#include +#include +#include +#include +#include + + +void read_xyz(std::string fname, csf::PointCloud& pointcloud) { + std::ifstream fin(fname.c_str(), std::ios::in); + char line[500]; + std::string x, y, z; + + while (fin.getline(line, sizeof(line))) { + std::stringstream words(line); + + words >> x; + words >> y; + words >> z; + + csf::Point point; + point.x = atof(x.c_str()); + point.y = -atof(z.c_str()); + point.z = atof(y.c_str()); + + pointcloud.push_back(point); + } +} diff --git a/thirdparty/CSF/src/XYZReader.h b/thirdparty/CSF/src/XYZReader.h new file mode 100644 index 00000000..1b7e3504 --- /dev/null +++ b/thirdparty/CSF/src/XYZReader.h @@ -0,0 +1,31 @@ +// ====================================================================================== +// Copyright 2017 State Key Laboratory of Remote Sensing Science, +// Institute of Remote Sensing Science and Engineering, Beijing Normal University + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 + +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ====================================================================================== + +#ifndef XYZ_READER_H_ +#define XYZ_READER_H_ + + +#include +#include + + +#include "point_cloud.h" + +void read_xyz(std::string fname, csf::PointCloud& pointcloud); + + +#endif // ifndef XYZ_READER_H_ diff --git a/thirdparty/CSF/src/c2cdist.cpp b/thirdparty/CSF/src/c2cdist.cpp new file mode 100644 index 00000000..72525ed2 --- /dev/null +++ b/thirdparty/CSF/src/c2cdist.cpp @@ -0,0 +1,61 @@ +// ====================================================================================== +// Copyright 2017 State Key Laboratory of Remote Sensing Science, +// Institute of Remote Sensing Science and Engineering, Beijing Normal University + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 + +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ====================================================================================== + +#include "c2cdist.h" +#include + + +void c2cdist::calCloud2CloudDist(Cloth & cloth, + csf::PointCloud & pc, + std::vector& groundIndexes, + std::vector& offGroundIndexes) { + groundIndexes.resize(0); + offGroundIndexes.resize(0); + + for (std::size_t i = 0; i < pc.size(); i++) { + double pc_x = pc[i].x; + double pc_z = pc[i].z; + + double deltaX = pc_x - cloth.origin_pos.f[0]; + double deltaZ = pc_z - cloth.origin_pos.f[2]; + + int col0 = int(deltaX / cloth.step_x); + int row0 = int(deltaZ / cloth.step_y); + int col1 = col0 + 1; + int row1 = row0; + int col2 = col0 + 1; + int row2 = row0 + 1; + int col3 = col0; + int row3 = row0 + 1; + + double subdeltaX = (deltaX - col0 * cloth.step_x) / cloth.step_x; + double subdeltaZ = (deltaZ - row0 * cloth.step_y) / cloth.step_y; + + double fxy + = cloth.getParticle(col0, row0)->pos.f[1] * (1 - subdeltaX) * (1 - subdeltaZ) + + cloth.getParticle(col3, row3)->pos.f[1] * (1 - subdeltaX) * subdeltaZ + + cloth.getParticle(col2, row2)->pos.f[1] * subdeltaX * subdeltaZ + + cloth.getParticle(col1, row1)->pos.f[1] * subdeltaX * (1 - subdeltaZ); + double height_var = fxy - pc[i].y; + + if (std::fabs(height_var) < class_treshold) { + groundIndexes.push_back(i); + } else { + offGroundIndexes.push_back(i); + } + } +} diff --git a/thirdparty/CSF/src/c2cdist.h b/thirdparty/CSF/src/c2cdist.h new file mode 100644 index 00000000..0865e785 --- /dev/null +++ b/thirdparty/CSF/src/c2cdist.h @@ -0,0 +1,46 @@ +// ====================================================================================== +// Copyright 2017 State Key Laboratory of Remote Sensing Science, +// Institute of Remote Sensing Science and Engineering, Beijing Normal University + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 + +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ====================================================================================== + +#ifndef _C2CDIST_H_ +#define _C2CDIST_H_ + + +#include "Cloth.h" +#include "point_cloud.h" + + +class c2cdist { +public: + + c2cdist(double threshold) : class_treshold(threshold) {} + + ~c2cdist() {} + +public: + + void calCloud2CloudDist(Cloth & cloth, + csf::PointCloud & pc, + std::vector& groundIndexes, + std::vector& offGroundIndexes); + +private: + + double class_treshold; // +}; + + +#endif // ifndef _C2CDIST_H_ diff --git a/thirdparty/CSF/src/point_cloud.cpp b/thirdparty/CSF/src/point_cloud.cpp new file mode 100644 index 00000000..1fa0d2c1 --- /dev/null +++ b/thirdparty/CSF/src/point_cloud.cpp @@ -0,0 +1,40 @@ +// ====================================================================================== +// Copyright 2017 State Key Laboratory of Remote Sensing Science, +// Institute of Remote Sensing Science and Engineering, Beijing Normal University + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 + +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ====================================================================================== + +#include "point_cloud.h" + + +void csf::PointCloud::computeBoundingBox(Point& bbMin, Point& bbMax) { + if (empty()) { + bbMin = bbMax = Point(); + return; + } + + bbMin = bbMax = at(0); + + for (std::size_t i = 1; i < size(); i++) { // zwm + const csf::Point& P = at(i); + + for (int d = 0; d < 3; ++d) { + if (P.u[d] < bbMin.u[d]) { + bbMin.u[d] = P.u[d]; + } else if (P.u[d] > bbMax.u[d]) { + bbMax.u[d] = P.u[d]; + } + } + } +} diff --git a/thirdparty/CSF/src/point_cloud.h b/thirdparty/CSF/src/point_cloud.h new file mode 100644 index 00000000..fc317581 --- /dev/null +++ b/thirdparty/CSF/src/point_cloud.h @@ -0,0 +1,63 @@ +// ====================================================================================== +// Copyright 2017 State Key Laboratory of Remote Sensing Science, +// Institute of Remote Sensing Science and Engineering, Beijing Normal University + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 + +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ====================================================================================== + +// ####################################################################################### +// # # +// # CSF: Airborne LiDAR filtering based on Cloth Simulation # +// # # +// # Please cite the following paper, If you use this software in your work. # +// # # +// # Zhang W, Qi J, Wan P, Wang H, Xie D, Wang X, Yan G. An Easy-to-Use Airborne LiDAR # +// # Data Filtering Method Based on Cloth Simulation. Remote Sensing. 2016; 8(6):501. # +// # (http://ramm.bnu.edu.cn/) # +// # # +// # Wuming Zhang; Jianbo Qi; Peng Wan; Hongtao Wang # +// # # +// # contact us: 2009zwm@gmail.com; wpqjbzwm@126.com # +// # # +// ####################################################################################### + +#ifndef _POINT_CLOUD_H_ +#define _POINT_CLOUD_H_ + +#include + +namespace csf { + +struct Point { + union { + struct { + double x; + double y; + double z; + }; + double u[3]; + }; + + Point() : x(0), y(0), z(0) {} +}; + +class PointCloud : public std::vector{ +public: + + void computeBoundingBox(Point& bbMin, Point& bbMax); +}; + +} + + +#endif // ifndef _POINT_CLOUD_H_ diff --git a/thirdparty/LAStools/src/CMakeLists.txt b/thirdparty/LAStools/src/CMakeLists.txt index 57042640..c8b5b5ce 100644 --- a/thirdparty/LAStools/src/CMakeLists.txt +++ b/thirdparty/LAStools/src/CMakeLists.txt @@ -7,9 +7,7 @@ include_directories(../LASzip/src) include_directories(../LASlib/inc) set(GEOPROJECTION_TARGETS - laszip las2las - lasmerge ) set(ALL_TARGETS ${GEOPROJECTION_TARGETS}) @@ -20,7 +18,7 @@ endforeach(TARGET) foreach(TARGET ${ALL_TARGETS}) target_link_libraries(${TARGET} LASlib) - set_target_properties(${TARGET} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../bin64) - set_target_properties(${TARGET} PROPERTIES OUTPUT_NAME ${TARGET}64) + set_target_properties(${TARGET} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/tools/LAStools) + set_target_properties(${TARGET} PROPERTIES OUTPUT_NAME city4cfd_${TARGET}) install(TARGETS ${TARGET} RUNTIME DESTINATION bin) endforeach(TARGET) diff --git a/thirdparty/LAStools/src/geoprojectionconverter.cpp b/thirdparty/LAStools/src/geoprojectionconverter.cpp index f5e164f6..159c70e8 100644 --- a/thirdparty/LAStools/src/geoprojectionconverter.cpp +++ b/thirdparty/LAStools/src/geoprojectionconverter.cpp @@ -1882,22 +1882,31 @@ static FILE* open_geo_file(const char* program_name, bool pcs=true, bool vertica int path_len = 0; char path[MAX_GEO_PATH_LENGTH]; -#ifdef _WIN32 - if (program_name) - { - GetModuleFileName(GetModuleHandle(program_name),(LPTSTR)path, MAX_GEO_PATH_LENGTH); - path_len = (int)strlen(path); - } - else - { - path[path_len] = '.'; - path_len = 1; - } -#else //_WIN32 - path_len = readlink("/proc/self/exe", path, MAX_GEO_PATH_LENGTH); -#endif //_WIN32 +//#ifdef _WIN32 +// if (program_name) +// { +// GetModuleFileName(GetModuleHandle(program_name),(LPTSTR)path, MAX_GEO_PATH_LENGTH); +// path_len = (int)strlen(path); +// } +// else +// { +// path[path_len] = '.'; +// path_len = 1; +// } +//#else //_WIN32 +// path_len = readlink("/proc/self/exe", path, MAX_GEO_PATH_LENGTH); + if (vertical) + { + path_len = 22; + } + else + { + path_len = 19; + } +//#endif //_WIN32 while ((path_len > 0) && (path[path_len] != '\\') && (path[path_len] != '/') && (path[path_len] != ':')) path_len--; + path[path_len] = '.'; path_len++; path[path_len] = '/'; path_len++; path[path_len] = 's'; path_len++; path[path_len] = 'e'; path_len++; @@ -1908,6 +1917,7 @@ static FILE* open_geo_file(const char* program_name, bool pcs=true, bool vertica path[path_len] = 'e'; path_len++; path[path_len] = 'o'; path_len++; path[path_len] = '/'; path_len++; + //10 + 1 if (vertical) { path[path_len] = 'v'; path_len++; @@ -1916,18 +1926,21 @@ static FILE* open_geo_file(const char* program_name, bool pcs=true, bool vertica path[path_len] = 't'; path_len++; path[path_len] = 'c'; path_len++; path[path_len] = 's'; path_len++; + //6 } else { path[path_len] = (pcs ? 'p' : 'g'); path_len++; path[path_len] = 'c'; path_len++; path[path_len] = 's'; path_len++; + //3 } path[path_len] = '.'; path_len++; path[path_len] = 'c'; path_len++; path[path_len] = 's'; path_len++; path[path_len] = 'v'; path_len++; path[path_len] = '\0'; + //5 file = fopen(path, "r"); @@ -4323,8 +4336,8 @@ bool GeoProjectionConverter::set_VerticalCSTypeGeoKey(short value, char* descrip if (file == 0) { fprintf(stderr, "ERROR: cannot open 'vertcs.csv' file. maybe your LAStools distribution\n"); - fprintf(stderr, " has no .\\LAStools\\bin\\serf\\geo\\vertcs.csv file. download the\n"); - fprintf(stderr, " latest version at http://lastools.org/download/LAStools.zip\n"); + fprintf(stderr, " has no .\\serf\\geo\\vertcs.csv file. place the 'serf' folder to\n"); + fprintf(stderr, " your current directory\n"); return false; } int epsg_code = 0; @@ -4603,8 +4616,8 @@ bool GeoProjectionConverter::set_gcs(short code, char* description) if (file == 0) { fprintf(stderr, "ERROR: cannot open 'gcs.csv' file. maybe your LAStools distribution\n"); - fprintf(stderr, " has no .\\LAStools\\bin\\serf\\geo\\gcs.csv file. download the\n"); - fprintf(stderr, " latest version at http://lastools.org/download/LAStools.zip\n"); + fprintf(stderr, " has no .\\serf\\geo\\gcs.csv file. place the 'serf' folder to\n"); + fprintf(stderr, " your current directory\n"); return false; } int value = 0; @@ -5369,8 +5382,8 @@ bool GeoProjectionConverter::set_epsg_code(short value, char* description, bool if (file == 0) { fprintf(stderr, "ERROR: cannot open 'pcs.csv' file. maybe your LAStools distribution\n"); - fprintf(stderr, " has no .\\LAStools\\bin\\serf\\geo\\pcs.csv file. download the\n"); - fprintf(stderr, " latest version at http://lastools.org/download/LAStools.zip\n"); + fprintf(stderr, " has no .\\serf\\geo\\pcs.csv file. place the 'serf' folder to\n"); + fprintf(stderr, " your current directory\n"); return false; } int epsg_code = 0; diff --git a/thirdparty/LAStools/src/lasmerge.cpp b/thirdparty/LAStools/src/lasmerge.cpp deleted file mode 100644 index e31149bb..00000000 --- a/thirdparty/LAStools/src/lasmerge.cpp +++ /dev/null @@ -1,389 +0,0 @@ -/* -=============================================================================== - - FILE: lasmerge.cpp - - CONTENTS: - - This tool merges multiple LAS file into a single LAS file and outputs it in - the LAS format. As input the user either provides multiple LAS file names or - a text file containing a list of LAS file names. - - PROGRAMMERS: - - info@rapidlasso.de - https://rapidlasso.de - - COPYRIGHT: - - (c) 2007-12, rapidlasso GmbH - fast tools to catch reality - - This is free software; you can redistribute and/or modify it under the - terms of the GNU Lesser General Licence as published by the Free Software - Foundation. See the LICENSE.txt file for more information. - - This software is distributed WITHOUT ANY WARRANTY and without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - - CHANGE HISTORY: - - 20 August 2014 -- new option '-keep_lastiling' to preserve the LAStiling VLR - 20 August 2014 -- copy VLRs from empty (zero points) LAS/LAZ files to others - 5 August 2011 -- possible to add/change projection info in command line - 13 May 2011 -- moved indexing, filtering, transforming into LASreader - 21 January 2011 -- added LASreadOpener and reading of multiple LAS files - 7 January 2011 -- added the LASfilter to drop or keep points - 12 March 2009 -- updated to ask for input if started without arguments - 07 November 2007 -- created after email from luis.viveros@digimapas.cl - -=============================================================================== -*/ - -#include -#include -#include - -#include "lasreader.hpp" -#include "laswriter.hpp" -#include "geoprojectionconverter.hpp" - -void usage(bool error=false, bool wait=false) -{ - fprintf(stderr,"usage:\n"); - fprintf(stderr,"lasmerge -i *.las -o out.las\n"); - fprintf(stderr,"lasmerge -lof lasfiles.txt -o out.las\n"); - fprintf(stderr,"lasmerge -i *.las -o out0000.laz -split 1000000000\n"); - fprintf(stderr,"lasmerge -i file1.las file2.las file3.las -o out.las\n"); - fprintf(stderr,"lasmerge -i file1.las file2.las -reoffset 600000 4000000 0 -olas > out.las\n"); - fprintf(stderr,"lasmerge -lof lasfiles.txt -rescale 0.01 0.01 0.01 -verbose -o out.las\n"); - fprintf(stderr,"lasmerge -h\n"); - if (wait) - { - fprintf(stderr,"\n"); - getc(stdin); - } - exit(error); -} - -static void byebye(bool error=false, bool wait=false) -{ - if (wait) - { - fprintf(stderr,"\n"); - getc(stdin); - } - exit(error); -} - -static double taketime() -{ - return (double)(clock())/CLOCKS_PER_SEC; -} - -#ifdef COMPILE_WITH_GUI -extern int lasmerge_gui(int argc, char *argv[], LASreadOpener* lasreadopener); -#endif - -#ifdef COMPILE_WITH_MULTI_CORE -extern int lasmerge_multi_core(int argc, char *argv[], GeoProjectionConverter* geoprojectionconverter, LASreadOpener* lasreadopener, LASwriteOpener* laswriteopener, BOOL cpu64); -#endif - -int main(int argc, char *argv[]) -{ - int i; -#ifdef COMPILE_WITH_GUI - bool gui = false; -#endif -#ifdef COMPILE_WITH_MULTI_CORE - BOOL cpu64 = FALSE; -#endif - bool verbose = false; - bool keep_lastiling = false; - U32 chopchop = 0; - bool projection_was_set = false; - double start_time = 0; - - LASreadOpener lasreadopener; - GeoProjectionConverter geoprojectionconverter; - LASwriteOpener laswriteopener; - - if (argc == 1) - { -#ifdef COMPILE_WITH_GUI - return lasmerge_gui(argc, argv, 0); -#else - fprintf(stderr,"%s is better run in the command line\n", argv[0]); - char file_name[256]; - fprintf(stderr,"enter input file 1: "); fgets(file_name, 256, stdin); - file_name[strlen(file_name)-1] = '\0'; - lasreadopener.add_file_name(file_name); - fprintf(stderr,"enter input file 2: "); fgets(file_name, 256, stdin); - file_name[strlen(file_name)-1] = '\0'; - lasreadopener.add_file_name(file_name); - fprintf(stderr,"enter output file: "); fgets(file_name, 256, stdin); - file_name[strlen(file_name)-1] = '\0'; - laswriteopener.set_file_name(file_name); -#endif - } - else - { - for (i = 1; i < argc; i++) - { - if (argv[i][0] == '–') argv[i][0] = '-'; - } - if (!geoprojectionconverter.parse(argc, argv)) byebye(true); - if (!lasreadopener.parse(argc, argv)) byebye(true); - if (!laswriteopener.parse(argc, argv)) byebye(true); - } - - for (i = 1; i < argc; i++) - { - if (argv[i][0] == '\0') - { - continue; - } - else if (strcmp(argv[i],"-h") == 0 || strcmp(argv[i],"-help") == 0) - { - fprintf(stderr, "LAStools (by info@rapidlasso.de) version %d\n", LAS_TOOLS_VERSION); - usage(); - } - else if (strcmp(argv[i],"-v") == 0 || strcmp(argv[i],"-verbose") == 0) - { - verbose = true; - } - else if (strcmp(argv[i],"-version") == 0) - { - fprintf(stderr, "LAStools (by info@rapidlasso.de) version %d\n", LAS_TOOLS_VERSION); - byebye(); - } - else if (strcmp(argv[i],"-fail") == 0) - { - } - else if (strcmp(argv[i],"-gui") == 0) - { -#ifdef COMPILE_WITH_GUI - gui = true; -#else - fprintf(stderr, "WARNING: not compiled with GUI support. ignoring '-gui' ...\n"); -#endif - } - else if (strcmp(argv[i],"-cpu64") == 0) - { -#ifdef COMPILE_WITH_MULTI_CORE - cpu64 = TRUE; -#else - fprintf(stderr, "WARNING: not compiled with 64 bit support. ignoring '-cpu64' ...\n"); -#endif - argv[i][0] = '\0'; - } - else if (strcmp(argv[i],"-split") == 0) - { - if ((i+1) >= argc) - { - fprintf(stderr,"ERROR: '%s' needs 1 argument: size\n", argv[i]); - byebye(true); - } - i++; - chopchop = atoi(argv[i]); - } - else if (strcmp(argv[i],"-keep_lastiling") == 0) - { - keep_lastiling = true; - } - else if ((argv[i][0] != '-') && (lasreadopener.get_file_name_number() == 0)) - { - lasreadopener.add_file_name(argv[i]); - argv[i][0] = '\0'; - } - else - { - fprintf(stderr, "ERROR: cannot understand argument '%s'\n", argv[i]); - byebye(true); - } - } - -#ifdef COMPILE_WITH_GUI - if (gui) - { - return lasmerge_gui(argc, argv, &lasreadopener); - } -#endif - - // read all the input files merged - - lasreadopener.set_merged(TRUE); - -#ifdef COMPILE_WITH_MULTI_CORE - if (cpu64) - { - return lasmerge_multi_core(argc, argv, &geoprojectionconverter, &lasreadopener, &laswriteopener, TRUE); - } -#endif - - // maybe we want to keep the lastiling - - if (keep_lastiling) - { - lasreadopener.set_keep_lastiling(TRUE); - } - - // we need to precompute the bounding box - - lasreadopener.set_populate_header(TRUE); - - // check input and output - - if (!lasreadopener.active()) - { - fprintf(stderr, "ERROR: no input specified\n"); - byebye(true, argc==1); - } - - if (!laswriteopener.active()) - { - fprintf(stderr, "ERROR: no output specified\n"); - byebye(true, argc==1); - } - - // make sure we do not corrupt the input file - - if (lasreadopener.get_file_name() && laswriteopener.get_file_name() && (strcmp(lasreadopener.get_file_name(), laswriteopener.get_file_name()) == 0)) - { - fprintf(stderr, "ERROR: input and output file name are identical\n"); - usage(true); - } - - // check if projection info was set in the command line - - int number_of_keys; - GeoProjectionGeoKeys* geo_keys = 0; - int num_geo_double_params; - double* geo_double_params = 0; - - if (geoprojectionconverter.has_projection()) - { - projection_was_set = geoprojectionconverter.get_geo_keys_from_projection(number_of_keys, &geo_keys, num_geo_double_params, &geo_double_params); - } - - if (verbose) start_time = taketime(); - - LASreader* lasreader = lasreadopener.open(); - if (lasreader == 0) - { - fprintf(stderr, "ERROR: could not open lasreader\n"); - byebye(true, argc==1); - } - -#ifdef _WIN32 - if (verbose) { fprintf(stderr,"merging headers took %g sec. there are %I64d points in total.\n", taketime()-start_time, lasreader->npoints); start_time = taketime(); } -#else - if (verbose) { fprintf(stderr,"merging headers took %g sec. there are %lld points in total.\n", taketime()-start_time, lasreader->npoints); start_time = taketime(); } -#endif - - // prepare the header for the surviving points - - strncpy(lasreader->header.system_identifier, "LAStools (c) by rapidlasso GmbH", 32); - lasreader->header.system_identifier[31] = '\0'; - char temp[64]; -#ifdef _WIN64 - sprintf(temp, "lasmerge64 (version %d)", LAS_TOOLS_VERSION); -#else // _WIN64 - sprintf(temp, "lasmerge (version %d)", LAS_TOOLS_VERSION); -#endif // _WIN64 - memset(lasreader->header.generating_software, 0, 32); - strncpy(lasreader->header.generating_software, temp, 32); - lasreader->header.generating_software[31] = '\0'; - - if (projection_was_set) - { - lasreader->header.set_geo_keys(number_of_keys, (LASvlr_key_entry*)geo_keys); - free(geo_keys); - if (geo_double_params) - { - lasreader->header.set_geo_double_params(num_geo_double_params, geo_double_params); - free(geo_double_params); - } - else - { - lasreader->header.del_geo_double_params(); - } - lasreader->header.del_geo_ascii_params(); - } - - if (chopchop) - { - I32 file_number = 0; - LASwriter* laswriter = 0; - // loop over the points - while (lasreader->read_point()) - { - if (laswriter == 0) - { - // open the next writer - laswriteopener.make_file_name(0, file_number); - file_number++; - laswriter = laswriteopener.open(&lasreader->header); - } - laswriter->write_point(&lasreader->point); - laswriter->update_inventory(&lasreader->point); - if (laswriter->p_count == chopchop) - { - // close the current writer - laswriter->update_header(&lasreader->header, TRUE); - laswriter->close(); - if (verbose) { fprintf(stderr,"splitting file '%s' took %g sec.\n", laswriteopener.get_file_name(), taketime()-start_time); start_time = taketime(); } - delete laswriter; - laswriter = 0; - } - } - if (laswriter && laswriter->p_count) - { - // close the current writer - laswriter->update_header(&lasreader->header, TRUE); - laswriter->close(); - if (verbose) { fprintf(stderr,"splitting file '%s' took %g sec.\n", laswriteopener.get_file_name(), taketime()-start_time); start_time = taketime(); } - delete laswriter; - laswriter = 0; - } - } - else - { - if (lasreader->npoints > U32_MAX) - { - if (lasreader->header.version_minor < 4) - { -#ifdef _WIN32 - fprintf(stderr, "ERROR: cannot merge %I64d points into single LAS 1.%d file. maximum is %u\n", lasreader->npoints, lasreader->header.version_minor, U32_MAX); -#else - fprintf(stderr, "ERROR: cannot merge %lld points into single LAS 1.%d file. maximum is %u\n", lasreader->npoints, lasreader->header.version_minor, U32_MAX); -#endif - byebye(true, argc==1); - } - } - - // open the writer - LASwriter* laswriter = laswriteopener.open(&lasreader->header); - if (laswriter == 0) - { - fprintf(stderr, "ERROR: could not open laswriter\n"); - byebye(true, argc==1); - } - // loop over the points - while (lasreader->read_point()) - { - laswriter->write_point(&lasreader->point); - laswriter->update_inventory(&lasreader->point); - } - // close the writer - laswriter->update_header(&lasreader->header, TRUE); - laswriter->close(); - if (verbose) fprintf(stderr,"merging files took %g sec.\n", taketime()-start_time); - delete laswriter; - } - - lasreader->close(); - delete lasreader; - - byebye(false, argc==1); - - return 0; -} diff --git a/thirdparty/LAStools/src/lasmerge.dsp b/thirdparty/LAStools/src/lasmerge.dsp deleted file mode 100644 index 3fb22d5e..00000000 --- a/thirdparty/LAStools/src/lasmerge.dsp +++ /dev/null @@ -1,456 +0,0 @@ -# Microsoft Developer Studio Project File - Name="lasmerge" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=lasmerge - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "lasmerge.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "lasmerge.mak" CFG="lasmerge - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "lasmerge - Win32 Release without GUI" (based on "Win32 (x86) Console Application") -!MESSAGE "lasmerge - Win32 Debug without GUI" (based on "Win32 (x86) Console Application") -!MESSAGE "lasmerge - Win32 Release" (based on "Win32 (x86) Console Application") -!MESSAGE "lasmerge - Win32 Debug" (based on "Win32 (x86) Console Application") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "lasmerge - Win32 Release without GUI" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release without GUI" -# PROP BASE Intermediate_Dir "Release without GUI" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release_without_GUI" -# PROP Intermediate_Dir "Release_without_GUI" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD CPP /nologo /w /W0 /GX /O2 /I "..\laszip\src" /I "..\laslib\inc" /I "..\src" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /i "../src" /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 -# ADD LINK32 ../laslib/lib/LASlib.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 /out:"Release_without_GUI/lasmerge-cli.exe" -# Begin Special Build Tool -SOURCE="$(InputPath)" -PostBuild_Cmds=copy Release_without_GUI\lasmerge-cli.exe ..\bin\lasmerge-cli.exe -# End Special Build Tool - -!ELSEIF "$(CFG)" == "lasmerge - Win32 Debug without GUI" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug_without_GUI" -# PROP BASE Intermediate_Dir "Debug_without_GUI" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Debug_without_GUI" -# PROP Intermediate_Dir "Debug_without_GUI" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c -# ADD CPP /nologo /w /W0 /Gm /GX /ZI /Od /I "..\laszip\src" /I "..\laslib\inc" /I "..\src" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /i "..\..\src" /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept -# ADD LINK32 ../LASlib/lib/LASlibD.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /out:"Debug_without_GUI/lasmerge-cli.exe" /pdbtype:sept -# Begin Special Build Tool -SOURCE="$(InputPath)" -PostBuild_Cmds=copy Debug_without_GUI\lasmerge-cli.exe ..\bin\lasmerge-cli.exe -# End Special Build Tool - -!ELSEIF "$(CFG)" == "lasmerge - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Ignore_Export_Lib 0 -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "Release" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /w /W0 /GX /O2 /I "..\laslib\inc" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD CPP /nologo /W3 /GX /O2 /I "..\laszip\src" /I "..\laslib\inc" /I "..\src" /I "..\src_full\glui_api" /I "..\src_full\glut_api" /I "..\src_full\png_api" /I "..\src_full\zlib_api" /I "..\src_full\geotiff_api" /I "..\src_full\tiff_api" /D "NDEBUG" /D "COMPILE_WITH_GUI" /D "COMPILE_WITH_MULTI_CORE" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD BASE RSC /l 0x409 /i "../src" /d "NDEBUG" -# ADD RSC /l 0x409 /i "../src" /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 ../laslib/lib/LASlib.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 -# ADD LINK32 ../LASlib/lib/LASlib.lib ../src_full/glui_api/glui32.lib ../src_full/glut_api/glutstatic.lib ../src_full/glut_api/glut32.lib ../src_full/png_api/libpng.lib ../src_full/zlib_api/zlib.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 -# Begin Special Build Tool -SOURCE="$(InputPath)" -PostBuild_Cmds=copy Release\lasmerge.exe ..\bin\lasmerge.exe -# End Special Build Tool - -!ELSEIF "$(CFG)" == "lasmerge - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Ignore_Export_Lib 0 -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Debug" -# PROP Intermediate_Dir "Debug" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /w /W0 /Gm /GX /ZI /Od /I "..\laslib\inc" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c -# ADD CPP /nologo /w /W0 /Gm /GX /ZI /Od /I "..\laszip\src" /I "..\laslib\inc" /I "..\src" /I "..\src_full\glui_api" /I "..\src_full\glut_api" /I "..\src_full\png_api" /I "..\src_full\zlib_api" /I "..\src_full\geotiff_api" /I "..\src_full\tiff_api" /D "_DEBUG" /D "COMPILE_WITH_GUI" /D "COMPILE_WITH_MULTI_CORE" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c -# ADD BASE RSC /l 0x409 /i "..\..\src" /d "_DEBUG" -# ADD RSC /l 0x409 /i "..\..\src" /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 ../laslib/libD/LASlib.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept -# ADD LINK32 ../laslib/lib/LASlibD.lib ../src_full/glui_api/glui32.lib ../src_full/glut_api/glutstatic.lib ../src_full/glut_api/glut32.lib ../src_full/png_api/libpng.lib ../src_full/zlib_api/zlib.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept -# Begin Special Build Tool -SOURCE="$(InputPath)" -PostBuild_Cmds=copy Debug\lasmerge.exe ..\bin\lasmerge.exe -# End Special Build Tool - -!ENDIF - -# Begin Target - -# Name "lasmerge - Win32 Release without GUI" -# Name "lasmerge - Win32 Debug without GUI" -# Name "lasmerge - Win32 Release" -# Name "lasmerge - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\src_full\dbfreader.cpp -# End Source File -# Begin Source File - -SOURCE=.\geoprojectionconverter.cpp -# End Source File -# Begin Source File - -SOURCE=..\src_full\laslicense.cpp - -!IF "$(CFG)" == "lasmerge - Win32 Release without GUI" - -# PROP Exclude_From_Build 1 - -!ELSEIF "$(CFG)" == "lasmerge - Win32 Debug without GUI" - -# PROP Exclude_From_Build 1 - -!ELSEIF "$(CFG)" == "lasmerge - Win32 Release" - -!ELSEIF "$(CFG)" == "lasmerge - Win32 Debug" - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=..\src\lasmerge.cpp -# End Source File -# Begin Source File - -SOURCE=..\src_full\lasmerge_gui.cpp - -!IF "$(CFG)" == "lasmerge - Win32 Release without GUI" - -# PROP Exclude_From_Build 1 - -!ELSEIF "$(CFG)" == "lasmerge - Win32 Debug without GUI" - -# PROP Exclude_From_Build 1 - -!ELSEIF "$(CFG)" == "lasmerge - Win32 Release" - -!ELSEIF "$(CFG)" == "lasmerge - Win32 Debug" - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=..\src_full\lasmerge_multi_core.cpp -# End Source File -# Begin Source File - -SOURCE=..\src_full\lasoccupancy.cpp - -!IF "$(CFG)" == "lasmerge - Win32 Release without GUI" - -# PROP Exclude_From_Build 1 - -!ELSEIF "$(CFG)" == "lasmerge - Win32 Debug without GUI" - -# PROP Exclude_From_Build 1 - -!ELSEIF "$(CFG)" == "lasmerge - Win32 Release" - -!ELSEIF "$(CFG)" == "lasmerge - Win32 Debug" - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=..\src_full\lastools_gui.cpp - -!IF "$(CFG)" == "lasmerge - Win32 Release without GUI" - -# PROP Exclude_From_Build 1 - -!ELSEIF "$(CFG)" == "lasmerge - Win32 Debug without GUI" - -# PROP Exclude_From_Build 1 - -!ELSEIF "$(CFG)" == "lasmerge - Win32 Release" - -!ELSEIF "$(CFG)" == "lasmerge - Win32 Debug" - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=..\src_full\lastools_multi_core.cpp -# End Source File -# Begin Source File - -SOURCE=..\src_full\shpreader.cpp - -!IF "$(CFG)" == "lasmerge - Win32 Release without GUI" - -# PROP Exclude_From_Build 1 - -!ELSEIF "$(CFG)" == "lasmerge - Win32 Debug without GUI" - -# PROP Exclude_From_Build 1 - -!ELSEIF "$(CFG)" == "lasmerge - Win32 Release" - -!ELSEIF "$(CFG)" == "lasmerge - Win32 Debug" - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=..\src_full\sr_api\srreader_png.cpp - -!IF "$(CFG)" == "lasmerge - Win32 Release without GUI" - -# PROP Exclude_From_Build 1 - -!ELSEIF "$(CFG)" == "lasmerge - Win32 Debug without GUI" - -# PROP Exclude_From_Build 1 - -!ELSEIF "$(CFG)" == "lasmerge - Win32 Release" - -!ELSEIF "$(CFG)" == "lasmerge - Win32 Debug" - -!ENDIF - -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\src_full\dbfreader.hpp -# End Source File -# Begin Source File - -SOURCE=.\geoprojectionconverter.hpp -# End Source File -# Begin Source File - -SOURCE=..\LASzip\src\lasattributer.hpp -# End Source File -# Begin Source File - -SOURCE=..\laslib\inc\lasdefinitions.hpp -# End Source File -# Begin Source File - -SOURCE=..\laslib\inc\lasfilter.hpp -# End Source File -# Begin Source File - -SOURCE=..\LASlib\inc\lasignore.hpp -# End Source File -# Begin Source File - -SOURCE=..\LASzip\src\lasindex.hpp -# End Source File -# Begin Source File - -SOURCE=..\LASzip\src\lasinterval.hpp -# End Source File -# Begin Source File - -SOURCE=..\src_full\laslicense.hpp -# End Source File -# Begin Source File - -SOURCE=..\laslib\inc\lasmerge.hpp -# End Source File -# Begin Source File - -SOURCE=..\src_full\lasoccupancy.hpp -# End Source File -# Begin Source File - -SOURCE=..\LASzip\src\laspoint.hpp -# End Source File -# Begin Source File - -SOURCE=..\LASzip\src\lasquadtree.hpp -# End Source File -# Begin Source File - -SOURCE=..\LASzip\src\lasquantizer.hpp -# End Source File -# Begin Source File - -SOURCE=..\src_full\lasraster.hpp -# End Source File -# Begin Source File - -SOURCE=..\laslib\inc\lasreader.hpp -# End Source File -# Begin Source File - -SOURCE=..\laslib\inc\lastransform.hpp -# End Source File -# Begin Source File - -SOURCE=..\laslib\inc\lasutility.hpp -# End Source File -# Begin Source File - -SOURCE=..\laslib\inc\laswaveform13reader.hpp -# End Source File -# Begin Source File - -SOURCE=..\laslib\inc\laswaveform13writer.hpp -# End Source File -# Begin Source File - -SOURCE=..\laslib\inc\laswriter.hpp -# End Source File -# Begin Source File - -SOURCE=..\LASzip\src\laszip.hpp -# End Source File -# Begin Source File - -SOURCE=..\LASzip\src\laszip_decompress_selective_v3.hpp -# End Source File -# Begin Source File - -SOURCE=..\src_full\linereader.hpp -# End Source File -# Begin Source File - -SOURCE=..\LASzip\src\mydefs.hpp -# End Source File -# Begin Source File - -SOURCE=..\src_full\shpreader.hpp -# End Source File -# Begin Source File - -SOURCE=..\src_full\sr_api\srreader.hpp -# End Source File -# Begin Source File - -SOURCE=..\src_full\sr_api\srreader_png.hpp -# End Source File -# Begin Source File - -SOURCE=..\src_full\txtreader.hpp -# End Source File -# End Group -# Begin Group "Resource Files" - -# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" -# Begin Source File - -SOURCE=..\src_full\icon1.ico - -!IF "$(CFG)" == "lasmerge - Win32 Release without GUI" - -# PROP Exclude_From_Build 1 - -!ELSEIF "$(CFG)" == "lasmerge - Win32 Debug without GUI" - -# PROP Exclude_From_Build 1 - -!ELSEIF "$(CFG)" == "lasmerge - Win32 Release" - -!ELSEIF "$(CFG)" == "lasmerge - Win32 Debug" - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=..\src_full\lastool.rc - -!IF "$(CFG)" == "lasmerge - Win32 Release without GUI" - -# PROP Exclude_From_Build 1 - -!ELSEIF "$(CFG)" == "lasmerge - Win32 Debug without GUI" - -# PROP Exclude_From_Build 1 - -!ELSEIF "$(CFG)" == "lasmerge - Win32 Release" - -!ELSEIF "$(CFG)" == "lasmerge - Win32 Debug" - -!ENDIF - -# End Source File -# End Group -# End Target -# End Project diff --git a/thirdparty/LAStools/src/laszip.cpp b/thirdparty/LAStools/src/laszip.cpp deleted file mode 100644 index 633b2b14..00000000 --- a/thirdparty/LAStools/src/laszip.cpp +++ /dev/null @@ -1,1012 +0,0 @@ -/* -=============================================================================== - - FILE: laszip.cpp - - CONTENTS: - - This tool compresses and uncompresses LiDAR data in the LAS format to our - losslessly compressed LAZ format. - - PROGRAMMERS: - - info@rapidlasso.de - https://rapidlasso.de - - COPYRIGHT: - - (c) 2007-2019, rapidlasso GmbH - fast tools to catch reality - - This is free software; you can redistribute and/or modify it under the - terms of the GNU Lesser General Licence as published by the Free Software - Foundation. See the LICENSE.txt file for more information. - - This software is distributed WITHOUT ANY WARRANTY and without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - - CHANGE HISTORY: - - 21 Juni 2019 -- allows compressing Trimble waveforms where first WDP offset is 0 - 7 September 2018 -- replaced calls to _strdup with calls to the LASCopyString macro - 29 March 2015 -- using LASwriterCompatible for LAS 1.4 compatibility mode - 9 September 2014 -- prototyping forward-compatible coding of LAS 1.4 points - 5 August 2011 -- possible to add/change projection info in command line - 23 June 2011 -- turned on LASzip version 2.0 compressor with chunking - 17 May 2011 -- enabling batch processing with wildcards or multiple file names - 25 April 2011 -- added chunking for random access decompression - 23 January 2011 -- added LASreadOpener and LASwriteOpener - 16 December 2010 -- updated to use the new library - 12 March 2009 -- updated to ask for input if started without arguments - 17 September 2008 -- updated to deal with LAS format version 1.2 - 14 February 2007 -- created after picking flowers for the Valentine dinner - -=============================================================================== -*/ - -#include -#include - -#include -using namespace std; - -#include "lasreader.hpp" -#include "laswriter.hpp" -#include "laswritercompatible.hpp" -#include "laswaveform13reader.hpp" -#include "laswaveform13writer.hpp" -#include "bytestreamin.hpp" -#include "bytestreamout_array.hpp" -#include "bytestreamin_array.hpp" -#include "geoprojectionconverter.hpp" -#include "lasindex.hpp" -#include "lasquadtree.hpp" - -class OffsetSize -{ -public: - OffsetSize(U64 o, U32 s) { offset = o; size = s; }; - U64 offset; - U32 size; -}; - -typedef map my_offset_size_map; - -void usage(bool error=false, bool wait=false) -{ - fprintf(stderr,"usage:\n"); - fprintf(stderr,"laszip -i lidar.las\n"); - fprintf(stderr,"laszip -i lidar.laz\n"); - fprintf(stderr,"laszip -i lidar.las -nil\n"); - fprintf(stderr,"laszip -i lidar.laz -size\n"); - fprintf(stderr,"laszip -i lidar.laz -check\n"); - fprintf(stderr,"laszip -i *.las\n"); - fprintf(stderr,"laszip -i *.laz\n"); - fprintf(stderr,"laszip -i *.las -odir compressed\n"); - fprintf(stderr,"laszip -i *.laz -odir uncompressed\n"); -#ifdef COMPILE_WITH_MULTI_CORE - fprintf(stderr,"laszip -i *.las -odir compressed -cores 4\n"); - fprintf(stderr,"laszip -i *.laz -odir uncompressed -cores 4\n"); -#endif - fprintf(stderr,"laszip -i lidar.las -o lidar_zipped.laz\n"); - fprintf(stderr,"laszip -i lidar.laz -o lidar_unzipped.las\n"); - fprintf(stderr,"laszip -i lidar.las -stdout -olaz > lidar.laz\n"); - fprintf(stderr,"laszip -stdin -o lidar.laz < lidar.las\n"); - fprintf(stderr,"laszip -i *.txt -iparse xyztiarn\n"); - fprintf(stderr,"laszip -i las14.las -compatible -o las14compatible.laz\n"); - fprintf(stderr,"laszip -i las14.laz -compatible -o las14compatible.laz\n"); - fprintf(stderr,"laszip -i las14compatible.laz -remain_compatible -o las14compatible.las\n"); - fprintf(stderr,"laszip -h\n"); - if (wait) - { - fprintf(stderr,"\n"); - getc(stdin); - } - exit(error); -} - -static void byebye(bool error=false, bool wait=false) -{ - if (wait) - { - fprintf(stderr,"\n"); - getc(stdin); - } - exit(error); -} - -static double taketime() -{ - return (double)(clock())/CLOCKS_PER_SEC; -} - -#ifdef COMPILE_WITH_GUI -extern int laszip_gui(int argc, char *argv[], LASreadOpener* lasreadopener); -#endif - -#ifdef COMPILE_WITH_MULTI_CORE -extern int laszip_multi_core(int argc, char *argv[], GeoProjectionConverter* geoprojectionconverter, LASreadOpener* lasreadopener, LASwriteOpener* laswriteopener, int cores, BOOL cpu64); -#endif - -int main(int argc, char *argv[]) -{ - int i; - BOOL dry = FALSE; -#ifdef COMPILE_WITH_GUI - BOOL gui = FALSE; -#endif -#ifdef COMPILE_WITH_MULTI_CORE - I32 cores = 1; - BOOL cpu64 = FALSE; -#endif - BOOL verbose = FALSE; - bool waveform = false; - bool waveform_with_map = false; - bool report_file_size = false; - bool check_integrity = false; - I32 end_of_points = -1; - bool projection_was_set = false; - bool format_not_specified = false; - BOOL lax = FALSE; - BOOL append = FALSE; - BOOL remain_compatible = FALSE; - BOOL move_CRS = FALSE; - BOOL move_all = FALSE; - F32 tile_size = 100.0f; - U32 threshold = 1000; - U32 minimum_points = 100000; - I32 maximum_intervals = -20; - double start_time = 0.0; - double total_start_time = 0; - - LASreadOpener lasreadopener; - GeoProjectionConverter geoprojectionconverter; - LASwriteOpener laswriteopener; - - if (argc == 1) - { -#ifdef COMPILE_WITH_GUI - return laszip_gui(argc, argv, 0); -#else - fprintf(stderr,"%s is better run in the command line\n", argv[0]); - char file_name[256]; - fprintf(stderr,"enter input file: "); fgets(file_name, 256, stdin); - file_name[strlen(file_name)-1] = '\0'; - lasreadopener.set_file_name(file_name); - fprintf(stderr,"enter output file: "); fgets(file_name, 256, stdin); - file_name[strlen(file_name)-1] = '\0'; - laswriteopener.set_file_name(file_name); -#endif - } - else - { - for (i = 1; i < argc; i++) - { - if (argv[i][0] == '–') argv[i][0] = '-'; - } - if (!geoprojectionconverter.parse(argc, argv)) byebye(true); - if (!lasreadopener.parse(argc, argv)) byebye(true); - if (!laswriteopener.parse(argc, argv)) byebye(true); - } - - for (i = 1; i < argc; i++) - { - if (argv[i][0] == '\0') - { - continue; - } - else if (strcmp(argv[i],"-h") == 0 || strcmp(argv[i],"-help") == 0) - { - fprintf(stderr, "LAStools (by info@rapidlasso.de) version %d\n", LAS_TOOLS_VERSION); - usage(); - } - else if (strcmp(argv[i],"-v") == 0 || strcmp(argv[i],"-verbose") == 0) - { - verbose = TRUE; - } - else if (strcmp(argv[i],"-version") == 0) - { - fprintf(stderr, "LAStools (by info@rapidlasso.de) version %d\n", LAS_TOOLS_VERSION); - byebye(); - } - else if (strcmp(argv[i],"-fail") == 0) - { - } - else if (strcmp(argv[i],"-gui") == 0) - { -#ifdef COMPILE_WITH_GUI - gui = TRUE; -#else - fprintf(stderr, "WARNING: not compiled with GUI support. ignoring '-gui' ...\n"); -#endif - } - else if (strcmp(argv[i],"-cores") == 0) - { -#ifdef COMPILE_WITH_MULTI_CORE - if ((i+1) >= argc) - { - fprintf(stderr,"ERROR: '%s' needs 1 argument: number\n", argv[i]); - usage(true); - } - argv[i][0] = '\0'; - i++; - cores = atoi(argv[i]); - argv[i][0] = '\0'; -#else - fprintf(stderr, "WARNING: not compiled with multi-core batching. ignoring '-cores' ...\n"); - i++; -#endif - } - else if (strcmp(argv[i],"-cpu64") == 0) - { -#ifdef COMPILE_WITH_MULTI_CORE - cpu64 = TRUE; -#else - fprintf(stderr, "WARNING: not compiled with 64 bit support. ignoring '-cpu64' ...\n"); -#endif - argv[i][0] = '\0'; - } - else if (strcmp(argv[i],"-dry") == 0) - { - dry = TRUE; - } - else if (strcmp(argv[i],"-lax") == 0) - { - lax = TRUE; - } - else if (strcmp(argv[i],"-append") == 0) - { - append = TRUE; - } - else if (strcmp(argv[i],"-remain_compatible") == 0) - { - remain_compatible = TRUE; - } - else if (strcmp(argv[i],"-move_CRS") == 0) - { - move_CRS = TRUE; - } - else if (strcmp(argv[i],"-move_all") == 0) - { - move_all = TRUE; - } - else if (strcmp(argv[i],"-eop") == 0) - { - if ((i+1) >= argc) - { - fprintf(stderr,"ERROR: '%s' needs 1 argument: char\n", argv[i]); - usage(true); - } - i++; - end_of_points = atoi(argv[i]); - if ((end_of_points < 0) || (end_of_points > 255)) - { - fprintf(stderr,"ERROR: end of points value needs to be between 0 and 255\n"); - usage(true); - } - } - else if (strcmp(argv[i],"-tile_size") == 0) - { - if ((i+1) >= argc) - { - fprintf(stderr,"ERROR: '%s' needs 1 argument: size\n", argv[i]); - usage(true); - } - i++; - tile_size = (F32)atof(argv[i]); - } - else if (strcmp(argv[i],"-maximum") == 0) - { - if ((i+1) >= argc) - { - fprintf(stderr,"ERROR: '%s' needs 1 argument: number\n", argv[i]); - usage(true); - } - i++; - maximum_intervals = atoi(argv[i]); - } - else if (strcmp(argv[i],"-minimum") == 0) - { - if ((i+1) >= argc) - { - fprintf(stderr,"ERROR: '%s' needs 1 argument: number\n", argv[i]); - usage(true); - } - i++; - minimum_points = atoi(argv[i]); - } - else if (strcmp(argv[i],"-threshold") == 0) - { - if ((i+1) >= argc) - { - fprintf(stderr,"ERROR: '%s' needs 1 argument: value\n", argv[i]); - usage(true); - } - i++; - threshold = atoi(argv[i]); - } - else if (strcmp(argv[i],"-size") == 0) - { - report_file_size = true; - } - else if (strcmp(argv[i],"-check") == 0) - { - check_integrity = true; - } - else if (strcmp(argv[i],"-waveform") == 0 || strcmp(argv[i],"-waveforms") == 0) - { - waveform = true; - } - else if (strcmp(argv[i],"-waveform_with_map") == 0 || strcmp(argv[i],"-waveforms_with_map") == 0) - { - waveform = true; - waveform_with_map = true; - } - else if ((argv[i][0] != '-') && (lasreadopener.get_file_name_number() == 0)) - { - lasreadopener.add_file_name(argv[i]); - argv[i][0] = '\0'; - } - else - { - fprintf(stderr, "ERROR: cannot understand argument '%s'\n", argv[i]); - usage(true); - } - } - -#ifdef COMPILE_WITH_GUI - if (gui) - { - return laszip_gui(argc, argv, &lasreadopener); - } -#endif - -#ifdef COMPILE_WITH_MULTI_CORE - if (cores > 1) - { - if (lasreadopener.get_file_name_number() < 2) - { - fprintf(stderr,"WARNING: only %u input files. ignoring '-cores %d' ...\n", lasreadopener.get_file_name_number(), cores); - } - else if (lasreadopener.is_merged()) - { - fprintf(stderr,"WARNING: input files merged on-the-fly. ignoring '-cores %d' ...\n", cores); - } - else - { - return laszip_multi_core(argc, argv, &geoprojectionconverter, &lasreadopener, &laswriteopener, cores, cpu64); - } - } - if (cpu64) - { - return laszip_multi_core(argc, argv, &geoprojectionconverter, &lasreadopener, &laswriteopener, 1, TRUE); - } -#endif - - // check input - - if (!lasreadopener.active()) - { - fprintf(stderr,"ERROR: no input specified\n"); - usage(true, argc==1); - } - - // check output - - if (laswriteopener.is_piped()) - { - if (lax) - { - fprintf(stderr,"WARNING: disabling LAX generation for piped output\n"); - lax = FALSE; - append = FALSE; - } - } - - // make sure we do not corrupt the input file - - if (lasreadopener.get_file_name() && laswriteopener.get_file_name() && (strcmp(lasreadopener.get_file_name(), laswriteopener.get_file_name()) == 0)) - { - fprintf(stderr, "ERROR: input and output file name are identical\n"); - usage(true); - } - - // check if projection info was set in the command line - - int number_of_keys; - GeoProjectionGeoKeys* geo_keys = 0; - int num_geo_double_params; - double* geo_double_params = 0; - - if (geoprojectionconverter.has_projection()) - { - projection_was_set = geoprojectionconverter.get_geo_keys_from_projection(number_of_keys, &geo_keys, num_geo_double_params, &geo_double_params); - } - - // check if the output format was *not* specified in the command line - - format_not_specified = !laswriteopener.format_was_specified(); - - if (verbose) total_start_time = taketime(); - - // loop over multiple input files - - while (lasreadopener.active()) - { - if (verbose) start_time = taketime(); - - // open lasreader - - LASreader* lasreader = lasreadopener.open(); - - if (lasreader == 0) - { - fprintf(stderr, "ERROR: could not open lasreader\n"); - usage(true, argc==1); - } - - // check correctness of file extension - - if (lasreadopener.get_file_name()) - { - const CHAR* file_name = lasreadopener.get_file_name(); - I32 len = (I32)strlen(file_name); - while ((len >= 0) && (file_name[len] != '.')) len--; - - if (lasreader->get_format() == LAS_TOOLS_FORMAT_LAZ) - { - if ((strncmp(file_name + len, ".laz", 4) != 0) && (strncmp(file_name + len, ".LAZ", 4) != 0)) - { - fprintf(stderr, "WARNING: input LAZ file has wrong extension: '%s'\n", file_name); - } - } - else - { - if ((strncmp(file_name + len, ".las", 4) != 0) && (strncmp(file_name + len, ".LAS", 4) != 0)) - { - fprintf(stderr, "WARNING: input LAS file has wrong extension: '%s'\n", file_name); - } - } - } - - // switch - - if (report_file_size) - { - // maybe only report uncompressed file size - I64 uncompressed_file_size = lasreader->npoints * lasreader->header.point_data_record_length + lasreader->header.offset_to_point_data; - if (uncompressed_file_size == (I64)((U32)uncompressed_file_size)) - fprintf(stderr,"uncompressed file size is %u bytes or %.2f MB for '%s'\n", (U32)uncompressed_file_size, (F64)uncompressed_file_size/1024.0/1024.0, lasreadopener.get_file_name()); - else - fprintf(stderr,"uncompressed file size is %.2f MB or %.2f GB for '%s'\n", (F64)uncompressed_file_size/1024.0/1024.0, (F64)uncompressed_file_size/1024.0/1024.0/1024.0, lasreadopener.get_file_name()); - } - else if (dry || check_integrity) - { - // maybe only a dry read pass - start_time = taketime(); - while (lasreader->read_point()); - if (check_integrity) - { - if (lasreader->p_count != lasreader->npoints) - { -#ifdef _WIN32 - fprintf(stderr,"FAILED integrity check for '%s' after %I64d of %I64d points\n", lasreadopener.get_file_name(), lasreader->p_count, lasreader->npoints); -#else - fprintf(stderr,"FAILED integrity check for '%s' after %lld of %lld points\n", lasreadopener.get_file_name(), lasreader->p_count, lasreader->npoints); -#endif - } - else - { - fprintf(stderr,"SUCCESS for '%s'\n", lasreadopener.get_file_name()); - } - } - else - { - fprintf(stderr,"needed %g secs to read '%s'\n", taketime()-start_time, lasreadopener.get_file_name()); - } - } - else - { - I64 start_of_waveform_data_packet_record = 0; - - // create output file name if no output was specified - if (!laswriteopener.active()) - { - if (lasreadopener.get_file_name() == 0) - { - fprintf(stderr,"ERROR: no output specified\n"); - usage(true, argc==1); - } - laswriteopener.set_force(TRUE); - if (format_not_specified) - { - if (lasreader->get_format() == LAS_TOOLS_FORMAT_LAZ) - { - laswriteopener.set_format(LAS_TOOLS_FORMAT_LAS); - } - else - { - laswriteopener.set_format(LAS_TOOLS_FORMAT_LAZ); - } - } - laswriteopener.make_file_name(lasreadopener.get_file_name(), -2); - } - - // make sure input and output filenames are not identical - - if (lasreadopener.get_file_name() && laswriteopener.get_file_name() && (strcmp(lasreadopener.get_file_name(), laswriteopener.get_file_name()) == 0)) - { - fprintf(stderr, "ERROR: input and output file name are identical: '%s'\n", lasreadopener.get_file_name()); - usage(true); - } - - // maybe set projection - - if (projection_was_set) - { - lasreader->header.set_geo_keys(number_of_keys, (LASvlr_key_entry*)geo_keys); - if (geo_double_params) - { - lasreader->header.set_geo_double_params(num_geo_double_params, geo_double_params); - } - else - { - lasreader->header.del_geo_double_params(); - } - lasreader->header.del_geo_ascii_params(); - } - - // almost never open laswaveform13reader and laswaveform13writer (-: - - LASwaveform13reader* laswaveform13reader = 0; - LASwaveform13writer* laswaveform13writer = 0; - - if (waveform) - { - laswaveform13reader = lasreadopener.open_waveform13(&lasreader->header); - if (laswaveform13reader) - { - // switch compression on/off - U8 compression_type = (laswriteopener.get_format() == LAS_TOOLS_FORMAT_LAZ ? 1 : 0); - for (i = 1; i < 256; i++) if (lasreader->header.vlr_wave_packet_descr[i]) lasreader->header.vlr_wave_packet_descr[i]->setCompressionType(compression_type); - // create laswaveform13writer - laswaveform13writer = laswriteopener.open_waveform13(&lasreader->header); - if (laswaveform13writer == 0) - { - delete [] laswaveform13reader; - laswaveform13reader = 0; - waveform = 0; - // switch compression on/off back - U8 compression_type = (laswriteopener.get_format() == LAS_TOOLS_FORMAT_LAZ ? 0 : 1); - for (i = 1; i < 256; i++) if (lasreader->header.vlr_wave_packet_descr[i]) lasreader->header.vlr_wave_packet_descr[i]->setCompressionType(compression_type); - } - } - else - { - waveform = false; - } - } - - // special check for LAS 1.3+ files that contain waveform data - - if ((lasreader->header.version_major == 1) && (lasreader->header.version_minor >= 3)) - { - if (lasreader->header.global_encoding & 0x0002) // if bit # 1 is set we have internal waveform data - { - lasreader->header.global_encoding &= ~((U16)0x0002); // remove internal bit - if (lasreader->header.start_of_waveform_data_packet_record) // offset to - { - start_of_waveform_data_packet_record = lasreader->header.start_of_waveform_data_packet_record; - lasreader->header.start_of_waveform_data_packet_record = 0; - lasreader->header.global_encoding |= ((U16)0x0004); // set external bit - } - } - } - - I64 bytes_written = 0; - - // open laswriter - - LASwriter* laswriter = 0; - - if ((lasreader->header.point_data_format > 5) && !laswriteopener.get_native() && (laswriteopener.get_format() == LAS_TOOLS_FORMAT_LAZ)) - { - LASwriterCompatibleDown* laswritercompatibledown = new LASwriterCompatibleDown(); - if (laswritercompatibledown->open(&lasreader->header, &laswriteopener, move_CRS, move_all)) - { - laswriter = laswritercompatibledown; - } - else - { - delete laswritercompatibledown; - fprintf(stderr, "ERROR: could not open laswritercompatibledown\n"); - } - } - else if (!remain_compatible && (lasreader->header.point_data_format != 0) && (lasreader->header.point_data_format != 2) && lasreader->header.get_vlr("lascompatible", 22204) && (lasreader->header.get_attribute_index("LAS 1.4 scan angle") >= 0) && (lasreader->header.get_attribute_index("LAS 1.4 extended returns") >= 0) && (lasreader->header.get_attribute_index("LAS 1.4 classification") >= 0) && (lasreader->header.get_attribute_index("LAS 1.4 flags and channel") >= 0)) - { - LASwriterCompatibleUp* laswritercompatibleup = new LASwriterCompatibleUp(); - if (laswritercompatibleup->open(&lasreader->header, &laswriteopener)) - { - laswriter = laswritercompatibleup; - } - else - { - delete laswritercompatibleup; - fprintf(stderr, "ERROR: could not open laswritercompatibleup\n"); - } - } - else - { - laswriter = laswriteopener.open(&lasreader->header); - } - - if (laswriter == 0) - { - fprintf(stderr, "ERROR: could not open laswriter\n"); - usage(true, argc==1); - } - - // should we also deal with waveform data - - if (waveform) - { - U8 compression_type = (laswaveform13reader->is_compressed() ? 1 : 0); - for (i = 1; i < 256; i++) if (lasreader->header.vlr_wave_packet_descr[i]) lasreader->header.vlr_wave_packet_descr[i]->setCompressionType(compression_type); - - U64 last_offset = 0; - U32 last_size = 60; - U64 new_offset = 0; - U32 new_size = 0; - U32 waves_written = 0; - U32 waves_referenced = 0; - - my_offset_size_map offset_size_map; - - LASindex lasindex; - if (lax) // should we also create a spatial indexing file - { - // setup the quadtree - LASquadtree* lasquadtree = new LASquadtree; - lasquadtree->setup(lasreader->header.min_x, lasreader->header.max_x, lasreader->header.min_y, lasreader->header.max_y, tile_size); - - // create lax index - lasindex.prepare(lasquadtree, threshold); - } - - // loop over points - - while (lasreader->read_point()) - { - if (lasreader->point.wavepacket.getIndex()) // if point is attached to a waveform - { - waves_referenced++; - if ((lasreader->point.wavepacket.getOffset() == last_offset) && (waves_written)) - { - lasreader->point.wavepacket.setOffset(new_offset); - lasreader->point.wavepacket.setSize(new_size); - } - else if ((lasreader->point.wavepacket.getOffset() > last_offset) || (!waves_written)) - { - if (lasreader->point.wavepacket.getOffset() > (last_offset + last_size)) - { - if (!waveform_with_map) - { - fprintf(stderr,"WARNING: gap in waveform offsets.\n"); -#ifdef _WIN32 - fprintf(stderr,"WARNING: last offset plus size was %I64d but new offset is %I64d (for point %I64d)\n", (last_offset + last_size), lasreader->point.wavepacket.getOffset(), lasreader->p_count); -#else - fprintf(stderr,"WARNING: last offset plus size was %lld but new offset is %lld (for point %lld)\n", (last_offset + last_size), lasreader->point.wavepacket.getOffset(), lasreader->p_count); -#endif - } - } - waves_written++; - last_offset = lasreader->point.wavepacket.getOffset(); - last_size = lasreader->point.wavepacket.getSize(); - laswaveform13reader->read_waveform(&lasreader->point); - laswaveform13writer->write_waveform(&lasreader->point, laswaveform13reader->samples); - new_offset = lasreader->point.wavepacket.getOffset(); - new_size = lasreader->point.wavepacket.getSize(); - if (waveform_with_map) - { - offset_size_map.insert(my_offset_size_map::value_type(last_offset, OffsetSize(new_offset,new_size))); - } - } - else - { - if (waveform_with_map) - { - my_offset_size_map::iterator map_element; - map_element = offset_size_map.find(lasreader->point.wavepacket.getOffset()); - if (map_element == offset_size_map.end()) - { - waves_written++; - last_offset = lasreader->point.wavepacket.getOffset(); - last_size = lasreader->point.wavepacket.getSize(); - laswaveform13reader->read_waveform(&lasreader->point); - laswaveform13writer->write_waveform(&lasreader->point, laswaveform13reader->samples); - new_offset = lasreader->point.wavepacket.getOffset(); - new_size = lasreader->point.wavepacket.getSize(); - offset_size_map.insert(my_offset_size_map::value_type(last_offset, OffsetSize(new_offset,new_size))); - } - else - { - lasreader->point.wavepacket.setOffset((*map_element).second.offset); - lasreader->point.wavepacket.setSize((*map_element).second.size); - } - } - else - { - fprintf(stderr,"ERROR: waveform offsets not in monotonically increasing order.\n"); -#ifdef _WIN32 - fprintf(stderr,"ERROR: last offset was %I64d but new offset is %I64d (for point %I64d)\n", last_offset, lasreader->point.wavepacket.getOffset(), lasreader->p_count); -#else - fprintf(stderr,"ERROR: last offset was %lld but new offset is %lld (for point %lld)\n", last_offset, lasreader->point.wavepacket.getOffset(), lasreader->p_count); -#endif - fprintf(stderr,"ERROR: use option '-waveforms_with_map' to compress.\n"); - byebye(true, argc==1); - } - } - } - laswriter->write_point(&lasreader->point); - if (lax) - { - lasindex.add(lasreader->point.get_x(), lasreader->point.get_y(), (U32)(laswriter->p_count)); - } - if (!lasreadopener.is_header_populated()) - { - laswriter->update_inventory(&lasreader->point); - } - } - - if (verbose && ((laswriter->p_count % 1000000) == 0)) fprintf(stderr,"written %d referenced %d of %d points\n", waves_written, waves_referenced, (I32)laswriter->p_count); - - if (!lasreadopener.is_header_populated()) - { - laswriter->update_header(&lasreader->header, TRUE); - } - - // flush the writer - bytes_written = laswriter->close(); - - if (lax) - { - // adaptive coarsening - lasindex.complete(minimum_points, maximum_intervals); - - if (append) - { - // append lax to file - lasindex.append(laswriteopener.get_file_name()); - } - else - { - // write lax to file - lasindex.write(laswriteopener.get_file_name()); - } - } - } - else - { - // loop over points - - if (lasreadopener.is_header_populated()) - { - if (lax) // should we also create a spatial indexing file - { - // setup the quadtree - LASquadtree* lasquadtree = new LASquadtree; - lasquadtree->setup(lasreader->header.min_x, lasreader->header.max_x, lasreader->header.min_y, lasreader->header.max_y, tile_size); - - // create lax index - LASindex lasindex; - lasindex.prepare(lasquadtree, threshold); - - // compress points and add to index - while (lasreader->read_point()) - { - lasindex.add(lasreader->point.get_x(), lasreader->point.get_y(), (U32)(laswriter->p_count)); - laswriter->write_point(&lasreader->point); - } - - // flush the writer - bytes_written = laswriter->close(); - - // adaptive coarsening - lasindex.complete(minimum_points, maximum_intervals); - - if (append) - { - // append lax to file - lasindex.append(laswriteopener.get_file_name()); - } - else - { - // write lax to file - lasindex.write(laswriteopener.get_file_name()); - } - } - else - { - if (end_of_points > -1) - { - U8 point10[20]; - memset(point10, end_of_points, 20); - - if (verbose) fprintf(stderr, "writing with end_of_points value %d\n", end_of_points); - - while (lasreader->read_point()) - { - if (memcmp(point10, &lasreader->point, 20) == 0) - { - break; - } - laswriter->write_point(&lasreader->point); - laswriter->update_inventory(&lasreader->point); - } - laswriter->update_header(&lasreader->header, TRUE); - } - else - { - while (lasreader->read_point()) - { - laswriter->write_point(&lasreader->point); - } - } - // flush the writer - bytes_written = laswriter->close(); - } - } - else - { - if (lax && (lasreader->header.min_x < lasreader->header.max_x) && (lasreader->header.min_y < lasreader->header.max_y)) - { - // setup the quadtree - LASquadtree* lasquadtree = new LASquadtree; - lasquadtree->setup(lasreader->header.min_x, lasreader->header.max_x, lasreader->header.min_y, lasreader->header.max_y, tile_size); - - // create lax index - LASindex lasindex; - lasindex.prepare(lasquadtree, threshold); - - // compress points and add to index - while (lasreader->read_point()) - { - lasindex.add(lasreader->point.get_x(), lasreader->point.get_y(), (U32)(laswriter->p_count)); - laswriter->write_point(&lasreader->point); - laswriter->update_inventory(&lasreader->point); - } - - // flush the writer - bytes_written = laswriter->close(); - - // adaptive coarsening - lasindex.complete(minimum_points, maximum_intervals); - - if (append) - { - // append lax to file - lasindex.append(laswriteopener.get_file_name()); - } - else - { - // write lax to file - lasindex.write(laswriteopener.get_file_name()); - } - } - else - { - if (end_of_points > -1) - { - U8 point10[20]; - memset(point10, end_of_points, 20); - - if (verbose) fprintf(stderr, "writing with end_of_points value %d\n", end_of_points); - - while (lasreader->read_point()) - { - if (memcmp(point10, &lasreader->point, 20) == 0) - { - break; - } - laswriter->write_point(&lasreader->point); - laswriter->update_inventory(&lasreader->point); - } - } - else - { - while (lasreader->read_point()) - { - laswriter->write_point(&lasreader->point); - laswriter->update_inventory(&lasreader->point); - } - } - } - - // update the header - laswriter->update_header(&lasreader->header, TRUE); - - // flush the writer - bytes_written = laswriter->close(); - } - } - - delete laswriter; - -#ifdef _WIN32 - if (verbose) fprintf(stderr,"%g secs to write %I64d bytes for '%s' with %I64d points of type %d\n", taketime()-start_time, bytes_written, laswriteopener.get_file_name(), lasreader->p_count, lasreader->header.point_data_format); -#else - if (verbose) fprintf(stderr,"%g secs to write %lld bytes for '%s' with %lld points of type %d\n", taketime()-start_time, bytes_written, laswriteopener.get_file_name(), lasreader->p_count, lasreader->header.point_data_format); -#endif - - if (start_of_waveform_data_packet_record && !waveform) - { - lasreader->close(FALSE); - ByteStreamIn* stream = lasreader->get_stream(); - stream->seek(start_of_waveform_data_packet_record); - char* wave_form_file_name; - if (laswriteopener.get_file_name()) - { - wave_form_file_name = LASCopyString(laswriteopener.get_file_name()); - I32 len = (I32)strlen(wave_form_file_name); - if (wave_form_file_name[len-3] == 'L') - { - wave_form_file_name[len-3] = 'W'; - wave_form_file_name[len-2] = 'D'; - wave_form_file_name[len-1] = 'P'; - } - else - { - wave_form_file_name[len-3] = 'w'; - wave_form_file_name[len-2] = 'd'; - wave_form_file_name[len-1] = 'p'; - } - } - else - { - wave_form_file_name = LASCopyString("wave_form.wdp"); - } - FILE* file = fopen(wave_form_file_name, "wb"); - if (file) - { - if (verbose) fprintf(stderr,"writing waveforms to '%s'\n", wave_form_file_name); - try - { - int byte; - while (true) - { - byte = stream->getByte(); - fputc(byte, file); - } - } - catch (...) - { - fclose(file); - } - } - } - - laswriteopener.set_file_name(0); - if (format_not_specified) - { - laswriteopener.set_format((const CHAR*)NULL); - } - } - - lasreader->close(); - - delete lasreader; - } - - if (projection_was_set) - { - free(geo_keys); - if (geo_double_params) - { - free(geo_double_params); - } - } - - if (verbose && lasreadopener.get_file_name_number() > 1) fprintf(stderr,"needed %g sec for %u files\n", taketime()-total_start_time, lasreadopener.get_file_name_number()); - - byebye(false, argc==1); - - return 0; -} diff --git a/thirdparty/LAStools/src/laszip.dsp b/thirdparty/LAStools/src/laszip.dsp deleted file mode 100644 index 8b298045..00000000 --- a/thirdparty/LAStools/src/laszip.dsp +++ /dev/null @@ -1,487 +0,0 @@ -# Microsoft Developer Studio Project File - Name="laszip" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=laszip - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "laszip.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "laszip.mak" CFG="laszip - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "laszip - Win32 Release without GUI" (based on "Win32 (x86) Console Application") -!MESSAGE "laszip - Win32 Debug without GUI" (based on "Win32 (x86) Console Application") -!MESSAGE "laszip - Win32 Release" (based on "Win32 (x86) Console Application") -!MESSAGE "laszip - Win32 Debug" (based on "Win32 (x86) Console Application") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "laszip - Win32 Release without GUI" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release without GUI" -# PROP BASE Intermediate_Dir "Release without GUI" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release_without_GUI" -# PROP Intermediate_Dir "Release_without_GUI" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD CPP /nologo /w /W0 /GX /O2 /I "..\laszip\src" /I "..\laslib\inc" /I "..\src" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "COMPILE_WITH_MULTI_CORE" /YX /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /i "../src" /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 -# ADD LINK32 ../laslib/lib/LASlib.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 /out:"Release_without_GUI/laszip-cli.exe" -# Begin Special Build Tool -SOURCE="$(InputPath)" -PostBuild_Cmds=copy Release_without_GUI\laszip-cli.exe ..\bin\laszip-cli.exe -# End Special Build Tool - -!ELSEIF "$(CFG)" == "laszip - Win32 Debug without GUI" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug_without_GUI" -# PROP BASE Intermediate_Dir "Debug_without_GUI" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Debug_without_GUI" -# PROP Intermediate_Dir "Debug_without_GUI" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c -# ADD CPP /nologo /w /W0 /Gm /GX /ZI /Od /I "..\laszip\src" /I "..\laslib\inc" /I "..\src" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "COMPILE_WITH_MULTI_CORE" /YX /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /i "..\..\src" /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept -# ADD LINK32 ../LASlib/lib/LASlibD.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /out:"Debug_without_GUI/laszip-cli.exe" /pdbtype:sept -# Begin Special Build Tool -SOURCE="$(InputPath)" -PostBuild_Cmds=copy Debug_without_GUI\laszip-cli.exe ..\bin\laszip-cli.exe -# End Special Build Tool - -!ELSEIF "$(CFG)" == "laszip - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Ignore_Export_Lib 0 -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "Release" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /w /W0 /GX /O2 /I "..\laslib\inc" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD CPP /nologo /W3 /GX /O2 /I "..\laszip\src" /I "..\laslib\inc" /I "..\src" /I "..\src_full\glui_api" /I "..\src_full\glut_api" /I "..\src_full\png_api" /I "..\src_full\zlib_api" /I "..\src_full\geotiff_api" /I "..\src_full\tiff_api" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "COMPILE_WITH_GUI" /D "COMPILE_WITH_MULTI_CORE" /YX /FD /c -# ADD BASE RSC /l 0x409 /i "../src" /d "NDEBUG" -# ADD RSC /l 0x409 /i "../src" /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 ../laslib/lib/LASlib.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 -# ADD LINK32 ../LASlib/lib/LASlib.lib ../src_full/glui_api/glui32.lib ../src_full/glut_api/glutstatic.lib ../src_full/glut_api/glut32.lib ../src_full/png_api/libpng.lib ../src_full/zlib_api/zlib.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 -# Begin Special Build Tool -SOURCE="$(InputPath)" -PostBuild_Cmds=copy Release\laszip.exe ..\bin\laszip.exe -# End Special Build Tool - -!ELSEIF "$(CFG)" == "laszip - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Ignore_Export_Lib 0 -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Debug" -# PROP Intermediate_Dir "Debug" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /w /W0 /Gm /GX /ZI /Od /I "..\laslib\inc" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c -# ADD CPP /nologo /w /W0 /Gm /GX /ZI /Od /I "..\laszip\src" /I "..\laslib\inc" /I "..\src" /I "..\src_full\glui_api" /I "..\src_full\glut_api" /I "..\src_full\png_api" /I "..\src_full\zlib_api" /I "..\src_full\geotiff_api" /I "..\src_full\tiff_api" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "COMPILE_WITH_GUI" /D "COMPILE_WITH_MULTI_CORE" /YX /FD /GZ /c -# ADD BASE RSC /l 0x409 /i "..\..\src" /d "_DEBUG" -# ADD RSC /l 0x409 /i "..\..\src" /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 ../laslib/libD/LASlib.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept -# ADD LINK32 ../laslib/lib/LASlibD.lib ../src_full/glui_api/glui32.lib ../src_full/glut_api/glutstatic.lib ../src_full/glut_api/glut32.lib ../src_full/png_api/libpng.lib ../src_full/zlib_api/zlib.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept -# Begin Special Build Tool -SOURCE="$(InputPath)" -PostBuild_Cmds=copy Debug\laszip.exe ..\bin\laszip.exe -# End Special Build Tool - -!ENDIF - -# Begin Target - -# Name "laszip - Win32 Release without GUI" -# Name "laszip - Win32 Debug without GUI" -# Name "laszip - Win32 Release" -# Name "laszip - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\src_full\dbfreader.cpp - -!IF "$(CFG)" == "laszip - Win32 Release without GUI" - -# PROP Exclude_From_Build 1 - -!ELSEIF "$(CFG)" == "laszip - Win32 Debug without GUI" - -# PROP Exclude_From_Build 1 - -!ELSEIF "$(CFG)" == "laszip - Win32 Release" - -!ELSEIF "$(CFG)" == "laszip - Win32 Debug" - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=.\geoprojectionconverter.cpp -# End Source File -# Begin Source File - -SOURCE=..\src_full\laslicense.cpp - -!IF "$(CFG)" == "laszip - Win32 Release without GUI" - -# PROP Exclude_From_Build 1 - -!ELSEIF "$(CFG)" == "laszip - Win32 Debug without GUI" - -# PROP Exclude_From_Build 1 - -!ELSEIF "$(CFG)" == "laszip - Win32 Release" - -!ELSEIF "$(CFG)" == "laszip - Win32 Debug" - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=..\src_full\lasoccupancy.cpp - -!IF "$(CFG)" == "laszip - Win32 Release without GUI" - -# PROP Exclude_From_Build 1 - -!ELSEIF "$(CFG)" == "laszip - Win32 Debug without GUI" - -# PROP Exclude_From_Build 1 - -!ELSEIF "$(CFG)" == "laszip - Win32 Release" - -!ELSEIF "$(CFG)" == "laszip - Win32 Debug" - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=..\src_full\lastools_gui.cpp - -!IF "$(CFG)" == "laszip - Win32 Release without GUI" - -# PROP Exclude_From_Build 1 - -!ELSEIF "$(CFG)" == "laszip - Win32 Debug without GUI" - -# PROP Exclude_From_Build 1 - -!ELSEIF "$(CFG)" == "laszip - Win32 Release" - -!ELSEIF "$(CFG)" == "laszip - Win32 Debug" - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=..\src_full\lastools_multi_core.cpp -# End Source File -# Begin Source File - -SOURCE=..\src\laszip.cpp -# End Source File -# Begin Source File - -SOURCE=..\src_full\laszip_gui.cpp - -!IF "$(CFG)" == "laszip - Win32 Release without GUI" - -# PROP Exclude_From_Build 1 - -!ELSEIF "$(CFG)" == "laszip - Win32 Debug without GUI" - -# PROP Exclude_From_Build 1 - -!ELSEIF "$(CFG)" == "laszip - Win32 Release" - -!ELSEIF "$(CFG)" == "laszip - Win32 Debug" - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=..\src_full\laszip_multi_core.cpp -# End Source File -# Begin Source File - -SOURCE=..\src_full\shpreader.cpp - -!IF "$(CFG)" == "laszip - Win32 Release without GUI" - -# PROP Exclude_From_Build 1 - -!ELSEIF "$(CFG)" == "laszip - Win32 Debug without GUI" - -# PROP Exclude_From_Build 1 - -!ELSEIF "$(CFG)" == "laszip - Win32 Release" - -!ELSEIF "$(CFG)" == "laszip - Win32 Debug" - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=..\src_full\sr_api\srreader_png.cpp - -!IF "$(CFG)" == "laszip - Win32 Release without GUI" - -# PROP Exclude_From_Build 1 - -!ELSEIF "$(CFG)" == "laszip - Win32 Debug without GUI" - -# PROP Exclude_From_Build 1 - -!ELSEIF "$(CFG)" == "laszip - Win32 Release" - -!ELSEIF "$(CFG)" == "laszip - Win32 Debug" - -!ENDIF - -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\LASzip\src\bytestreamin.hpp -# End Source File -# Begin Source File - -SOURCE=..\LASzip\src\bytestreamin_array.hpp -# End Source File -# Begin Source File - -SOURCE=..\LASzip\src\bytestreamout.hpp -# End Source File -# Begin Source File - -SOURCE=..\LASzip\src\bytestreamout_array.hpp -# End Source File -# Begin Source File - -SOURCE=..\src_full\dbfreader.hpp -# End Source File -# Begin Source File - -SOURCE=.\geoprojectionconverter.hpp -# End Source File -# Begin Source File - -SOURCE=..\LASzip\src\lasattributer.hpp -# End Source File -# Begin Source File - -SOURCE=..\laslib\inc\lasdefinitions.hpp -# End Source File -# Begin Source File - -SOURCE=..\laslib\inc\lasfilter.hpp -# End Source File -# Begin Source File - -SOURCE=..\LASlib\inc\lasignore.hpp -# End Source File -# Begin Source File - -SOURCE=..\LASzip\src\lasindex.hpp -# End Source File -# Begin Source File - -SOURCE=..\LASzip\src\lasinterval.hpp -# End Source File -# Begin Source File - -SOURCE=..\src_full\laslicense.hpp -# End Source File -# Begin Source File - -SOURCE=..\src_full\lasoccupancy.hpp -# End Source File -# Begin Source File - -SOURCE=..\LASzip\src\laspoint.hpp -# End Source File -# Begin Source File - -SOURCE=..\LASzip\src\lasquadtree.hpp -# End Source File -# Begin Source File - -SOURCE=..\LASzip\src\lasquantizer.hpp -# End Source File -# Begin Source File - -SOURCE=..\src_full\lasraster.hpp -# End Source File -# Begin Source File - -SOURCE=..\laslib\inc\lasreader.hpp -# End Source File -# Begin Source File - -SOURCE=..\laslib\inc\lastransform.hpp -# End Source File -# Begin Source File - -SOURCE=..\laslib\inc\lasutility.hpp -# End Source File -# Begin Source File - -SOURCE=..\laslib\inc\laswaveform13reader.hpp -# End Source File -# Begin Source File - -SOURCE=..\laslib\inc\laswaveform13writer.hpp -# End Source File -# Begin Source File - -SOURCE=..\laslib\inc\laswriter.hpp -# End Source File -# Begin Source File - -SOURCE=..\laslib\inc\laswritercompatible.hpp -# End Source File -# Begin Source File - -SOURCE=..\LASzip\src\laszip.hpp -# End Source File -# Begin Source File - -SOURCE=..\LASzip\src\laszip_decompress_selective_v3.hpp -# End Source File -# Begin Source File - -SOURCE=..\src_full\linereader.hpp -# End Source File -# Begin Source File - -SOURCE=..\LASzip\src\mydefs.hpp -# End Source File -# Begin Source File - -SOURCE=..\src_full\shpreader.hpp -# End Source File -# Begin Source File - -SOURCE=..\src_full\sr_api\srreader.hpp -# End Source File -# Begin Source File - -SOURCE=..\src_full\sr_api\srreader_png.hpp -# End Source File -# Begin Source File - -SOURCE=..\src_full\txtreader.hpp -# End Source File -# End Group -# Begin Group "Resource Files" - -# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" -# Begin Source File - -SOURCE=..\src_full\icon1.ico - -!IF "$(CFG)" == "laszip - Win32 Release without GUI" - -# PROP Exclude_From_Build 1 - -!ELSEIF "$(CFG)" == "laszip - Win32 Debug without GUI" - -# PROP Exclude_From_Build 1 - -!ELSEIF "$(CFG)" == "laszip - Win32 Release" - -!ELSEIF "$(CFG)" == "laszip - Win32 Debug" - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=..\src_full\lastool.rc - -!IF "$(CFG)" == "laszip - Win32 Release without GUI" - -# PROP Exclude_From_Build 1 - -!ELSEIF "$(CFG)" == "laszip - Win32 Debug without GUI" - -# PROP Exclude_From_Build 1 - -!ELSEIF "$(CFG)" == "laszip - Win32 Release" - -!ELSEIF "$(CFG)" == "laszip - Win32 Debug" - -!ENDIF - -# End Source File -# End Group -# End Target -# End Project diff --git a/thirdparty/LAStools/bin64/serf/geo/gcs.csv b/tools/LAStools/serf/geo/gcs.csv similarity index 100% rename from thirdparty/LAStools/bin64/serf/geo/gcs.csv rename to tools/LAStools/serf/geo/gcs.csv diff --git a/thirdparty/LAStools/bin64/serf/geo/my_epsg.csv b/tools/LAStools/serf/geo/my_epsg.csv similarity index 100% rename from thirdparty/LAStools/bin64/serf/geo/my_epsg.csv rename to tools/LAStools/serf/geo/my_epsg.csv diff --git a/thirdparty/LAStools/bin64/serf/geo/my_seven.csv b/tools/LAStools/serf/geo/my_seven.csv similarity index 100% rename from thirdparty/LAStools/bin64/serf/geo/my_seven.csv rename to tools/LAStools/serf/geo/my_seven.csv diff --git a/thirdparty/LAStools/bin64/serf/geo/pcs.csv b/tools/LAStools/serf/geo/pcs.csv similarity index 100% rename from thirdparty/LAStools/bin64/serf/geo/pcs.csv rename to tools/LAStools/serf/geo/pcs.csv diff --git a/thirdparty/LAStools/bin64/serf/geo/vertcs.csv b/tools/LAStools/serf/geo/vertcs.csv similarity index 100% rename from thirdparty/LAStools/bin64/serf/geo/vertcs.csv rename to tools/LAStools/serf/geo/vertcs.csv diff --git a/tools/prepare_point_cloud.sh b/tools/prepare_point_cloud.sh deleted file mode 100755 index 35a17432..00000000 --- a/tools/prepare_point_cloud.sh +++ /dev/null @@ -1,51 +0,0 @@ -#!/bin/bash - -cd ${0%/*} || exit 1 -WORKDIR="$PWD" - -#!** Script to prepare point cloud for City4CFD reconstruction using LAStools **!# -#! What this script does: - #- Merges multiple .las and .las tiles - #- Removes points outside a bounding box - #- Filters out ground and water points (LAS classes 2 and 9) in 'ground.xyz' - #- Filters out buildings (LAS class 6) in 'buildings.xyz' - -#! The script will run for some time depending on the size of the point cloud - -# USAGE: -# ./prepare_point_cloud.sh filename, e.g. ./prepare_point_cloud.sh *.laz - -#! PLEASE SET THE INPUT VARIABLES BEFORE RUNNING THE SCRIPT !# -#!---------------------------- INPUT VARIALBES --------------------------------!# -# Full path of the City4CFD source folder -CITY4CFD_DIR=${PWD%/*} - -# Eastimate the bounding box of the dataset -# Min_x Min_y Max_x Max_y -BBOX="89973.860 435350.211 90632.581 435937.505" -#===============================================================================# - -echo "Preparing point cloud using LAStools for City4CFD reconstruction" -echo "Working directory: $WORKDIR" -echo "" - -lasmerge="$CITY4CFD_DIR/thirdparty/LAStools/bin64/lasmerge64" -las2las="$CITY4CFD_DIR/thirdparty/LAStools/bin64/las2las64" - -mkdir pctempfiles - -echo "Merging tiles and cropping area..." -echo "Files to be merged: $@" -echo "Bounding box: $BBOX" -$lasmerge -i $@ -o pctempfiles/temp.laz -keep_xy $BBOX -keep_class 2 6 9 - -cd pctempfiles -echo "Extracting buildings..." -$las2las -i temp.laz -keep_class 6 -oparse xyz -o buildings.xyz - -echo "Extracting ground and water..." -$las2las -i temp.laz -keep_class 2 9 -oparse xyz -o ground.xyz - -mv buildings.xyz ..; mv ground.xyz .. -cd ..; rm -r pctempfiles -echo "End" diff --git a/tools/prepare_point_cloud/CMakeLists.txt b/tools/prepare_point_cloud/CMakeLists.txt new file mode 100644 index 00000000..75f79fc2 --- /dev/null +++ b/tools/prepare_point_cloud/CMakeLists.txt @@ -0,0 +1,25 @@ +cmake_minimum_required(VERSION 3.1) +project(city4cfd_pcprep) + +set(CMAKE_CXX_FLAGS "-O3") +set(CMAKE_BUILD_TYPE "Release") + +#if (COMMAND cmake_policy) +# cmake_policy(SET CMP0003 NEW) +#endif() + +# Creating entries for target: City4CFD +add_executable(city4cfd_pcprep src/city4cfd_pcprep.cpp) +set_target_properties( + city4cfd_pcprep + PROPERTIES CXX_STANDARD 14 +) + +target_link_libraries(city4cfd_pcprep + LASlib + CSF + ${Boost_FILESYSTEM_LIBRARY} + ${Boost_LOCALE_LIBRARY} + ) + +install(TARGETS city4cfd_pcprep DESTINATION bin) diff --git a/tools/prepare_point_cloud/config.json b/tools/prepare_point_cloud/config.json new file mode 100644 index 00000000..68d6433f --- /dev/null +++ b/tools/prepare_point_cloud/config.json @@ -0,0 +1,11 @@ +{ + "las_files": + [ + "points_2.laz", + "points_1.laz" + ], + "ground_classes": [2, 9], + "building_classes": [6], + "bbox": [22130, 441400, 23130, 44240], + "thinning": 90 +} diff --git a/tools/prepare_point_cloud/src/PCConfig.h b/tools/prepare_point_cloud/src/PCConfig.h new file mode 100644 index 00000000..9833a67a --- /dev/null +++ b/tools/prepare_point_cloud/src/PCConfig.h @@ -0,0 +1,179 @@ +/* + City4CFD + + Copyright (c) 2021-2022, 3D Geoinformation Research Group, TU Delft + + This file is part of City4CFD. + + City4CFD is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + City4CFD is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with City4CFD. If not, see . + + For any information or further details about the use of City4CFD, contact + Ivan PaÄ‘en + + 3D Geoinformation Research Group + Delft University of Technology +*/ + +#ifndef CITY4CFD_PCCONFIG_H +#define CITY4CFD_PCCONFIG_H + +#include +#include +#include + +#include "boost/filesystem.hpp" + +#include "valijson/adapters/nlohmann_json_adapter.hpp" +#include "valijson/schema.hpp" +#include "valijson/schema_parser.hpp" +#include "valijson/validator.hpp" + +#include "PCconfigSchema.inc" + +namespace fs = boost::filesystem; + +namespace PCPrep { + +class Config { +public: + static Config& get() { + static Config inst; + return inst; + } + +protected: + Config() = default; + Config(const Config&) = delete; + Config& operator=(const Config&) = delete; + ~Config() = default; + +public: + //-- Input + std::vector las_files; // LAS point cloud + std::vector las_classes_ground; // LAS classes used by terrain + std::vector las_classes_building; // LAS classes used by buildings + double xmin = 0.; + double xmax = 0.; + double ymin = 0.; + double ymax = 0.; + double pointCloudThinning = 0.; + + //-- Output + fs::path workDir; + fs::path outputDir = fs::current_path(); + + //-- Other settings + bool checkBbox = false; + + //== Public functions + void read_config(std::string& config_path) { + std::ifstream json_file(config_path); + if (!json_file) + throw std::invalid_argument(std::string("Configuration file " + config_path + " not found.")); + + //-- Filepaths in the json file are relative to the location of the json file + this->workDir = fs::path(config_path).parent_path(); + fs::current_path(this->workDir); + std::cout << "Work directory: " << fs::canonical(this->workDir) << std::endl; + + nlohmann::json j; + try { + j = nlohmann::json::parse(json_file, nullptr, true, true); + } catch (std::exception& e) { + std::cerr << "ERROR: Configuration file is not a valid JSON file. " + << "Check if you're missing a comma or a brace." << std::endl; + throw; + } + + std::cout << "\nValidating JSON configuration file..."; + this->validate(j); + std::cout <<"Configuration file is valid! \n" << std::endl; + + this->set_config(j); + } + + void validate(nlohmann::json& j) { + using valijson::Schema; + using valijson::SchemaParser; + using valijson::Validator; + using valijson::adapters::NlohmannJsonAdapter; + using valijson::ValidationResults; + + //- Load schema + Schema configSchema; + SchemaParser parser; + NlohmannJsonAdapter configSchemaAdapter(jsonschema::schema); + // debug +// nlohmann::json schema = nlohmann::json::parse(std::ifstream("../../data/input/schema.json"), nullptr, true, true); +// NlohmannJsonAdapter configSchemaAdapter(schema); + + parser.populateSchema(configSchemaAdapter, configSchema); + + //- Validate with schema + Validator validator; + NlohmannJsonAdapter configAdapter(j); + ValidationResults results; + if (!validator.validate(configSchema, configAdapter, &results)) { + std::stringstream err_oss; + err_oss << "Validation failed." << std::endl; + ValidationResults::Error error; + int error_num = 1; + while (results.popError(error)) + { + std::string context; + std::vector::iterator itr = error.context.begin(); + for (; itr != error.context.end(); itr++) + context += *itr; + + err_oss << "Error #" << error_num << std::endl + << " context: " << context << std::endl + << " desc: " << error.description << std::endl; + ++error_num; + } + throw std::runtime_error(err_oss.str()); + } + }; + + void set_config(nlohmann::json& j) { + if (j.contains("las_files")) { + for (std::string filename: j["las_files"]) { + las_files.push_back(filename); + } + } + if (j.contains("ground_classes")) { + for (int classID: j["ground_classes"]) { + las_classes_ground.push_back(classID); + } + } + if (j.contains("building_classes")) { + for (int classID: j["building_classes"]) { + las_classes_building.push_back(classID); + } + } + if (j.contains("bbox")) { + xmin = j["bbox"][0]; + ymin = j["bbox"][1]; + xmax = j["bbox"][2]; + ymax = j["bbox"][3]; + checkBbox = true; + } + if (j.contains("thinning")) { + pointCloudThinning = j["thinning"]; + } + }; +}; + +} + +#endif //CITY4CFD_PCCONFIG_H diff --git a/tools/prepare_point_cloud/src/PCconfigSchema.inc b/tools/prepare_point_cloud/src/PCconfigSchema.inc new file mode 100644 index 00000000..e86d7525 --- /dev/null +++ b/tools/prepare_point_cloud/src/PCconfigSchema.inc @@ -0,0 +1,80 @@ +/* + City4CFD + + Copyright (c) 2021-2022, 3D Geoinformation Research Group, TU Delft + + This file is part of City4CFD. + + City4CFD is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + City4CFD is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with City4CFD. If not, see . + + For any information or further details about the use of City4CFD, contact + Ivan PaÄ‘en + + 3D Geoinformation Research Group + Delft University of Technology +*/ + +#ifndef CITY4CFD_PCCONFIGSCHEMA_INC +#define CITY4CFD_PCCONFIGSCHEMA_INC + +namespace jsonschema { + //-- JSON config schema defined here as a string literal + const nlohmann::json schema = R"( + { + "$schema": "https://json-schema.org/draft-07/schema#", + "$id": "https://json-schema.org/draft-07/schema", + "title": "City4CFD Point Cloud Preparation Config Schema", + "type": "object", + "properties": { + "las_files": { + "description": "Schema that deals with import of LAS/LAZ tiles", + "type": "array", + "items": { + "type": "string" + } + }, + "ground_classes": { + "type": "array", + "items": { + "type": "number" + } + }, + "building_classes": { + "type": "array", + "items": { + "type": "number" + } + }, + "bbox": { + "description": "Optional: set the bounding box", + "type": "array", + "minItems": 4, + "maxItems": 4, + "items": { + "type": "number" + } + }, + "thinning": { + "description": "Optional: Random thinning", + "type": "number", + "minimum": 0, + "exclusiveMaximum": 100 + } + }, + "required": [ "las_files" ] + } + )"_json; +} + +#endif //CITY4CFD_PCCONFIGSCHEMA_INC \ No newline at end of file diff --git a/tools/prepare_point_cloud/src/city4cfd_pcprep.cpp b/tools/prepare_point_cloud/src/city4cfd_pcprep.cpp new file mode 100644 index 00000000..08868928 --- /dev/null +++ b/tools/prepare_point_cloud/src/city4cfd_pcprep.cpp @@ -0,0 +1,324 @@ +/* + City4CFD + + Copyright (c) 2021-2022, 3D Geoinformation Research Group, TU Delft + + This file is part of City4CFD. + + City4CFD is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + City4CFD is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with City4CFD. If not, see . + + For any information or further details about the use of City4CFD, contact + Ivan PaÄ‘en + + 3D Geoinformation Research Group + Delft University of Technology +*/ + +/* + * Point cloud preparation tool: + * Takes LAS/LAZ files and extracts ground and buildings + * You can manually specify classes in case of classified point cloud + * If the point cloud is not classified, the tool will try to extract the two automatically + */ + +//todo: LAS/LAZ output? +// Outlier and vegetation filter + +#include +#include +#include + +#include "lasreader.hpp" +#include "CSF/src/CSF.h" + +#include "PCConfig.h" + +using namespace PCPrep; + +typedef std::array Point; + +void printWelcome() { + auto logo{ + R"( + #==============================================================# + # __ # + # __ |''| # + # |""| |''| _ /|__ # + # __|""| |''|_| | | |""|/\_ # + # |''|""| |''|'| __| |""|'''| _____ # + # _ _ |''|""|^|''|'||""| |""|'''| |"""""| # + # |"|"| |''|""|||''|'||""| |""|'''| |"""""| # + # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # + # ____ _ _ ___________________________ # + # / ___| /_\ | |_ _ _ __ ____/___ ____/___ __ \ # + # | | |"| | __| | | | | _ / __ /_ __ / / / # + # | |___ |"| | |_ | |_| | 4 / /___ _ __/ _ /_/ / # + # \____| |"| \__| \__, | \____/ /_/ /_____/ # + # |___/ # + # # + #==============================================================# +)" + }; + + auto info{ + R"(#===============================================================================================================# +# Point cloud preparation tool # +# This tool takes LAS/LAZ point cloud tiles and exports building and ground points # +# In case the point cloud is not classified, it uses Cloth Simulation Filter (CSF) to perform ground filtering # +#============================================================================================================== # + +)" + }; + std::cout << logo; + std::cout << "City4CFD Copyright (C) 2021-2022 3D Geoinformation Research Group, TU Delft\n" << std::endl; + std::cout << info; +} + +void printHelp() { + auto helpMsg{ + R"(USAGE: + city4cfd_pcprep config.json +)" + }; + std::cout << helpMsg; +} + +void print_progress_bar(int percent) { + std::string bar; + for (int i = 0; i < 50; i++) { + if (i < (percent / 2)) { + bar.replace(i, 1, "="); + } + else if (i == (percent / 2)) { + bar.replace(i, 1, ">"); + } + else { + bar.replace(i, 1, " "); + } + } + std::clog << "\r" " [" << bar << "] "; + std::clog.width(3); + std::clog << percent << "% " << std::flush; +} + +bool inBbox(const LASpoint& pt) { + double ptx = pt.get_x(); + double pty = pt.get_y(); + if (ptx > Config::get().xmin && ptx < Config::get().xmax && + pty > Config::get().ymin && pty < Config::get().ymax) { + return true; + } + return false; +} + +void outputPts(const std::vector& pts, const std::string& filename) { + std::cout << "Outputting " << filename << std::endl; + + std::ofstream of; + of.open(filename.c_str()); + for (auto& pt : pts) { + of << pt[0] << " " << pt[1] << " " << pt[2] << std::setprecision(16) << std::endl; + } + of.close(); +} + + +int main(int argc, char** argv) { + try { + printWelcome(); + + auto startTime = std::chrono::steady_clock::now(); + + std::string config_path; + if (argc >= 2) { + config_path = fs::current_path().append(argv[1]).string(); + } else { + printHelp(); + return EXIT_SUCCESS; + } + + Config::get().read_config(config_path); + + //-- Point structures for building and ground? + std::vector groundPts; + std::vector buildingPts; + + int readPts = 0; + for (auto& pointFile: Config::get().las_files) { + std::cout << "Reading LAS/LAZ file: " << pointFile << "\n"; + + LASreadOpener lasreadopener; + lasreadopener.set_file_name(pointFile.c_str()); + //-- set to compute bounding box + lasreadopener.set_populate_header(true); + LASreader* lasreader = lasreadopener.open(); + + //-- check if file is open + if (lasreader == nullptr) + throw(std::runtime_error(std::string("Error reading LAS/LAZ file."))); + + LASheader header = lasreader->header; + + //-- read each point 1-by-1 + uint32_t pointCount = header.number_of_point_records; + + std::vector pts; + + std::cout << " " << boost::locale::as::number << pointCount << " points in the file\n"; + double percentLeft = 1 - (Config::get().pointCloudThinning / 100); + if (Config::get().pointCloudThinning > 0) { + std::cout << " Skipping " << Config::get().pointCloudThinning << "% points" << std::endl; + } + else { + std::cout << " all points used, no skipping" << std::endl; + } + + //-- Read defined classes or use CSF to determine ground from non-ground + if (!Config::get().las_classes_ground.empty() && + !Config::get().las_classes_building.empty()) { + std::cout << " Reading LAS classes: "; + for (int i : Config::get().las_classes_ground) { + std::cout << i << " "; + } + std::cout << "(ground) and "; + for (int i : Config::get().las_classes_building) { + std::cout << i << " "; + } + std::cout << "(buildings)" << std::endl; + + int i = -1; + double currPercent = 1.01; + print_progress_bar(0); + while (lasreader->read_point()) { + if (++i % (pointCount / 200) == 0) { + print_progress_bar(100 * (i / double(pointCount))); + } + + LASpoint const& p = lasreader->point; + if (p.return_number != p.number_of_returns) continue; + if (Config::get().checkBbox) + if (!inBbox(p)) continue; + //-- set the thinning filter + if (currPercent >= 1.) { + //-- add the point to the point cloud + bool isRead = false; + int classID = p.classification; + std::vector classList = Config::get().las_classes_ground; + if (std::find(classList.begin(), classList.end(), classID) + != classList.end()) { + groundPts.push_back({p.get_x(), p.get_y(), p.get_z()}); + isRead = true; + } + classList = Config::get().las_classes_building; + if (std::find(classList.begin(), classList.end(), classID) + != classList.end()) { + buildingPts.push_back({p.get_x(), p.get_y(), p.get_z()}); + isRead = true; + } + if (isRead) ++readPts; + currPercent -= 1.; + } + currPercent += percentLeft; + } + print_progress_bar(100); + std::clog << std::endl; + + lasreader->close(); + } else { // Cloth Simulation Filter + std::cout << " No point cloud classification information given. " + << "Will filter ground using the Cloth Simulation Filter" << std::endl; + CSF csf; + //-- Hardcoded CSF parameters + csf.params.bSloopSmooth = true; + csf.params.class_threshold = 0.5; + csf.params.cloth_resolution = 2; + csf.params.interations = 500; + csf.params.rigidness = 3; + csf.params.time_step = 0.65; + + + Point translatePt = {(header.max_x + header.min_x / 2), + (header.max_y + header.min_y / 2), + (header.max_z + header.min_z / 2)}; + + //-- Read the data + int i = -1; + double currPercent = 0.; + print_progress_bar(0); + while (lasreader->read_point()) { + if (++i % (pointCount / 200) == 0) { + print_progress_bar(100 * (i / double(pointCount))); + } + + LASpoint const& p = lasreader->point; + if (p.return_number != p.number_of_returns) continue; + if (Config::get().checkBbox) + if (!inBbox(p)) continue; + //-- set the thinning filter + if (currPercent >= 1.) { + //-- Add directly to CSF's data structure + csf.addPoint(p.get_x() - translatePt[0], + p.get_y() - translatePt[1], + p.get_z() - translatePt[2]); + + ++readPts; + currPercent -= 1.; + } + currPercent += percentLeft; + } + print_progress_bar(100); + std::clog << std::endl; + + lasreader->close(); + + //-- Perform CS filtering + std::cout << " Applying CSF to the point cloud" << std::endl; + std::vector groundIndices, offGroundIndices; + csf.do_filtering(groundIndices, offGroundIndices, false); + + //-- Add points to point clouds + for (auto idx : groundIndices) { + groundPts.push_back({csf.getPointCloud().at(idx).x + translatePt[0], + csf.getPointCloud().at(idx).z + translatePt[1], + -csf.getPointCloud().at(idx).y + translatePt[2]}); + } + for (auto idx : offGroundIndices) { + buildingPts.push_back({csf.getPointCloud().at(idx).x + translatePt[0], + csf.getPointCloud().at(idx).z + translatePt[1], + -csf.getPointCloud().at(idx).y + translatePt[2]}); + } + } + } + std::clog << "\nPoints read: " << readPts << "\n" << std::endl; + + //-- Output points to respective files + //- Output ground + outputPts(groundPts, "ground.txt"); + + //- Output buildings + outputPts(buildingPts, "buildings.txt"); + + auto endTime = std::chrono::steady_clock::now(); + auto diffTime = endTime - startTime; + std::cout << "\nProgram executed in " << std::chrono::duration(diffTime).count() << " s" << std::endl; + std:: cout << "End" << std::endl; + + return EXIT_SUCCESS; + } catch (std::exception& e) { + + std::cerr << "\nProgram failed! Reason: " << e.what() << std::endl; + std::cout << "End" << std::endl; + return EXIT_FAILURE; + } +}