diff --git a/.github/workflows/Remove_labels.yml b/.github/workflows/Remove_labels.yml
index 8e9ed55f6bd..0624fe7a1df 100644
--- a/.github/workflows/Remove_labels.yml
+++ b/.github/workflows/Remove_labels.yml
@@ -2,6 +2,7 @@ name: remove_labels
on:
pull_request_target:
types: [synchronize]
+ workflow_dispatch:
jobs:
remove_label:
runs-on: ubuntu-latest
diff --git a/.github/workflows/build_doc.yml b/.github/workflows/build_doc.yml
index 6f41cf308c4..9e445535ac4 100644
--- a/.github/workflows/build_doc.yml
+++ b/.github/workflows/build_doc.yml
@@ -47,7 +47,7 @@ jobs:
//get pullrequest url
const pr_number = context.payload.issue.number
return pr_number
-
+
- name: Emoji-comment
uses: actions/github-script@v6
if: steps.get_round.outputs.result != 'stop'
@@ -59,14 +59,13 @@ jobs:
repo: context.repo.repo,
content: 'rocket'
})
-
+
- uses: actions/checkout@v3
name: "checkout branch"
if: steps.get_round.outputs.result != 'stop'
with:
repository: ${{ github.repository }}
ref: refs/pull/${{ steps.get_pr_number.outputs.result }}/merge
- token: ${{ secrets.PUSH_TO_CGAL_GITHUB_IO_TOKEN }}
fetch-depth: 2
- name: install dependencies
@@ -74,7 +73,7 @@ jobs:
run: |
set -x
sudo apt-get update && sudo apt-get install -y graphviz ssh bibtex2html
- sudo pip install lxml==4.6.3
+ sudo pip install lxml
sudo pip install pyquery
wget --no-verbose -O doxygen_exe https://cgal.geometryfactory.com/~cgaltest/doxygen_1_8_13_patched/doxygen
sudo mv doxygen_exe /usr/bin/doxygen
@@ -160,7 +159,8 @@ jobs:
with:
script: |
const error = process.env.ERRORMSG
- const msg = "There was an error while building the doc: \n"+error
+ const job_url = `${context.serverUrl}/CGAL/cgal/actions/runs/${context.runId}`
+ const msg = "There was an error while building the doc: \n"+error + "\n" + job_url
github.rest.issues.createComment({
owner: "CGAL",
repo: "cgal",
diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml
index b3350371607..0af6e276e6e 100644
--- a/.github/workflows/checks.yml
+++ b/.github/workflows/checks.yml
@@ -1,6 +1,6 @@
name: CMake Test Merge Branch
-on: [push, pull_request]
+on: [push, pull_request, workflow_dispatch]
permissions:
contents: read
diff --git a/.github/workflows/cmake-all.yml b/.github/workflows/cmake-all.yml
index 1eea5e59aa9..d0507b4d430 100644
--- a/.github/workflows/cmake-all.yml
+++ b/.github/workflows/cmake-all.yml
@@ -1,6 +1,6 @@
name: CMake Testsuite
-on: [push, pull_request]
+on: [push, pull_request, workflow_dispatch]
permissions:
contents: read
diff --git a/.github/workflows/delete_doc.yml b/.github/workflows/delete_doc.yml
index 497013a51eb..38f5ab445ac 100644
--- a/.github/workflows/delete_doc.yml
+++ b/.github/workflows/delete_doc.yml
@@ -2,7 +2,7 @@ name: Documentation Removal
on:
pull_request_target:
- types: [closed, removed]
+ types: [closed, removed, workflow_dispatch]
permissions:
contents: read
diff --git a/.github/workflows/demo.yml b/.github/workflows/demo.yml
index 07dee615268..123458ebe04 100644
--- a/.github/workflows/demo.yml
+++ b/.github/workflows/demo.yml
@@ -1,6 +1,6 @@
name: Test Polyhedron Demo
-on: [push, pull_request]
+on: [push, pull_request,workflow_dispatch]
permissions:
contents: read
diff --git a/.github/workflows/filter_testsuite.yml b/.github/workflows/filter_testsuite.yml
index 9b222b77eb3..48e4f39d65c 100644
--- a/.github/workflows/filter_testsuite.yml
+++ b/.github/workflows/filter_testsuite.yml
@@ -3,6 +3,7 @@ name: Filter Testsuite
on:
issue_comment:
types: [created]
+ workflow_dispatch:
permissions: {}
jobs:
diff --git a/.github/workflows/list_workflow_last_run.css b/.github/workflows/list_workflow_last_run.css
new file mode 100644
index 00000000000..a3955383311
--- /dev/null
+++ b/.github/workflows/list_workflow_last_run.css
@@ -0,0 +1,30 @@
+table {
+ margin-left: auto;
+ margin-right: auto;
+ margin-bottom: 24px;
+ border-spacing: 0;
+ border-bottom: 2px solid black;
+ border-top: 2px solid black;
+}
+table th {
+ padding: 3px 10px;
+ background-color: white;
+ border-top: none;
+ border-left: none;
+ border-right: none;
+ border-bottom: 1px solid black;
+}
+table td {
+ padding: 3px 10px;
+ border-top: none;
+ border-left: none;
+ border-bottom: none;
+ border-right: none;
+}
+
+table tr.odd {
+ background-color: #f0f0f0;
+}
+table tr.even {
+ background-color: #e0e0e0;
+}
diff --git a/.github/workflows/list_workflow_last_run.yml b/.github/workflows/list_workflow_last_run.yml
new file mode 100644
index 00000000000..79b1d2c0634
--- /dev/null
+++ b/.github/workflows/list_workflow_last_run.yml
@@ -0,0 +1,43 @@
+ name: List workflow last run
+ on:
+ workflow_dispatch:
+ schedule:
+ - cron: "0 10 * * 1"
+ env:
+ GH_TOKEN: ${{ github.token }}
+ jobs:
+ list_workflow:
+ runs-on: ubuntu-latest
+ outputs:
+ messages: ${{ steps.cat_output.outputs.message }}
+ steps:
+ - name: checkout
+ uses: actions/checkout@v3
+ - name: run script
+ run: |
+ chmod +x ./Scripts/developer_scripts/list_cgal_workflows_last_run.sh
+ ./Scripts/developer_scripts/list_cgal_workflows_last_run.sh > output.md
+ - name: convert markdown to html
+ run: |
+ sudo apt-get update && sudo apt-get install -y pandoc
+ pandoc -f markdown -t html --self-contained --css=.github/workflows/list_workflow_last_run.css -o output.html output.md
+ - name: set_output
+ id: cat_output
+ run: |
+ delimiter="$(openssl rand -hex 8)"
+ echo "message<<${delimiter}" >> "${GITHUB_OUTPUT}"
+ echo "Subject:List workflow run \nContent-Type: text/html; charset=\"UTF-8\"\n" >> "${GITHUB_OUTPUT}"
+ echo "
" >> "${GITHUB_OUTPUT}"
+ cat output.html >> "${GITHUB_OUTPUT}"
+ echo "" >> "${GITHUB_OUTPUT}"
+ echo "${delimiter}" >> "${GITHUB_OUTPUT}"
+ call_send_email:
+ needs: list_workflow
+ uses: ./.github/workflows/send_email.yml
+ with:
+ message: ${{needs.list_workflow.outputs.messages}}
+ secrets:
+ email: ${{ secrets.CGAL_SEND_WORKFLOW_LIST_EMAIL_TO }}
+ private_key: ${{ secrets.CGAL_SEND_WORKFLOW_LIST_EMAIL_SSH_PRIVATE_KEY }}
+ user: ${{ secrets.CGAL_SEND_WORKFLOW_LIST_EMAIL_SSH_USER }}
+ host: ${{ secrets.CGAL_SEND_WORKFLOW_LIST_EMAIL_SSH_HOST }}
diff --git a/.github/workflows/send_email.yml b/.github/workflows/send_email.yml
new file mode 100644
index 00000000000..cb990eca146
--- /dev/null
+++ b/.github/workflows/send_email.yml
@@ -0,0 +1,31 @@
+name: Send Email using SSH
+
+on:
+ workflow_call:
+ inputs:
+ message:
+ description: 'Message to send'
+ required: true
+ type: string
+ secrets:
+ email:
+ required: true
+ private_key:
+ required: true
+ user:
+ required: true
+ host:
+ required: true
+
+jobs:
+ send_email:
+ runs-on: ubuntu-latest
+ steps:
+ - name: install ssh keys
+ run: |
+ install -m 600 -D /dev/null ~/.ssh/id_rsa
+ echo "${{ secrets.private_key }}" > ~/.ssh/id_rsa
+ ssh-keyscan -H ${{ secrets.host }} > ~/.ssh/known_hosts
+ - name: send email via ssh
+ run: |
+ echo -e '${{ inputs.message }}' | ssh ${{ secrets.user }}@${{ secrets.host }} "/sbin/sendmail -t ${{ secrets.email }}"
diff --git a/.github/workflows/wiki_notification.yml b/.github/workflows/wiki_notification.yml
new file mode 100644
index 00000000000..456fefa51e3
--- /dev/null
+++ b/.github/workflows/wiki_notification.yml
@@ -0,0 +1,38 @@
+name: Wiki Notification
+
+on: gollum
+
+jobs:
+ prepare_email:
+ runs-on: ubuntu-latest
+ outputs:
+ messages: ${{ steps.set-result.outputs.result }}
+ steps:
+ - name: get informations and prepare email
+ uses: actions/github-script@v6
+ id: set-result
+ with:
+ result-encoding: string
+ script: |
+ const payload = context.payload;
+ const actor = payload.sender;
+ const pages = payload.pages;
+ let messages = "Subject:Updates to CGAL Wiki \nContent-Type: text/html\n";
+ messages += "";
+ messages += `The following CGAL Wiki page were modified by "${actor.login}":
";
+ console.log( messages );
+ return messages;
+ call_send_email:
+ needs: prepare_email
+ uses: ./.github/workflows/send_email.yml
+ with:
+ message: ${{needs.prepare_email.outputs.messages}}
+ secrets:
+ email: ${{ secrets.CGAL_SEND_WIKI_EMAIL_TO }}
+ private_key: ${{ secrets.CGAL_SEND_WIKI_EMAIL_SSH_PRIVATE_KEY }}
+ user: ${{ secrets.CGAL_SEND_WIKI_EMAIL_SSH_USER }}
+ host: ${{ secrets.CGAL_SEND_WIKI_EMAIL_SSH_HOST }}
diff --git a/AABB_tree/benchmark/AABB_tree/CMakeLists.txt b/AABB_tree/benchmark/AABB_tree/CMakeLists.txt
index 162d8cd9a15..b6ae8fdc0e2 100644
--- a/AABB_tree/benchmark/AABB_tree/CMakeLists.txt
+++ b/AABB_tree/benchmark/AABB_tree/CMakeLists.txt
@@ -6,12 +6,14 @@ project(AABB_traits_benchmark)
find_package(CGAL REQUIRED OPTIONAL_COMPONENTS Core)
-# google benchmark
-find_package(benchmark)
-
-if (benchmark_FOUND)
- create_single_source_cgal_program("tree_creation.cpp")
- target_link_libraries(tree_creation benchmark::benchmark)
-endif()
create_single_source_cgal_program("test.cpp")
create_single_source_cgal_program("tree_construction.cpp")
+
+# google benchmark
+find_package(benchmark QUIET)
+if(benchmark_FOUND)
+ create_single_source_cgal_program("tree_creation.cpp")
+ target_link_libraries(tree_creation benchmark::benchmark)
+else()
+ message(STATUS "NOTICE: The benchmark 'tree_creation.cpp' requires the Google benchmark library, and will not be compiled.")
+endif()
diff --git a/AABB_tree/demo/AABB_tree/CMakeLists.txt b/AABB_tree/demo/AABB_tree/CMakeLists.txt
index 8cc6c27c3f8..c777eba1798 100644
--- a/AABB_tree/demo/AABB_tree/CMakeLists.txt
+++ b/AABB_tree/demo/AABB_tree/CMakeLists.txt
@@ -5,6 +5,7 @@ project(AABB_tree_Demo)
# Find includes in corresponding build directories
set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
# Instruct CMake to run moc automatically when needed.
set(CMAKE_AUTOMOC ON)
if(NOT POLICY CMP0070 AND POLICY CMP0053)
@@ -31,10 +32,8 @@ if(CGAL_Qt5_FOUND AND Qt5_FOUND)
include(AddFileDependencies)
- qt5_generate_moc("MainWindow.h"
- "${CMAKE_CURRENT_BINARY_DIR}/MainWindow_moc.cpp")
- add_file_dependencies(MainWindow_moc.cpp
- "${CMAKE_CURRENT_SOURCE_DIR}/MainWindow.h")
+ qt5_generate_moc("MainWindow.h" "${CMAKE_CURRENT_BINARY_DIR}/MainWindow_moc.cpp")
+ add_file_dependencies(MainWindow_moc.cpp "${CMAKE_CURRENT_SOURCE_DIR}/MainWindow.h")
qt5_generate_moc("Viewer.h" "${CMAKE_CURRENT_BINARY_DIR}/Viewer_moc.cpp")
add_file_dependencies(Viewer_moc.cpp "${CMAKE_CURRENT_SOURCE_DIR}/Viewer.h")
@@ -62,8 +61,7 @@ if(CGAL_Qt5_FOUND AND Qt5_FOUND)
include(${CGAL_MODULES_DIR}/CGAL_add_test.cmake)
cgal_add_compilation_test(AABB_demo)
-else(CGAL_Qt5_FOUND
- AND Qt5_FOUND)
+else(CGAL_Qt5_FOUND AND Qt5_FOUND)
set(AABB_MISSING_DEPS "")
@@ -75,11 +73,6 @@ else(CGAL_Qt5_FOUND
set(AABB_MISSING_DEPS "Qt5, ${AABB_MISSING_DEPS}")
endif()
- message(
- STATUS
- "NOTICE: This demo requires ${AABB_MISSING_DEPS}and will not be compiled."
- )
+ message("NOTICE: This demo requires ${AABB_MISSING_DEPS}, and will not be compiled.")
-endif(
- CGAL_Qt5_FOUND
- AND Qt5_FOUND)
+endif(CGAL_Qt5_FOUND AND Qt5_FOUND)
diff --git a/AABB_tree/doc/AABB_tree/PackageDescription.txt b/AABB_tree/doc/AABB_tree/PackageDescription.txt
index d59794e62d5..c032420bb76 100644
--- a/AABB_tree/doc/AABB_tree/PackageDescription.txt
+++ b/AABB_tree/doc/AABB_tree/PackageDescription.txt
@@ -8,7 +8,7 @@
\cgalPkgDescriptionBegin{3D Fast Intersection and Distance Computation,PkgAABBTree}
\cgalPkgPicture{aabb-teaser-thumb.png}
\cgalPkgSummaryBegin
-\cgalPkgAuthors{Pierre Alliez, Stéphane Tayeb, Camille Wormser}
+\cgalPkgAuthors{Pierre Alliez, Stéphane Tayeb, and Camille Wormser}
\cgalPkgDesc{The AABB (axis-aligned bounding box) tree component offers a static data structure and algorithms to perform efficient intersection and distance queries on sets of finite 3D geometric objects.}
\cgalPkgManuals{Chapter_3D_Fast_Intersection_and_Distance_Computation,PkgAABBTreeRef}
\cgalPkgSummaryEnd
diff --git a/AABB_tree/include/CGAL/AABB_tree/internal/triangle_datum_covering.h b/AABB_tree/include/CGAL/AABB_tree/internal/triangle_datum_covering.h
index 6f7df8ae57c..69babb2c160 100644
--- a/AABB_tree/include/CGAL/AABB_tree/internal/triangle_datum_covering.h
+++ b/AABB_tree/include/CGAL/AABB_tree/internal/triangle_datum_covering.h
@@ -143,18 +143,18 @@ struct AABB_covered_triangle_tree_traits
// Primitive ID --> box vector pos --> Bounding Box
using BPMB = internal::Vector_property_map;
- using BPM = CGAL::Property_map_binder;
+ using BPM = CGAL::Compose_property_map;
// Primitive ID --> point vector pos --> Reference Point
using RPPMB = internal::Vector_property_map;
- using RPPM = CGAL::Property_map_binder;
+ using RPPM = CGAL::Compose_property_map;
// 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 DPPM = CGAL::Compose_property_map; // PID --> Datum pos
using DPMB = internal::Vector_property_map; // Datum pos --> Datum
- using DPM = CGAL::Property_map_binder; // PID --> Datum
+ using DPM = CGAL::Compose_property_map; // PID --> Datum
using Primitive = CGAL::AABB_primitive box vector pos --> Bounding Box
using BPMB = internal::Vector_property_map;
- using BPM = CGAL::Property_map_binder;
+ using BPM = CGAL::Compose_property_map;
// Primitive ID --> point vector pos --> Reference Point
using RPPMB = internal::Vector_property_map;
- using RPPM = CGAL::Property_map_binder;
+ using RPPM = CGAL::Compose_property_map;
// 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 DPPM = CGAL::Compose_property_map; // PID --> Datum pos
using DPMB = internal::Vector_property_map; // Datum pos --> Datum
- using DPM = CGAL::Property_map_binder; // PID --> Datum
+ using DPM = CGAL::Compose_property_map; // PID --> Datum
using Primitive = CGAL::AABB_primitive 1) ? argv[1] : CGAL::data_file_path("meshes/polygon_mesh.off"); // mesh
+ const std::string tm_filename = (argc > 1) ? argv[1] : CGAL::data_file_path("meshes/building.off"); // mesh
const std::string ts_filename = (argc > 2) ? argv[2] : CGAL::data_file_path("meshes/oblong-shuffled.off"); // triangle soup
const std::string ss_filename = (argc > 3) ? argv[3] : CGAL::data_file_path("images/420.polylines.txt"); // segment soup
const std::string ps_filename = (argc > 4) ? argv[4] : CGAL::data_file_path("points_3/b9_training.ply"); // point set
diff --git a/Arithmetic_kernel/test/Arithmetic_kernel/CMakeLists.txt b/Arithmetic_kernel/test/Arithmetic_kernel/CMakeLists.txt
index 3c1e32fa19f..08d054ea54c 100644
--- a/Arithmetic_kernel/test/Arithmetic_kernel/CMakeLists.txt
+++ b/Arithmetic_kernel/test/Arithmetic_kernel/CMakeLists.txt
@@ -6,7 +6,7 @@ project(Arithmetic_kernel_Tests)
find_package(CGAL REQUIRED COMPONENTS Core)
-find_package(GMP QUIET)
+find_package(GMP)
if(GMP_FOUND)
@@ -18,7 +18,7 @@ if(GMP_FOUND)
include_directories(include)
- find_package(MPFI)
+ find_package(MPFI QUIET)
if(MPFI_FOUND)
include(${MPFI_USE_FILE})
@@ -27,16 +27,13 @@ if(GMP_FOUND)
# version needs GMP>=4.2, so we require this dependency only here and
# not in FindMPFI.cmake
if(_IS_GMP_VERSION_TO_LOW)
- message(
- STATUS
- "MPFI tests need GMP>=4.2, some of the tests will not be compiled")
+ message(STATUS "NOTICE: MPFI tests need GMP>=4.2, some of the tests will not be compiled")
else(_IS_GMP_VERSION_TO_LOW)
include(${MPFI_USE_FILE})
create_single_source_cgal_program("GMP_arithmetic_kernel.cpp")
endif(_IS_GMP_VERSION_TO_LOW)
else(MPFI_FOUND)
- message(
- STATUS "MPFI is not present, some of the tests will not be compiled.")
+ message(STATUS "NOTICE: MPFI is not present, some of the tests will not be compiled.")
endif(MPFI_FOUND)
create_single_source_cgal_program("Arithmetic_kernel.cpp")
@@ -46,7 +43,6 @@ if(GMP_FOUND)
else()
- message(
- STATUS "This program requires the CGAL library, and will not be compiled.")
+ message("NOTICE: This project requires GMP support, and will not be compiled.")
endif()
diff --git a/Arrangement_on_surface_2/benchmark/Arrangement_on_surface_2/lexical_cast.hpp b/Arrangement_on_surface_2/benchmark/Arrangement_on_surface_2/lexical_cast.hpp
index 79d885905ef..d16d9e378a8 100644
--- a/Arrangement_on_surface_2/benchmark/Arrangement_on_surface_2/lexical_cast.hpp
+++ b/Arrangement_on_surface_2/benchmark/Arrangement_on_surface_2/lexical_cast.hpp
@@ -1,7 +1,7 @@
#ifndef LEXICAL_CAST_HPP
#define LEXICAL_CAST_HPP
-/*! This files provides lexical casts from std::string to any one of the number
+/*! This file provides lexical casts from std::string to any one of the number
* types we intend to use in the benchmark, and a lexical cast does not exist.
* It is inspired by boost::lexical_cast
*/
diff --git a/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/CMakeLists.txt b/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/CMakeLists.txt
index e91295a5d90..82e33197dae 100644
--- a/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/CMakeLists.txt
+++ b/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/CMakeLists.txt
@@ -12,10 +12,10 @@ if(POLICY CMP0071)
cmake_policy(SET CMP0071 NEW)
endif()
-find_package(CGAL QUIET COMPONENTS Qt5 OPTIONAL_COMPONENTS Core)
+find_package(CGAL REQUIRED OPTIONAL_COMPONENTS Core Qt5)
find_package(Qt5 QUIET COMPONENTS Gui Widgets)
-if (CGAL_FOUND AND CGAL_Qt5_FOUND AND Qt5_FOUND)
+if (CGAL_Qt5_FOUND AND Qt5_FOUND)
include(${CGAL_USE_FILE})
add_compile_definitions(QT_NO_KEYWORDS)
include_directories( BEFORE ./ )
@@ -110,10 +110,10 @@ if (CGAL_FOUND AND CGAL_Qt5_FOUND AND Qt5_FOUND)
${CGAL_Qt5_RESOURCE_FILES}
${CGAL_Qt5_MOC_FILES})
- target_link_libraries(arrangement_2 Qt5::Core Qt5::Gui Qt5::Widgets)
- target_link_libraries(arrangement_2 CGAL::CGAL CGAL::CGAL_Qt5)
+ target_link_libraries(arrangement_2 PRIVATE Qt5::Core Qt5::Gui Qt5::Widgets)
+ target_link_libraries(arrangement_2 PRIVATE CGAL::CGAL CGAL::CGAL_Qt5)
if(CGAL_Core_FOUND)
- target_link_libraries(arrangement_2 CGAL::CGAL_Core)
+ target_link_libraries(arrangement_2 PRIVATE CGAL::CGAL_Core)
endif()
add_to_cached_list(CGAL_EXECUTABLE_TARGETS arrangement_2)
@@ -124,15 +124,11 @@ if (CGAL_FOUND AND CGAL_Qt5_FOUND AND Qt5_FOUND)
else()
set(MISSING_DEPS "")
- if(NOT CGAL_FOUND)
- set(MISSING_DEPS "CGAL, ${MISSING_DEPS}")
- endif()
if(NOT CGAL_Qt5_FOUND)
set(MISSING_DEPS "the CGAL Qt5 library, ${MISSING_DEPS}")
endif()
if(NOT Qt5_FOUND)
set(MISSING_DEPS "Qt5, ${MISSING_DEPS}")
endif()
- message(STATUS
- "NOTICE: This demo requires ${MISSING_DEPS} and will not be compiled.")
+ message("NOTICE: This demo requires ${MISSING_DEPS} and will not be compiled.")
endif()
diff --git a/Arrangement_on_surface_2/examples/Arrangement_on_surface_2/overlay_unbounded.cpp b/Arrangement_on_surface_2/examples/Arrangement_on_surface_2/overlay_unbounded.cpp
index be62a491733..866c66016d1 100644
--- a/Arrangement_on_surface_2/examples/Arrangement_on_surface_2/overlay_unbounded.cpp
+++ b/Arrangement_on_surface_2/examples/Arrangement_on_surface_2/overlay_unbounded.cpp
@@ -2,7 +2,6 @@
// A face overlay of two arrangements with unbounded faces.
#include
-#include
#include
#include
@@ -14,7 +13,7 @@
// Define a functor for creating a label from a character and an integer.
struct Overlay_label {
std::string operator()(char c, unsigned int i) const
- { return c + boost::lexical_cast(i); }
+ { return c + std::to_string(i); }
};
typedef CGAL::Arr_face_extended_dcel Dcel_dlue;
diff --git a/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Td_X_trapezoid.h b/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Td_X_trapezoid.h
index c81fafaaeac..169864e1de1 100644
--- a/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Td_X_trapezoid.h
+++ b/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Td_X_trapezoid.h
@@ -153,14 +153,19 @@ public:
Dag_node* m_dag_node; //pointer to the search structure (DAG) node
/*! Initialize the trapezoid's neighbors. */
- CGAL_TD_INLINE void init_neighbours(Self* lb_ = 0, Self* lt_ = 0,
- Self* rb_ = 0, Self* rt_ = 0)
+ CGAL_TD_INLINE void init_neighbors(Self* lb_ = 0, Self* lt_ = 0,
+ Self* rb_ = 0, Self* rt_ = 0)
{
set_lb(lb_);
set_lt(lt_);
set_rb(rb_);
set_rt(rt_);
}
+ /*! \copydoc init_neighbors
+ * \deprecated please use #init_neighbors */
+ CGAL_DEPRECATED CGAL_TD_INLINE void init_neighbours(Self* lb_ = 0, Self* lt_ = 0,
+ Self* rb_ = 0, Self* rt_ = 0)
+ { init_neighbors(lb_, lt_, rb_, rt_); }
/*! Set the DAG node. */
CGAL_TD_INLINE void set_dag_node(Dag_node* p)
diff --git a/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Td_active_edge.h b/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Td_active_edge.h
index 2f400786e75..f901bb72565 100644
--- a/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Td_active_edge.h
+++ b/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Td_active_edge.h
@@ -145,10 +145,14 @@ public:
//Dag_node* m_dag_node; //pointer to the search structure (DAG) node
/*! Initialize the trapezoid's neighbors. */
- inline void init_neighbours(boost::optional next)
+ inline void init_neighbors(boost::optional next)
{
set_next((next) ? *next : Td_map_item(0));
}
+ /*! \copydoc init_neighbors
+ * \deprecated please use #init_neighbors */
+ CGAL_DEPRECATED inline void init_neighbours(boost::optional next)
+ { init_neighbors(next); }
/*! Set the DAG node. */
CGAL_TD_INLINE void set_dag_node(Dag_node* p)
diff --git a/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Td_active_trapezoid.h b/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Td_active_trapezoid.h
index 84ba82d4fff..06b384daed9 100644
--- a/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Td_active_trapezoid.h
+++ b/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Td_active_trapezoid.h
@@ -163,14 +163,19 @@ private:
//Dag_node* m_dag_node; //pointer to the search structure (DAG) node
/*! Initialize the trapezoid's neighbors. */
- inline void init_neighbours(boost::optional lb, boost::optional lt,
- boost::optional rb, boost::optional rt)
+ inline void init_neighbors(boost::optional lb, boost::optional lt,
+ boost::optional rb, boost::optional rt)
{
set_lb((lb) ? *lb : Td_map_item(0));
set_lt((lt) ? *lt : Td_map_item(0));
set_rb((rb) ? *rb : Td_map_item(0));
set_rt((rt) ? *rt : Td_map_item(0));
}
+ /*! \copydoc init_neighbors
+ * \deprecated please use #init_neighbors */
+ CGAL_DEPRECATED inline void init_neighbours(boost::optional lb, boost::optional lt,
+ boost::optional rb, boost::optional rt)
+ { init_neighbors(lb, lt, rb, rt); }
/*! Set the DAG node. */
inline void set_dag_node(Dag_node* p)
diff --git a/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Trapezoidal_decomposition_2_impl.h b/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Trapezoidal_decomposition_2_impl.h
index e7d8ae645f6..15c72e81945 100644
--- a/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Trapezoidal_decomposition_2_impl.h
+++ b/Arrangement_on_surface_2/include/CGAL/Arr_point_location/Trapezoidal_decomposition_2_impl.h
@@ -72,10 +72,10 @@ split_trapezoid_by_vertex(Dag_node& split_node,
CGAL_warning(left_tr.is_on_left_boundary() == tr.is_on_left_boundary());
CGAL_warning(right_tr.is_on_right_boundary() == tr.is_on_right_boundary());
- left_tr.init_neighbours(tr.lb(), tr.lt(),
- right_node.get_data(), right_node.get_data());
- right_tr.init_neighbours(left_node.get_data(), left_node.get_data(),
- tr.rb(), tr.rt());
+ left_tr.init_neighbors(tr.lb(), tr.lt(),
+ right_node.get_data(), right_node.get_data());
+ right_tr.init_neighbors(left_node.get_data(), left_node.get_data(),
+ tr.rb(), tr.rt());
if (!traits->is_empty_item(tr.lb())) {
Td_active_trapezoid& lb(boost::get(tr.lb()));
lb.set_rb(left_node.get_data());
@@ -109,10 +109,10 @@ split_trapezoid_by_vertex(Dag_node& split_node,
//CGAL_warning(left_e.is_on_left_boundary() == e.is_on_left_boundary());
//CGAL_warning(right_e.is_on_right_boundary() == e.is_on_right_boundary());
- left_e.init_neighbours(boost::none);
- //left_e.init_neighbours(e.lb(),e.lt(),Td_map_item(),right_node.get_data());
- right_e.init_neighbours(e.next());
- //right_e.init_neighbours(left_node.get_data(),left_node.get_data(),e.rb(),e.rt());
+ left_e.init_neighbors(boost::none);
+ //left_e.init_neighbors(e.lb(),e.lt(),Td_map_item(),right_node.get_data());
+ right_e.init_neighbors(e.next());
+ //right_e.init_neighbors(left_node.get_data(),left_node.get_data(),e.rb(),e.rt());
}
// left and right are set to the point itself,
@@ -307,8 +307,8 @@ split_trapezoid_by_halfedge(Dag_node& split_node,
Td_active_trapezoid& top =
boost::get(top_node.get_data());
- top.init_neighbours(prev_top_tr, split_tr.lt(), boost::none , split_tr.rt());
- bottom.init_neighbours(split_tr.lb(), prev_bottom_tr, split_tr.rb(),
+ top.init_neighbors(prev_top_tr, split_tr.lt(), boost::none , split_tr.rt());
+ bottom.init_neighbors(split_tr.lb(), prev_bottom_tr, split_tr.rb(),
boost::none);
if (!traits->is_empty_item(prev_bottom_tr)) {
@@ -2340,7 +2340,7 @@ vertical_ray_shoot(const Point & p,Locate_type & lt,
// }
// else // new_left_t is leftmost representative for he
// {
-// //set_neighbours_after_split_halfedge_update (new_left_t, t1, he1, he2); //MICHAL: this method does nothing
+// //set_neighbors_after_split_halfedge_update (new_left_t, t1, he1, he2); //MICHAL: this method does nothing
// }
// if (t1.rt()==&old_t) t1.set_rt(&new_left_t);
// if (t1.lb()==&old_t) t1.set_lb(&new_left_t);
@@ -2366,7 +2366,7 @@ vertical_ray_shoot(const Point & p,Locate_type & lt,
// }
// else // new_right_t is rightmost representative for te
// {
-// //set_neighbours_after_split_halfedge_update (new_right_t,t2,he1, he2,false); //MICHAL: this method does nothing
+// //set_neighbors_after_split_halfedge_update (new_right_t,t2,he1, he2,false); //MICHAL: this method does nothing
// }
// if (t2.rt()==&old_t) t2.set_rt(&new_right_t);
// if (t2.lb()==&old_t) t2.set_lb(&new_right_t);
diff --git a/Arrangement_on_surface_2/include/CGAL/Arr_topology_traits/Arr_spherical_topology_traits_2_impl.h b/Arrangement_on_surface_2/include/CGAL/Arr_topology_traits/Arr_spherical_topology_traits_2_impl.h
index fbe5e059eef..9175587a317 100644
--- a/Arrangement_on_surface_2/include/CGAL/Arr_topology_traits/Arr_spherical_topology_traits_2_impl.h
+++ b/Arrangement_on_surface_2/include/CGAL/Arr_topology_traits/Arr_spherical_topology_traits_2_impl.h
@@ -215,16 +215,16 @@ is_in_face(const Face* f, const Point_2& p, const Vertex* v) const
/*! We identify 2 main cases:
* 1. The vertical ray intersects the boundary at a halfedge. In this
- * case the x-possition of p is strictly larger than the x-possition of
- * the current-curve source, and strictly smaller than x-possition of
+ * case the x-position of p is strictly larger than the x-position of
+ * the current-curve source, and strictly smaller than x-position of
* the current-curve target, or vice versa.
* 2. The vertical ray intersects the boundary at a vertex. In this case:
- * a. the x-possition of p is strictly smaller than the x-position of the
+ * a. the x-position of p is strictly smaller than the x-position of the
* current-curve source, and equal to the x-position of the current-curve
* target, and
- * b. the x-possition of p is equal to the x-position of the next-curve
+ * b. the x-position of p is equal to the x-position of the next-curve
* source (not counting vertical curves in between), and strictly larger
- * than the x-possition of the next-curve target, or vice verase (that is,
+ * than the x-position of the next-curve target, or vice verase (that is,
* the "smaller" and "larger" interchanged).
*/
diff --git a/Arrangement_on_surface_2/include/CGAL/Curved_kernel_via_analysis_2/gfx/Curve_renderer_2.h b/Arrangement_on_surface_2/include/CGAL/Curved_kernel_via_analysis_2/gfx/Curve_renderer_2.h
index 1d74799b4a3..f9551ac46fa 100644
--- a/Arrangement_on_surface_2/include/CGAL/Curved_kernel_via_analysis_2/gfx/Curve_renderer_2.h
+++ b/Arrangement_on_surface_2/include/CGAL/Curved_kernel_via_analysis_2/gfx/Curve_renderer_2.h
@@ -1065,7 +1065,7 @@ void draw_lump(std::vector< Coord_2 >& rev_points, int& last_x,
if(set_ready)
ready = true;
- if(!test_neighbourhood(pix, back_dir, new_dir)) {
+ if(!test_neighborhood(pix, back_dir, new_dir)) {
ux = pix.x;
uy = pix.y;
if(witness == pix) { // witness subpixel is a pixel itself
@@ -1095,7 +1095,7 @@ void draw_lump(std::vector< Coord_2 >& rev_points, int& last_x,
stored_prev = prev_pix;
}
- if(!test_neighbourhood(pix, back_dir, new_dir)) {
+ if(!test_neighborhood(pix, back_dir, new_dir)) {
if(stored_dir != -1) {
pix = stored_pix;
prev_pix = stored_prev;
@@ -1257,7 +1257,7 @@ bool subdivide(Pixel_2& pix, int back_dir, int& new_dir) {
pix.sub_y = (pix.sub_y<<1) + (idx>>1);
//Gfx_DETAILED_OUT("subpixel index: " << idx << " (" << pix.sub_x << "; "
// << pix.sub_y << ")" << std::endl);
- if(!test_neighbourhood(pix, back_dir, new_dir))
+ if(!test_neighborhood(pix, back_dir, new_dir))
return subdivide(pix,back_dir,new_dir);
//Gfx_DETAILED_OUT("new direction found: " << new_dir << " at a pixel:" <<
//pix << std::endl);
@@ -1313,7 +1313,7 @@ bool get_seed_point(const Rational& seed, Pixel_2& start, int *dir,
<< start.level << std::endl;
throw internal::Insufficient_rasterize_precision_exception();
}
- //dump_neighbourhood(start);
+ //dump_neighborhood(start);
if(limit(engine.pixel_w/NT(lvl))||limit(engine.pixel_h/NT(lvl))) {
std::cerr << "get_seed_point: too small subpixel size: " <<
@@ -1425,7 +1425,7 @@ bool test_pixel(const Pixel_2& pix, int *dir, int *b_taken, bool& b_coincide)
/*
Gfx_OUT("test pixel: " << pix << "--------------------------------\n");
- dump_neighbourhood(pix);
+ dump_neighborhood(pix);
Gfx_OUT("----------------------------------------------\n\n");*/
b_coincide = false;
@@ -1913,7 +1913,7 @@ inline void get_polynomials(int var, Stripe& stripe) {
* if \c CGAL_CKVA_RENDER_WITH_REFINEMENT is set, in case of success \c pix
* receives double approximations of intersection point
*/
-bool test_neighbourhood(Pixel_2& pix, int dir, int& new_dir)
+bool test_neighborhood(Pixel_2& pix, int dir, int& new_dir)
{
NT lvl = NT(one << pix.level);
NT inv = NT(1.0) / lvl;
@@ -2258,6 +2258,11 @@ Lexit:
pix.yv = CGAL::to_double(engine.y_min + y*engine.pixel_h);
return ret;
}
+/*! \copydoc test_neighborhood
+ * \deprecated please use #test_neighborhood */
+CGAL_DEPRECATED bool test_neighbourhood(Pixel_2& pix, int dir, int& new_dir)
+{ return test_neighborhood(pix, new_dir); }
+
#endif // CGAL_CKVA_RENDER_WITH_REFINEMENT
//! \brief returns whether a polynomial has zero over an interval,
@@ -2585,7 +2590,7 @@ inline bool is_isolated_pixel(const Pixel_2& /* pix */) {
// DEBUG ONLY
#ifdef Gfx_USE_OUT
-void dump_neighbourhood(const Pixel_2& pix) {
+void dump_neighborhood(const Pixel_2& pix) {
CGAL::IO::set_mode(std::cerr, CGAL::IO::PRETTY);
CGAL::IO::set_mode(std::cout, CGAL::IO::PRETTY);
@@ -2764,8 +2769,10 @@ void dump_neighbourhood(const Pixel_2& pix) {
Gfx_OUT("sign change at segment 2" << std::endl);
}
#else
-void dump_neighbourhood(const Pixel_2&) { }
+void dump_neighborhood(const Pixel_2&) { }
#endif // Gfx_USE_OUT
+CGAL_DEPRECATED void dump_neighbourhood(const Pixel_2& pix)
+{ dump_neighborhood(pix); }
//!@}
}; // class Curve_renderer_2<>
diff --git a/Arrangement_on_surface_2/test/Arrangement_on_surface_2/test_configuration.h b/Arrangement_on_surface_2/test/Arrangement_on_surface_2/test_configuration.h
index dfd25a01536..2a4baa7609b 100644
--- a/Arrangement_on_surface_2/test/Arrangement_on_surface_2/test_configuration.h
+++ b/Arrangement_on_surface_2/test/Arrangement_on_surface_2/test_configuration.h
@@ -1,7 +1,7 @@
#ifndef CGAL_TEST_CONFIGURATION_H
#define CGAL_TEST_CONFIGURATION_H
-/*! This files contains define statements, include statement, and typedef
+/*! This file contains define statements, include statement, and typedef
* of the number types, kernel, and traits used.
*
*/
diff --git a/BGL/examples/BGL_LCC/CMakeLists.txt b/BGL/examples/BGL_LCC/CMakeLists.txt
index 9264e681521..f9230373e23 100644
--- a/BGL/examples/BGL_LCC/CMakeLists.txt
+++ b/BGL/examples/BGL_LCC/CMakeLists.txt
@@ -7,23 +7,6 @@ project(BGL_LCC_Examples)
# CGAL and its components
find_package(CGAL REQUIRED)
-# Boost and its components
-find_package(Boost REQUIRED)
-
-if(NOT Boost_FOUND)
-
- message(
- STATUS "This project requires the Boost library, and will not be compiled.")
-
- return()
-
-endif()
-
-# include for local directory
-
-# Creating entries for all C++ files with "main" routine
-# ##########################################################
-
# create a target per cppfile
file(
GLOB_RECURSE cppfiles
diff --git a/BGL/examples/BGL_OpenMesh/CMakeLists.txt b/BGL/examples/BGL_OpenMesh/CMakeLists.txt
index ca213799b53..aa4e0e208f2 100644
--- a/BGL/examples/BGL_OpenMesh/CMakeLists.txt
+++ b/BGL/examples/BGL_OpenMesh/CMakeLists.txt
@@ -7,38 +7,11 @@ project(BGL_OpenMesh_Examples)
# CGAL and its components
find_package(CGAL REQUIRED)
-# Boost and its components
-find_package(Boost REQUIRED)
-
-if(NOT Boost_FOUND)
-
- message(
- STATUS "This project requires the Boost library, and will not be compiled.")
-
- return()
-
-endif()
-
-find_package(OpenMesh QUIET)
-
+find_package(OpenMesh)
if(OpenMesh_FOUND)
include(UseOpenMesh)
-else()
-
- message(
- STATUS "NOTICE: These examples require OpenMesh and will not be compiled.")
- return()
-
-endif()
-
-# include for local directory
-
-# include for local package
-
-# Creating entries for all C++ files with "main" routine
-# ##########################################################
-
-if(OpenMesh_FOUND)
create_single_source_cgal_program("TriMesh.cpp")
target_link_libraries(TriMesh PRIVATE ${OPENMESH_LIBRARIES})
+else()
+ message("NOTICE: This project requires OpenMesh and will not be compiled.")
endif()
diff --git a/BGL/examples/BGL_graphcut/CMakeLists.txt b/BGL/examples/BGL_graphcut/CMakeLists.txt
index c9385bee6d9..af873296cab 100644
--- a/BGL/examples/BGL_graphcut/CMakeLists.txt
+++ b/BGL/examples/BGL_graphcut/CMakeLists.txt
@@ -8,25 +8,5 @@ project(BGL_graphcut_Examples)
# CGAL and its components
find_package(CGAL REQUIRED)
-# Boost and its components
-find_package(Boost REQUIRED)
-
-if(NOT Boost_FOUND)
-
- message(
- STATUS "This project requires the Boost library, and will not be compiled.")
-
- return()
-
-endif()
-
-# include for local directory
-
-# include for local package
-
-# Creating entries for all C++ files with "main" routine
-# ##########################################################
-
create_single_source_cgal_program("alpha_expansion_example.cpp")
-create_single_source_cgal_program(
- "face_selection_borders_regularization_example.cpp")
+create_single_source_cgal_program("face_selection_borders_regularization_example.cpp")
diff --git a/BGL/examples/BGL_polyhedron_3/CMakeLists.txt b/BGL/examples/BGL_polyhedron_3/CMakeLists.txt
index 4179ca63745..9fbe55b6e75 100644
--- a/BGL/examples/BGL_polyhedron_3/CMakeLists.txt
+++ b/BGL/examples/BGL_polyhedron_3/CMakeLists.txt
@@ -7,54 +7,28 @@ project(BGL_polyhedron_3_Examples)
# CGAL and its components
find_package(CGAL REQUIRED)
-# Boost and its components
-find_package(Boost REQUIRED)
-
-if(NOT Boost_FOUND)
-
- message(
- STATUS "This project requires the Boost library, and will not be compiled.")
-
- return()
-
-endif()
-
-# include for local directory
-
-# include for local package
-
-# Creating entries for all C++ files with "main" routine
-# ##########################################################
-
create_single_source_cgal_program("distance.cpp")
-
create_single_source_cgal_program("incident_vertices.cpp")
-
create_single_source_cgal_program("kruskal.cpp")
-
create_single_source_cgal_program("kruskal_with_stored_id.cpp")
-
create_single_source_cgal_program("normals.cpp")
-
create_single_source_cgal_program("range.cpp")
-
create_single_source_cgal_program("transform_iterator.cpp")
-
create_single_source_cgal_program("copy_polyhedron.cpp")
-find_package( OpenMesh QUIET )
+find_package(OpenMesh QUIET)
if(OpenMesh_FOUND)
- target_link_libraries( copy_polyhedron PRIVATE ${OPENMESH_LIBRARIES} )
- target_compile_definitions( copy_polyhedron PRIVATE -DCGAL_USE_OPENMESH )
+ target_link_libraries(copy_polyhedron PRIVATE ${OPENMESH_LIBRARIES})
+ target_compile_definitions(copy_polyhedron PRIVATE -DCGAL_USE_OPENMESH)
else()
- message(STATUS "Examples that use OpenMesh will not be compiled.")
+ message(STATUS "NOTICE: The example 'copy_polyhedron' will not use OpenMesh.")
endif()
-find_package( METIS )
+find_package(METIS QUIET)
include(CGAL_METIS_support)
-if( TARGET CGAL::METIS_support )
- create_single_source_cgal_program( "polyhedron_partition.cpp" )
- target_link_libraries( polyhedron_partition PUBLIC CGAL::METIS_support)
+if(TARGET CGAL::METIS_support)
+ create_single_source_cgal_program("polyhedron_partition.cpp")
+ target_link_libraries(polyhedron_partition PUBLIC CGAL::METIS_support)
else()
- message( STATUS "Examples that use the METIS library will not be compiled." )
+ message(STATUS "NOTICE: The example 'polyhedron_partition' requires the METIS library, and will not be compiled.")
endif()
diff --git a/BGL/examples/BGL_surface_mesh/CMakeLists.txt b/BGL/examples/BGL_surface_mesh/CMakeLists.txt
index b96ec0308e1..551484979a1 100644
--- a/BGL/examples/BGL_surface_mesh/CMakeLists.txt
+++ b/BGL/examples/BGL_surface_mesh/CMakeLists.txt
@@ -3,8 +3,6 @@ project(BGL_surface_mesh_Examples)
find_package(CGAL REQUIRED)
-# include for local package
-
create_single_source_cgal_program("prim.cpp")
create_single_source_cgal_program("gwdwg.cpp")
create_single_source_cgal_program("seam_mesh.cpp")
@@ -12,11 +10,11 @@ create_single_source_cgal_program("write_inp.cpp")
create_single_source_cgal_program("surface_mesh_dual.cpp")
create_single_source_cgal_program("connected_components.cpp")
-find_package(METIS)
+find_package(METIS QUIET)
include(CGAL_METIS_support)
-if( TARGET CGAL::METIS_support )
- create_single_source_cgal_program( "surface_mesh_partition.cpp" )
- target_link_libraries( surface_mesh_partition PUBLIC CGAL::METIS_support )
+if(TARGET CGAL::METIS_support)
+ create_single_source_cgal_program("surface_mesh_partition.cpp")
+ target_link_libraries(surface_mesh_partition PUBLIC CGAL::METIS_support)
else()
- message(STATUS "Examples that use the METIS library will not be compiled.")
+ message(STATUS "NOTICE: Examples that use the METIS library will not be compiled.")
endif()
diff --git a/BGL/include/CGAL/boost/graph/Face_filtered_graph.h b/BGL/include/CGAL/boost/graph/Face_filtered_graph.h
index 25a75abed29..e1e9f6f0a6f 100644
--- a/BGL/include/CGAL/boost/graph/Face_filtered_graph.h
+++ b/BGL/include/CGAL/boost/graph/Face_filtered_graph.h
@@ -588,31 +588,31 @@ struct Face_filtered_graph
return selected_halfedges.count();
}
- Property_map_binder::value_type>::type>
+ Compose_property_map::value_type>::type>
get_face_index_map() const
{
is_imap_in_use.set(0);
initialize_face_indices();
- return bind_property_maps(fimap, make_property_map(face_indices));
+ return make_compose_property_map(fimap, make_property_map(face_indices));
}
- Property_map_binder::value_type>::type>
+ Compose_property_map::value_type>::type>
get_vertex_index_map() const
{
is_imap_in_use.set(1);
initialize_vertex_indices();
- return bind_property_maps(vimap, make_property_map(vertex_indices) );
+ return make_compose_property_map(vimap, make_property_map(vertex_indices) );
}
- Property_map_binder::value_type >::type>
+ Compose_property_map::value_type >::type>
get_halfedge_index_map() const
{
is_imap_in_use.set(2);
initialize_halfedge_indices();
- return bind_property_maps(himap, make_property_map(halfedge_indices) );
+ return make_compose_property_map(himap, make_property_map(halfedge_indices) );
}
/// returns `true` if around any vertex of a selected face there is at most a single umbrella
@@ -1322,7 +1322,7 @@ struct property_map, boost
typedef CGAL::Face_filtered_graph FFG;
typedef typename FFG::FIM FIM;
- typedef typename CGAL::Property_map_binder::value_type>::type> type;
typedef type const_type;
@@ -1334,7 +1334,7 @@ struct property_map, boost
typedef CGAL::Face_filtered_graph FFG;
typedef typename FFG::VIM VIM;
- typedef typename CGAL::Property_map_binder::value_type>::type> type;
typedef type const_type;
@@ -1346,7 +1346,7 @@ struct property_map, boost
typedef CGAL::Face_filtered_graph FFG;
typedef typename FFG::HIM HIM;
- typedef typename CGAL::Property_map_binder::value_type>::type> type;
typedef type const_type;
diff --git a/BGL/include/CGAL/boost/graph/IO/polygon_mesh_io.h b/BGL/include/CGAL/boost/graph/IO/polygon_mesh_io.h
index 6c156266172..d60af3c9949 100644
--- a/BGL/include/CGAL/boost/graph/IO/polygon_mesh_io.h
+++ b/BGL/include/CGAL/boost/graph/IO/polygon_mesh_io.h
@@ -201,6 +201,13 @@ bool read_polygon_mesh(const std::string& fname,
* \cgalParamExtra{This parameter is only meaningful while using \ascii encoding.}
* \cgalParamNEnd
*
+ * \cgalParamNBegin{use_binary_mode}
+ * \cgalParamDescription{indicates whether data should be written in binary (`true`) or in \ascii (`false`)}
+ * \cgalParamType{Boolean}
+ * \cgalParamDefault{`true`}
+ * \cgalParamExtra{This parameter is only meaningful for formats that support binary encoding.}
+ * \cgalParamNEnd
+ *
* \cgalParamNBegin{verbose}
* \cgalParamDescription{whether extra information is printed when an incident occurs during reading}
* \cgalParamType{Boolean}
diff --git a/BGL/include/CGAL/boost/graph/named_params_helper.h b/BGL/include/CGAL/boost/graph/named_params_helper.h
index b70872a7334..1d68f2a6f87 100644
--- a/BGL/include/CGAL/boost/graph/named_params_helper.h
+++ b/BGL/include/CGAL/boost/graph/named_params_helper.h
@@ -15,6 +15,8 @@
#include
#include
#include
+#include
+#include
#include
#include
@@ -276,34 +278,37 @@ public:
typedef typename CGAL::Identity_property_map const_type;
};
-template
+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 Default::Get>::type DefaultPMap;
+ typedef typename Default::Get>::type 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 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 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 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;
+ typedef typename Geom_traits::FT FT; // public
typedef Constant_property_map DummyNormalMap;
+ typedef typename Default::Get::type DefaultNMap;
- typedef typename internal_np::Lookup_named_param_def::type Normal_map;
+ typedef typename internal_np::Lookup_named_param_def<
+ internal_np::normal_t,
+ NamedParameters,
+ DefaultNMap
+ > ::type Normal_map; // public
static Point_map get_point_map(PointRange&, const NamedParameters& np)
{
diff --git a/BGL/include/CGAL/draw_face_graph.h b/BGL/include/CGAL/draw_face_graph.h
index 02a96433146..7e1de8031ec 100644
--- a/BGL/include/CGAL/draw_face_graph.h
+++ b/BGL/include/CGAL/draw_face_graph.h
@@ -19,21 +19,32 @@
#include
#include
-namespace CGAL
-{
+namespace CGAL {
// Default color functor; user can change it to have its own face color
struct DefaultColorFunctorFaceGraph
{
template
- CGAL::IO::Color operator()(const Graph&,
- typename boost::graph_traits::face_descriptor fh) const
+ CGAL::IO::Color operator()(const Graph& /*g*/,
+ typename boost::graph_traits::face_descriptor /*f*/) const
{
- if (fh==boost::graph_traits::null_face()) // use to get the mono color
- return CGAL::IO::Color(100, 125, 200); // R G B between 0-255
-
return get_random_color(CGAL::get_default_random());
}
+
+ // edges and vertices are black by default
+ template
+ CGAL::IO::Color operator()(const Graph& /*g*/,
+ typename boost::graph_traits::edge_descriptor /*e*/) const
+ {
+ return IO::black();
+ }
+
+ template
+ CGAL::IO::Color operator()(const Graph& /*g*/,
+ typename boost::graph_traits::vertex_descriptor /*v*/) const
+ {
+ return IO::black();
+ }
};
class SimpleFaceGraphViewerQt : public Basic_viewer_qt
@@ -48,28 +59,28 @@ public:
}
/// Construct the viewer.
- /// @param amesh the surface mesh to view
+ /// @param g the face graph to view
/// @param title the title of the window
/// @param anofaces if true, do not draw faces (faces are not computed; this can be
- /// useful for very big object where this time could be long)
- template
+ /// useful for very big objects where this time could be long)
+ template
SimpleFaceGraphViewerQt(QWidget* parent,
- const SM& amesh,
- const char* title="Basic Surface_mesh Viewer",
+ const Graph& g,
+ const char* title="Basic Face Graph Viewer",
bool anofaces=false) :
- SimpleFaceGraphViewerQt(parent, amesh, title, anofaces, DefaultColorFunctorFaceGraph())
+ SimpleFaceGraphViewerQt(parent, g, title, anofaces, DefaultColorFunctorFaceGraph())
{
}
- template
+ template
SimpleFaceGraphViewerQt(QWidget* parent,
- const SM& amesh,
+ const Graph& g,
const char* title,
bool anofaces,
ColorFunctor fcolor) :
// First draw: no vertex; edges, faces; mono-color; inverse normal
Base(parent, title, false, true, true, true, false),
- m_compute_elements_impl(compute_elements_functor(amesh, anofaces, fcolor))
+ m_compute_elements_impl(compute_elements_functor(g, anofaces, fcolor))
{
}
@@ -82,43 +93,42 @@ public:
m_compute_elements_impl();
}
- template
- void set_face_graph(const SM& amesh,
+ template
+ void set_face_graph(const Graph& g,
bool anofaces,
ColorFunctor fcolor) {
- m_compute_elements_impl = compute_elements_functor(amesh, anofaces, fcolor);
+ m_compute_elements_impl = compute_elements_functor(g, anofaces, fcolor);
}
- template
- void set_face_graph(const SM& amesh,
+ template
+ void set_face_graph(const Graph& g,
bool anofaces=false) {
- set_mesh(amesh, anofaces, DefaultColorFunctorFaceGraph());
+ set_mesh(g, anofaces, DefaultColorFunctorFaceGraph());
}
protected:
- template
+ template
std::function
- compute_elements_functor(const SM& sm,
+ compute_elements_functor(const Graph& g,
bool anofaces,
ColorFunctor fcolor)
{
- using Point =
- typename boost::property_map_value::type;
+ using Point = typename boost::property_map_value::type;
using Kernel = typename CGAL::Kernel_traits::Kernel;
using Vector = typename Kernel::Vector_3;
- auto vnormals = get(CGAL::dynamic_vertex_property_t(), sm);
- auto point_pmap = get(CGAL::vertex_point, sm);
- for (auto v : vertices(sm))
+ auto vnormals = get(CGAL::dynamic_vertex_property_t(), g);
+ auto point_pmap = get(CGAL::vertex_point, g);
+ for (auto v : vertices(g))
{
Vector n(NULL_VECTOR);
int i=0;
- for (auto h : halfedges_around_target(halfedge(v, sm), sm))
+ for (auto h : halfedges_around_target(halfedge(v, g), g))
{
- if (!is_border(h, sm))
+ if (!is_border(h, g))
{
Vector ni = CGAL::cross_product(
- Vector(get(point_pmap, source(h, sm)), get(point_pmap, target(h, sm))),
- Vector(get(point_pmap, target(h, sm)), get(point_pmap, target(next(h, sm), sm))));
+ Vector(get(point_pmap, source(h, g)), get(point_pmap, target(h, g))),
+ Vector(get(point_pmap, target(h, g)), get(point_pmap, target(next(h, g), g))));
if (ni != NULL_VECTOR)
{
n+=ni;
@@ -131,41 +141,41 @@ protected:
// This function return a lambda expression, type-erased in a
// `std::function` object.
- return [this, &sm, vnormals, anofaces, fcolor, point_pmap]()
+ return [this, &g, vnormals, anofaces, fcolor, point_pmap]()
{
this->clear();
if (!anofaces)
{
- for (auto fh: faces(sm))
+ for (auto fh: faces(g))
{
- if (fh!=boost::graph_traits::null_face())
- {
- CGAL::IO::Color c=fcolor(sm, fh);
- face_begin(c);
- auto hd=halfedge(fh, sm);
- const auto first_hd = hd;
- do
- {
- auto v = source(hd, sm);
- add_point_in_face(get(point_pmap, v), get(vnormals, v));
- hd=next(hd, sm);
- }
- while(hd!=first_hd);
- face_end();
- }
+ const CGAL::IO::Color& c = fcolor(g, fh);
+ face_begin(c);
+ auto hd=halfedge(fh, g);
+ const auto first_hd = hd;
+ do
+ {
+ auto v = source(hd, g);
+ add_point_in_face(get(point_pmap, v), get(vnormals, v));
+ hd=next(hd, g);
+ }
+ while(hd!=first_hd);
+ face_end();
}
}
- for (auto e: edges(sm))
+ for (auto e: edges(g))
{
- add_segment(get(point_pmap, source(halfedge(e, sm), sm)),
- get(point_pmap, target(halfedge(e, sm), sm)));
+ const CGAL::IO::Color& c = fcolor(g, e);
+ add_segment(get(point_pmap, source(halfedge(e, g), g)),
+ get(point_pmap, target(halfedge(e, g), g)),
+ c);
}
- for (auto v: vertices(sm))
+ for (auto v: vertices(g))
{
- this->add_point(get(point_pmap, v));
+ const CGAL::IO::Color& c = fcolor(g, v);
+ this->add_point(get(point_pmap, v), c);
}
};
}
diff --git a/BGL/test/BGL/CMakeLists.txt b/BGL/test/BGL/CMakeLists.txt
index da8baf25ccb..3f81213dd21 100644
--- a/BGL/test/BGL/CMakeLists.txt
+++ b/BGL/test/BGL/CMakeLists.txt
@@ -7,100 +7,44 @@ project(BGL_Tests)
# CGAL and its components
find_package(CGAL REQUIRED)
-# Boost and its components
-find_package(Boost)
-
-if(NOT Boost_FOUND)
- message(
- STATUS "This project requires the Boost library, and will not be compiled.")
- return()
-endif()
+create_single_source_cgal_program("test_split.cpp")
+create_single_source_cgal_program("next.cpp")
+create_single_source_cgal_program("test_circulator.cpp")
+create_single_source_cgal_program("test_Gwdwg.cpp")
+create_single_source_cgal_program("test_bgl_dual.cpp")
+create_single_source_cgal_program("graph_concept_Polyhedron_3.cpp")
+create_single_source_cgal_program("graph_concept_Dual.cpp")
+create_single_source_cgal_program("graph_concept_Triangulation_2.cpp")
+create_single_source_cgal_program("graph_concept_Surface_mesh.cpp")
+create_single_source_cgal_program("graph_concept_Seam_mesh_Surface_mesh.cpp")
+create_single_source_cgal_program("graph_concept_Gwdwg_Surface_mesh.cpp")
+create_single_source_cgal_program("graph_concept_Linear_cell_complex.cpp")
+create_single_source_cgal_program("graph_concept_Arrangement_2.cpp")
+create_single_source_cgal_program("graph_concept_Derived.cpp" )
+create_single_source_cgal_program("test_clear.cpp" )
+create_single_source_cgal_program("test_helpers.cpp")
+create_single_source_cgal_program("test_Has_member_clear.cpp")
+create_single_source_cgal_program("test_Has_member_id.cpp")
+create_single_source_cgal_program("test_bgl_read_write.cpp")
+create_single_source_cgal_program("graph_concept_Face_filtered_graph.cpp")
+create_single_source_cgal_program("test_Manifold_face_removal.cpp")
+create_single_source_cgal_program("test_Regularize_face_selection_borders.cpp")
+create_single_source_cgal_program("test_Face_filtered_graph.cpp")
+create_single_source_cgal_program("test_Euler_operations.cpp")
+create_single_source_cgal_program("test_test_face.cpp" )
+create_single_source_cgal_program("test_Collapse_edge.cpp" )
+create_single_source_cgal_program("test_Collapse_edge_with_constraints.cpp" )
+create_single_source_cgal_program("test_graph_traits.cpp")
+create_single_source_cgal_program("test_Properties.cpp")
+create_single_source_cgal_program("bench_read_from_stream_vs_add_face_and_add_faces.cpp")
+create_single_source_cgal_program("graph_traits_inheritance.cpp" )
+create_single_source_cgal_program("test_deprecated_io.cpp")
find_package(OpenMesh QUIET)
-
if(OpenMesh_FOUND)
include(UseOpenMesh)
add_definitions(-DCGAL_USE_OPENMESH)
-else()
- message(STATUS "Tests that use OpenMesh will not be compiled.")
-endif()
-# include for local package
-
-# Creating entries for all .cpp/.C files with "main" routine
-# ##########################################################
-
-if(OpenMesh_FOUND)
- create_single_source_cgal_program("graph_concept_OpenMesh.cpp")
- target_link_libraries(graph_concept_OpenMesh PRIVATE ${OPENMESH_LIBRARIES})
-endif()
-
-create_single_source_cgal_program("test_split.cpp")
-
-create_single_source_cgal_program("next.cpp")
-
-create_single_source_cgal_program("test_circulator.cpp")
-
-create_single_source_cgal_program("test_Gwdwg.cpp")
-
-create_single_source_cgal_program("test_bgl_dual.cpp")
-
-create_single_source_cgal_program("graph_concept_Polyhedron_3.cpp")
-
-create_single_source_cgal_program("graph_concept_Dual.cpp")
-
-create_single_source_cgal_program("graph_concept_Triangulation_2.cpp")
-
-create_single_source_cgal_program("graph_concept_Surface_mesh.cpp")
-
-create_single_source_cgal_program("graph_concept_Seam_mesh_Surface_mesh.cpp")
-
-create_single_source_cgal_program("graph_concept_Gwdwg_Surface_mesh.cpp")
-
-create_single_source_cgal_program("graph_concept_Linear_cell_complex.cpp")
-
-create_single_source_cgal_program("graph_concept_Arrangement_2.cpp")
-
-create_single_source_cgal_program( "graph_concept_Derived.cpp" )
-
-create_single_source_cgal_program( "test_clear.cpp" )
-
-create_single_source_cgal_program("test_helpers.cpp")
-
-create_single_source_cgal_program("test_Has_member_clear.cpp")
-
-create_single_source_cgal_program("test_Has_member_id.cpp")
-
-create_single_source_cgal_program("test_bgl_read_write.cpp")
-
-create_single_source_cgal_program("graph_concept_Face_filtered_graph.cpp")
-
-create_single_source_cgal_program("test_Manifold_face_removal.cpp")
-
-create_single_source_cgal_program("test_Regularize_face_selection_borders.cpp")
-
-create_single_source_cgal_program("test_Face_filtered_graph.cpp")
-
-create_single_source_cgal_program("test_Euler_operations.cpp")
-
-create_single_source_cgal_program( "test_test_face.cpp" )
-
-create_single_source_cgal_program( "test_Collapse_edge.cpp" )
-
-create_single_source_cgal_program( "test_Collapse_edge_with_constraints.cpp" )
-
-create_single_source_cgal_program("test_graph_traits.cpp")
-
-create_single_source_cgal_program("test_Properties.cpp")
-
-create_single_source_cgal_program(
- "bench_read_from_stream_vs_add_face_and_add_faces.cpp")
-
-create_single_source_cgal_program( "graph_traits_inheritance.cpp" )
-
-create_single_source_cgal_program("test_deprecated_io.cpp")
-
-if(OpenMesh_FOUND)
target_link_libraries(test_clear PRIVATE ${OPENMESH_LIBRARIES})
target_compile_definitions(test_clear PRIVATE -DCGAL_USE_OPENMESH)
target_link_libraries(test_Euler_operations PRIVATE ${OPENMESH_LIBRARIES})
@@ -115,6 +59,11 @@ if(OpenMesh_FOUND)
target_compile_definitions(test_Properties PRIVATE -DCGAL_USE_OPENMESH)
target_link_libraries(test_bgl_read_write PRIVATE ${OPENMESH_LIBRARIES})
target_compile_definitions(test_bgl_read_write PRIVATE -DCGAL_USE_OPENMESH)
+
+ create_single_source_cgal_program("graph_concept_OpenMesh.cpp")
+ target_link_libraries(graph_concept_OpenMesh PRIVATE ${OPENMESH_LIBRARIES})
+else()
+ message(STATUS "NOTICE: Tests that use OpenMesh will not be compiled.")
endif()
find_package(VTK QUIET COMPONENTS vtkCommonCore vtkIOCore vtkIOLegacy vtkIOXML vtkFiltersCore vtkFiltersSources)
@@ -150,5 +99,5 @@ if(3MF_LIBRARIES AND 3MF_INCLUDE_DIR AND EXISTS "${3MF_INCLUDE_DIR}/Model/COM/N
target_link_libraries(test_3mf_to_sm PRIVATE ${3MF_LIBRARIES})
target_compile_definitions(test_3mf_to_sm PRIVATE -DCGAL_LINKED_WITH_3MF)
else()
- message(STATUS "NOTICE : This program requires the lib3MF library, and will not be compiled.")
+ message(STATUS "NOTICE: The test 'test_3mf_to_sm' requires the lib3MF library, and will not be compiled.")
endif()
diff --git a/Barycentric_coordinates_2/benchmark/Barycentric_coordinates_2/CMakeLists.txt b/Barycentric_coordinates_2/benchmark/Barycentric_coordinates_2/CMakeLists.txt
index f8b37af9c4b..c7341df3d11 100644
--- a/Barycentric_coordinates_2/benchmark/Barycentric_coordinates_2/CMakeLists.txt
+++ b/Barycentric_coordinates_2/benchmark/Barycentric_coordinates_2/CMakeLists.txt
@@ -6,8 +6,6 @@ project(Barycentric_coordinates_2_Benchmarks)
cmake_minimum_required(VERSION 3.1...3.23)
find_package(CGAL REQUIRED COMPONENTS Core)
-include(${CGAL_USE_FILE})
-include(CGAL_CreateSingleSourceCGALProgram)
create_single_source_cgal_program("benchmark_segment_coordinates.cpp")
create_single_source_cgal_program("benchmark_triangle_coordinates.cpp")
@@ -19,12 +17,10 @@ create_single_source_cgal_program("benchmark_mv_34_vertices.cpp")
find_package(Eigen3 3.1.0 QUIET) # (3.1.0 or greater)
include(CGAL_Eigen3_support)
if(TARGET CGAL::Eigen3_support)
-
create_single_source_cgal_program("benchmark_hm_4_vertices.cpp")
target_link_libraries(benchmark_hm_4_vertices PUBLIC CGAL::Eigen3_support)
create_single_source_cgal_program("benchmark_hm_n_vertices.cpp")
target_link_libraries(benchmark_hm_n_vertices PUBLIC CGAL::Eigen3_support)
-
else()
- message(NOTICE "Several coordinates require the Eigen library, and will not be compiled.")
+ message(STATUS "NOTICE: Several benchmarks require the Eigen library, and will not be compiled.")
endif()
diff --git a/Barycentric_coordinates_2/examples/Barycentric_coordinates_2/CMakeLists.txt b/Barycentric_coordinates_2/examples/Barycentric_coordinates_2/CMakeLists.txt
index d5d5974e3b3..7708fc685df 100644
--- a/Barycentric_coordinates_2/examples/Barycentric_coordinates_2/CMakeLists.txt
+++ b/Barycentric_coordinates_2/examples/Barycentric_coordinates_2/CMakeLists.txt
@@ -20,14 +20,12 @@ create_single_source_cgal_program("deprecated_coordinates.cpp")
find_package(Eigen3 3.1.0 QUIET) # (3.1.0 or greater)
include(CGAL_Eigen3_support)
if(TARGET CGAL::Eigen3_support)
-
create_single_source_cgal_program("affine_coordinates.cpp")
target_link_libraries(affine_coordinates PUBLIC CGAL::Eigen3_support)
create_single_source_cgal_program("harmonic_coordinates.cpp")
target_link_libraries(harmonic_coordinates PUBLIC CGAL::Eigen3_support)
create_single_source_cgal_program("shape_deformation.cpp")
target_link_libraries(shape_deformation PUBLIC CGAL::Eigen3_support)
-
else()
- message(NOTICE "Several coordinates require the Eigen library, and will not be compiled.")
+ message(STATUS "NOTICE: Several examples require the Eigen library, and will not be compiled.")
endif()
diff --git a/Barycentric_coordinates_2/test/Barycentric_coordinates_2/CMakeLists.txt b/Barycentric_coordinates_2/test/Barycentric_coordinates_2/CMakeLists.txt
index 8884394ec83..d1dcba597f7 100644
--- a/Barycentric_coordinates_2/test/Barycentric_coordinates_2/CMakeLists.txt
+++ b/Barycentric_coordinates_2/test/Barycentric_coordinates_2/CMakeLists.txt
@@ -45,7 +45,6 @@ create_single_source_cgal_program("test_dh_deprecated_api.cpp")
find_package(Eigen3 3.1.0 QUIET) # (3.1.0 or greater)
include(CGAL_Eigen3_support)
if(TARGET CGAL::Eigen3_support)
-
create_single_source_cgal_program("test_hm_unit_square.cpp")
target_link_libraries(test_hm_unit_square PUBLIC CGAL::Eigen3_support)
create_single_source_cgal_program("test_hm_const_linear_precision.cpp")
@@ -56,7 +55,6 @@ if(TARGET CGAL::Eigen3_support)
target_link_libraries(test_bc_projection_traits PUBLIC CGAL::Eigen3_support)
create_single_source_cgal_program("test_bc_all_coordinates.cpp")
target_link_libraries(test_bc_all_coordinates PUBLIC CGAL::Eigen3_support)
-
else()
- message(NOTICE "Several coordinates require the Eigen library, and will not be compiled.")
+ message(STATUS "NOTICE: Several tests require the Eigen library, and will not be compiled.")
endif()
diff --git a/Boolean_set_operations_2/doc/Boolean_set_operations_2/CGAL/Boolean_set_operations_2.h b/Boolean_set_operations_2/doc/Boolean_set_operations_2/CGAL/Boolean_set_operations_2.h
index 9b35c3ed574..7e7f330a744 100644
--- a/Boolean_set_operations_2/doc/Boolean_set_operations_2/CGAL/Boolean_set_operations_2.h
+++ b/Boolean_set_operations_2/doc/Boolean_set_operations_2/CGAL/Boolean_set_operations_2.h
@@ -737,7 +737,7 @@ namespace CGAL {
/*! determines whether two polygons intersect in their interior.
* \param pgn1 the 1st input polygon.
* \param pgn2 the 2nd input polygon.
- * \return `true` if `pgn1` and `pgn2` intersect in their interiro and `false`
+ * \return `true` if `pgn1` and `pgn2` intersect in their interior and `false`
* otherwise.
*/
template
@@ -755,7 +755,7 @@ bool do_intersect(const Polygon_2& pgn1,
* bso_ssectraits_sel for more information.
* \param pgn1 the 1st input polygon.
* \param pgn2 the 2nd input polygon.
- * \return `true` if `pgn1` and `pgn2` intersect in their interiro and `false`
+ * \return `true` if `pgn1` and `pgn2` intersect in their interior and `false`
* otherwise.
*/
template
@@ -766,7 +766,7 @@ bool do_intersect(const Polygon_2& pgn1,
/*! determines whether two polygons intersect in their interior.
* \param pgn1 the 1st input polygon.
* \param pgn2 the 2nd input polygon.
- * \return `true` if `pgn1` and `pgn2` intersect in their interiro and `false`
+ * \return `true` if `pgn1` and `pgn2` intersect in their interior and `false`
* otherwise.
*/
template
@@ -785,7 +785,7 @@ bool do_intersect(const Polygon_2& pgn1,
* information.
* \param pgn1 the 1st input polygon.
* \param pgn2 the 2nd input polygon.
- * \return `true` if `pgn1` and `pgn2` intersect in their interiro and `false`
+ * \return `true` if `pgn1` and `pgn2` intersect in their interior and `false`
* otherwise.
*/
template
@@ -796,7 +796,7 @@ bool do_intersect(const Polygon_2& pgn1,
/*! determines whether two polygons intersect in their interior.
* \param pgn1 the 1st input polygon.
* \param pgn2 the 2nd input polygon.
- * \return `true` if `pgn1` and `pgn2` intersect in their interiro and `false`
+ * \return `true` if `pgn1` and `pgn2` intersect in their interior and `false`
* otherwise.
*/
template
@@ -815,7 +815,7 @@ bool do_intersect(const Polygon_with_holes_2& pgn1,
* information.
* \param pgn1 the 1st input polygon.
* \param pgn2 the 2nd input polygon.
- * \return `true` if `pgn1` and `pgn2` intersect in their interiro and `false`
+ * \return `true` if `pgn1` and `pgn2` intersect in their interior and `false`
* otherwise.
*/
template
@@ -826,7 +826,7 @@ bool do_intersect(const Polygon_with_holes_2& pgn1,
/*! determines whether two polygons with holes intersect in their interior.
* \param pgn1 the 1st input polygon.
* \param pgn2 the 2nd input polygon.
- * \return `true` if `pgn1` and `pgn2` intersect in their interiro and `false`
+ * \return `true` if `pgn1` and `pgn2` intersect in their interior and `false`
* otherwise.
*/
template
@@ -844,7 +844,7 @@ bool do_intersect(const Polygon_with_holes_2& pgn1,
* \ref bso_ssectraits_sel for more information.
* \param pgn1 the 1st input polygon.
* \param pgn2 the 2nd input polygon.
- * \return `true` if `pgn1` and `pgn2` intersect in their interiro and `false`
+ * \return `true` if `pgn1` and `pgn2` intersect in their interior and `false`
* otherwise.
*/
template
@@ -855,7 +855,7 @@ bool do_intersect(const Polygon_with_holes_2& pgn1,
/*! determines whether two general polygons intersect in their interior.
* \param pgn1 the 1st input polygon.
* \param pgn2 the 2nd input polygon.
- * \return `true` if `pgn1` and `pgn2` intersect in their interiro and `false`
+ * \return `true` if `pgn1` and `pgn2` intersect in their interior and `false`
* otherwise.
* \pre `%ArrTraits` must be a model of the concept
* `ArrangementDirectionalXMonotoneTraits_2`.
@@ -867,7 +867,7 @@ bool do_intersect(const General_polygon_2& pgn1,
/*! determines whether two general polygons intersect in their interior.
* \param pgn1 the 1st input polygon.
* \param pgn2 the 2nd input polygon.
- * \return `true` if `pgn1` and `pgn2` intersect in their interiro and `false`
+ * \return `true` if `pgn1` and `pgn2` intersect in their interior and `false`
* otherwise.
* \pre `%ArrTraits` must be a model of the concept
* `ArrangementDirectionalXMonotoneTraits_2`.
@@ -880,7 +880,7 @@ do_intersect(const General_polygon_2& pgn1,
/*! determines whether two general polygons intersect in their interior.
* \param pgn1 the 1st input polygon.
* \param pgn2 the 2nd input polygon.
- * \return `true` if `pgn1` and `pgn2` intersect in their interiro and `false`
+ * \return `true` if `pgn1` and `pgn2` intersect in their interior and `false`
* otherwise.
* \pre `%ArrTraits` must be a model of the concept
* `ArrangementDirectionalXMonotoneTraits_2`.
@@ -893,7 +893,7 @@ bool do_intersect(const General_polygon_with_holes_2
@@ -1001,7 +1001,7 @@ bool do_intersect(InputIterator1 begin1, InputIterator1 end1,
* \param pgn1 the 1st input polygon.
* \param pgn2 the 2nd input polygon.
* \param traits a traits object.
- * \return `true` if `pgn1` and `pgn2` intersect in their interiro and `false`
+ * \return `true` if `pgn1` and `pgn2` intersect in their interior and `false`
* otherwise.
* \pre `GpsTraits` must be a model of the concept `GeneralPolygonSetTraits_2`.
*/
@@ -1014,7 +1014,7 @@ bool do_intersect(const Polygon_2& pgn1,
* \param pgn1 the 1st input polygon.
* \param pgn2 the 2nd input polygon.
* \param traits a traits object.
- * \return `true` if `pgn1` and `pgn2` intersect in their interiro and `false`
+ * \return `true` if `pgn1` and `pgn2` intersect in their interior and `false`
* otherwise.
* \pre `GpsTraits` must be a model of the concept `GeneralPolygonSetTraits_2`.
*/
@@ -1028,7 +1028,7 @@ bool do_intersect(const Polygon_2& pgn1,
* \param pgn1 the 1st input polygon.
* \param pgn2 the 2nd input polygon.
* \param traits a traits object.
- * \return `true` if `pgn1` and `pgn2` intersect in their interiro and `false`
+ * \return `true` if `pgn1` and `pgn2` intersect in their interior and `false`
* otherwise.
* \pre `GpsTraits` must be a model of the concept `GeneralPolygonSetTraits_2`.
*/
@@ -1041,7 +1041,7 @@ bool do_intersect(const Polygon_with_holes_2& pgn1,
* \param pgn1 the 1st input polygon.
* \param pgn2 the 2nd input polygon.
* \param traits a traits object.
- * \return `true` if `pgn1` and `pgn2` intersect in their interiro and `false`
+ * \return `true` if `pgn1` and `pgn2` intersect in their interior and `false`
* otherwise.
* \pre `GpsTraits` must be a model of the concept `GeneralPolygonSetTraits_2`.
*/
@@ -1054,7 +1054,7 @@ bool do_intersect(const Polygon_with_holes_2& pgn1,
* \param pgn1 the 1st input polygon.
* \param pgn2 the 2nd input polygon.
* \param traits a traits object.
- * \return `true` if `pgn1` and `pgn2` intersect in their interiro and `false`
+ * \return `true` if `pgn1` and `pgn2` intersect in their interior and `false`
* otherwise.
* \pre `GpsTraits` must be a model of the concept `GeneralPolygonSetTraits_2`.
* \pre `%ArrTraits` must be a model of the concept
@@ -1069,7 +1069,7 @@ bool do_intersect(const General_polygon_2& pgn1,
* \param pgn1 the 1st input polygon.
* \param pgn2 the 2nd input polygon.
* \param traits a traits object.
- * \return `true` if `pgn1` and `pgn2` intersect in their interiro and `false`
+ * \return `true` if `pgn1` and `pgn2` intersect in their interior and `false`
* otherwise.
* \pre `GpsTraits` must be a model of the concept `GeneralPolygonSetTraits_2`.
* \pre `%ArrTraits` must be a model of the concept
@@ -1085,7 +1085,7 @@ do_intersect(const General_polygon_2& pgn1,
* \param pgn1 the 1st input polygon.
* \param pgn2 the 2nd input polygon.
* \param traits a traits object.
- * \return `true` if `pgn1` and `pgn2` intersect in their interiro and `false`
+ * \return `true` if `pgn1` and `pgn2` intersect in their interior and `false`
* otherwise.
* \pre `GpsTraits` must be a model of the concept `GeneralPolygonSetTraits_2`.
* \pre `%ArrTraits` must be a model of the concept
@@ -1102,7 +1102,7 @@ do_intersect(const General_polygon_with_holes_2>& p
* \param pgn1 the 1st input polygon.
* \param pgn2 the 2nd input polygon.
* \param traits a traits object.
- * \return `true` if `pgn1` and `pgn2` intersect in their interiro and `false`
+ * \return `true` if `pgn1` and `pgn2` intersect in their interior and `false`
* otherwise.
* \pre `GpsTraits` must be a model of the concept `GeneralPolygonSetTraits_2`.
* \pre `GpsTraits` must be a model of the concept `GeneralPolygonSetTraits_2`.
diff --git a/Boolean_set_operations_2/examples/Boolean_set_operations_2/CMakeLists.txt b/Boolean_set_operations_2/examples/Boolean_set_operations_2/CMakeLists.txt
index 73a02373208..f24ead2e8bd 100644
--- a/Boolean_set_operations_2/examples/Boolean_set_operations_2/CMakeLists.txt
+++ b/Boolean_set_operations_2/examples/Boolean_set_operations_2/CMakeLists.txt
@@ -18,8 +18,5 @@ endforeach()
if(CGAL_Qt5_FOUND)
target_link_libraries(draw_polygon_set PUBLIC CGAL::CGAL_Basic_viewer)
else()
- message(
- STATUS
- "NOTICE: The example draw_polygon_set requires Qt and drawing will be disabled."
- )
+ message(STATUS "NOTICE: The example 'draw_polygon_set' requires Qt and drawing will be disabled.")
endif()
diff --git a/Bounding_volumes/package_info/Bounding_volumes/copyright b/Bounding_volumes/package_info/Bounding_volumes/copyright
index 32607a12d14..b37116dc505 100644
--- a/Bounding_volumes/package_info/Bounding_volumes/copyright
+++ b/Bounding_volumes/package_info/Bounding_volumes/copyright
@@ -1,17 +1 @@
- ETH Zurich (Switzerland).
-Min_quadrilateral_2
-Min_sphere_of_spheres_d
-Matrix_search
-Approximate_min_ellipsoid_d
-Min_ellipse_2
-Min_circle_2
-Min_sphere_d
-Min_annulus_d
-Min_quadrilateral_2
-Min_sphere_of_spheres_d
-Matrix_search
-Approximate_min_ellipsoid_d
-Min_ellipse_2
-Min_circle_2
-Min_sphere_d
-Min_annulus_d
+ETH Zurich (Switzerland).
diff --git a/Box_intersection_d/test/Box_intersection_d/CMakeLists.txt b/Box_intersection_d/test/Box_intersection_d/CMakeLists.txt
index 1d331fd485f..56fa8d95856 100644
--- a/Box_intersection_d/test/Box_intersection_d/CMakeLists.txt
+++ b/Box_intersection_d/test/Box_intersection_d/CMakeLists.txt
@@ -6,18 +6,16 @@ project(Box_intersection_d_Tests)
find_package(CGAL REQUIRED)
-find_package(TBB)
-include(CGAL_TBB_support)
-
create_single_source_cgal_program("automated_test.cpp")
create_single_source_cgal_program("benchmark_box_intersection.cpp")
create_single_source_cgal_program("random_set_test.cpp")
create_single_source_cgal_program("test_box_grid.cpp")
create_single_source_cgal_program("test_Has_member_report.cpp")
+find_package(TBB QUIET)
+include(CGAL_TBB_support)
if(TARGET CGAL::TBB_support)
target_link_libraries(test_box_grid PUBLIC CGAL::TBB_support)
else()
- message(
- STATUS "NOTICE: Intel TBB was not found. Sequential code will be used.")
+ message(STATUS "NOTICE: Intel TBB was not found. Parallel code will not be used.")
endif()
diff --git a/CGAL_Core/examples/Core/CMakeLists.txt b/CGAL_Core/examples/Core/CMakeLists.txt
index 77eaec4e81c..d4513e22dea 100644
--- a/CGAL_Core/examples/Core/CMakeLists.txt
+++ b/CGAL_Core/examples/Core/CMakeLists.txt
@@ -5,27 +5,8 @@ project(Core_Examples)
find_package(CGAL REQUIRED COMPONENTS Core)
if(NOT CGAL_Core_FOUND)
-
- message(
- STATUS
- "This project requires the CGAL_Core library, and will not be compiled.")
+ message("NOTICE: This project requires the CGAL_Core library, and will not be compiled.")
return()
-
endif()
-# Boost and its components
-find_package(Boost)
-
-if(NOT Boost_FOUND)
-
- message(
- STATUS "This project requires the Boost library, and will not be compiled.")
-
- return()
-
-endif()
-
-# Creating entries for all .cpp/.C files with "main" routine
-# ##########################################################
-
create_single_source_cgal_program("delaunay.cpp")
diff --git a/CGAL_ImageIO/examples/CGALimageIO/CMakeLists.txt b/CGAL_ImageIO/examples/CGALimageIO/CMakeLists.txt
index a5d95b3fd05..a9e95aef718 100644
--- a/CGAL_ImageIO/examples/CGALimageIO/CMakeLists.txt
+++ b/CGAL_ImageIO/examples/CGALimageIO/CMakeLists.txt
@@ -6,15 +6,7 @@ project(CGALimageIO_Examples)
find_package(CGAL REQUIRED COMPONENTS ImageIO)
-if(CGAL_ImageIO_FOUND)
-
- create_single_source_cgal_program("convert_raw_image_to_inr.cpp")
- create_single_source_cgal_program("test_imageio.cpp")
- create_single_source_cgal_program("extract_a_sub_image.cpp")
- create_single_source_cgal_program("slice_image.cpp")
-else()
- message(
- STATUS
- "NOTICE: This demo needs the CGAL ImageIO library, and will not be compiled."
- )
-endif()
+create_single_source_cgal_program("convert_raw_image_to_inr.cpp")
+create_single_source_cgal_program("test_imageio.cpp")
+create_single_source_cgal_program("extract_a_sub_image.cpp")
+create_single_source_cgal_program("slice_image.cpp")
diff --git a/CGAL_ImageIO/include/CGAL/ImageIO.h b/CGAL_ImageIO/include/CGAL/ImageIO.h
index 45e82f5b38e..9e86bcea315 100644
--- a/CGAL_ImageIO/include/CGAL/ImageIO.h
+++ b/CGAL_ImageIO/include/CGAL/ImageIO.h
@@ -20,7 +20,7 @@
#include
#include
-#include // for uint32_t, etc.
+#include // for uint32_t, etc.
#ifdef CGAL_USE_ZLIB
#include
@@ -562,38 +562,50 @@ struct Word_type_generator
template <>
struct Word_type_generator
{
-// typedef boost::int8_t type;
+// typedef std::int8_t type;
typedef char type;
};
template <>
struct Word_type_generator
{
- typedef boost::uint8_t type;
+ typedef std::uint8_t type;
};
template <>
struct Word_type_generator
{
- typedef boost::int16_t type;
+ typedef std::int16_t type;
};
template <>
struct Word_type_generator
{
- typedef boost::uint16_t type;
+ typedef std::uint16_t type;
};
template <>
struct Word_type_generator
{
- typedef boost::int32_t type;
+ typedef std::int32_t type;
};
template <>
struct Word_type_generator
{
- typedef boost::uint32_t type;
+ typedef std::uint32_t type;
+};
+
+template <>
+struct Word_type_generator
+{
+ typedef std::int64_t type;
+};
+
+template <>
+struct Word_type_generator
+{
+ typedef std::uint64_t type;
};
template
diff --git a/CGAL_ImageIO/test/CGAL_ImageIO/CMakeLists.txt b/CGAL_ImageIO/test/CGAL_ImageIO/CMakeLists.txt
index 8e2edfb8f13..81349809977 100644
--- a/CGAL_ImageIO/test/CGAL_ImageIO/CMakeLists.txt
+++ b/CGAL_ImageIO/test/CGAL_ImageIO/CMakeLists.txt
@@ -9,8 +9,5 @@ find_package(CGAL REQUIRED COMPONENTS ImageIO)
if(WITH_CGAL_ImageIO)
create_single_source_cgal_program("test_trilinear_interpolation.cpp")
else()
- message(
- STATUS
- "NOTICE: Some tests require the CGAL_ImageIO library, and will not be compiled."
- )
+ message("NOTICE: This project requires the CGAL_ImageIO library, and will not be compiled.")
endif()
diff --git a/CGAL_ipelets/demo/CGAL_ipelets/CMakeLists.txt b/CGAL_ipelets/demo/CGAL_ipelets/CMakeLists.txt
index 0cffb49018c..f017575dd85 100644
--- a/CGAL_ipelets/demo/CGAL_ipelets/CMakeLists.txt
+++ b/CGAL_ipelets/demo/CGAL_ipelets/CMakeLists.txt
@@ -22,26 +22,21 @@ find_package(CGAL REQUIRED COMPONENTS Core)
include(${CGAL_USE_FILE})
-find_package(Eigen3 3.1.0) #(requires 3.1.0 or greater)
+find_package(Eigen3 3.1.0 QUIET) #(requires 3.1.0 or greater)
include(CGAL_Eigen3_support)
if(NOT TARGET CGAL::Eigen3_support)
- message(
- STATUS
- "NOTICE: This project requires the Eigen library, and will not be compiled."
- )
+ message("NOTICE: This project requires the Eigen library, and will not be compiled.")
return()
endif()
find_package(IPE 7)
-
if(IPE_FOUND)
- if ( NOT ${IPE_VERSION} EQUAL "7")
- message("-- Error: ${IPE_VERSION} is not a supported version of IPE (only 7 is).")
+ if(NOT ${IPE_VERSION} EQUAL "7")
+ message("NOTICE: ${IPE_VERSION} is not a supported version of IPE (only 7 is).")
set(IPE_FOUND FALSE)
endif()
endif()
-
if(IPE_FOUND AND IPE_VERSION)
message("-- Using IPE version ${IPE_VERSION} compatibility.")
@@ -119,5 +114,5 @@ if(IPE_FOUND AND IPE_VERSION)
cgal_add_compilation_test(simple_triangulation)
else()
- message(STATUS "NOTICE: This program requires the Ipe include files and library, and will not be compiled.")
+ message("NOTICE: This project requires the Ipe include files and library, and will not be compiled.")
endif()
diff --git a/CGAL_ipelets/doc/CGAL_ipelets/Doxyfile.in b/CGAL_ipelets/doc/CGAL_ipelets/Doxyfile.in
index f6220befcac..2d21e2d68fc 100644
--- a/CGAL_ipelets/doc/CGAL_ipelets/Doxyfile.in
+++ b/CGAL_ipelets/doc/CGAL_ipelets/Doxyfile.in
@@ -1,4 +1,4 @@
@INCLUDE = ${CGAL_DOC_PACKAGE_DEFAULTS}
PROJECT_NAME = "CGAL ${CGAL_DOC_VERSION} - CGAL Ipelets"
-EXAMPLE_PATH += ${CGAL_PACKAGE_DIR}/demo
+EXAMPLE_PATH = ${CGAL_PACKAGE_DIR}/demo
diff --git a/CGAL_ipelets/doc/CGAL_ipelets/examples.txt b/CGAL_ipelets/doc/CGAL_ipelets/examples.txt
index 25666965dd8..0a084d7a1f5 100644
--- a/CGAL_ipelets/doc/CGAL_ipelets/examples.txt
+++ b/CGAL_ipelets/doc/CGAL_ipelets/examples.txt
@@ -1,4 +1,3 @@
/*!
-\example CGAL_ipelets/test_grabbers.cpp
\example CGAL_ipelets/simple_triangulation.cpp
*/
diff --git a/CGAL_ipelets/examples/CGAL_ipelets/CMakeLists.txt b/CGAL_ipelets/test/CGAL_ipelets/CMakeLists.txt
similarity index 92%
rename from CGAL_ipelets/examples/CGAL_ipelets/CMakeLists.txt
rename to CGAL_ipelets/test/CGAL_ipelets/CMakeLists.txt
index 634bc854f59..8acaf9834e4 100644
--- a/CGAL_ipelets/examples/CGAL_ipelets/CMakeLists.txt
+++ b/CGAL_ipelets/test/CGAL_ipelets/CMakeLists.txt
@@ -2,7 +2,7 @@
# This is the CMake script for compiling a CGAL application.
cmake_minimum_required(VERSION 3.1...3.23)
-project(CGAL_ipelets_Examples)
+project(CGAL_ipelets_Tests)
find_package(CGAL REQUIRED)
diff --git a/CGAL_ipelets/examples/CGAL_ipelets/test_grabbers.cpp b/CGAL_ipelets/test/CGAL_ipelets/test_grabbers.cpp
similarity index 100%
rename from CGAL_ipelets/examples/CGAL_ipelets/test_grabbers.cpp
rename to CGAL_ipelets/test/CGAL_ipelets/test_grabbers.cpp
diff --git a/Cartesian_kernel/include/CGAL/Cartesian/plane_constructions_3.h b/Cartesian_kernel/include/CGAL/Cartesian/plane_constructions_3.h
index ac4ef1519c7..fe9d91a491d 100644
--- a/Cartesian_kernel/include/CGAL/Cartesian/plane_constructions_3.h
+++ b/Cartesian_kernel/include/CGAL/Cartesian/plane_constructions_3.h
@@ -41,6 +41,23 @@ plane_from_points(const typename R::Point_3 &p,
return PlaneC3(a, b, c, d);
}
+
+template
+CGAL_KERNEL_LARGE_INLINE
+PlaneC3
+plane_from_points(Origin,
+ const typename R::Point_3 &q,
+ const typename R::Point_3 &r)
+{
+ typename R::FT a, b, c, d(0);
+ plane_from_pointsC3( /* origin, */
+ q.x(), q.y(), q.z(),
+ r.x(), r.y(), r.z(),
+ a, b, c);
+ return PlaneC3(a, b, c, d);
+}
+
+
template
CGAL_KERNEL_LARGE_INLINE
PlaneC3
@@ -53,7 +70,7 @@ plane_from_point_direction(const typename R::Point_3 &p,
return PlaneC3(A, B, C, D);
}
- template
+template
CGAL_KERNEL_LARGE_INLINE
PlaneC3
plane_from_point_direction(Origin,
diff --git a/Cartesian_kernel/include/CGAL/constructions/kernel_ftC3.h b/Cartesian_kernel/include/CGAL/constructions/kernel_ftC3.h
index 7b0b79f2e90..dbc6c1c2fa1 100644
--- a/Cartesian_kernel/include/CGAL/constructions/kernel_ftC3.h
+++ b/Cartesian_kernel/include/CGAL/constructions/kernel_ftC3.h
@@ -240,6 +240,22 @@ plane_from_pointsC3(const FT &px, const FT &py, const FT &pz,
pd = - pa*rx - pb*ry - pc*rz;
}
+
+template
+CGAL_KERNEL_MEDIUM_INLINE
+void
+plane_from_pointsC3( /* origin */
+ const FT &qx, const FT &qy, const FT &qz,
+ const FT &rx, const FT &ry, const FT &rz,
+ FT &pa, FT &pb, FT &pc /* , zero */ )
+{
+ pa = qy*rz - ry*qz;
+ pb = qz*rx - rz*qx;
+ pc = qx*ry - rx*qy;
+}
+
+
+
template
CGAL_KERNEL_MEDIUM_INLINE
void
diff --git a/Circular_kernel_3/demo/Circular_kernel_3/CMakeLists.txt b/Circular_kernel_3/demo/Circular_kernel_3/CMakeLists.txt
index 651458bf5c0..54c3be3aba4 100644
--- a/Circular_kernel_3/demo/Circular_kernel_3/CMakeLists.txt
+++ b/Circular_kernel_3/demo/Circular_kernel_3/CMakeLists.txt
@@ -33,8 +33,6 @@ if(CGAL_Qt5_FOUND AND Qt5_FOUND)
else()
- message(
- STATUS "NOTICE: This demo requires CGAL, and Qt5, and will not be compiled."
- )
+ message("NOTICE: This demo requires CGAL and Qt5, and will not be compiled.")
endif()
diff --git a/Circulator/include/CGAL/circulator.h b/Circulator/include/CGAL/circulator.h
index 144de51cd54..2b1556218f0 100644
--- a/Circulator/include/CGAL/circulator.h
+++ b/Circulator/include/CGAL/circulator.h
@@ -701,7 +701,13 @@ typedef Iterator_from_circulator< C, const_reference, const_pointer>
template
class Circulator_from_container {
typedef Circulator_from_container Self;
- typedef typename Container::iterator iterator;
+ typedef typename Container::iterator container_iterator;
+ typedef typename Container::const_iterator container_const_iterator;
+ typedef std::conditional_t<
+ std::is_const::value,
+ container_const_iterator,
+ container_iterator
+ > iterator;
typedef std::iterator_traits iterator_traits;
public:
typedef typename iterator_traits::value_type value_type;
diff --git a/Classification/doc/Classification/PackageDescription.txt b/Classification/doc/Classification/PackageDescription.txt
index 32736fae273..0771dcd89c2 100644
--- a/Classification/doc/Classification/PackageDescription.txt
+++ b/Classification/doc/Classification/PackageDescription.txt
@@ -65,7 +65,7 @@ Data structures specialized to classify clusters.
\cgalPkgPicture{data_classif.png}
\cgalPkgSummaryBegin
-\cgalPkgAuthors{Simon Giraudot, Florent Lafarge}
+\cgalPkgAuthors{Simon Giraudot and Florent Lafarge}
\cgalPkgDesc{This component implements an algorithm that classifies a data set into a user-defined set of labels (such as ground, vegetation, buildings, etc.). A flexible API is provided so that users can classify any type of data, compute their own local features on the input data set, and define their own labels.}
\cgalPkgManuals{Chapter_Classification, PkgClassificationRef}
\cgalPkgSummaryEnd
diff --git a/Classification/examples/Classification/CMakeLists.txt b/Classification/examples/Classification/CMakeLists.txt
index aef4c8b5952..daf1223226e 100644
--- a/Classification/examples/Classification/CMakeLists.txt
+++ b/Classification/examples/Classification/CMakeLists.txt
@@ -7,15 +7,6 @@ project(Classification_Examples)
# CGAL and its components
find_package(CGAL REQUIRED)
-# Boost and its components
-find_package(Boost REQUIRED)
-
-if(NOT Boost_FOUND)
- message(
- STATUS "This project requires the Boost library, and will not be compiled.")
- return()
-endif()
-
set(Classification_dependencies_met TRUE)
find_package(Boost OPTIONAL_COMPONENTS serialization iostreams)
@@ -23,44 +14,29 @@ include(CGAL_Boost_serialization_support)
include(CGAL_Boost_iostreams_support)
if(NOT TARGET CGAL::Boost_serialization_support)
- message(
- STATUS
- "NOTICE: This project requires Boost Serialization, and will not be compiled."
- )
+ message("NOTICE: This project requires Boost Serialization, and will not be compiled.")
set(Classification_dependencies_met FALSE)
endif()
+
if(NOT TARGET CGAL::Boost_iostreams_support)
- message(
- STATUS
- "NOTICE: This project requires Boost IO Streams, and will not be compiled."
- )
+ message("NOTICE: This project requires Boost IO Streams, and will not be compiled.")
set(Classification_dependencies_met FALSE)
endif()
-find_package(OpenCV QUIET COMPONENTS core ml) # Need core + machine learning
-include(CGAL_OpenCV_support)
-if(NOT TARGET CGAL::OpenCV_support)
- message(
- STATUS
- "NOTICE: OpenCV was not found. OpenCV random forest predicate for classification won't be available."
- )
-endif()
-
-find_package(Eigen3 3.1.0 REQUIRED) #(3.1.0 or greater)
+find_package(Eigen3 3.1.0 QUIET) #(3.1.0 or greater)
include(CGAL_Eigen3_support)
if(NOT TARGET CGAL::Eigen3_support)
- message(
- STATUS "This project requires the Eigen library, and will not be compiled.")
+ message("NOTICE: This project requires the Eigen library, and will not be compiled.")
set(Classification_dependencies_met FALSE)
endif()
-find_package(TBB QUIET)
-include(CGAL_TBB_support)
-
if(NOT Classification_dependencies_met)
return()
endif()
+find_package(TBB QUIET)
+include(CGAL_TBB_support)
+
create_single_source_cgal_program( "example_classification.cpp" )
create_single_source_cgal_program( "example_ethz_random_forest.cpp" )
create_single_source_cgal_program( "example_feature.cpp" )
@@ -70,10 +46,15 @@ create_single_source_cgal_program( "example_cluster_classification.cpp" )
create_single_source_cgal_program( "gis_tutorial_example.cpp" )
create_single_source_cgal_program( "example_deprecated_conversion.cpp" )
-if (TARGET CGAL::OpenCV_support)
+find_package(OpenCV QUIET COMPONENTS core ml) # Need core + machine learning
+include(CGAL_OpenCV_support)
+if(TARGET CGAL::OpenCV_support)
+ message(STATUS "Found OpenCV")
+
create_single_source_cgal_program( "example_opencv_random_forest.cpp" )
- target_link_libraries(example_opencv_random_forest
- PUBLIC CGAL::OpenCV_support)
+ target_link_libraries(example_opencv_random_forest PUBLIC CGAL::OpenCV_support)
+else()
+ message("NOTICE: OpenCV was not found. OpenCV random forest predicate for classification won't be available.")
endif()
foreach(target
@@ -87,9 +68,9 @@ foreach(target
gis_tutorial_example
example_deprecated_conversion)
if(TARGET ${target})
- target_link_libraries(
- ${target} PUBLIC CGAL::Eigen3_support CGAL::Boost_iostreams_support
- CGAL::Boost_serialization_support)
+ target_link_libraries(${target} PUBLIC CGAL::Eigen3_support
+ CGAL::Boost_iostreams_support
+ CGAL::Boost_serialization_support)
if(TARGET CGAL::TBB_support)
target_link_libraries(${target} PUBLIC CGAL::TBB_support)
endif()
diff --git a/Classification/examples/Classification/example_cluster_classification.cpp b/Classification/examples/Classification/example_cluster_classification.cpp
index 578c7f3bca6..51c7e642b78 100644
--- a/Classification/examples/Classification/example_cluster_classification.cpp
+++ b/Classification/examples/Classification/example_cluster_classification.cpp
@@ -30,9 +30,9 @@ typedef Point_set::Property_map Imap;
typedef Point_set::Property_map UCmap;
-typedef CGAL::Shape_detection::Point_set::Sphere_neighbor_query Neighbor_query;
-typedef CGAL::Shape_detection::Point_set::Least_squares_plane_fit_region Region_type;
-typedef CGAL::Shape_detection::Region_growing Region_growing;
+typedef CGAL::Shape_detection::Point_set::Sphere_neighbor_query_for_point_set Neighbor_query;
+typedef CGAL::Shape_detection::Point_set::Least_squares_plane_fit_region_for_point_set Region_type;
+typedef CGAL::Shape_detection::Region_growing Region_growing;
namespace Classification = CGAL::Classification;
namespace Feature = CGAL::Classification::Feature;
@@ -111,25 +111,24 @@ int main (int argc, char** argv)
const double max_accepted_angle = 25.0;
const std::size_t min_region_size = 10;
- Neighbor_query neighbor_query (
- pts,
- search_sphere_radius,
- pts.point_map());
- Region_type region_type (
- pts,
- max_distance_to_plane, max_accepted_angle, min_region_size,
- pts.point_map(), pts.normal_map());
+ Neighbor_query neighbor_query = CGAL::Shape_detection::Point_set::make_sphere_neighbor_query (
+ pts, CGAL::parameters::sphere_radius(search_sphere_radius)
+ .point_map(pts.point_map()));
+ Region_type region_type = CGAL::Shape_detection::Point_set::make_least_squares_plane_fit_region(
+ pts, CGAL::parameters::maximum_distance(max_distance_to_plane)
+ .maximum_angle(max_accepted_angle)
+ .minimum_region_size(min_region_size));
Region_growing region_growing (
pts, neighbor_query, region_type);
std::vector clusters;
region_growing.detect
(boost::make_function_output_iterator
- ([&](const std::vector& region) -> void {
+ ([&](const std::pair>& region) -> void {
// Create a new cluster.
Classification::Cluster cluster (pts, pts.point_map());
- for (const std::size_t idx : region)
+ for (Point_set::Index idx : region.second)
cluster.insert(idx);
clusters.push_back(cluster);
}));
diff --git a/Classification/examples/Classification/example_ethz_random_forest.cpp b/Classification/examples/Classification/example_ethz_random_forest.cpp
index 64d4688a360..a538faa3014 100644
--- a/Classification/examples/Classification/example_ethz_random_forest.cpp
+++ b/Classification/examples/Classification/example_ethz_random_forest.cpp
@@ -140,7 +140,7 @@ int main (int argc, char** argv)
classifier.save_configuration(fconfig);
// Write result
- std::ofstream f ("classification.ply");
+ std::ofstream f ("classification_ethz_random_forest.ply");
f.precision(18);
f << pts;
diff --git a/Classification/examples/Classification/example_opencv_random_forest.cpp b/Classification/examples/Classification/example_opencv_random_forest.cpp
index 99fa9fb6497..e01ede689e5 100644
--- a/Classification/examples/Classification/example_opencv_random_forest.cpp
+++ b/Classification/examples/Classification/example_opencv_random_forest.cpp
@@ -128,7 +128,7 @@ int main (int argc, char** argv)
}
// Write result
- std::ofstream f ("classification.ply");
+ std::ofstream f ("classification_opencv_random_forest.ply");
f.precision(18);
f << pts;
diff --git a/Classification/examples/Classification/gis_tutorial_example.cpp b/Classification/examples/Classification/gis_tutorial_example.cpp
index ba3c15d3825..cfd263dc7bc 100644
--- a/Classification/examples/Classification/gis_tutorial_example.cpp
+++ b/Classification/examples/Classification/gis_tutorial_example.cpp
@@ -473,7 +473,8 @@ int main (int argc, char** argv)
// Fill all holes except the bigest (which is the outer hull of the mesh)
for (Mesh::Halfedge_index hi : holes)
if (hi != outer_hull)
- CGAL::Polygon_mesh_processing::triangulate_refine_and_fair_hole (dtm_mesh, hi);
+ CGAL::Polygon_mesh_processing::triangulate_refine_and_fair_hole
+ (dtm_mesh, hi, CGAL::parameters::fairing_continuity(0));
// Save DTM with holes filled
std::ofstream dtm_filled_ofile ("dtm_filled.ply", std::ios_base::binary);
@@ -735,7 +736,7 @@ int main (int argc, char** argv)
points.range(label_map)).mean_intersection_over_union() << std::endl;
// Save the classified point set
- std::ofstream classified_ofile ("classified.ply");
+ std::ofstream classified_ofile ("classification_gis_tutorial.ply");
CGAL::IO::set_binary_mode (classified_ofile);
classified_ofile << points;
classified_ofile.close();
diff --git a/Classification/package_info/Classification/copyright b/Classification/package_info/Classification/copyright
index e69de29bb2d..b9a65603a2e 100644
--- a/Classification/package_info/Classification/copyright
+++ b/Classification/package_info/Classification/copyright
@@ -0,0 +1 @@
+GeometryFactory (France)
diff --git a/Classification/test/Classification/CMakeLists.txt b/Classification/test/Classification/CMakeLists.txt
index f45464cb3ad..6e179f78144 100644
--- a/Classification/test/Classification/CMakeLists.txt
+++ b/Classification/test/Classification/CMakeLists.txt
@@ -7,15 +7,6 @@ project(Classification_Tests)
# CGAL and its components
find_package(CGAL REQUIRED)
-# Boost and its components
-find_package(Boost REQUIRED)
-
-if(NOT Boost_FOUND)
- message(
- STATUS "This project requires the Boost library, and will not be compiled.")
- return()
-endif()
-
set(Classification_dependencies_met TRUE)
find_package(Boost OPTIONAL_COMPONENTS serialization iostreams)
@@ -23,42 +14,36 @@ include(CGAL_Boost_serialization_support)
include(CGAL_Boost_iostreams_support)
if(NOT TARGET CGAL::Boost_serialization_support)
- message(
- STATUS
- "NOTICE: This project requires Boost Serialization, and will not be compiled."
- )
- set(Classification_dependencies_met FALSE)
-endif()
-if(NOT TARGET CGAL::Boost_iostreams_support)
- message(
- STATUS
- "NOTICE: This project requires Boost IO Streams, and will not be compiled."
- )
+ message("NOTICE: This project requires Boost Serialization, and will not be compiled.")
set(Classification_dependencies_met FALSE)
endif()
-find_package(Eigen3 3.1.0 REQUIRED) #(3.1.0 or greater)
+if(NOT TARGET CGAL::Boost_iostreams_support)
+ message("NOTICE: This project requires Boost IO Streams, and will not be compiled.")
+ set(Classification_dependencies_met FALSE)
+endif()
+
+find_package(Eigen3 3.1.0 QUIET) #(3.1.0 or greater)
include(CGAL_Eigen3_support)
if(NOT TARGET CGAL::Eigen3_support)
- message(
- STATUS "This project requires the Eigen library, and will not be compiled.")
+ message("NOTICE: This project requires the Eigen library, and will not be compiled.")
set(Classification_dependencies_met FALSE)
endif()
-find_package(TBB QUIET)
-include(CGAL_TBB_support)
-
if(NOT Classification_dependencies_met)
return()
endif()
+find_package(TBB QUIET)
+include(CGAL_TBB_support)
+
create_single_source_cgal_program("test_classification_point_set.cpp")
create_single_source_cgal_program("test_classification_io.cpp")
foreach(target test_classification_point_set test_classification_io)
- target_link_libraries(
- ${target} PUBLIC CGAL::Eigen3_support CGAL::Boost_iostreams_support
- CGAL::Boost_serialization_support)
+ target_link_libraries(${target} PUBLIC CGAL::Eigen3_support
+ CGAL::Boost_iostreams_support
+ CGAL::Boost_serialization_support)
if(TARGET CGAL::TBB_support)
target_link_libraries(${target} PUBLIC CGAL::TBB_support)
endif()
diff --git a/Combinatorial_map/include/CGAL/Combinatorial_map/internal/Combinatorial_map_group_functors.h b/Combinatorial_map/include/CGAL/Combinatorial_map/internal/Combinatorial_map_group_functors.h
index 1db4ec2cbda..06f3c4f4dc3 100644
--- a/Combinatorial_map/include/CGAL/Combinatorial_map/internal/Combinatorial_map_group_functors.h
+++ b/Combinatorial_map/include/CGAL/Combinatorial_map/internal/Combinatorial_map_group_functors.h
@@ -566,6 +566,15 @@ void test_split_attribute_functor_one_dart
Attribute_descriptor_i a1 = amap.template attribute(adart);
if ( found_attributes.is_defined(a1) )
{ // Here the attribute was already present in the hash_map
+
+ // We need to call reserve for the cc with index case. Indeed, if the vector
+ // is reallocated, the reference returned by get_attribute(a1) will be
+ // invalidated, and the copy will be wrong. Note that there is no overhead
+ // since the creation of the attribute need one allocation.
+ amap.template attributes().reserve(amap.template attributes().size()+1);
+
+ // Now we are sure that the creation of a new attribute will not imply
+ // a realloc.
Attribute_descriptor_i a2 = amap.template
create_attribute(amap.template get_attribute(a1));
diff --git a/Combinatorial_map/include/CGAL/Combinatorial_map_storages_with_index.h b/Combinatorial_map/include/CGAL/Combinatorial_map_storages_with_index.h
index aad7d643787..584442412c5 100644
--- a/Combinatorial_map/include/CGAL/Combinatorial_map_storages_with_index.h
+++ b/Combinatorial_map/include/CGAL/Combinatorial_map_storages_with_index.h
@@ -146,6 +146,8 @@ namespace CGAL {
{ return cit; }
bool is_used(size_type i) const
{ return mmap.mdarts.is_used(i); }
+ bool owns(size_type i) const
+ { return mmap.mdarts.owns(i); }
private:
Self & mmap;
};
@@ -286,6 +288,13 @@ namespace CGAL {
{
CGAL_static_assertion_msg(Helper::template Dimension_index::value>=0,
"copy_attribute called but i-attributes are disabled.");
+ // We need to do a reserve before the emplace in order to avoid a bug of
+ // invalid reference when the container is reallocated.
+ std::get::value>
+ (mattribute_containers).reserve
+ (std::get::value>
+ (mattribute_containers).size()+1);
+
typename Attribute_descriptor::type res=
std::get::value>
(mattribute_containers).emplace(get_attribute(ah));
diff --git a/Combinatorial_map/include/CGAL/Compact_container_with_index.h b/Combinatorial_map/include/CGAL/Compact_container_with_index.h
index a87122500fc..044db27dc87 100644
--- a/Combinatorial_map/include/CGAL/Compact_container_with_index.h
+++ b/Combinatorial_map/include/CGAL/Compact_container_with_index.h
@@ -752,6 +752,9 @@ public:
return false;
}
+ bool owns(size_type i) const
+ { return i=n) return;
- capacity_=n;
increase_size();
}
diff --git a/Combinatorial_map/package_info/Combinatorial_map/copyright b/Combinatorial_map/package_info/Combinatorial_map/copyright
new file mode 100644
index 00000000000..3c616b4b377
--- /dev/null
+++ b/Combinatorial_map/package_info/Combinatorial_map/copyright
@@ -0,0 +1 @@
+CNRS and LIRIS' Establishments (France)
diff --git a/Combinatorial_map/test/Combinatorial_map/CMakeLists.txt b/Combinatorial_map/test/Combinatorial_map/CMakeLists.txt
index 94b110c4ac7..6357af2198d 100644
--- a/Combinatorial_map/test/Combinatorial_map/CMakeLists.txt
+++ b/Combinatorial_map/test/Combinatorial_map/CMakeLists.txt
@@ -24,9 +24,17 @@ target_compile_definitions(Combinatorial_map_copy_test_index PUBLIC USE_COMPACT_
target_link_libraries(Combinatorial_map_copy_test_index PUBLIC CGAL CGAL::Data)
cgal_add_compilation_test(Combinatorial_map_copy_test_index)
+create_single_source_cgal_program(cmap_test_split_attribute.cpp)
+
# Link with OpenMesh if possible
find_package(OpenMesh QUIET)
if(TARGET OpenMesh::OpenMesh)
+ message(STATUS "Found OpenMesh")
+
target_link_libraries(Combinatorial_map_copy_test PRIVATE OpenMesh::OpenMesh)
+ target_compile_definitions(Combinatorial_map_copy_test PRIVATE -DCGAL_USE_OPENMESH)
target_link_libraries(Combinatorial_map_copy_test_index PRIVATE OpenMesh::OpenMesh)
+ target_compile_definitions(Combinatorial_map_copy_test_index PRIVATE -DCGAL_USE_OPENMESH)
+else()
+ message(STATUS "NOTICE: Tests will not use OpenMesh.")
endif()
diff --git a/Combinatorial_map/test/Combinatorial_map/cmap_test_split_attribute.cpp b/Combinatorial_map/test/Combinatorial_map/cmap_test_split_attribute.cpp
new file mode 100644
index 00000000000..49e8795eef7
--- /dev/null
+++ b/Combinatorial_map/test/Combinatorial_map/cmap_test_split_attribute.cpp
@@ -0,0 +1,92 @@
+#include
+#include
+#include
+#include
+#include
+#include
+
+struct MyInfo
+{
+ MyInfo() :data(1)
+ {}
+
+ MyInfo(int i) :data(i)
+ {}
+
+ int data;
+};
+
+struct Myitem1
+{
+ using Use_index=CGAL::Tag_true; // use indices
+ using Index_type=std::uint16_t; // 16 bits
+ template
+ struct Dart_wrapper
+ {
+ typedef CGAL::Cell_attribute attrib;
+ typedef std::tuple Attributes;
+ };
+};
+
+struct Myitem2
+{
+ template
+ struct Dart_wrapper
+ {
+ typedef CGAL::Cell_attribute attrib;
+ typedef std::tuple Attributes;
+ };
+};
+
+using CMap1=CGAL::Combinatorial_map<3,Myitem1>;
+using CMap2=CGAL::Combinatorial_map<3,Myitem2>;
+
+#define NB 1000
+template
+bool test(const std::string& s)
+{
+ bool res=true;
+ CMap m;
+ // 1) create a face and one attribute.
+ typename CMap::Dart_descriptor dd=m.make_combinatorial_polygon(4);
+ m.template set_attribute<2>(dd, m.template create_attribute<2>(2));
+ // 2) Split this face NB times => will create new 2-attributes for new faces
+ for(std::size_t i=0; i(newd)==CMap::null_descriptor)
+ {
+ std::cout<<"ERROR1: "<(newd)==CMap::null_descriptor"<(newd).data!=2)
+ {
+ std::cout<<"ERROR2: "<(newd).data<(newd);
+ if(m.template attribute<2>(newd)==CMap::null_descriptor)
+ {
+ std::cout<<"ERROR3: "<(newd)==CMap::null_descriptor"<(newd).data!=2)
+ {
+ std::cout<<"ERROR4: "<(newd).data<("CMap1") || !test("CMap2"))
+ { return EXIT_FAILURE; }
+
+ return EXIT_SUCCESS;
+}
diff --git a/Cone_spanners_2/doc/Cone_spanners_2/PackageDescription.txt b/Cone_spanners_2/doc/Cone_spanners_2/PackageDescription.txt
index 9dfe45083f8..6b59b805a38 100644
--- a/Cone_spanners_2/doc/Cone_spanners_2/PackageDescription.txt
+++ b/Cone_spanners_2/doc/Cone_spanners_2/PackageDescription.txt
@@ -7,7 +7,7 @@
\cgalPkgPicture{Logo-ConeSpanners.png}
\cgalPkgSummaryBegin
-\cgalPkgAuthors{Weisheng Si, Quincy Tse and Frédérik Paradis}
+\cgalPkgAuthors{Weisheng Si, Quincy Tse, and Frédérik Paradis}
\cgalPkgDesc{This package provides functors for constructing two kinds of cone-based spanners:
Yao graph and Theta graph, given a set of vertices on the plane and the directions of cone boundaries.
Both exact and inexact constructions are supported.
diff --git a/Cone_spanners_2/examples/Cone_spanners_2/CMakeLists.txt b/Cone_spanners_2/examples/Cone_spanners_2/CMakeLists.txt
index 7bb7268e27e..ded37dfad08 100644
--- a/Cone_spanners_2/examples/Cone_spanners_2/CMakeLists.txt
+++ b/Cone_spanners_2/examples/Cone_spanners_2/CMakeLists.txt
@@ -1,7 +1,7 @@
cmake_minimum_required(VERSION 3.1...3.23)
project(Cone_spanners_2_Examples)
-find_package(CGAL REQUIRED QUIET OPTIONAL_COMPONENTS Core)
+find_package(CGAL REQUIRED OPTIONAL_COMPONENTS Core)
find_package(LEDA QUIET)
if(CGAL_Core_FOUND OR LEDA_FOUND)
@@ -20,12 +20,6 @@ if(CGAL_Core_FOUND OR LEDA_FOUND)
foreach(cppfile ${cppfiles})
create_single_source_cgal_program("${cppfile}")
endforeach()
-
else()
-
- message(
- STATUS
- "This program requires the CGAL_Core library (or LEDA), and will not be compiled."
- )
-
+ message("NOTICE: This program requires the CGAL_Core library (or LEDA), and will not be compiled.")
endif()
diff --git a/Cone_spanners_2/examples/Cone_spanners_2/theta_io.cpp b/Cone_spanners_2/examples/Cone_spanners_2/theta_io.cpp
index 4096cf1c71f..3b49478f47f 100644
--- a/Cone_spanners_2/examples/Cone_spanners_2/theta_io.cpp
+++ b/Cone_spanners_2/examples/Cone_spanners_2/theta_io.cpp
@@ -4,7 +4,6 @@
#include
#include
#include
-#include
#include
#include
#include
@@ -79,7 +78,7 @@ int main(int argc, char ** argv)
// obtain the number of vertices in the constructed graph
boost::graph_traits::vertices_size_type n = boost::num_vertices(g);
// generate gnuplot files for plotting this graph
- std::string file_prefix = "t" + boost::lexical_cast(k) + "n" + boost::lexical_cast(n);
+ std::string file_prefix = "t" + std::to_string(k) + "n" + std::to_string(n);
CGAL::gnuplot_output_2(g, file_prefix);
return 0;
diff --git a/Cone_spanners_2/test/Cone_spanners_2/CMakeLists.txt b/Cone_spanners_2/test/Cone_spanners_2/CMakeLists.txt
index ac3d47b8f6d..462edfc7819 100644
--- a/Cone_spanners_2/test/Cone_spanners_2/CMakeLists.txt
+++ b/Cone_spanners_2/test/Cone_spanners_2/CMakeLists.txt
@@ -6,23 +6,11 @@ project(Cone_spanners_2_Tests)
find_package(CGAL REQUIRED COMPONENTS Core)
-if(CGAL_Core_FOUND)
- include_directories(BEFORE "include")
-
- # create a target per cppfile
- file(
- GLOB cppfiles
- RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
- ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp)
- foreach(cppfile ${cppfiles})
- create_single_source_cgal_program("${cppfile}")
- endforeach()
-
-else()
-
- message(
- STATUS
- "This program requires the CGAL and CGAL_Core libraries, and will not be compiled."
- )
-
-endif()
+# create a target per cppfile
+file(
+ GLOB cppfiles
+ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
+ ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp)
+foreach(cppfile ${cppfiles})
+ create_single_source_cgal_program("${cppfile}")
+endforeach()
diff --git a/Cone_spanners_2/test/Cone_spanners_2/theta_exact.cpp b/Cone_spanners_2/test/Cone_spanners_2/theta_exact.cpp
index 0173c9798ac..6bdb2e0eb8d 100644
--- a/Cone_spanners_2/test/Cone_spanners_2/theta_exact.cpp
+++ b/Cone_spanners_2/test/Cone_spanners_2/theta_exact.cpp
@@ -10,7 +10,6 @@
#include
#include
#include
-#include
#include
#include
#include
@@ -70,7 +69,7 @@ int main(int argc, char ** argv)
// obtain the number of vertices in the constructed graph
boost::graph_traits::vertices_size_type n = boost::num_vertices(g);
// generate gnuplot files for plotting this graph
- std::string file_prefix = "t" + boost::lexical_cast(k) + "n" + boost::lexical_cast(n);
+ std::string file_prefix = "t" + std::to_string(k) + "n" + std::to_string(n);
CGAL::gnuplot_output_2(g, file_prefix);
return 0;
diff --git a/Cone_spanners_2/test/Cone_spanners_2/theta_inexact.cpp b/Cone_spanners_2/test/Cone_spanners_2/theta_inexact.cpp
index 4d305d0fb30..f62d9d34dc9 100644
--- a/Cone_spanners_2/test/Cone_spanners_2/theta_inexact.cpp
+++ b/Cone_spanners_2/test/Cone_spanners_2/theta_inexact.cpp
@@ -11,7 +11,6 @@
#include
#include
#include
-#include
#include
#include
#include
@@ -71,7 +70,7 @@ int main(int argc, char ** argv)
// obtain the number of vertices in the constructed graph
boost::graph_traits::vertices_size_type n = boost::num_vertices(g);
// generate gnuplot files for plotting this graph
- std::string file_prefix = "t" + boost::lexical_cast(k) + "n" + boost::lexical_cast(n);
+ std::string file_prefix = "t" + std::to_string(k) + "n" + std::to_string(n);
CGAL::gnuplot_output_2(g, file_prefix);
return 0;
diff --git a/Cone_spanners_2/test/Cone_spanners_2/yao_exact.cpp b/Cone_spanners_2/test/Cone_spanners_2/yao_exact.cpp
index 9b6c3668777..4e19687de49 100644
--- a/Cone_spanners_2/test/Cone_spanners_2/yao_exact.cpp
+++ b/Cone_spanners_2/test/Cone_spanners_2/yao_exact.cpp
@@ -12,7 +12,6 @@
#include